Cómo prevenir ataques de día cero


21

Tradicionalmente, todos los programas antivirus y sistemas IPS funcionan utilizando técnicas basadas en firmas. Sin embargo, esto no ayuda mucho para prevenir ataques de día cero .

Por lo tanto, ¿qué se puede hacer para prevenir ataques de día cero?


1
Además de los puntos en la respuesta que sugerí a continuación, incluso si ejecuta algún software con un exploit de día cero. Si no ejecuta ese sistema en Internet público, entonces no es directamente vulnerable. Por lo tanto, los firewalls son su amigo, y si realmente desea ejecutar algún software de riesgo de seguridad novedoso, puede configurarlo en alguna otra red en la nube, donde puede ser pirateado y no afectar a ningún otro sistema.
Tom H

Las amenazas desconocidas y de 0 días son exactamente la razón por la cual se utilizan heurísticas en cualquier software antivirus / antimalware que valga la pena. Lamentablemente, las heurísticas a menudo se desactivan debido al impacto en el rendimiento.
John Gardeniers

0days es solo una categoría, cada miembro de esta categoría es muy diferente del otro. No puede tener un enfoque en el que considere implementar la seguridad contra 0 días. Es la calidad de su sistema de seguridad lo que al final marcará la diferencia entre una intrusión sigilosa exitosa y un exploit que no funciona o un exploit detectado. Como alguien dijo, concéntrese en la detección y el tiempo de respuesta rápido. Monitoree cada sistema, tráfico y manténgase actualizado con actualizaciones de seguridad. Es un trabajo a tiempo completo, o al menos, debería serlo.
Aki

Probablemente obtenga algunas buenas respuestas aquí también: security.stackexchange.com
Bratch

Linux en todas partes. sin ventanas pregúntale a google.
Neil McGuigan

Respuestas:


37

Creo que reconoces una verdad interesante de sys-admin allí, que es que

a menos que pueda reducir la probabilidad de ser pirateado a cero , eventualmente , en algún momento, será pirateado .

Esta es solo una verdad básica de matemáticas y probabilidad, que para cualquier probabilidad distinta de cero de un evento. El evento finalmente sucede ...

Estas son las dos reglas de oro para reducir el impacto de este evento "eventualmente pirateado";

  1. El principio del menor privilegio

    Debe configurar los servicios para que se ejecuten como un usuario con los menores derechos posibles necesarios para completar las tareas del servicio. Esto puede contener un pirata informático incluso después de que ingresen a una máquina.

    Como ejemplo, es muy probable que un pirata informático que entra en un sistema utilizando un exploit de día cero del servicio del servidor web Apache se limite solo a la memoria del sistema y los recursos de archivos a los que se puede acceder mediante ese proceso. El hacker podría descargar sus archivos fuente html y php, y probablemente buscar en su base de datos mysql, pero no debería ser capaz de obtener root o extender su intrusión más allá de los archivos accesibles para apache.

    Muchas instalaciones predeterminadas de servidor web Apache crean el usuario y grupo 'apache' de manera predeterminada y usted puede configurar fácilmente el archivo de configuración principal de Apache (httpd.conf) para ejecutar apache usando esos grupos.

  2. El principio de separación de privilegios.

    Si su sitio web solo necesita acceso de solo lectura a la base de datos, cree una cuenta que solo tenga permisos de solo lectura y solo a esa base de datos.

    SElinux es una buena opción para crear contexto para la seguridad, la armadura de aplicaciones es otra herramienta. Bastille fue una elección previa para el endurecimiento.

    Reduzca la consecuencia de cualquier ataque, separando el poder del servicio que ha sido comprometido en su propia "Caja".

Las reglas de plata también son buenas.

Utiliza las herramientas disponibles. (Es muy poco probable que pueda hacerlo tan bien como los expertos en seguridad, así que use sus talentos para protegerse).

  1. El cifrado de clave pública proporciona una seguridad excelente. úsalo. en todos lados.
  2. los usuarios son idiotas, imponen complejidad de contraseña
  3. Comprenda por qué está haciendo excepciones a las reglas anteriores. revise sus excepciones regularmente.
  4. responsabilizar a alguien por el fracaso. Te mantiene alerta.

