it-swarm-es.com

¿Cuáles son las mejores prácticas para mitigar los ataques de día cero?

¿Cuáles son las mejores prácticas/recomendaciones/estrategias para mitigar las amenazas/ataques de día cero desde una perspectiva de desarrollo de software?

22
Eric Warriner

SDL holístico.

Por definición, no puedes defenderte de un ataque específico que no conoces de antemano.
Sin embargo, si implementó un ciclo de vida de desarrollo completo y seguro a través de todas las fases, incluido el modelado de amenazas apropiado, y mitiga amenazas (no los ataques), entonces debería ser: relativamente bien.

16
AviD

La mejor manera de mitigar exploits de día cero es evitar que los escritores de exploits de día cero escriban exploits de día cero.

La mejor manera de evitar que los escritores de exploits de día cero escriban exploits de día cero es alentarlos a encontrar otras formas de ganar dinero o ganar fama, lo que requeriría hacer que la exfiltración de datos sea menos fácil y menos rentable, así como hacer que el robo de identidad y el concepto de "piratear" menos divertido.

Para que la exfiltración de datos e identificar el robo sea menos fácil/rentable, debemos cambiar el juego de alguna manera, es decir, eliminar los datos de la tarjeta de pago y la identificación emitida por el gobierno, como los números de seguro social. Es posible que tengamos que cambiar la forma en que usamos nombres y números, especialmente juntos.

Para que la piratería sea menos divertida, debemos hacerla aburrida e inútil, posiblemente haciendo que una actividad más novedosa sea más emocionante que la piratería, y de alguna manera hacer que la piratería sea menos emocionante que, por ejemplo, el tejido de cestas subacuáticas o la contabilidad subacuática.

Si los métodos anteriores fallan, entonces quizás sería mejor desalentar el uso criminal de las hazañas de día cero mediante rehabilitación criminal, encarcelamiento, multas y otras formas de castigo. Sin embargo, para obtener un castigo exacto, primero debemos atrapar delincuentes utilizando exploits de día cero. Algunos usos pseudo-criminales de exploits de día cero están "por encima de la ley" al igual que el espionaje a nivel de estado-nación (por ejemplo, el personaje ficticio James Bond tiene una "licencia para matar" y quizás haya algunos piratas informáticos que tengan "licencias para usar exploits de día cero ").

Suponiendo que eso también falla, debemos hacer que sea demasiado costoso para los escritores de día cero escribir exploits de día cero. Creo que esta es la estrategia que Microsoft ha tomado con respecto a algunos de sus productos. Esto existe fuera del SDL, y típicamente involucra contramedidas de explotación como DEP, ASLR y el uso de técnicas encontradas en herramientas como EMET .

Algunos contribuyentes de Linux han tomado esta ruta inventando ASLR e implementando otros conceptos en sus parches de kernel grsecurity . Sin embargo, ni Microsoft ni los desarrolladores de seguridad pueden prever exploits no tradicionales, como los basados ​​en aplicaciones web, exploits de kernel, condiciones de carrera y otros defectos esotéricos o basados ​​en el diseño.

En cuanto a la tecnología, es mucho más difícil resolver el problema de explotación de día cero. Esta es la razón por la que principalmente he proporcionado una larga lista de soluciones humanas para el problema de explotación de día cero, que creo que tendrá más impacto. No soy un experto en resolver estos problemas sociales humanos: si lo fuera, estaría usando estos poderes mágicos para combatir el hambre, las enfermedades u otros problemas que son mucho más profundos que las hazañas de día cero.

Tal vez sea mejor dejar que ocurran exploits de día cero. No puedes evitar que sean liberados. Una cosa que puede hacer para asegurarse de ayudar a su organización a convertirse en un objetivo menor de exploits de día cero es ejecutar en una infraestructura que nunca (o muy raramente) ha sido objetivo de exploits de día cero, pero esto puede conducir a la seguridad por la oscuridad. Como ejemplo de esta estrategia fallida, AOL usó equipos Stratus tolerantes a fallas, pero esto no evitó que fueran pirateados.

Uno de los métodos más conocidos hasta la fecha es aprovechar honeypots, monitoreo de integridad de archivos/kernel/memoria/proceso (por ejemplo, BitLocker con TPM, Tripwire, etc.) y subterfugios para proporcionar niveles de defensa, y luego seguir con un Swift y ofensiva despiadada, al igual que la guerra moderna. Nuevamente, esto implica trabajar principalmente en la capa humana sin mucha carga de tecnología pesada. Algunos de estos métodos se pueden combinar usando técnicas de inteligencia de negocios, y esto es lo que algunos productos SIEM (y la herramienta SIEM de código abierto OSEM) intentan hacerlo, pero todavía se encuentran en las primeras etapas de madurez y progreso, por lo que no deberían depender de ellos mismos, sino parte de una metodología más amplia y explotar el día cero programa de gestión.

7
atdre

Si estás hablando de ataques de Día Cero contra cualquier aplicación dentro de tu red. Yo sugeriría:

Usando el filtrado de Ingress en el firewall de la red y también usa Filtrado de Egress para limitar el tráfico que puede salir de su sistema, lo que significa que si una máquina se viera afectada por un exploit de Zero Day, con suerte no podría para comunicar saliente.

El uso de un IDS/IPS para detectar patrones de tráfico inusuales también puede resultar efectivo.

4
Mark Davidson

Un punto no mencionado por Avi o Mark es el viejo mantra de "defensa en profundidad". Puede ser una frase muy trillada, pero con múltiples capas de seguridad, un atacante necesita usar más de un día cero para obtener acceso, y cada capa puede proporcionar más oportunidades para detectar el ataque (a través de IDS, etc.) o para responder.

Definitivamente desarrolle el SDL y use IDS, IPS y otras herramientas, pero cree una arquitectura segura y mejorará su seguridad de manera considerable.

2
Rory Alsop

Si quiere protegerse de una vulnerabilidad conocida en una aplicación que aún no tiene un parche oficial, estas son algunas formas:

  • Si se trata de software de código abierto, generalmente hay no oficiales parches disponibles muy rápidamente. De lo contrario, incluso puede intentar repararlo usted mismo si tiene los recursos.

  • Las vulnerabilidades a menudo dependen de configuraciones/configuraciones específicas. Intente y vea si puede configurar una configuración que no sea vulnerable (es decir, deshabilitar una extensión).

No se me ocurre nada más aparte de los métodos de seguridad habituales que no son específicos de la pregunta.

1
Olivier Lalonde