Aislando las aplicaciones web

En este post me gustaría explicar la solución que he encontrado a uno de los problemas que me plantea el hecho de utilizar de Apache como servidor web por defecto, ya es que Apache no permite la ejecución de distintos VirtualHost con diferentes usuarios, lo cual puede suponer un grave problema de seguridad. Imaginemos que tenemos la siguiente situación en el mismo servidor:

  • Los Wookies tienen desplegada una aplicación cuyo funcionamiento consiste en incluir el contenido de un fichero del sistema especificado en un campo GET y mostrarlo al usuario. Por la sencillez de la aplicación y la no-criticidad de la misma, no se realiza ningún tipo de comprobación.
  • En el mismo servidor, Darth Vader tiene desplegada una aplicación que consulta de una base de datos, planos de infraestructuras críticas, como por ejemplo, el de la Estrella de la Muerte. Para ocultar el fallo de diseño de la misma, la aplicación se audita varias veces por un organismo externo sin encontrar ni un fallo de seguridad.
  • La fuerza Rebelde aprovecha el LFI de la web de los Wookies, y lee ficheros de sistema, entre los que se encuentra la configuración de la página web de Darth Vader.
  • Utilizando las credenciales obtenidas del fichero de configuración, son capaces de conectarse a la base de datos y obtener los planos de la Estrella de la Muerte, provocando la explosión que pudimos ver en Star Wars I (N.d.A.: no, no me he equivocado) – Una nueva esperanza.

[Read more…]

Descubriendo vulnerabilidades tradicionales en sistemas ICS

Recordarán que en un post anterior, titulado La odisea de (intentar) hacer las cosas bien…, les daba los detalles del tortuoso camino que he tenido que atravesar desde el descubrimiento de una vulnerabilidad hasta su publicación. Dado que la vulnerabilidad ya es pública (véase Advisory (ICSA-14-203-01), Omron NS Series HMI Vulnerabilities), es el momento de hablarles de ella. Aunque lo cierto es que la publicación de esta entrada, tras unos 10 meses de espera, estaba ya previamente planificada.... Leer Más

La odisea de (intentar) hacer las cosas bien…

Hace unos días, Antonio Sanz comentaba en su post “He descubierto una vulnerabilidad: ¿Y ahora qué?” las distintas opciones que existen cuando se encuentra una vulnerabilidad de seguridad.... Leer Más

ICS-CERT: vulnerabilidades de sistemas de control industrial

Hace unos días, el ICS-CERT publicó el análisis de vulnerabilidades de sistemas de control industrial (ICS) durante el año 2013. En dicho análisis, podemos comprobar como la vulnerabilidad que aparece con mayor frecuencia tiene que ver con las medidas de autenticación (33%), seguida por la denegación de servicio (14%). Es decir, si los administradores de estos sistemas desconectasen (o no conectasen directamente) estos sistemas de Internet, y forzasen una política de contraseñas segura, se acabaría con casi el 50% de las vulnerabilidades reportadas.... Leer Más

Gentoo Hardened

En este post voy a hablar sobre una distribución, que por alguna misteriosa razón que no llego a entender, no suele ser utilizada. Hablo por supuesto, de Gentoo en su modalidad “Hardened”.

(N.d.A: Los siguientes párrafos evangelizan hacen una introducción a Gentoo, por lo que si el lector ya la conoce, puede saltar directamente a Gentoo Hardened)

Gentoo es una distribución rolling-release (lo que quiere decir que la distribución se actualiza continuamente con nuevas funcionalidades, además de para solucionar bugs). No obstante, su mayor característica es que los “paquetes” han de ser compilados por el usuario con una herramienta llamada “emerge”, que forma parte del sistema Portage.

Seguramente, el lector debe estar pensando que compilarse los propios paquetes es una pérdida de tiempo y que mejor gastar una Ubuntu / Debian / CentOS que ya te lo dan todo hecho. Pero, estamos en el año 2014 y si bien a comienzos del año 2000 la instalación de un sistema de escritorio podía durar una semana, con una máquina moderna podemos tener un sistema funcional en una noche, siempre y cuando sepamos lo que estamos haciendo. Y fíjense que estoy hablando de un sistema de escritorio, donde suele haber mayor cantidad software (y de mayor tamaño), que en un servidor.

[Read more…]

Crónica Rooted CON – Día 2