Creo que esta es la verdad: por definición, no hay mucho que puedas hacer para evitar un exploit de 0 días. Si tiene un software vulnerable, tiene un software vulnerable; por lo tanto, el único curso de acción es reducir cualquier impacto y superficie de ataque. Excelente punto sobre los firewalls, aunque vale la pena tener en cuenta que un exploit de 0 días para MS Outlook podría enviarse por correo electrónico, por ejemplo.
Dan

2
Sí, punto tomado sobre los productos de correo de MS. Pero hay analogías con los cortafuegos para el correo, por ejemplo, cualquier persona con todas las extensiones de tipo VBscript, ActiveX, OLE deshabilitadas se habría perdido todo el pirateo por completo, felizmente inconsciente de la carnicería ... ;-)
Tom H

1
+1 pero wrt a Silver Rule 1 "Quien piense que su problema puede resolverse usando criptografía, no entiende su problema y no entiende la criptografía". - Needham / Lampson;)
Peanut

@ Maní Me gusta la clave pública porque evita el uso de contraseñas. Después de la intrusión teórica, no es necesario restablecer las contraseñas porque no hay contraseñas para restablecer, y solo la clave pública se ve comprometida. Incluso se puede usar una base de datos de contraseñas hash para verificar, o cuentas crack sin conexión.
Tom H

@TomH Mi comentario fue irónico :) Interesante, ¿entonces en su sistema presumiblemente el servidor envía al cliente un nonce + otros datos para firmar y el cliente usa un nombre de usuario + los datos firmados para iniciar sesión?
Maní

16

Lista blanca, no poner en lista negra

Estás describiendo un enfoque de lista negra. Un enfoque de la lista blanca sería mucho más seguro.

Un club exclusivo nunca intentará enumerar a todos los que no pueden entrar; enumerarán a todos los que pueden entrar y excluirán a los que no están en la lista.

Del mismo modo, tratar de enumerar todo lo que no debería acceder a una máquina está condenado. Restringir el acceso a una lista corta de programas / direcciones IP / usuarios sería más efectivo.

Por supuesto, como cualquier otra cosa, esto implica algunas compensaciones. Específicamente, una lista blanca es enormemente inconveniente y requiere un mantenimiento constante.

Para ir aún más lejos en la compensación, puede obtener una gran seguridad desconectando la máquina de la red.


+1 Esta es una gran adición a la respuesta de Tom H.
Chad Harrison

1
El peligro está en un conjunto de reglas que crece hasta un tamaño en el que no se puede entender, mantener, explicar, auditar. Lo cual es mortal.
rackandboneman

11

La detección es más fácil (y más confiable) que la prevención

Por definición, no puede evitar un ataque de día cero. Como otros han señalado, puede hacer mucho para reducir el impacto de un ataque de día cero, y debería hacerlo, pero ese no es el final de la historia.

Permítanme señalar que, además, debe dedicar recursos a detectar cuándo se produjo un ataque, qué hizo el atacante y cómo lo hizo. El registro completo y seguro de todas las actividades que un pirata informático podría realizar facilitará la detección de un ataque y, lo que es más importante, determinará el daño hecho y la reparación necesaria para recuperarse del ataque.

En muchos contextos de servicios financieros, el costo de la seguridad en términos de demoras y gastos generales en la ejecución de transacciones es tan alto que tiene más sentido concentrar los recursos en detectar y revertir transacciones fraudulentas en lugar de tomar medidas amplias diseñadas para evitarlas en primer lugar. . La teoría es que ninguna cantidad de medidas será 100% efectiva, por lo que los mecanismos de detección y reversión deben construirse de todos modos. Además, este enfoque ha resistido la prueba del tiempo.


1
+1 Sí, supongo que no puedes responder si no sabes que sucedió ... si tuviera otra oportunidad de responder, probablemente me hubiera quedado atrapado en algo sobre SANS 6 pasos ...
Tom H

