Mostrando entradas con la etiqueta herramientas. Mostrar todas las entradas
Mostrando entradas con la etiqueta herramientas. Mostrar todas las entradas

24 enero 2017

Entrevista a Michael Boelen, el creador de Lynis y rkhunter




Seguro que a quienes os ha tocado administrar y securizar máquinas Linux, tenéis a Lynis como una de las herramientas de cabecera, para poder comprobar si os habéis dejado algún agujero por tapar. De hecho, en los inicios de SbD, ya hablábamos sobre esta fantástica herramienta. Pero no Michael no sólo es conocido por Lynis, sino por haber desarrollado tiempo atrás otra herramienta que no puede faltar cuando se analiza un incidente de seguridad en Linux, en el que hay una máquina comprometida: RKHunter.

Pues hoy os traigo una entrevista al padre de ambas criaturas: Michael Boelen. Holandés y un auténtico experto en Linux. Sin duda una persona de la que aprender, tanto a nivel técnico como por desarrollar Lynis, su proyecto personal, y potenciarlo hasta dedicarse profesionalmente en cuerpo y alma a él. 

La entrevista está en inglés. Pensé en traducirla al español, pero creo que así como lo he hecho en otras, el resultado ha perdido su esencia. Creo que es mejor dejarla en el idioma original y, a no ser que me lo pidáis en los comentarios, la dejamos así. 

SbD - Michael, you are the developer or Lynis, one of the main automated internal auditing tools for GNU/Linux systems. What did make you to start developing this useful tool?

Michael Boelen The best tools or apps are usually created because of a specific need. I needed a quick way to replace hardening guides (like the CIS benchmarks) during my years as a system administrator. Reading the documents simply take too much time. And instead of just checking the boxes, I wanted a tool that could test systems on a daily basis and tell me what could be improved.

- I guess you use CIS Benchmarks Guides to adjust the checks they recommend to improve your tool. Which any other sources do you have in mind?

That is the beauty of a tool like Lynis. It is not limited to one single standard or a set of best practices. Instead, we take the most important best practices and combine them into a set of smaller tests. We group them by their focus area, like cryptography, database, mail, web, etc.

- Lynis also has plugins developed by the community, can you talk us about them?

The plugin system of Lynis extends the normal set of tests. Where normal tests have a clear outcome (good, bad, or could be better), plugins are mainly focused on collecting data. This data could then be used during the tests later on, or their output could be stored in a data report. This data report could then be fed into a SIEM, or a management interface.

- Have you ever thought about creating profiles to be able to measure a
system security level depending on the checks that standards like PCI-DSS requires?

We definitely have. In 2013 we started actually a company (CISOfy) to put more development into Lynis. For companies that have specific requirements (like being compliant with PCI-DSS, HIPAA, or ISO27001), we offer a management interface. It leverages the Lynis client tool and adds a web-based interface where all data is stored. And when you have all data in one place, the sum and value of all data from all individual systems become much higher. For example finding the questions to how do systems compare? Are similar systems also similarly configured? And for those with a need of compliance checking, the Enterprise version can do a quick scan in this area. Simply add a machine and add a compliance standard, and it will be checked.

- Although Lynis is free, you have this Enterprise version you mentioned. Do you earn your life with this project or do you work somewhere else and Lynis is a hobby or a complementary job for you?

Lynis started as a hobby project in 2007. With the business support from CISOfy in 2013, the project has seen a great increase in number of users and contributors. I'm full-time involved with business and software development, and that is for us our main stream of income.

- There are other tools that says to do the same as Lynis, like Linux Check list or LSAT. Why is Lynis better than the rest?

During the last 10 years, several tools have seen the light. The big problem with all the tools: they are badly maintained. Still, I see occasionally new projects show up and after 6-12 months stop. With Lynis celebrating its 10th anniversary, you can be assured that it is well-known and still being maintained. Compared to commercial solutions, Lynis is open-source and vendor-neutral. That is another important aspect of our tool. The last one might be surprising, but Lynis is written in shell script. Not in bash, but bourne shell (/bin/sh). This makes it perfect for people to create their own tests, even if you would use something like Python. Simply fetch the output of your script and embed into your own test. Another benefit is that Lynis runs on AIX, FreeBSD, OpenBSD, Linux, macOS, and others. As long as you have that basic /bin/sh shell available.

- Do you have any tips for people that like to contribute to open source projects?

Maybe the most important tip is that your involvement with a project could result in the most unbelievable things. Think of finding a job, a mentor, or a friendship. Even if you can't program, you can help making any project better by contributing to the documentation by sharing areas that could be improved. Even if you find a small typo, that is already worth sharing.

- For those who can do programming, any tips?

If you have the gift of being a developer, then I suggest valuing your time. In my opinion, it is better to make one very good tool, than three mediocre tools. Focus on easy of use, documentation, design, sane defaults, contributor guidelines and regular program updates. Last but not least, learn the skill of marketing. Even the best open source tools need marketing.

- Besides Lynis, are there any projects that you are involved in?

