Llegamos a ustedes gracias a:



Reportajes y análisis

5 herramientas de seguridad de código abierto

Demasiado buenas para ser ignoradas

[21/03/2017] El código abierto es algo maravilloso. Una porción significativa de la industria de TI actual y la tecnología personal depende del software de código abierto. Sin embargo, aunque el software de código abierto es ampliamente utilizado en networking, sistemas operativos y transición virtual, las plataformas de seguridad de las empresas tienden a estar atadas al software propietario o a algún proveedor. Afortunadamente, eso está cambiando.

Si no ha estado buscando usar código abierto para ayudar a lidiar con sus necesidades de seguridad, es una pena -se está perdiendo de un número creciente de herramientas disponibles gratuitamente para proteger sus redes, hosts y datos. La mejor parte es que muchas de estas herramientas vienen de proyectos activos respaldados por fuentes muy conocidas y confiables, como lo son las compañías líderes en seguridad y los principales operadores de nube. Y muchos han sido probados en los ambientes más grandes y desafiantes que pueda imaginar.

El código abierto siempre ha sido una fuente rica de herramientas para los profesionales de la seguridad -Metasploit, el marco de evaluación de penetración de código abierto, es quizás la más conocida-, pero la seguridad de la información no se limita al reino de los investigadores y analistas. Las cinco herramientas de código abierto de seguridad que consultamos más abajo tampoco están limitadas a estos ámbitos. Los administradores de TI y los desarrolladores de software tienen un rol clave, y con estas cinco herramientas, ellos pueden hacer la diferencia.

Commit Watcher: Busque secretos en los repositorios de códigos.

Los secretos no deben estar en los repositorios de código abierto, pero eso no detiene a los desarrolladores distraídos de almacenarlos ahí. Todos hemos leído los reportes de gente que accidentalmente expone claves de Amazon Web Services, contraseñas de código duro, o tokens de APIs por cargarlos a GitHub u otros repositorios de códigos.

Para combatir esto, SourceClear desarrolló Commit Watcher, una herramienta de código abierto que busca compromisos potencialmente riesgosos en los repositorios públicos y privados de Git. Los desarrolladores y administradores pueden utilizar Commit Watcher para monitorear sus propios proyectos en busca de revelaciones accidentales de credenciales y proyectos públicos que utilizan regularmente para descubrir si es que existen problemas en esos proyectos. Por ejemplo, cuando un proyecto público es actualizado con un compromiso como "repara ataque XSS, Commit Watcher le notificará al desarrollador que trabaja ésta para que tome una versión más nueva de esa dependencia.

Commit Watcher sondea los proyectos periódicamente para encontrar nuevos compromisos, y busca elementos que coincidan frente a cualquier palabra clave o frase definida en las reglas del proyecto. Las reglas incluyen expresiones regulares para los nombres de archivos, patrones de código, comentarios y nombres de autor. Commit Watcher viene con docenas de reglas previamente configuradas que buscan credenciales de AWS, credenciales Salesforce, claves SSH, tokens de API y archivos de volcado de las bases de datos.

Jak: Codifique sus secretos en Git

El mantener secretos fuera del código es algo básico para todo desarrollador. Con el fin de lograr esto, debería mantenerlos en un archivo de configuración, después debería añadir el archivo de configuración a la lista .gitignore para evitar que sea comprometido el repositorio de código. Las claves para conectar los ítems como sistemas de pagos, emailers y máquinas virtuales, que tienen que ser colocadas a mano directamente en los servidores de la aplicación, deben ser administradas completamente aparte de su código fuente. Esto presenta desafíos cuando aquellas claves tiene que ser compartidas.

Es un contexto común: Un miembro del equipo descarga el código fuente del repositorio de códigos y recibe las claves a través de un método fuera de banda, que podría ser tan rápido y suelto como un correo electrónico de texto sencillo, un mensaje de chat, un USB o nota adhesiva. ¿Y si existiera una manera de mantener estos secretos, junto con el código fuente, en el repositorio para que sean fáciles de compartir pero que estén codificados para que no sean expuestos?