+1, muy cierto. La prevención requeriría una auditoría. Y la auditoría no puede probar que un sistema no tenga ninguna falla.
Aki

@ Tom, siempre puedes editar tu respuesta.
Old Pro

4

El día cero no significa que no se conozca la firma. Significa que no hay parches disponibles para los usuarios de software, eso cierra la vulnerabilidad. Por lo tanto, IPS es útil para protegerse de la explotación de vulnerabilidades de día cero. Pero no debes confiar solo en ello. Cree y siga una política de seguridad sólida, fortalezca sus servidores, actualice el software y siempre tenga un 'Plan B'


3

Grsecurity o SELinux son buenos para ayudar a prevenir ataques de 0 días al fortalecer el núcleo.

Cita del sitio web "Solo grsecurity brinda protección contra el día cero y otras amenazas avanzadas que les da a los administradores un tiempo valioso mientras que las correcciones de vulnerabilidad se abren paso hacia las distribuciones y las pruebas de producción".


2

Si está utilizando Apache, los módulos como mod_security pueden ayudarlo a prevenir los vectores de ataque comunes. Con mod_security puedes

  • bloquear solicitudes que parecen ataques de inyección SQL
  • bloquear clientes cuyas direcciones IP están en la lista negra en algunos RBL
  • redirija la solicitud a otro lugar si se cumplen algunas condiciones que defina
  • bloquear solicitudes basadas en el país del cliente
  • detectar y bloquear robots maliciosos comunes automáticamente

... y mucho, mucho más. Por supuesto, usando un módulo complejo como mod_security es muy posible bloquear también a sus clientes reales, y en el lado del servidor mod_security agrega algo de sobrecarga.

También es obligatorio mantener actualizado el software de su servidor y asegurarse de haber deshabilitado todos los módulos y demonios que no usará.

Las políticas de firewall estrictas son imprescindibles y, en muchos casos, las mejoras de seguridad adicionales como SELinux o grsecurity pueden detener el ataque.

Pero, hagas lo que hagas, los malos son muy pacientes, muy creativos y muy hábiles. Tenga un plan detallado sobre qué hacer cuando sea pirateado.


1

Me gustaría agregar algunas reglas de bronce:

  1. Si se expone, no ejecute lo que no necesita ejecutarse.

  2. No te conviertas en un objetivo digno de un ataque dedicado y dirigido.

  3. Asegurar contra cualquier ataque dirigido de este tipo es a menudo poco económico / poco práctico de todos modos. Compruebe quién podría tener un interés serio en romper qué y comience allí.

  4. Considerar "minimizar la información disponible externamente" y "alejarse de los valores predeterminados conocidos" no es más que seguridad por oscuridad (a menudo malentendido como "sin valor" en lugar de "una capa que en sí misma es insuficiente") y omitirlo es una arrogancia peligrosa. Una cerradura pirateable en una puerta no mantendrá alejado al ladrón pero probablemente mantendrá alejado al lobo.


1

Una máquina hinchada con una gran suite de seguridad a menudo convierte las PC mediocres en dinosaurios y los núcleos cuádruples en PC viejas y ordinarias. He arreglado lo suficiente (miles) para entender que es mayormente cierto. Si comprende que nada es 100% de seguridad y el costo del rendimiento cae exponencialmente como seguridad, mientras que la probabilidad de infección solo cae de manera lineal. La mayoría de los resultados cuando dejé de mirar las comparaciones fueron 90% máximo en una prueba del mundo real de miles de riesgos, lo que significa que el 10% de las infecciones no se detectaron o fueron demasiado tarde. mientras que la latencia de la PC había aumentado de 200 a 900%. OSX tiene una situación ideal en la que lo esencial no es mejor en seguridad, pero los riesgos de ataque fueron menores debido a que son objetivos más pequeños con solo el 4% de participación de mercado en productos que no son teléfonos / pad en 2010. Eso cambiará pero no cambiaré Mi filosofía de mantener mi sistema operativo limpio, delgado y malo. Hago lo mismo para XP y Win7. Tengo un gran arsenal de herramientas de reparación, pero solo necesito una aplicación para reparar a todos los que se infectan y solo lleva de 10 a 20 minutos, no horas ni días.