People might know me from my first big project in the past, named rkhunter (Rootkit Hunter). While I still read about malware, I don't do as much research nowadays. The time of dissecting rootkits is over. Instead, I put in a lot of time to share knowledge regarding Linux security (like 'The state of Linux security' --> https://linux-audit.com/the-state-of-linux-security/). The blog Linux Audit is one of these places where I share such knowledge. As a technical founder, I find it important to help making the digital world a little bit more secure. By sharing tips and ideas, we can inspire others to take action. Another area includes giving presentations at meetups and conferences. Last year about 10 presentations, of which most are available online. Speaking about conferences, I help to organize one in The Netherlands. It is a Dutch UNIX user group (NLUUG), focused on open standards like open source and GNU/Linux. Besides being a board member, I provide my guidance in the program committee to select the right speakers. And another small side project I'm running, is the Twitter handle @infosec_cfp. It helps security specialists to get involved in call for papers/proposals of any security conference they like to speak.

- If we like to know more about you, what is a good place to look?
Searching my name would be a good start. You will find I'm on Twitter (@mboelen), LinkedIn, and have a personal website (michaelboelen.com). And don't forget to read the blog [https://linux-audit.com] :)
Leer más...

22 junio 2016

Evolve: una GUI web para Volatility





Una de las primeras tareas que hay que llevar a cabo al atender un incidente de seguridad en un sistema, es adquirir el contenido de la memoria RAM. Para ello, podemos utilizar herramientas como Dumpit o Ram capture. Si utilizamos la suite de herramientas para Windows que vienen en WIN-UFO, dentro de la distribución CAINE, en su formato Live (ya sea USB o CD), además contamos con una de las herramientas favoritas de cualquier analista forense: FTK Imager Lite.

Tan complejo que puede llegar a ser la adquisición de la memoria en Linux, y tan sencillo que se hace con FTK, en entornos Windows. Le damos a un botón y se extrae un dump de la memoria en un fichero.

A partir de ahora, toca trabajo de análisis en laboratorio y a destripar la imagen con una de las mejores herramientas que hay: Volatility.

Para ello, toca pasarle como parámetro a este script hecho en python, la imagen de memoria adquirida, el perfil que indicará el sistema operativo al que pertenece el dump, así como el comando o el script que queramos ejecutar sobre la memoria. 

En esta línea, una ejecución válida sería: "python vol.py pslist -f fichero.mem —profile Win2008R2SP1x64” que nos devolvería la lista de procesos que tenía en ejecución la máquina cuando le copiamos "el cerebro”. Volatility, al estar hecho en Python, permite ser ejecutado en multiplataforma, pero siempre bajo una línea de comandos. Esto está bien, en algunos casos, pero cuando requieres trabajo en grupo, o poder procesar varios scripts sobre una misma imagen, puede ser interesante contar con una interfaz web que permita preprocesar ciertos scripts sobre la imagen adquirida, así como mostrar y almacenar los resultados. 

Aquí es cuando llega, al fin, Evolve.

Su instalación y ejecución no puede ser más sencilla:

git clone https://github.com/JamesHabben/evolve
cd evolve
python setup.py install

Para determinados plugins es necesario disponer de ciertas librerías: 

pip install bottle
pip install yara
pip install distorm3
pip install maxminddb

En el caso de mi instalación, en una distribución CAINE 7, además tuve que ejecutar pip install distorm3 —upgrade

La ejecución de Evolve, necesita varios parámetros. Entre otros, el fichero con el volcado de memoria a analizar, el perfil de Volatility correspondiente a la versión de sistema operativo al que corresponde la memoria analizada, así como el puerto en el que escuchará el servidor web por el que se publicará la información analizada de la memoria.  

 python evolve.py -w 8000 -f /opt/imagen.mem —profile Win2008R2SP1x64 


Si nos conectamos vía web a dicho servicio se nos muestra algo como lo siguiente:



En el panel de la izquierda se puede ver la posibilidad de ejecución de los diferentes plugins, que según se va terminando su ejecución el botón se transforma de run a show. 

La información procesada queda en el mismo directorio donde se encuentra el dump de memoria, en un fichero con formato SQLite, en el que se genera una tabla por cada plugin ejecutado.

sqlite> .tables
AmCache   AtomScan  Auditpol  CmdScan   PSList    PSTree    YaraScan ApiHooks  Atoms  BigPools  Cmdline   PSScan    VerInfo 

Como digo, una herramienta más o incluso una ayuda para hacer más visual el resultado que interpreta una herramienta. Sin embargo, el trabajo real lo tiene que hacer el ojo y mente humanas, que son las que realmente entienden lo que ven.


Leer más...

21 junio 2016

Anti Ransom V3

Ya ha pasado algún tiempo desde la última versión de Anti Ransom y, como es lógico, muchos correos, conversaciones y gente me ha dado sugerencias, ideas y reportado fallos.

Con todo eso en la mano, he rediseñado bastante Anti Ransom y lo he hecho evolucionar de arriba a abajo.

De entrada, primer y principal cambio: Ahora Anti Ransom es OpenSource y puedes descargar, visionar y si te apetece colaborar en el código fuente del proyecto desde GitHub.

Esto ha sido posible al cambiar del lenguaje original (Perl) a Python. Perl requería el uso de PDK, una herramienta comercial que permite convertir scripts en ejecutables libres de dependencias. En el caso de Python, lo he cambiado por Pyinstaller.

El siguiente cambio ha sido dejar de utilizar handle como herramienta para listar ficheros abiertos. Eso evita seguir teniendo que descargar en cada instalación dicho programa. Queda como dependencia Procdump, pero ya estoy valorando ideas para eliminar dicha dependencia.

El módulo psutil de Python tiene una interesante función llamada open_files() que lista los ficheros abiertos de cada proceso. Personalmente era bastante escéptico, pero una vez implementada una rutina basada en ella, tengo que decir que el resultado ha sido excelente. Todas las muestras que he usado han sido detectadas con bastante celeridad, superando con mucho la rutina anterior que usaba handle

Otro tema que inquieta mucho a la gente son los falsos positivos. A lo largo de estos años mucha gente me ha enviado correos al respecto. Para abordar este tema, de entrada, durante la instalación se deshabilita y detiene el servicio de indexación de Windows, causante de la mayoría de falsos positivos.

Además, ahora Anti Ransom ya no decide por si mismo eliminar un proceso, te permite decidir a ti lo que quieres hacer


Evidentemente, el gap de tiempo que hay entre que tú decides y el proceso muere, puede suponer que tu HD quede cifrado o no. Por eso, lo que hace AntiRansom es suspender el proceso potencialmente malicioso y lanzar el popup, de esa forma, mientras decides, tu HD sigue a salvo. Si le dices 'Go', el proceso se des-suspende y sigue con normalidad y si le dices stop, el proceso muere dejando tras de sí un dump de su memoria en la que puedes 'escarbar' y tratar de encontrar la(s) clave(s) que ha usado para cifrar los ficheros.

Además, ahora Anti Ransom es multi-hilo, de forma que, si encuentra un proceso sospechoso y lanza el popup, lanzará a la vez otro hilo que sigue monitorizando. Por tanto, si un malware ha lanzado 10 procesos, los 10 van a ser detenidos casi a la vez, independientemente de que estés frente al PC para pulsar 'Stop'. Cuando vuelvas, verás los 10 popups y todos los procesos maliciosos estarán suspendidos.

Otro cambio importante es la interfaz gráfica. Ha mejorado bastante al emplear QT como motor gráfico y sobre todo gracias al precioso logo que me han regalado :)