El segundo día de este congreso comenzó de la mano de Jose Luis Verdeguer (@pepeluxx) y Victor Seva (@linuxmaniac), que en su charla “Secure Communications System” concienciaron a los presentes de que en un sistema de comunicación, aunque las transmisiones se cifren de extremo a extremo siempre pueden haber mecanismos que permitan realizar técnicas de tipo “man-in-the-middle”, por lo que no es recomendable confiar en infraestructuras de terceros si la privacidad es crucial. Como colofón, presentaron un sistema de comunicaciones libre, basado en VOIP, en el que prima la seguridad, y que estará disponible para su descarga en breve.... Leer Más

Metadatos: el algodón no engaña

A raíz de todo el revuelo que hay estos días en torno a los metadatos, he estado revisando las distintas herramientas de borrado de metadatos para ficheros PDF que existen. En principio, las herramientas que analicé funcionan en sistemas GNU/Linux, aunque eso no implica que algunas no puedan funcionar en otros sistemas.

Partí de un PDF que generé yo mismo, y que tal y como se puede ver en la siguiente imagen contiene metadatos:

Metadatos

[Read more…]

Bastionado de servidores ssh

Recientemente adquirí un servidor dedicado que utilizo para, entre otras cosas, compartir ficheros entre amigos. En principio, la compartición de ficheros se iba a hacer mediante HTTPS, por lo que el servidor SSH no tenía ninguna configuración fuera de lo normal. Bastó con algunos cambios de la configuración por defecto para tener algo un poco más robusto:

Port X
Protocol 2
ServerKeyBits 4096
LoginGraceTime 30s
PermitRootLogin no
MaxAuthTries 3
MaxSessions 2
PubkeyAuthentication yes
HostbasedAuthentication no
PasswordAuthentication no
PermitEmptyPasswords no
ChallengeResponseAuthentication no
UsePAM yes
AllowUsers usuario

Sé que me he dejado varias cosas importantes, como toda la gama de los forwardings, y que cambiando el puerto en el que escucha el demonio SSH no se soluciona nada (seguridad por oscuridad)… excepto todos los intentos realizados por bots, que creedme, son bastantes.

[Read more…]

Conferencias Navaja Negra – Días 2 y 3

Continuamos con el resumen de la 3ª edición de Navaja Negra, al que asistimos José Vila (@jovimon) y un servidor los pasados días 3-5 de octubre.

En este segundo día, la primera charla fue a cargo de Marc Rivero (@Seifreed), en la que habló sobre la evolución del fraude en Internet. En ella, Marc comenzó haciendo un breve resumen sobre las amenazas más sonadas: phishing, troyanos, el virus de la Policía… así como de los kits disponibles en el mercado negro para facilitar la creación de los mismos.

Respecto a este tipo de amenazas, Marc también hizo hincapié acerca de las herramientas disponibles en ambos bandos ya sea para verificar que el malware es indetectable o bien para poder neutralizarlo. También se habló sobre las técnicas Man-in-the-Browser, en las que el atacante actúa de árbitro entre el cliente y el servidor, obteniendo en este caso las credenciales de acceso a la cuenta corriente de la víctima, para luego realizar pequeñas transferencias que puedan pasar desapercibidas.

Otros temas que se trataron en la charla fueron los de los muleros y el uso de servidores a prueba de balas, o servidores comprometidos, para alojar el malware y dificultar la identificación de los responsables.

[Read more…]

Review: Social Engineering: the art of human hacking

Ahora que viene el verano, no hay nada como tumbarse al aire libre mientras se lee un buen libro. Y si el libro ayuda a mejorar nuestras habilidades, mejor que mejor. Por este motivo, me gustaría recomendaros “Social Engineering: The Art of Human Hacking”, un libro que si bien ya tiene casi 3 años, no ha perdido un ápice de su significado, ya que las personas (por suerte), no evolucionamos tan rápido como las tecnologías de la información.

Su autor, Christopher Hadnagy, es un reconocido experto en ingeniería social y seguridad física, ha estudiado acerca de las “microexpresiones” (¿a alguien le suena la serie de televisión Lie to me?) y es el desarrollador principal de social-engineer.

Tras leer el libro, he descubierto paralelismos entre el “pentest a humanos” y el “pentest a sistemas”: en ambos existe una fase de recopilación de información, en la que el auditor utiliza tanto información digital como física, incluyendo la interacción con el objetivo, así como en sus desperdicios. Las siguientes fases de un pentest adicional, se podrían englobar en lo que denomina elicitación: consiste en averiguar, con la información de que se dispone, como se comporta el objetivo, de manera que el pentester sea capaz de conducir a la persona hacia un lugar u otro.

[Read more…]