Jak, el proyecto de Python, afronta este problema permitiéndole a los desarrolladores comprometer versiones codificadas de archivos importantes dentro de Git. En lugar de .gitignore, los desarrolladores hacen una lista de archivos importantes en jakfile, y cuando es tiempo de comprometerlos, Jak se asegura que solo las versiones cifradas de los archivos terminen en el repositorio. Jak se encarga de cifrar y descifrar el archivo cuando sea necesario, y genera y actualiza claves de cifrado automáticamente. Todo es administrado en la línea de comando, de esa manera los desarrolladores no tienen que cambiar ventanas cuando es momento de codificar un archivo antes de comprometer o descifrar un archivo después de descargarlo.

Podría ser muy temprano para que Jak sea utilizada en producción, pero es una herramienta con la que los desarrolladores deberían familiarizarse. El hecho de que la compañía nueva Dispel usa la herramienta internamente, y es el que supervisa el proyecto, podría ayudar a aliviar las preocupaciones respecto a la longevidad potencial de la herramienta.

Yara: Use la búsqueda por patrones para encontrar problemas

A los investigadores de malware les gusta usar Yara, el proyecto de código abierto de Víctor Manuel Álvarez, trabajador de VirusTotal, para identificar y clasificar muestras de archivos maliciosos. Sin embargo, la "Navaja Suiza de la búsqueda por patrones puede hacer mucho más que una clasificación directa de malware. También puede ser útil como parte de investigaciones forenses y de respuesta. Usted crea reglas -compuestas de hilos de texto, valores hexadecimales, o expresiones regulares-, y Yara pasa por los directorios y archivos sospechosos buscando cualquier concordancia. Aunque escanear archivos es el uso más común, Yara también puede utilizar las reglas para examinar procesos en operación.

El año pasado, mediante el análisis de archivos con Yara, los investigadores de Kaspersky Lab y AlienVault pudieron ligar a los atacantes que irrumpieron en Sony con otros ataques en Asia.

Una técnica de ataque común es reemplazar los sistemas de archivo con impostores para establecer una puerta trasera hacia la máquina. Una manera de vigilar si es que los sistemas de archivo están intactos o no, es buscando los hashes MD5 y SHA-1. Otra es instalar reglas Yara para múltiples hilos o valores en los sistemas de archivo y escanear esos archivos regularmente. Si el escaneo no logra encontrar equivalentes, puede saber que los archivos han sido modificados -momento de investigar. Si un atacante ha estado cargando copias de núcleo de comando a lugares desconocidos, Yara puede buscar esas copias.

Además de reglas previamente configuradas y las reglas que crea, Yara puede hacer uso de los archivos de firma de virus de la herramienta de antivirus de código abierto, ClamAV, así como de los conjuntos de reglas disponibles del repositorio YaraRules, mantenido por la comunidad. Por ejemplo, el repositorio tiene reglas previamente definidas para detectar empacadores conocidos o indicar procesos maliciosos. También es posible tocar la API privada de Virus Total para establecer detonantes cuando un archivo escaneado en el ambiente se iguala con un archivo que ha sido cargado a la base de datos de malware de Virus Total. Yara no tiene que ser operada desde la interfaz de línea de comando; tiene una biblioteca Python para integrarla en los scripts de Phyton.

Capaz de detectar cambios no deseados en los archivos o detectar patrones indiscretos (números de Seguro Social, credenciales administrativas, entre otros) en lugares no deseados (como adjuntos de correos electrónicos salientes), Yara es una herramienta poderosa, que cuenta con lo que parece ser un número infinito de usos. Existen límites para la detección basada en firma, así que sería una mala idea depender exclusivamente de Yara para encontrar archivos maliciosos. Pero considerando su flexibilidad, perderse de esta herramienta tampoco sería buena idea.

ProcFilter: Use la búsqueda por patrones para detener los problemas