La versión ya compilada y lista para ser instalada se puede descargar desde aquí. En poco tiempo actualizaré la página principal del proyecto, con capturas y vídeos
Leer más...

30 marzo 2016


Que levante la mano quien gestione uno o más servidores de correo electrónico. Y que sigan con la mano levantada los que tengan esos servidores de forma dedicada. 

A la hora de configurar un servidor de correo, hay varios puntos a tener en cuenta: que si no sea open relay, que requieran autenticación antes de envío, que los algoritmos de autenticación y firma no sean débiles, que los certificados utilizados tengan una longitud de clave adecuada, etc, etc,...   

Sin embargo, el post de hoy tiene una mezcla entre seguridad y sistemas, y está pensado en verificar varios puntos que hacen que otros servidores de correo verifiquen que el servidor es correcto y que no marque como spam, o no le asigne puntos al menos por las cabeceras o por el servidor de donde viene. Si el contenido del correo contiene viagra, Rolex, invoice, archivos con doble extensión, etc,... pues ya no se puede garantizar, pero al menos que el servidor esté lo más correcto posible.

Para ello vamos a utilizar un servicio online gratuito, llamado www.mail-tester.com. Se nos muestra una dirección de correo aleatoria de mail-tester.com.


La forma de hacer la prueba es tan fácil como enviar un correo electrónico desde un cliente que salga desde el servidor de correo electrónico que queremos comprobar a la dirección propuesta por mail-tester.

Una vez enviado, se pulsa en "Then Check Your Score" y se puede ver el análisis realizado por el servicio. Inicialmente se ve un resumen:


¿Qué puntos de control se verifican?
  • Análisis con Spamassassin
  • Comprobaciones de SPF, DKIM, DMARC, Resolución inversa 
  • Verificación del contenido del correo
  • Verificación en listas negras o blacklists
Viéndolo en detalle, la primera verificación la hacen con spamassassin. Es decir, qué diría este software sobre el correo que enviaste. Hay ciertas comprobaciones que spamassassin ya hace, que serán repetidas con las que hace mail-tester posteriormente, pero es una métrica tan válida como otra cualquiera.



Las más importantes, para mi gusto, son las siguientes: 

  • Se comprueban registros SPF, que como se puede ver en el enlace, son registros DNS de tipo TXT que autoriza a qué máquinas (por dirección IP, redes en formato CIDR o por nombre DNS) pueden enviar correos electrónicos. El servidor que recibe el email, comprueba que la dirección IP de donde viene la comunicación de envío de correo está dentro de los hosts autorizados.
  • Se comprueba la firma DKIM que se envía en las cabeceras del correo electrónico. No es el objetivo explicar cómo se configura DKIM, pero en esencia, el servidor de correo emite una firma que va en la propia cabecera. Dicha firma se puede verificar con la clave pública, complementaria a la privada que emitió la firma, que se puede rescatar de un registro DNS de tipo TXT. Dicho registro viene notificado en la propia cabecera DKIM. Si la firma es correcta, es otra forma de verificar que el servidor de correo está autorizado para enviar el mensaje analizado. Hay una buena saga de posts de Chema Alonso que explican en detalle los internals de DKIM. 



  • Se comprueba la existencia y validez de un registro de tipo DMARC. No conocía bien este tipo de registro (de hecho la primera vez que hice la prueba me dio que tenía fallo por este item). Su funcionamiento está muy bien documentado en https://dmarc.org/overview/. Si sólo queremos su existencia (con esto ya no nos penaliza la comprobación), pero sin aplicar ninguna política, tendrá que tener un formato como este: _dmarc.securizame.com TXT "v=DMARC1\; p=none".
  • Comprobación de equivalencia de resolución inversa de DNS de la IP origen, con el dominio que envía el correo electrónico. Puede que esto no sea idéntico siempre, si se piensa en que un servidor de correo puede albergar cientos de dominios, y la resolución inversa de la IP, corresponde a uno de ellos (o incluso a ninguno, si se piensa en un ISP). 


