it-swarm-es.com

¿Qué implica la defensa en profundidad para una aplicación web?

Supongo que significa diferentes capas de seguridad, desde la seguridad a nivel de la aplicación hasta el fortalecimiento del servidor y la capacitación del personal, pero ¿cuáles son cada una de esas capas y cuáles son algunos buenos recursos para cada nivel de defensa?

En orden de importancia para una aplicación web, etiquete cada capa, defínela brevemente y luego enumere uno o más recursos para obtener más información.

12
VirtuosiMedia

El activo más importante en el paradigma de defensa en profundidad es inteligencia humana : emplear personas conocedoras de la seguridad responsables de la defensa continua y persistente.

Las herramientas cambian, los marcos de las aplicaciones web cambian, se descubren nuevas técnicas de explotación, cosas que preceden a la creación de un equipo humano sólido para ayudar a defender.

Pasando a la táctica, pero aún a alto nivel:

codificación segura (capa de la aplicación) -> capacitar a los equipos para desarrollar aplicaciones resistentes a los atacantes -> OWASP

infraestructura segura -> capacitar a los equipos para implementar servidores resistentes a los atacantes y equipos de apoyo

http://cisecurity.org/ El Center for Internet Security (CIS) es una empresa sin fines de lucro cuya División de Benchmarking and Metrics ayuda a las organizaciones a reducir el riesgo de interrupciones comerciales y de comercio electrónico como resultado de controles de seguridad. La División proporciona a las empresas estándares de mejores prácticas de consenso para las configuraciones de seguridad, así como recursos para medir el estado de la seguridad de la información y para tomar decisiones racionales sobre inversiones en seguridad.

http://iase.disa.mil/stigs/checklist/ Agencia de Sistemas de Información de Defensa (DISA)

http://web.nvd.nist.gov/view/ncp/repository
http://csrc.nist.gov/fdcc/faq-common_security_configurations.html
El Programa Nacional de Lista de Verificación (NCP), definido por el NIST SP 800-70 Rev. 1, es el depósito del gobierno de EE. UU. De listas de verificación de seguridad (o puntos de referencia) disponibles públicamente que proporcionan orientación detallada de bajo nivel sobre cómo establecer la configuración de seguridad de los sistemas operativos y las aplicaciones.

detección y respuesta a incidentes capaces -> capacitar a los equipos para detectar, contener, responder y corregir

recopilación de listas de verificación de respuesta a incidentes: http://www.knowyourenemy.eu/checklists.php

Richard Bejtlich blogueó recientemente:

"Recursos para crear equipos de respuesta a incidentes Recientemente, un colega me pidió recursos para crear equipos de respuesta a incidentes. Le prometí que proporcionaría algunas ideas [...]

El sitio CERT.org CSIRT Development es probablemente el mejor lugar para comenzar. Desde allí puede encontrar documentos gratuitos, enlaces a clases ofrecidas por SEI sobre la construcción de CIRT, etc. ¡No creo que puedas vencer a ese sitio!

No creo que los recursos del sitio FIRST sean tan útiles, pero el proceso de trabajar hacia la membresía es un gran ejercicio para un nuevo CIRT.

Mi página de libros de TaoSecurity enumera varios libros que los CIRT probablemente encontrarán útiles ".

En nombre de la brevedad, ¿tal vez lo anterior sea suficiente?

6
Tate Hansen

Creo que podría decirse que es más importante comprender lo que NO significa "defensa en profundidad". No significa 'una larga lista de controles de sonido impresionantes, como firewalls y algoritmos de cifrado'.

La defensa en profundidad es un término de tecnología neutral que significa que dos o más controles independientes deben fallar antes de que un sistema se vea comprometido. P.ej. sujetando tus pantalones con cinturón, tirantes y cuerda :-)

El punto clave aquí es 'independiente': si todos sus controles tienen modos de falla comunes, o si solo uno de ellos necesita fallar antes de perder, entonces no hay una 'defensa en profundidad'. Por ejemplo, si se puede acceder a cada uno de sus niveles desde el anterior a través de HTTP, y todos tienen la misma vulnerabilidad, entonces la configuración del firewall/DMZ se vuelve irrelevante ya que el atacante puede usar la misma vulnerabilidad para poseerlos todos.

7
frankodwyer

Desde que comenzaste a preguntar específicamente sobre una aplicación web, es decir, desde el punto de vista de la aplicación, me centraré principalmente en eso. En orden de capas de afuera hacia adentro, aquí hay una muestra:

  • Protocolo seguro (SSL/TLS)
  • cortafuegos
  • DMZ
  • WAF
  • IDS/IPS
  • sO endurecido
  • servidor web reforzado
  • código administrado con marco reforzado
  • autenticación
  • control de acceso a archivos (por ejemplo, ACL NTFS)
  • Control de acceso a URL (por ejemplo, configuración web de ASP.NET)
  • control de acceso aplicativo
  • validación de entrada
  • procedimientos almacenados
  • enlace de parámetro db (por ejemplo, ADO objetos de comando/parámetro) u ORM
  • dB endurecido
  • permisos estrictos sobre objetos de base de datos
  • codificación de salida
  • etc.

Tenga en cuenta que la mayoría de estos son de naturaleza aplicativa, y la mayoría de los elementos de red/SO son de naturaleza arquitectónica ...

4
AviD

Estás pidiendo una respuesta bastante larga, así que solo intentaré un poco.

Si nos acercamos a una aplicación web desde la perspectiva del usuario, entonces está el:

  • Capa de red (paquetes HTTP/cables físicos/enrutadores/ISP)
    • Ver Wikipedia
  • Software de servidor (también conocido como IIS/httpd/etc)
    • Depende de cuál sea la pila de su servidor (LAMP/.NET/etc.)
  • Su código de solicitud
    • Depende de lo que esté hecha su aplicación
  • Más de lo que no entraré.
2
Zian Choy