seguridad

  • Han transcurrido más de diez días desde que puse en funcionamiento mi sistema de detección y bloqueo de intrusos, con el cual he podido registrar un elevado número de ataques por día provenientes desde todo tipo de ubicaciones.

  • El protocolo HTTPS es una versión segura del protocolo HTTP que implementa un canal de comunicación basado en SSL (Secure Socket Layer) entre el navegador cliente y el servidor HTTP el cual provee autenticidad (mediante certificados) y privacidad (mediante encriptación). El protocolo HTTP se basa en TCP/IP, el cual es un canal de comunicación no seguro donde la información realiza un número de saltos entre diferentes routers que se encargan de hacer llegar la información desde el cliente al servidor o destino. En cada uno de estos saltos, la información es transmitida en la red local del router, pudiendo ser capturada con fines maliciosos.

    Salvo que se utilice IPsec es imposible evitar que se capture nuestra información, pero utilizando HTTPS es posible codificarla para que una vez capturada (mediante sniffing) no pueda interpretarse (y así poder enviar con tranquilidad números de cuenta, datos personales, etc.).


  • Recientemente tuve que reparar un Windows XP infectado con un bonito virus polimórfico (W32.Sality). Este virus infecta los archivos ejecutables en discos locales, removibles y shares de smb. Además crea una botnet P2P y, lo mejor de todo, deshabilita todo software de seguridad instalado (léase antivirus). Esto último que parece tan peligroso en realidad es una debilidad, ya que lo pone en evidencia y permite detectar fácilmente que el sistema está infectado (un virus indetectable es mucho más peligroso ya que puede controlar un sistema durante mucho tiempo).

  • Hoy recibí por correo 8 anuncios de seguridad de Moodle, incluyendo 3 vulnerabilidades graves, por ende llegó el momento de planificar una actualización urgente.

    Este artículo describe paso a paso cómo actualizar, casi totalmente desde línea de comandos y siguiendo la documentación oficial, un sitio Moodle instalado mediante una copia con git.

  • En este artículo voy a describir técnicas y herramientas para llevar a cabo un análisis forense de un archivo (o archivos) de log de un servidor Web Apache o Nginx.

  • Este artículo explica cómo analizar las suites de cifrado y protocolos SSL/TLS soportados por un servidor Web, desde línea de comandos, utilizando la herramienta "cipherscan" desarrollada y mantenida por la Fundación Mozilla.

    Existen muchas herramientas online para diagnosticar y verificar el nivel de seguridad ofrecido en la implementación de SSL/TLS de un servidor Web, por ejemplo el Test SSL de Qualys. Sin embargo, es importante disponer de una herramienta de línea de comandos para llevar a cabo la misma tarea, especialmente si necesitamos verificar el nivel de seguridad de SSL/TLS de servidores Web no accesibles desde Internet. A tal fin, dí con la herramienta cipherscan (creada por la Fundación Mozilla), la cual sirve para listar todas las suites de cifrado soportadas por un servidor HTTPS y su ordenamiento, al igual que analizar y verificar la información de certificados, opciones de TLS, OCSP Stapling y más.

  • En este artículo voy a demostrar de qué forma es posible recibir alertas de seguridad de CentOS, para mantener a nuestros servidores actualizados y libres de vulnerabilidades. Para ello sólo es necesario suscribirse a la lista de correo electrónico "CentOS-announce".

  • Hoy comencé la mañana con 6 anuncios de seguridad de Moodle en mi casilla de correo. Entre los anuncios se reportan dos vulnerabilidades graves como lo son CSRF (Cross-Site Request Forgery) y Reflected XSS (Reflected Cross Site Scripting).

    En este artículo voy a explicar cómo suscribirse a las alertas de seguridad de Moodle, para estar al tanto de las vulnerabilidades descubiertas y mantener nuestra instalación actualizada.

  • En este artículo quise demostrar algunos de los ataques que detecta y reporta logwatch a diario, de acuerdo a la información que recoge de los logs de accesos y errores del servidor Nginx, junto con un uso insospechado que recientemente encontré al mismo.

    Logwatch es una herramienta indispensable en todos mis servidores. Es la que me permite tener una visión general de la actividad de cada servidor a lo largo del día. Y es la que, junto con AIDE, me permite detectar cualquier actividad sospechosa en los procesos y el filesystem.

    Este es otro artículo para generar conciencia respecto a la seguridad de la información, y los peligros que supone poner un servicio a disposición de Internet (en este caso, un sitio Web). Es común que muchos administradores novatos o negligentes se inclinen hacia razonamientos del tipo "a mi no me va a pasar", "quién va a querer atacar mi servidor", u otros similares. Este tipo de argumentos son desacertados porque asumen intencionalidad. Es decir asumen que van a ser víctimas de ataques cuando un individuo quiera provocar específicamente un daño a la reputación de nuestra marca/empresa/cliente/servidor. Tal aseveración es falsa y la realidad es que, en la mayoría de los casos, los atacantes no buscan un daño o prejuicio, sino que simplemente buscan agregar un nodo más a una botnet, sin dejar el más mínimo rastro o daño que los pueda poner en evidencia. Y más aún, la mayoría de los ataques no son dirigidos específicamente a un sitio o servidor, sino que son "al voleo" y con herramientas automáticas. Y en muchos casos llevados a cabo por robots. A quién atacan luego con la botnet, vaya uno a saber. Lo importante es que sea lo más grande posible (en cantidad de nodos o bots).

    En definitiva, cuando uno pone a disposición un servicio accesible públicamente, tarde o temprano será atacado. Pues los robots barren constantemente las redes IPv4 e IPv6 en búsqueda de nuevos hosts y puertos abiertos.

  • Este artículo muestra cómo correr un script o comando en un cliente de Bacula, justo antes de que comience el trabajo de backup para el mismo. Esto es muy necesario para el caso de los servidores de bases de datos, donde se requiere realizar un volcado (dump) de las bases de datos a disco (por ejemplo mysqldump o pg_dump) para que sean parte de la copia de seguridad.

  • Hace un tiempo expliqué cómo funcionan los bits SETUID y SETGID. Sin embargo, al final de dicho artículo mencioné los riesgos involucrados al utilizar estos bits de modo, por ello es recomendable evitar o minimizar su uso. Una buena práctica al momento de realizar el hardening de un servidor es listar todos los archivos que tengan SETUID o SETGID, para evitar configuraciones inseguras.

    Este artículo explica cómo utilizar find para buscar y encontrar todos los archivos y directorios que tengan SETUID y/o SETGID. Y de yapa cómo encontrar archivos y directorios con el STICKY bit habilitado (protección contra el borrado).

  • Cheatsheet, chuleta, machete, ayuda memoria, etc. son algunas de las palabras que se utilizan para describir a esas mágicas hojas de papel que contienen los extractos más frecuentemente utilizados sobre lenguajes de programación, sistemas operativos, comandos, herramientas, y todo tipo de información útil que necesitamos tener a mano.

  • Auditando código PHP me topé con una implementación de seguridad de contraseñas que me hizo pasar por los cinco estados emocionales del Modelo de Kübler-Ross: 1- Negación: "Esto no puede estar hecho así"; 2- Ira: "¡Por qué carajo hicieron ésto!"; 3- Negociación: "Por lo menos voy a tratar de que lo arreglen"; 4- Depresión: "¿Por qué me toca auditar este software horrible? ¡No quiero seguir revisando este código!"; 5- Aceptación: "No hay nada que hacer, no puedo luchar contra la ineptitud de los desarrolladores de software".

    Como muchos sabrán, las contraseñas son uno de los eslabones más débiles en la cadena de protección de acceso a un sistema informático. Por ello, hay que implementar políticas y mecanismos seguros para generarlas, almacenarlas, modificarlas, y transmitirlas por al red. En este artículo voy a puntualizar el tema del almacenamiento seguro de contraseñas.

  • Este artículo explica cómo instalar logwatch en Debian y habilitar el resumen de logs de Nginx en la salida del mismo.

    Logwatch es una poderosa y versátil herramienta de análisis forense de logs de servicios (Web, correo, sistema, etc.) Está diseñado para elaborar un reporte unificado de toda la actividad en el servidor para un período determinado (típicamente el último día), el cual puede ser enviado por mail. De esta forma podemos recibir a diario, en nuestra casilla de correo electrónico, un resumen de la actividad sospechosa/anormal del día anterior.

  • Recientemente en uno de los servidores Web bajo mi ala estuve recibiendo múltiples intentos de ataque desde un servidor Chino. En general les resto importancia ya que no tienen éxito (son robots instalados en servidores de terceros comprometidos que intentan vectores de ataques muy comunes) pero en este caso me hartó porque se venía repitiendo durante varios días.

  • Este artículo explica cómo borrar reglas de iptables de forma rápida y sencilla.

  • Aloe VeraMe encontré con la necesidad de descifrar un password hasheado con md5. Para ello estuve a punto de utilizar el viejo y querido John the Ripper, pero un segundo antes se me ocurrió buscar alguna herramienta online que haga el trabajo por mí. Motivado por la vagancia, pero también para hacerlo más rápidamente (aprovechando la nube o rainbow tables), encontré buscando en Google este muy buen artículo: How to crack MD5 passwords online, el cual contiene una lista de servicios para reconstruir texto digerido mediante md5.
    La mayoría de estos sitios utilizan rainbow tables (grandes tablas de hashes precomputados) con el objetivo de intercambiar tiempo de ejecución por memoria. De esta forma el resultado logrado es muy rápido (si es exitoso). Aunque también algunos utilizan diccionarios.

  • Escribí este artículo hace más de dos años pero nunca lo había publicado, hasta el día de hoy. Nunca estuve seguro si fuese correcto publicarlo, pero como pasó mucho tiempo y el desafío ya no está disponible, decidí hacerlo.

    Uno de los centros de desarrollo de Amazon, particularmente el de Cape Town, posee una serie de desafíos (Take the Amazon Challenge) para aquellos talentos que aspiren a una posición en la empresa.

    Por curiosidad decidí echar un vistazo y, entre todos los desafíos disponibles, me llamó la atención el "Cipher challenge" (debido a mi pasado desempeñándome como consultor en Seguridad Informática):

    Amazon Cipher Challenge

    En uno de mis ratos libres me dispuse a resolverlo. He aquí la experiencia.

  • Un rootkit es una herramienta que permite un acceso privilegiado permanente a un sistema y mantiene su presencia oculta. El término "rootkit" tiene connotaciones negativas ya que se lo asocia al malware. Se esconde a sí mismo y a otros programas, procesos, archivos, directorios y puertos que permiten al intruso mantener el acceso remoto para comandar acciones o extraer información sensible.

    Típicamente, un atacante instala un rootkit en un sistema después de haber obtenido un acceso al nivel raíz, ya sea por haberse aprovechado de una vulnerabilidad conocida o por haber obtenido una contraseña (mediante cracking o ingeniería social). Una vez que el rootkit ha sido instalado, permite que el atacante disfrace la siguiente intrusión y mantenga el acceso privilegiado a la computadora por medio de rodeos a los mecanismos normales de autenticación y autorización. Pese a que los rootktis pueden servir con muchos fines, han ganado notoriedad fundamentalmente como malware, escondiendo programas que se apropian de los recursos de las computadoras o que roban contraseñas sin el conocimiento de los administradores y de los usuarios de los sistemas afectados.

    Existen muchas herramientas para buscar y detectar rootkits. Este artículo muestra como instalar y utilizar la herramienta Rootkit Hunter, o rkhunter, para detectar intrusiones a un sistema

  • Certbot es un cliente ACME automático y fácil de utilizar, que obtiene certificados SSL/TLS gratis para tu sitio Web, provistos por Let's Encrypt. Certbot fue desarrollado por la EFF (Electronic Frontier Foundation) como "cliente oficial" de la autoridad certificante de Let's Encrypt, pero también funciona con cualquier CA que soporte el protocolo ACME (Automated Certificate Management Environment).

    Certbot (anteriormente el cliente Let's Encrypt letsencrypt-auto) es el cliente recomendado por Let's Encrypt para emitir sus certificados, y opcionalmente auto-configurar HTTPS en tu servidor Web.

    Este artículo explica cómo emitir un certificado SSL/TLS gratuito de Let's Encrypt utilizando el cliente certbot utilizando el plugin webroot en Debian 7 (wheezy).