La última de las comprobaciones se hacen relativas a la dirección IP, que no se encuentre en ninguna lista negra (de las muchas que hay). Es lo que hacía la herramienta AmISpammer, uno de mis proyectos de abandonware.



Respecto a la configuración de DKIM, SPF y DMARC, tenéis una excelente guía para entender el funcionamiento y afinamiento en la wiki de Zimbra.

Como he dicho al principio, no garantizamos la seguridad del servidor de correo por pasar correctamente esta checklist, pero por lo menos, os aseguráis (o en una muy buena medida) que la mayoría de los correos electrónicos que envíe vuestro servidor, no irán a parar a la carpeta Spam, si van dirigidos a servidores que aplican políticas de antispam estrictas como Gmail, Outlook, etc,... 



Leer más...

16 diciembre 2015

Maltrail: Herramienta para monitorización de red y detección de amenazas





Hacía días que tenía echado el ojo a esta herramienta que ví en el twitter de “nosequién” (mis disculpas a quien corresponda, porque suelo poner los créditos de estas cosas, pero sinceramente no recuerdo la fuente).

En este caso, se trata de maltrail, una herramienta opensource, hecha en Python, destinada a analizar el tráfico de red con el fin de detectar y registrar posibles amenazas. Hasta aquí todo bien, y seguro que diréis: pues otro Snort o Suricata, ¿no?. Pues la respuesta es: parcialmente sí.

La diferencia es la categorización de las amenazas, las diversas fuentes de las que tira (si la dirección IP tiene mala reputación en diferentes fuentes abiertas), la inteligencia para identificar actividad sospechosa, la identificación de malware que intenta llamar a casa, así como la presentación de panel de detección que muestra, me ha resultado especialmente interesante, o cuanto menos, complementario a la pila de paneles web de diversas herramientas destinadas a monitorizar la seguridad.



Muestra diversas estadísticas como número de amenazas, tendencias de eventos clasificados como riesgo alto/medio/bajo, gráficas de tarta por severidad, por top de fuentes atacantes, etc,...

El tipo de despliegue es como el de cualquier IDS, es decir, sondas de detección que envían eventos a un único servidor, por lo que es totalmente viable una arquitectura distribuida, o incluso aprovechar, sondas existentes que estén analizando tráfico con otras herramientas open source, para integrar un proceso más. He podido comprobar que no incrementa de forma excesiva los recursos necesarios de la máquina por lo que en un tráfico “normal” es una opción interesante.



Entre los puntos positivos, y a destacar:
  • Dispone de una documentación bastante completa. Para lo sencillo que es de configurar (un único fichero con pocas opciones), la documentación existente es muy buena y más que suficiente sobre las virtudes de la herramienta
  • Posibilidad de escuchar en un interfaz o en todos los de la máquina sensor.
  • Impresionante la GUI. De verdad. Lo que más me gusta es la facilidad de filtrado de eventos, así como la interacción que permite con cada columna, dependiendo de qué se trate. Por ejemplo búsqueda de la dirección IP atacante en duckduckgo para búsqueda de la IP en diferentes fuentes de análisis  de reputación como robtex, whois.domaintools, mxtoolbox, etc,... 
  • Plug and play: sólo tiene un paquete como dependencia.
  • Open source 
Como puntos mejorables:
  • La gestión de usuarios me parece uno de los puntos flacos… Está dentro del único fichero, y para cambiar la contraseña hay que ejecutar un .py que te convierta la contraseña a un hash, que habrá que copiar en el fichero.
  • Por defecto, la gestión web viene en HTTP, aunque se puede configurar fácilmente para que sea HTTPS. A mi entender una herramienta de seguridad debería venir en HTTPS por defecto, aunque el certificado sea autofirmado.


Sin duda, una herramienta que merece la pena tener en el kit de elementos de seguridad perimetral

Podéis descargarla directamente de github en: https://github.com/stamparm/maltrail/
Leer más...

09 diciembre 2015

Auditoría y Análisis de Vulnerabilidades en Docker

Supongamos que trabajas en seguridad. Ahora, la empresa para la que trabajas decide ejecutar algunas aplicaciones usando contenedores, la elección es Docker, después de varias semanas o meses de pruebas deciden pasar a producción y alguien, de repente, dice “¿Deberíamos hacer una auditoría de seguridad antes de salir a producción?”, el resto de la película ya te lo sabes, tú y una auditoría de Docker por delante.

Como en cualquier otra auditoría, puedes usar tu arsenal de herramientas y procedimientos para las aplicaciones que funcionan sobre esa infraestructura, analizar permisos de ficheros, logs y demás. Pero  ¿qué pasa con los contenedores, imágenes y dockerfiles o incluso con la seguridad de las herramientas de orquestación y clustering? Este artículo va sobre eso.
 
