Introducci贸n

1

Lo que aprender谩s sobre DevOps con GitLab

2

驴Qu茅 es Devops?

3

El ciclo de vida del Devops

4

Introducci贸n a Gitlab

5

Gitlab vs Github

Administraci贸n

6

Autenticaci贸n

7

Grupos

8

Autorizaci贸n

9

Auditor铆a

10

Proyectos

Planificaci贸n

11

Tipos de desarrollo

12

Planificaci贸n en Gitlab-Issues

13

Planificaci贸n en Gitlab-Etiquetas

14

Planificaci贸n en Gitlab-Pesos

15

Planificaci贸n en Gitlab-Milestones

16

Planificaci贸n en Gitlab-Boards

17

Planificaci贸n en Gitlab-Service Desk

18

Planificaci贸n en Gitlab-Quick actions

Verificaci贸n

19

Inicializaci贸n del repositorio

20

Merge requests

21

Profundizando en Merge requests

22

Continuous Integration-CI

23

Gitlab CI

24

Automatizacion con GitLab Cl

25

Validacion de la configuracion con GitLab Cl

26

gitlab-ci.yml

27

Gitlab pages

28

Implementando Gitlab pages

29

驴Qu茅 es el Desarrollo 脕gil?

30

Gitlab autodevops

31

Implementando GitLab autodevops

32

Habilitando autodevops

Empaquetaci贸n

33

Gitlab container registry

34

Introducci贸n a contenedores

Seguridad

35

Introducci贸n a DevSecOps

36

Firmas de seguridad

37

Pruebas est谩ticas de seguridad

38

Escaneo de contenedores

39

Escaneo de dependencias

40

Pruebas din谩micas de seguridad

41

Gitlab security dashboard

Distribuci贸n

42

Continuous Delivery (CD)

43

Ambientes

44

Review apps

45

Estrategias de Distribuci贸n

46

Feature Flags

47

Rollback

Monitoreo

48

驴Por qu茅 monitorear?

49

M茅tricas de desempe帽o (performance metrics)

50

M茅tricas de salud (health metrics)

51

Metricas de equipo

52

Rastreo de errores

Conclusiones

53

驴Por qu茅 desarrollar con Gitlab?

A煤n no tienes acceso a esta clase

Crea una cuenta y contin煤a viendo este curso

Escaneo de dependencias

39/53
Recursos

El Dependency scanning analiza est谩ticamente las dependencias del proyecto para encontrar vulnerabilidades. Puede generar un reporte que se a帽ade al merge request y utiliza la imagen de Docker Dependency Scanning de Gitlab

Aportes 7

Preguntas 1

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesi贸n.

El a帽o pasado se detect贸 un paquete de npm muy usado por muchos desarrolladores (event-stream) que estaba infectado con c贸digo malicioso. En resumen, un usuario malintencionado se gan贸 la confianza del mantenedor del repo del paquete para luego, ya siendo un contribuidor (de hecho, lleg贸 a ser el due帽o del repo), introcudir este c贸digo malicioso. La forma en que lo hizo vulner贸 incluso a los escaneos de c贸digo est谩tico como el que vemos en este curso. Les dejo el resto: https://medium.com/intrinsic/compromised-npm-package-event-stream-d47d08605502

Les dejo aqu铆 una BD de vulnerabilidades de software opensource

https://www.whitesourcesoftware.com/vulnerability-database

fue un usuario de Twitter, que por esta red alert贸 de un comportamiento malicioso en el paquete 鈥榗ross-env鈥 al detectar que robaba informaci贸n de las variables de entorno durante la instalaci贸n.

Este paquete, seg煤n npm, es uno de los muchos paquetes fraudulentos detectados, el cual fue publicado por el usuario 鈥榟acktask鈥 el d铆a 19 de Julio, imitando ser el paquete 鈥榗rossenv鈥. Dicho paquete fue eliminado el 1 de agosto con unas 700 descargas, aunque muchas de 茅stas fueron realizadas por automatismos y tan solo unas 50 parecen ser infecciones reales

El ataque utilizado en estos repositorios se denomina 鈥榯ypo-squatting鈥 y consiste en nombrar al paquete fraudulento con un nombre ligeramente similar al nombre de un paquete real. Se busca enga帽ar al usuario para su instalaci贸n e infecci贸n.

Actualmente el usuario 鈥榟acktask鈥 est谩 bloqueado y todos sus paquetes han sido eliminados del repositorio.

A continuaci贸n publicamos la lista de estas librer铆as fraudulentas con el n煤mero de descargas seg煤n npm.

babelcli: 42
cross-env.js: 43
crossenv: 679
d3.js: 72
fabric-js: 46
ffmepg: 44
gruntcli: 67
http-proxy.js: 41
jquery.js: 136
mariadb: 92
mongose: 196
mssql-node: 46
mssql.js: 48
mysqljs: 77
node-fabric: 87
node-opencv: 94
node-opensl: 40
node-openssl: 29
node-sqlite: 61
node-tkinter: 39
nodecaffe: 40
nodefabric: 44
nodeffmpeg: 39
nodemailer-js: 40
nodemailer.js: 39
nodemssql: 44
noderequest: 40
nodesass: 66
nodesqlite: 45
opencv.js: 40
openssl.js: 43
proxy.js: 43
shadowsock: 40
smb: 40
sqlite.js: 48
sqliter: 45
sqlserver: 50
tkinter: 45

Por el comportamiento malicioso de estas librer铆as se recomienda cambiar todas las credenciales utilizadas en el entorno de desarrollo.

Buenas tardes quisiera saber si se puede hacer un efectivo changelog apartir de nuestros merge request y que agrupe los commits como items de que fue lo que se a帽ade o se arreglo

Explicaci贸n clara sobre los huecos de seguirdad

Module

module name: morgan
**version: **1.9.0
npm page: https://www.npmjs.com/package/morgan

Module Description
HTTP request logger middleware for node.js

Named after Dexter, a show you should not watch until completion.

Module Stats
1,120,329 downloads in the last week

Vulnerability

Vulnerability Description

An attacker can use the format parameter to inject arbitrary commands

Steps To Reproduce:

The basic attack vector looks like this:

var morgan = require(鈥榤organ鈥);
var f = morgan(鈥25 \" + console.log(鈥榟ello!鈥); + //:method :url :status :res[content-length] - :response-time ms鈥);
f({}, {}, function () {
});
However, it is hard to believe that the package is used this way in any application. However, a more interesting attack vector is when combining this vulnerability with a prototype pollution one:

var morgan = require('morgan');
//payload delivered through a prototype pollution attack
Object.prototype[':method :url :status :res[content-length] - :response-time ms'] = '25 \\" + console.log(\'hello!\'); +  //:method :url :status :res[content-length] - :response-time ms';
//benign looking usage of morgan that can be exploited due to the prototype pollution attack
var f = morgan(':method :url :status :res[content-length] - :response-time ms');
f({}, {}, function () {
});

Eval and it鈥檚 variants like Function() should almost neve be used in such popular packages.

Patch

N/A remove the usage of Function().

Wrap up

I contacted the maintainer to let them know: N
I opened an issue in the related repository: N
Impact

If combined with a prototype pollution attack this vulnerability is very serious (RCE). Otherwise, it is very unlikely that the attacker can control the vulnerable format parameter, but not impossible to think.