Mis métodos que funcionan;

  1. Eduque a los usuarios, no haga clic en las advertencias de seguridad a menos que realmente sepa cuáles son en comparación con los cientos de ROgues que son copias de buenas alertas. Aquellos que no pueden ser entrenados obtienen fácilmente cuentas que no son de administrador y navegadores protegidos con Java y JS deshabilitados. Pero si lo habilito para ellos, no se preocupe, solo 15 ~ 20 minutos para restaurar o reparar.

    1. SYStem Restore es bueno, pero tiene muchas limitaciones, una de ellas es que los elementos en la carpeta Documentos y las carpetas Temp.

    2. UAC es útil para muchas cosas, pero PITA es tal que nunca uso y confío en mejores herramientas para detectar nuevas empresas y / o nuevos procesos, incluidos, entre otros;

      • Winpatrol.com sigue siendo la mejor inversión que hice para seguridad y aún es gratis para otros. Cubre el 80% de los problemas en los que las startups se agregan antes de ejecutarse y pueden detectarse, deshabilitarse o eliminarse por solicitud del usuario. Sin embargo, si eres del tipo ansioso que no puede tomar decisiones, toma una píldora o simplemente usa Windows Defender . No es el mejor para la cobertura, pero uno de los más altos para la relación bang / buck ... pretección / pérdida de rendimiento o aumento en la relación de latencia.

      • La utilidad de inicio de Mike Lin es el interceptor más ligero de startups que se almacenan en más de una docena de ubicaciones del registro

      • Script Guard es un útil interceptor de guiones para guiones infantiles

      • ProcessGuard es un antiguo programa que funciona como un cortafuegos para cualquier nuevo ejecutable, pero le pide aprobación, sin embargo, es seguro y sencillo después de aceptar una fuente confiable o ignorar o bloquear una fuente no confiable.

      • Un complemento de la Lista negra para su navegador es bueno como Web of trust (WOT) , pero Chrome ha incluido parte de una manera similar, pero en menor medida.

      • una lista negra puede ser enorme para los archivos HOSTS y si la usa (> 1 MB es enorme cuando se escanea en fragmentos de 4KB cada 10 minutos., Pero si lo hace, le recomiendo que desactive el servicio de almacenamiento en caché de DNS para reducir los escaneos periódicos redundantes por cada aplicación que está activo con los firewalls privados.

      • Deshabilite la indexación de archivos si realmente no lo usa para correo electrónico y otras cosas, ya que genera su suite AV para escanear todos los archivos accedidos una y otra vez ... qué redundante.

Algunos pueden hacer una excepción a esta lista parcial de la parte superior de mi cabeza, pero ahorro tiempo asegurando mi PC y operando en un entorno esbelto. Las auditorías periódicas para confirmar mi seguridad se realizan por la noche y demuestran que mi práctica libre de preocupaciones está justificada. Todavía tengo mil registros HJT, registros combofix.txt y registros Runscanner para respaldar mis opiniones sobre curas y un mejor equilibrio de seguridad / rendimiento.

  • Evite la descarga / instalación descuidada de archivos multimedia de exe o Windows que pueden ejecutar scipts (por ejemplo .WMA, .WMV) a diferencia de .mp3 o .avi.

  • Evite todos los anuncios dirigidos a botones grandes para descargar o actualizar su seguridad, lo que puede distraer su atención sobre la actualización gratuita de los agregadores de descargas como Hippo dot com ... cnet no es malo. Ten mucho cuidado. Algunos sitios usan anuncios de terceros y no tienen control de contenido.

  • Documenté un ejemplo correcto en una presentación de PowerPoint de 10 páginas, si alguien está interesado, pregunte. Qué tan fácil ignorar el adive anterior puede infectarte.

Todo por ahora.

Tony Stewart EE desde 1975.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.