Algunas consideraciones específicas para esta auditoría:
  1. Comprobar que las imágenes y los paquetes que hay en ellas están actualizados y sin vulnerabilidades.
  2. Automatizar la auditoría, deberíamos ser capaces de automatizar cualquier tarea. Nos ahorrará mucho tiempo y podremos ejecutar dicha auditoría tantas veces como sea necesario, olvida las auditorías manuales a menos que estés aprendiendo.
  3. Links y volúmenes entre contenedores. Usar sistemas de ficheros base en solo-lectura facilitará encontrar problemas fácilmente con el comando “docker diff”.
  4. Cuando más grande sean las imágenes más difícil será la auditoría, reduce las imágenes al máximo.
  5. El kernel del sistema anfitrión es el punto compartido entre todos los contenedores que se ejecutan en el mismo servidor, el kernel siempre actualizado.

Dicho lo anterior, quiero compartir un listado resumen de las herramientas existentes para realizar tareas de auditoría y descubrimiento de vulnerabilidades en Docker. Es posible que se me hayan escapado algunas herramientas, así que si conoces alguna que no esté en este listado te agradecería que nos lo digas en los comentarios.

    • Descripción: Docker Bench for Security es un script que comprueba docenas de buenas prácticas comunes sobre el despliegue de Docker en producción, que ya comentamos aquí en Security By Default en Mayo. Todas las comprobaciones que realiza están basadas en la guía CIS Docker 1.6 Benchmark document.
    • Orientado a: principalmente al servidor Docker y algunos tips básicos para imágenes y contenedores.
    • Lenguaje: Shell script
    • Metodología: Ejecuta el script en el mismo servidor Docker o desde un contenedor. Creará un sencillo informe por pantalla con alertas tipo INFO, WARN o PASS.
    • License: Apache 2.0
    • Nivel Instalación/Usabilidad: Fácil
    • Demo/Presentación: https://youtu.be/8mUm0x1uy7c?t=18m15s
    • Mas datos sobre este tema por parte de Docker Inc: 
      • Project Nautilus: presentado durante la  Docker CON 2015 en Barcelona: https://www.youtube.com/watch?v=fLfFFtOHRZQ& el Project Nautilus es un servicio   de escaneo y detección de vulnerabilidades para repositorios oficiales en Docker Hub. Según palabras de @diogomonica, responsable de seguridad de Docker Inc., “Nautilus ya funciona actualmente para todas las imágenes oficiales de Docker”. Nautilus intenta localizar cualquier trozo de software que sea sospechoso dentro de las imágenes. No depende de bases de datos públicas de vulnerabilidades o de distribuciones Linux como hacen otras herramientas, usa su propia base de datos. Tendremos más información posiblemente en el primer trimestre del 2016 (Gracias Diogo por la información).
    • Mis comentarios: Desde el punto de vista del servidor y demonio de Docker, es la mejor herramienta para seguir las mejores prácticas de configuración y seguridad de Docker. Definitivamente usaría esta herramienta junto con otras que comento, ya que esta solo cubre una parte de la auditoría.
    • Descripción: Está basado en la misma filosofía que su proyecto padre OpenSCAP, principalmente hace un escaneo comprobando bases de datos CVE, y mostrando los resultados en informes de varios formatos, también soporta políticas personalizadas. También proporciona instrucciones específicas y paquetes para RedHat 7 como se puede ver aquí. Nota: SCAP es un estándar norteamericano mantenido por el National Institute of Standards and Technology (NIST). El proyecto OpenSCAP es una colección de herramientas de software libre para ayudar a implementar este estándar.
    • Orientado a: Imágenes y contenedores
    • Lenguaje: Shell script
    • Metodología: ejecuta el script oscap-docker contra una imagen o contenedor y obtendremos un informe bastante útil en html.
    • Licencia: GPL v3
    • Nivel Instalación/Usabilidad: Fácil
    • Demo/Presentatción: N/A 
    • Mis comentarios: Está muy orientado a RedHat/Fedora/CentOS así que si usas contenedores basados en estos SO, es altamente recomendado. Si usas Atomic, recientemente han publicado una nueva característica que permite escanear contenedores usando OpenSCAP, mira este blog para más detalles, el código aquí.
    • Descripción: Clair es un servicio de análisis de vulnerabilidades en contenedores. Funciona mediante una API que analiza cada capa del contenedor buscando vulnerabilidades existentes en las bases de datos de Debian, Ubuntu y Centos. También se puede usar desde la linea de comandos como vemos aquí. Informa de la lista de vulnerabilidades conocidas que afectan a cada contenedor y puede notificar a los usuarios de las mismas. Se usa en https://quay.io/
    • Orientado a: Imágenes y contenedores
    • Lenguaje: Go
    • Metodología: Tanto mediante API o comando, extrae todas las capas de la imagen y notifica de las vulnerabilidades encontradas y almacena la información en una base de datos. También gestiona su propia base de datos que actualiza desde fuentes conocidas como CVE.
    • Licencia: Apache v2
    • Nivel Instalación/Usabilidad: Difícil
    • Demo/Presentación: https://coreos.com/blog/vulnerability-analysis-for-containers/
    • Mis comentarios: Solo he podido ver la demo y leer la documentación, no conseguí hacerlo funcionar en CentOS 7.1. Ampliaré esta información tan pronto como sea posible.
    • Descripción: la gente de BanyanOps son los que publicaron un informe sobre la gran cantidad de imágenes vulnerables que había en el Docker Hub y que fue contestado en detalle por @jpetazzo aquí. Como dicen los autores “es un framework para análisis estático de imágenes de Docker”. Lo que significa analiza más datos además de vulnerabilidades, como se ve en su informe. 
    • Orientado a: Imágenes
    • Lenguaje: Go
    • Metodología: Aunque puede ejecutarse desde un contenedor, se ejecuta desde la linea de comandos y se conecta a un repositorio de Docker que le indiquemos para hacer los análisis. Mira como funciona en detalle aquí.
    • Licencia: Apache 2.0
    • Nivel Instalación/Usabilidad: Medio-Difícil
    • Demo/Presentación: N/A
    • Mis comentarios: Está orientado a registros (docker registries), puede ser útil para registros locales.
  1. Lynis: 
    • Descripción: Lynis es una herramienta de auditoría y hardening válido para Linux, Mac y Unix, adicionalmente incluye un módulo de análisis de Dockerfiles. También muestra algunas estadísticas básicas del servidor Docker y comprueba permisos de ficheros. 
    • Orientado a: Dockerfiles
    • Lenguaje: Shell script
    • Metodología: simplemente ejecuta Lynis con las opciones de docker y la ruta del Dockerfile de turno y Lynis analizará algunos detalles de dicho fichero como paquetes instalados, por ejemplo.
    • Licencia: GPL v3
    • Nivel Instalación/Usabilidad: Fácil
    • Demo/Presentación: N/A
    • Mis comentarios: Podías matar dos pájaros de un tiro analizando el servidor anfitrión y los dockerfiles pero no lo veo muy útil por ahora en lo que a Docker ser refiere ya que los chequeos que ofrece son muy básicos. El autor está trabajando en añadir más funcionalidades.
    • Descripción: En palabras de los autores: Twistlock escanea imágenes de contenedores en registros (docker registries), estaciones de trabajo o en servidores en producción. Detecta y reporta vulnerabilidades a nivel de distribución Linux, framework de aplicaciones e incluso paquetes personalizados de clientes. Además de comprobar vulnerabilidades de bases de datos públicas de software Open Source, disponen de feeds de software comercial. Esta solución también ofrece control granular en cuanto a acciones que pueden realizar usuarios y grupos, autenticación mediante LDAP y Kerberos, dispone de opciones de configuración para controlar comportamientos sospechosos en contenedores, roles y acciones maliciosas que puedan acontecer, lo que ellos llaman Runtime Defense.
    • Orientado a: imágenes, contenedores y paquetes. Hecho para Docker y Kubernetes o Mesos.
    • Lenguaje: Shell script, Javascript y Go.
    • Metodología: Utiliza el NIST para comprobar CVEs así como las comprobaciones del CIS Docker. Hace más que simples test ya que tiene características de control de acceso, defensa a nivel de ejecución, monitorización e integración continua.
    • Licencia: Comercial basado en número de hosts. Disponen de una edición gratuita orientada a desarrolladores con un límite de dos hosts.
    • Nivel Instalación/Usabilidad: No probado aunque he visto en vivo como funciona mediante una demo que me ha hecho el fabricante.
    • Demo/Presentación: https://www.youtube.com/watch?v=SMCYHFDfSzk (solo presentación, demo disponible próximamente)
    • Mis comentarios: He tenido una sesión con el fabricante para ver más detalles de esta solución. Lo cierto es que va más allá de una herramienta de análisis de vulnerabilidades y auditoría, además de esto nos proporciona una forma de gestionar la seguridad de nuestra arquitectura de contenedores (con Docker, Kubernetes o incluso Mesos). Creo que es la herramienta que mejor cubre las necesidades que se pueden tener a nivel empresarial. Tiene un gran margen de mejora, ya que es una herramienta cuya versión es 1.0.2 pero dispone de una amplia lista de características y granularidad en acciones y roles muy necesarias en ciertos casos de uso. Importante destacar, como he comentado antes que no es solamente una herramienta de gestión de vulnerabilidades, sino que va más allá.
    • Descripción: es una herramienta online para generar contenedores personalizados via Dockerfiles (en palabras de Bitnami: es una API declarativa para generar contenedores). Aunque no está orientada a ser una herramienta de seguridad como tal tiene una funcionalidad que merece la pena mencionar ya que detecta y nos avisa por pantalla y correo electrónico cuando un contenedor tiene algún componente no actualizado o vulnerable.
    • Orientado a: Dockerfiles, imágenes y contenedores.
    • Lenguaje: desconocido
    • Metodología: Usa base de datos pública CVE https://cve.mitre.org para buscar CVEs de los componentes que se utilizan.
    • Licencia: SaaS
    • Nivel Instalación/Usabilidad: Fácil 
    • Demo/Presentación: https://www.youtube.com/watch?v=4A24pD-P_N4
    • Mis comentarios: Como herramienta SaaS es muy fácil de utilizar, desde el punto de vista de seguridad, ofrece al usuario una vista clara y útil del estado de cada contenedor. Está limitado a los componentes que ofrecen en la herramienta.
    • Descripción: como casi todas, es una herramienta bastante reciente y en un estado muy inicial, se ha lanzado hace unas semanas, fue presentado en la BlackHat Europe Arsenal. Según el autor: Dockscan es una herramienta de análisis de vulnerabilidades para Docker y contenedores. Reporta problemas de seguridad en la instalación de Docker y configuraciones de contenedores. 
    • Orientado a: principalmente al servidor Docker y algunos consejos básicos para imágenes y contenedores.
    • Lenguaje: Ruby
    • Metodología: usa algunas de las buenas prácticas citadas en el CIS Docker 1.6 Benchmark best practices. Puede funcionar en local y de forma remota mediante la conexión a un servidor Docker.
    • Licencia: GPL v2
    • Nivel Instalación/Usabilidad: Fácil
    • Demo/Presentación: N/A
    • Mis comentarios: Actualmente está muy limitada, aunque parece interesante, no la usaría por ahora, veremos como evoluciona, Docker Bench for Security hace mucho más.
  2. Drydock:  (no confundir con Dry-dock cluster)
    • Descripción: Según el autor: drydock es una herramienta de auditoría de seguridad de Docker escrita en Python. Fue inicialmente inspirada en Docker Bench for Security pero intenta aportar más flexibilidad en las auditorías. Drydock permite la creación y uso de perfiles para reducir falsas alarmas. Genera informes en JSON para poder usarlos fácilmente. Utiliza el cliente docker-py para comunicarse con Docker mediante la API.
    • Orientado a: principalmente al servidor Docker y algunos tips básicos para imágenes y contenedores.
    • Lenguaje: Python
    • Metodología: igual que la herramienta anterior, utiliza las recomendaciones del CIS Docker 1.6 Benchmark best practices para comprobar la configuración del servidor. 
    • Licencia: GPL v2
    • Nivel Instalación/Usabilidad: Fácil 
    • Demo/Presentación: N/A
    • Mis comentarios: Está muy verde todavía, hace algunas cosas más que Dockscan pero no llega a lo que hace Docker Bench for Security. Ya veremos como evoluciona.
    • Descripción: herramienta para auditar y securizar Docker server y contenedores. Es más o menos igual que Drydock o Docker Bench for Security.
    • Orientado a: principalmente al servidor Docker y algunos tips básicos para imágenes y contenedores.
    • Lenguaje: Go
    • Metodología: se ejecuta como contenedor y comprueba el servidor siguiendo la guía CIS Docker 1.6 Benchmark.
    • Licencia: MIT
    • Nivel Instalación/Usabilidad: Fácil 
    • Demo/Presentación: N/A
    • Mis comentarios: Nada diferente a lo que hace Drydock o Docker Bench for Security.