Yara es muy útil para los investigadores forenses y para los encargados de responder a los incidentes que desean analizar archivos después de una infección. Sin embargo, impulsar a Yara para que defienda activamente en contra de amenazas conocidas puede ser un desafío. ProcFilter, un proyecto de código abierto de GoDaddy, afronta este desafío para los ambientes de Windows. ProcFilter le permite aplicar reglas de Yara en procesos que se encuentran en operación, así como bloquear o ingresar ejecutables (y archivos asociados a la cuarentena) al sistema en base a equiparaciones.

ProcFilter opera como un servicio Windows y se integra con Event Tracing de Microsoft para Windows (ETW) API, para que pueda conectar sus actividades directamente dentro de Windows Event Log. La integración también significa que ProcFilter puede crear reglas con bloque, log, o valores de cuarentena y tomar las acciones apropiadas cuando existe una igualdad. ProcFilter puede ser configurada para escanear archivos y memorias siempre que los procesos sean creados o terminados, o siempre que haya imágenes ejecutables que sean cargadas.

ProcFilter no está diseñada para reemplazar su solución antimalware, sino para ayudarle a concentrarse en una amenaza específica conocida -como un ataque de phishing que ha impactado en una organización semejante. Si el equipo en dicha compañía afectada comparte la firma de Yara para el ataque con el fin de ayudar a que otros no se vean afectados, puede utilizar ProcFilter para encontrar paralelos en los mensajes de correo electrónico entrantes y bloquear la llegada de esos mensajes. O si quiere cuidarse de archivos de Word, Excel, PowerPoint y Adobe con trampas, ProcFilter puede buscar e ingresar al sistema todos los subprocesos engendrados por esas aplicaciones.

OSquery: Consulte al punto final sobre el estado del sistema

Imagine poder localizar procesos maliciosos, plugins deshonestos o vulnerabilidades de software en sus puntos finales de Windows, MacOS y Linux simplemente a través de la escritura de una consulta SQL. Esa es la idea detrás de OSquery, una herramienta de código abierto de los ingenieros de Facebook que recolecta información del sistema operativo como los procesos en operación, conexiones de red abierta, plugins de navegador, eventos de hardware y hashes de archivo dentro de una base de datos relacional. Si puede escribir una consulta SQL, eso es todo lo que necesita para conseguir respuestas a las preguntas de seguridad -sin requerir un código complejo.

Por ejemplo, la siguiente consulta encontraría todos los procesos que se encuentran escuchando en los puertos de la red:

SELECT DISTINCT process.name, listening.port, listening.address, process.pid FROM processes AS process JOIN listening_ports AS listening ON process.pid = listening.pid;

Esta consulta encontraría anomalías en la caché de Address Resolution Protocol (ARP), el cual contiene información sobre las direcciones IP y sus direcciones físicas resueltas de Ethernet:

SELECT address, mac, COUNT (mac)AS mac_count FROM arp_cache GROUP BY mac HAVING COUNT(mac)>1;

Eso es mucho más simple que escribir código en Python. OSquery afronta un problema importante de manera directa y elegante (ganando nuestro premio de Tecnología del Año). Los componentes incluyen a OSquery, una coraza interactiva que puede ser utilizada con PowerShell, y OSquery, un procesador que desempeña un monitoreo de bajo nivel de hosts y le permite programar consultas.

Existen muchas razones por las cuales los administradores de TI podrían no estar trabajando con herramientas de seguridad de código abierto, incluyendo preocupaciones respecto a la madurez y al respaldo. La duda respecto a la confianza es más crítica. Puede que las empresas desconfíen en depender de productos de desarrolladores que no conocen para proteger las joyas de sus coronas.

Los proyectos de código abierto de seguridad en esta lista están respaldados por nombres de confianza, y definitivamente deberían estar en su radar. Cada una de estas herramientas enfrenta un problema específico de seguridad y deja una huella limitada. No perdería nada probándolas. Podrían marcar la diferencia en la manera en que trabaja -y en la seguridad de su ambiente.