Conclusión:

  • ¿Cual de estas herramientas usaría? Teniendo en cuenta que la mayoría son herramientas con menos de 6 meses de vida, usaría todas para luego ver los resultados que más se acercan a lo que necesito. Pero desde luego hay algunas que no merece la pena usarlas por ahora como indico en los comentarios de algunas de ellas. Dicho esto, desde el punto de vista de características y la orientación empresarial de la aplicación en sí Twistlock sería la que más necesidades cubre en este momento. 
  • Hay mucho margen de mejora y adaptar estas u otras herramientas para que sean realmente útiles a nivel de análisis de seguridad empresarial. No es mal comienzo, al menos para ir testeando lo que tenemos independientemente del estado de nuestros entornos. Habrá que ver que pueden aportar los grandes jugadores sobre este tema y los contenedores (Google, MS, AWS, etc.). 
  • A favor de todos ellos hay que decir que es bastante difícil seguir el ritmo de Docker ya que se publican nuevas versiones con muchos cambios y novedades casi cada semana. Me imagino que es el precio que hay que pagar cuando trabajamos con tecnologías emergentes.
  • En futuros artículos me gustaría añadir más información sobre la seguridad en sistemas de orquestación como Kubernetes o incluso otros despliegues de Docker como AWS ECS.
  • ¿Y que hay de respuesta a incidentes? Es otro punto a cubrir en futuros artículos sobre este tema.
  • Adicionalmente, si quieres conocer algunos detalles en más profundidad sobre buenas prácticas en Docker,  en el curso de Hardening de Securízame puedes encontrar un módulo dedicado a este asunto.  
Toni de la Fuente @ToniBlyx
Leer más...

23 noviembre 2015

Ya está disponible Dragonheart, la tercera edición de Pengowin





Fue hace un par de años cuando Óscar Banchiero se propuso publicar online algo que ya solíamos hacer antiguamente en CDs, discos duros de red o FTPs compartidos: recopilar diferentes herramientas libres de seguridad informática, para sistema operativo Windows, para poder usarlas sin tener que ir saltando de web en web. Así dio lugar el proyecto Pengowin. 

En la misma línea, el propio Banchiero lanzó Pengodroid, consistente en herramientas relacionadas con sistema operativo Android, tanto para securizarlo, hacer auditorías y también para análisis forense. 

En su día ya publicamos desde Security By Default sobre la existencia, tanto de Pengowin como de Pengodroid.

En esta ocasión, nos alegra informar a nuestros lectores que ya está a vuestra disposición la tercera versión de Pengowin, con codename "Dragonheart". Esta vez, el recopilatorio de herramientas imprescindibles en varias ramas de seguridad informática, están bastante actualizadas, contando incluso con NMap 7, aunque echo en falta la versión 2.0.0 de Wireshark, también recientemente publicada.

Además, hay unas 50 herramientas discontinuadas, pero que resultan de utilidad igualmente. También como novedad, se han añadido algunos tutoriales de uso de herramientas, que era algo que se había sugerido al mantenedor del proyecto.

Os dejo el listado de versiones de las herramientas incluídas en Pengowin 3, así como los enlaces para descarga (puesto que a la hora de edición de este post, aún no está la web actualizada con los nuevos enlaces)
   
exiftool-10.04
XnView 2.34
MobaXterm 8.2 (Installer & Portable)
SecureCrt 6.1 Portable (7.3 en la web)
UltraVNC 1.2.08
Putty 0.65
xtreme GPU BruteForce 3.2 & Hash Manager 1.2.3
KeePass 1.29
GPG4Win 2.2.6
LaZagne 1.1
Rainbow Crack 1.6.1 + 64 Bits
WindowsPasswordKracker 3.1
Who´s On My Wifi 3.0.3
Aircrack-ng-1.2RC2
CommViewWifi 7.1
Chanalyzer 5.7
Vistumbler 10.6
Wireless Mon 4.0 1009
Acrylic WiFi Free 3.0.5.770
RDG MALWARE DETECTOR BETA 7
TDSKILLER (Sep 2015)
FOCA PRO Versión final
AdwCleaner v5.0.1.5
aswMBR 1.0.1.2290
AVG FREE 2015
CCLEANER 5.11
FortiClient Antivirus 5.4
HitmanPro 3.7.10.250 + 64 Bits
mbam-setup-2.2.0.1024
mbar-1.0.9.3.1001
Snort 2.9.7.6
Spybot 2.4.40
Trojan Remover 6.9.3.2941
SysInspector versión 1.2.049.0
rkill 2.8.2.0
RDG Packer Detector v0.7.5 2015
Winsyslog 13.1
Syslog Watcher 4.7.6
Fine Connection Monitor 2015.8
Prtg
Advance Serial Port Monitor 4.4.5
Advanced Serial Data Logger 4.1.11 (RS232)
NMAP 6.49 Beta5 + Vulscan + NMAP 7!!!!!
Essential NetTools 4.4
Technitium MAC Address Changer 6.0.6
LanState 7.8
SoftPerfect Network Scanner 6.0.8
Advanced Ip Scanner 2.4.2601
Hyena 11.5.4E
GoogleHacksSetup1.6.0 (Prox 2.0)
Maltego = MaltegoCESetup.v3.6.0.6640
Network Miner 1.6.1
Wireshark 1.12.8 & Portable + 64 Bits
BurpSuite 1.6.30
Zap Proxy 2.4.2
HTTrack Website Copier 3.48-21 + 64 Bits
SpiderFoot 2.6.0
Ostinato 0.7.1
Fiddler Net 2 2.6.1.4
Packet Sender Version & Portable 2015-05-27
Firefox Autocomplete Spy v1.0
Password Sniffer Console v2.0
USBPCAP Sniffer1.0.0.7
Packet Crafter
Windump 3.9.5
WinPCap 4.1.3
Edraw 7.9 (Excelente para armar dibujos de topologías, entre otros)
Gimp 2.8.14 (Editor de imagenes)
Linux Live Usb Creator 2.9.4
CCleaner 5.11
FileZilla_3.14.1
TEXT Crawler 3.0.3 (Buscador de palabras en archivos y carpetas)
Fileseek 4.5
Universal USB Installer 1.9.6.2
WinSetupFromUSB 1.6 Beta 2
rufus-2.5 & Portable
Daemon Tools Lite v10.1.0
IsoBuster 3.6
Notepad ++ 6.8.6
Unetbootin 6.13
UltraIso  9.6.5.3237
Joomla 3.4.5
Xampp 5.6.14.0
VirtualBox 5.0.8
VMware-player 6.0.7
WebCruiserPro 3.5.3 Free
GFI LanGuard 2015
ParameterFuzz 2.0
Nessus 6.5.2 XP-2003-7(32Bits) And W2008 (64Bits)
Acunnetix Vulnerability Scanner & report Viewer
EVIL FOCA 0.1.4.0
OSForensics 3.2.1003
Recuva 1.52.1086
KillDisk Windows Suite v10
Formateo SD 9.1
Eraser 6.2.0.2970
FTK Imager 3.4.0.5 & Imager Lite
Process Hacker 2.36 & Portable
MailViewer
System Ninja 3.1.11
Autopsy 3.1.3 32 bits
Wipe 2015.11
UltraCompare v15.10
HardWipe 5.0.9 Portable 64 Bits
Volatility 2.4
WINHEX 18.5
DumpIt
Redline 1.14
WinMerge 2.14.0
Mount Image Pro v6.1.3.1601
Sysinternals 2015 (October)
Nirsoft Package 1.19.57
Proxpn 4.2.2
OWASP Mantra 0.92 (web en mantenimiento)
OPENVPN 2.3.1001 + 64 Bits
Iron Portable 45.0.2400.0
Spotflux Proxy
TOR 5.0.3
ProxyCap 5.28

Los enlaces para descargar Pengowin 3, desde Mega:


La contraseña para descomprimir los ficheros es "pengowin2015" (sin comillas) 

Si tenéis cualquier duda o problema con los ficheros, así como cualquier sugerencia o invitar a unas cervezas a Óscar Banchiero por pegarse el trabajazo de hacer este recopilatorio, podéis hacerlo en banchiero@pengowin.com.ar

Ya sabéis, si os resistís a montar Kali para vuestras auditorías y seguís prefiriendo usar el sistema operativo de Redmond, Pengowin es un muy buen punto de entrada para descargar muchas y variadas herramientas de seguridad.

Leer más...