- La seguridad informática es un campo donde siguen aumentando los productos, conferencias, libros y proyectos de ley, pero en la raíz de los fracasos repetidos hay supuestos básicos erróneos como Default Permit y Enumerating Badness
- El problema central es una estructura que no define de forma estrecha “qué permitir”, sino que persigue sin fin “qué bloquear”; si no se elige Default Deny en firewalls, ejecución de código y respuesta a gusanos, se cae en una carrera armamentista con los atacantes
- Enumerar lo malo implica rastrear más de 75.000 virus y entre 200 y 700 nuevas amenazas cada mes, por lo que es menos eficiente que Enumerating Goodness, que gestiona alrededor de las 30 aplicaciones legítimas realmente necesarias
- Buscar vulnerabilidades y parchearlas, una cultura que consume el hacking como algo atractivo y las estrategias que dependen de educar a los usuarios llevan a repetir una respuesta posterior al incidente más que a reducir fallas de diseño
- Con las nuevas tecnologías puede ser más seguro esperar y validarlas antes de adoptarlas de inmediato; los profesionales de seguridad deberían priorizar el diseño con sentido común y una actitud escéptica por encima de las modas
Las “anti-buenas ideas” que generan fracasos de seguridad
- En seguridad informática siguen apareciendo nuevos productos, nuevas conferencias, nuevos libros y nuevos proyectos de ley, pero los problemas se repiten
- Una “idea tonta” es un enfoque que está del lado opuesto de una buena idea, y surge cuando se intenta hacer algo imposible o se ignora la realidad
- Estos enfoques a veces nacen de malentendidos bienintencionados, y otras veces de productos bien empaquetados para ganar dinero rápido
- Las seis ideas están ordenadas según la frecuencia con que aparecen; si puedes evitar especialmente las tres primeras, se considera que perteneces al pequeño grupo de profesionales de seguridad sobresalientes
1. Default Permit: permitir por defecto
- Default Permit es el enfoque que permite todo lo que no esté explícitamente prohibido, y se reconoce con más facilidad en las reglas de firewall
- Los primeros administradores de red bloqueaban solo telnet, rlogin y FTP entrantes, y permitían el resto
- Cada vez que se descubría una nueva vulnerabilidad, el administrador tenía que decidir si bloquearla, y debía alcanzarla antes de que lo hackearan
- Debería haber desaparecido con la llegada de los gusanos en la década de 1990, pero muchas redes todavía tienen una estructura de núcleo abierto sin segmentación
- El mismo problema se repite en la ejecución de código
- Si el usuario hace clic, básicamente se ejecuta cualquier cosa, y la ejecución solo se niega cuando un antivirus o bloqueador de spyware la detiene
- Aunque las aplicaciones usadas con frecuencia son unas 15 y las usadas ocasionalmente unas 20 a 30, el sistema operativo permite por defecto la ejecución de virus o spyware
- Un proyecto de seguridad para e-banking usó el enfoque opuesto
- En lugar de que el balanceador de carga enviara a un agujero negro solo los ataques conocidos, enviaba todo el tráfico que no coincidiera con una lista de URL correctas a un servidor bloqueado que servía imágenes y páginas 404
- No era Default Permit, que bloquea solo ataques conocidos, sino un enfoque que rechaza solicitudes fuera de la estructura normal
- Si estás en una carrera armamentista con los atacantes, es una señal de que caíste en Default Permit
- El concepto opuesto, Default Deny, requiere compromiso, reflexión y comprensión para implementarse, pero es un mejor enfoque
2. Enumerating Badness: enumerar lo malo
- Enumerating Badness es el método de listar todo lo malo conocido y luego detectarlo o bloquearlo
- Al principio parecía posible porque había pocos agujeros de seguridad conocidos, pero hacia 1992 las “cosas malas” de Internet ya eran muchas más que las “cosas buenas”
- Un producto antivirus típico conoce más de 75.000 virus
- Se estima que en una computadora personal hay unas 30 aplicaciones legítimas instaladas
- Si se rastrean esas 30 aplicaciones legítimas y se impide ejecutar todo lo demás, se pueden reducir a la vez los problemas de spyware, virus, troyanos de control remoto y exploits ejecutables contra código preinstalado que rara vez se usa
- Según algunos análisis de la industria, cada mes aparecen en Internet entre 200 y 700 nuevas “cosas malas”
- Ante la objeción de que una red corporativa es demasiado compleja para identificar las aplicaciones legítimas, se responde que si el CTO ni siquiera sabe a grandes rasgos qué hace la tecnología, no puede hacer planificación de capacidad, de desastres ni de seguridad
- El análisis de logs de un producto de firewall de 1994 inicialmente buscaba condiciones malas, pero la segunda versión usó Artificial Ignorance
- Descarta los logs que sabe que no son interesantes
- Considera interesantes los logs restantes
- Este enfoque detectó condiciones operativas y errores que no se habrían imaginado
- Antivirus, detección de intrusiones, prevención de intrusiones, seguridad de aplicaciones y firewalls de inspección profunda de paquetes suelen apoyarse en este método
- Si un sistema requiere actualizaciones de firmas periódicas o deja pasar un gusano nunca antes visto, es señal de Enumerating Badness
- La cura es Enumerating Goodness, pero se considera que los sistemas operativos casi no ofrecen soporte para este tipo de control a nivel de software
3. Penetrate and Patch: penetrar y parchear
- Penetrate and Patch es un ciclo que consiste en atacar desde afuera firewalls, software, sitios web, etc., encontrar fallas, corregirlas y volver a buscar
- Este método no produce sistemas mejor diseñados, sino sistemas endurecidos por ensayo y error
- Personal Observations on the Reliability of the Space Shuttle, de Richard Feynman, es una lectura que muestra cómo debería alcanzarse la confiabilidad en sistemas complejos
- El mensaje central se acerca a “si no diseñaste el sistema para que sea hackeable, no debería ser hackeable”
- La moda de publicar vulnerabilidades y actualizaciones de parches también se basa en este enfoque
- El investigador de vulnerabilidades cree que ayuda a la comunidad porque encuentra agujeros antes que los hackers y permite corregirlos
- El proveedor cree que hace lo correcto porque lanza parches antes de que los hackers y autores de gusanos los aprovechen
- Pero si el código hubiera sido diseñado desde el principio para ser seguro y confiable, descubrir vulnerabilidades sería una tarea aburrida y poco recompensada
- Si en Internet Explorer aparecieron 2 o 3 bugs de seguridad por mes durante 10 años, es difícil decir que Penetrate and Patch haya sido efectivo
- Se considera que algunas aplicaciones como PostFix y Qmail fueron diseñadas para modularizar y compartimentar permisos y procesamiento, y por eso tienen un historial muy reducido de bugs de seguridad
- Las pruebas de penetración tienen el mismo límite
- Las redes con diseños de base o prácticas de seguridad incorrectas siguen siendo hackeadas aunque reciban varias pruebas de penetración
- En redes diseñadas desde el principio para permitir solo ciertas direcciones, cierto tráfico y servidores configurados con cuidado, una prueba de penetración general puede no tener sentido
- Si cada “bug de la semana” te vuelve vulnerable, estás atrapado en Penetrate and Patch
- El software y los sistemas deben ser secure by design, y diseñarse teniendo en mente el manejo de fallas
4. Hacking is Cool: la idea de que hackear es genial
- Hacking is Cool es una crítica a la cultura que recompensa o glorifica a los hackers con stock options, libros, cursos y pruebas de penetración muy bien pagadas
- Donn Parker considera que la computación remota eliminó la necesidad de proximidad física en el delito, y que el anonimato y la ausencia de contacto cara a cara con la víctima redujeron la barrera emocional del crimen
- El hacking se parece más a un problema social que a un problema técnico
- Internet ofrece un nuevo espacio de actividad para personas con poca sociabilidad
- Cuando los profesionales de seguridad convierten a los hackers en héroes, terminan alentando el hacking de manera implícita
- Los medios a veces retratan a los hackers como “whiz kids” o “brilliant technologists”
- Que los profesionales de seguridad aprendan técnicas de hacking también se considera parte de esta idea
- Los exploits y su uso se vuelven obsoletos apenas se parchea el agujero correspondiente
- La competencia profesional termina dependiendo de la carrera armamentista de Penetrate and Patch
- Es más razonable aprender a diseñar sistemas de seguridad resistentes al hacking que aprender a encontrar sistemas hackeables
- Se predice que “Hacking is Cool” desaparecerá en 10 años, pero no se ven señales de que lo reemplace su opuesto, “Good Engineering is Cool”
5. Educating Users: educar a los usuarios
- Educating Users se parece a Penetrate and Patch aplicado a las personas
- La educación en sí parece buena, pero si hubiera funcionado ya debería haber mostrado resultados
- Se dice que varios estudios encontraron que una proporción considerable de usuarios entrega su contraseña a cambio de un dulce
- El gusano Anna Kournikova se usa como ejemplo de que casi la mitad de la humanidad hace clic en cualquier cosa que parezca contener fotos desnudas de una mujer medianamente famosa
- Si se adopta la educación de usuarios como estrategia, puede que haya que “parchear” a los usuarios cada semana
- La verdadera pregunta no es “¿podemos educar a los usuarios para que sean más seguros?”, sino “¿por qué tenemos que educar a los usuarios desde el principio?”
- ¿Por qué los usuarios reciben adjuntos ejecutables?
- ¿Por qué los usuarios esperan recibir correos de un banco donde ni siquiera tienen cuenta?
- La respuesta a adjuntos y phishing también es un problema de Default Permit
- Si permites que todos los usuarios reciban adjuntos de correo, estás permitiendo por defecto todo lo que se envía
- Un mejor enfoque sería aislar todos los adjuntos, eliminar los ejecutables y conservar solo los tipos de archivo permitidos en un servidor de staging
- Los usuarios podrían iniciar sesión con un navegador compatible con SSL para recoger los archivos, y el requisito de contraseña debilitaría de inmediato muchos mecanismos de propagación de gusanos
- Herramientas gratuitas como MIMEDefang pueden usarse para separar los adjuntos de los correos entrantes, guardarlos en directorios por usuario y reemplazar los adjuntos dentro del correo por la URL correspondiente
- Cuando dirigía una pequeña startup de seguridad, los empleados que querían usar Windows tenían que saber instalarlo y administrarlo por sí mismos; de lo contrario, no eran contratados
- Se predice que, en 10 años, los usuarios que necesiten educación saldrán del mercado laboral de alta tecnología o se entrenarán por su cuenta en casa para mantenerse competitivos
6. Action is Better Than Inaction: la creencia de que actuar es mejor que no actuar
- Los ejecutivos de IT se dividen en “early adopters” y “pause and thinkers”, y se considera que quienes han creado sistemas exitosos y seguros de misión crítica se parecen más al segundo grupo
- Cuando aparece una nueva tecnología, puede ser más seguro esperar en lugar de instalarla de inmediato, observar los resultados de otros adoptantes tempranos y desplegarla después de que ya haya personas con experiencia
- Un alto ejecutivo de IT planteó su plan de adopción de una red inalámbrica corporativa como “esperar 2 años y luego contratar a alguien que haya desplegado con éxito una red inalámbrica en una empresa más grande que la nuestra”
- Mientras tanto, la tecnología se ordena mejor y los precios bajan mucho
- La proposición secundaria clave es: “a menudo es más fácil no hacer cosas tontas que hacer cosas inteligentes”
- También se aconseja postergar el outsourcing de seguridad 1 o 2 años y escuchar las recomendaciones y opiniones de las organizaciones que sobrevivan
- En un caso de un cliente que estaba por gastar mucho dinero sin validación, se sugirió enviar personal a la conferencia relacionada LISA para encontrar usuarios con experiencia real
- Ese empleado pudo invitar a cenar a personas con experiencia en el producto y escuchar evaluaciones informales
- El gerente de IT informó que una cena de 200 dólares redujo más de 400.000 dólares de sufrimiento técnico
- El “kung fu” profesional consiste en evitar hacer tonterías no haciendo nada, y lograr que el jefe reconozca el mérito de esa evitación
Otras pequeñas tonterías
- “No somos un objetivo”
- Los gusanos no son lo bastante inteligentes como para decidir si un sitio web o una red doméstica son interesantes
- “Si todos usan cierto sistema operativo de seguridad de moda, estaremos seguros”
- Los sistemas operativos tienen problemas de seguridad porque son complejos, y la administración de sistemas todavía no es un problema resuelto
- Cambiar siguiendo la moda puede dificultar que los administradores adquieran la experiencia que se acumula con el tiempo
- “Tenemos buena seguridad en los hosts, así que no necesitamos firewall”
- Si no puedes confiar en el tejido de red, toda aplicación que pase por la red es un objetivo potencial
- Se da como ejemplo el Domain Naming System
- “Tenemos un buen firewall, así que no necesitamos seguridad en los hosts”
- Si el firewall deja pasar tráfico hacia hosts detrás de él, también hay que considerar la seguridad de host de esos sistemas
- “Subámoslo a producción ahora y hagamos la seguridad después”
- Si no hay tiempo para hacerlo bien ahora, hay que preguntarse si habrá tiempo para volver a hacerlo después de que se rompa
- No dedicar los primeros días puede llevar a pasar años corrigiendo continuamente
- “Los problemas ocasionales no se pueden evitar”
- Esto lleva a preguntar si uno se subiría a un avión comercial si la industria aérea adoptara ese enfoque con vidas humanas en juego
La actitud que se exige a los profesionales de seguridad
- Se considera que la seguridad informática está demasiado obsesionada con “la nueva tecnología de la semana” y ha abandonado el sentido común
- El trabajo del profesional de seguridad es cuestionar la sabiduría convencional y el estado actual, y enfrentarlos de lleno si hace falta
- Cierra con la preocupación de que, si la sabiduría convencional fuera efectiva, la tasa de compromisos de sistemas debería estar bajando
1 comentarios
Opiniones de Hacker News
Otra vez con esto, parece: https://hn.algolia.com/?q=six+dumbest+ideas+in+computer+secu...
Este texto tiene muchos puntos para desmenuzar, pero lo que siempre quiero señalar es la postura de fondo de Ranum contra la investigación de vulnerabilidades. A fines de los 90 y principios de los 2000, Marcus Ranum y Bruce Schneier eran intelectuales representativos de la idea de que divulgar vulnerabilidades hacía más daño que bien, y que ese trabajo debían hacerlo los vendors, no investigadores externos. Esa postura terminó siendo equivocada: en 2002 tal vez se podía meter la investigación externa con divulgación completa de vulnerabilidades bajo la etiqueta de “hacking”, pero hoy ya no es así en absoluto. Las cuatro grandes conferencias de seguridad tratan investigación ofensiva, y lo mismo ocurre incluso en la literatura de criptografía
No sé si se le pasó, pero me sorprendió que no hablara de contraseñas. Considero inherentemente tontas las reglas obligatorias de composición salvo la longitud mínima, los cambios periódicos y los intentos de “reemplazar las contraseñas”. Las reglas de composición llevan a escribirlas en papel, reutilizar la misma contraseña o agregar un 1 al final; y los sustitutos tienen una UX horrible o confusa y al final se vuelve a las contraseñas. Si simplemente me dejan crear una contraseña de X o más caracteres con los caracteres que yo elija, puedo recordarla de verdad aunque no tenga el celular o la computadora, o esté en el extranjero
suckmyDICK123!!. Aun así, normalmente no las roban porque no hay suficiente capacidad de fuerza bruta o porque la cuenta se bloquea tras 5 fallos. Hoy la mayoría ya sabe algo del estilo “los bots prueban contraseñas a velocidad sobrehumana”, y ninguna política de contraseñas evita que se elijan contraseñas malas. Es un caso en el que personas “responsables” desperdician una cantidad enorme de tiempo intentando resolver la realidad. Salvo uno o dos sitios sensibles como bancos, dan ganas de usar la misma contraseña en servicios que exigen cuentas a la fuerza, como 80 juegos que probaste un minuto. Muchas veces tienen una GUI separada que ni siquiera permite pegar, y podría usar un gestor de contraseñas, pero no hay motivo para molestarmeHackear puede ser genial. No me refiero a acceder a datos y sistemas ajenos, sino a entender profundamente un sistema que poseo y encontrar formas de hacerlo funcionar mal a mi favor. Forzar la cerradura del vecino no tiene mucha gracia, pero forzar mi propia cerradura sí es genial; manipular una computadora remota para obtener acceso indebido no está bien, pero hacer que mi propia computadora haga algo que originalmente no me dejaba hacer sí es genial. La actitud de explorar los bordes de lo posible mueve el mundo hacia adelante, y casi no debe haber sociedades humanas exitosas que hayan celebrado quedarse dentro del molde
Este texto contiene muchos juicios muy malos. Una frase del tipo “diseñé, implementé y configuré cuidadosamente mi sistema, así que no necesito probarlo” puede ser una de las peores perspectivas de seguridad que he oído. Decir que “el hacking es un problema social, no técnico” también se parece mucho a depender de la seguridad por oscuridad, y tampoco es siempre un problema social. Basta ver el espionaje corporativo o a los actores estatales para notar que no es así
El problema central suele ser el desafortunado compromiso entre usabilidad vs. seguridad, y la mayoría de las cosas mencionadas aquí como ideas tontas son el resultado de sacrificar seguridad para reducir la incomodidad del usuario promedio. Por ejemplo, permitir por defecto es lo peor para la seguridad y es causa de muchos problemas de Windows, pero a los usuarios no les gusta tener que autorizar explícitamente cada programa nuevo. Incluso cuando Microsoft agregó cuadros de confirmación, mucha gente lo consideró un mal diseño que hacía que el software fuera mucho más molesto. Por eso “permitir por defecto”, “enumerar lo malo” y “parchar después de la intrusión” terminaron siendo los valores predeterminados. Personalmente, creo que las contraseñas en sí son una de las ideas más tontas en seguridad. La definición de una buena contraseña implica que sea difícil de recordar, difícil de ingresar en dispositivos sin un teclado adecuado y, en casi todos los sentidos, incómoda para el usuario. Pero tampoco hay alternativas realistas. Los enlaces por correo electrónico hacen que, si te comprometen el acceso al correo, te comprometan todo, y el restablecimiento de contraseñas suele ser igual. Los dispositivos físicos de autenticación hacen que el usuario no pueda iniciar sesión fuera de casa o tenga que llevar siempre un accesorio encima, y casi todos los métodos exigen buenos hábitos de seguridad, pero al 99.9% de la población no le interesa demasiado
La frase “aprender varios exploits y cómo usarlos es gastar tiempo aprendiendo herramientas y técnicas que quedarán obsoletas cuando se parchen” es incorrecta. En realidad se aprende el aspecto práctico junto con la teoría, y eso es muy útil
De esta lista quitaría “hackear es cool” y pondría confiar en el cliente. Últimamente ha habido más intentos de confiar en el cliente. Por ejemplo, apps móviles que exigen una prueba de que el sistema operativo no fue modificado, o el intento de Google de meter un DRM similar en la web. Si el modelo de seguridad de red depende de confiar en el software del cliente, ya está roto
Sobre “bloquear por defecto”, se dice que “no es mucho más difícil que permitir por defecto y te deja dormir mejor por la noche”; quizá el responsable de seguridad de TI duerma mejor, pero el resto de la empresa se irrita muchísimo porque no puede hacer nada sin ir y venir tres veces con el departamento de TI. Y cuanto más irritada está la gente, más probable es que use atajos que destruyen el concepto de seguridad. Si obligas a cambiar la contraseña todos los meses, usarán cosas como
password1,password2,password3. Una buena seguridad de TI no consiste simplemente en desconectar el cable de red; debería ser algo invisible y no intrusivo, casi mágico para el usuarioLos textos centrados en seguridad suelen estar escritos por personas que le dan una importancia extrema a la seguridad, y muchas veces ignoran las dificultades que un enfoque puramente centrado en seguridad les causa a los usuarios de software seguro. Siempre veo la seguridad como un control deslizante entre seguridad y comodidad. Un diseño completamente seguro es tan incómodo que casi nadie lo usa, y un diseño completamente cómodo tampoco es lo suficientemente seguro, por lo que puede terminar llegando al mismo resultado. Aun así, en general vale la pena leer este texto, pero discrepo fuertemente con la idea de que sea tonto que un experto en seguridad escriba exploits o aprenda a abusar de un sistema específico. Aprendí mucho más de seguridad estudiando vulnerabilidades y exploits, e implementándolos yo mismo de forma white hat, que estudiando “diseño seguro”. Es parecido a eso de “para conocer al enemigo, hay que convertirse en él”.
Esta es, en su mayor parte, una lista pésima de hace 19 años. Decir que “el software y los sistemas deberían ser seguros desde el diseño y estar diseñados teniendo en cuenta el manejo de fallas” significa “en un mundo perfecto, todo habría sido seguro desde el principio”. Eso nunca va a pasar, así que hay que usar técnicas de descubrir y luego parchear, y han funcionado bien para empresas que efectivamente parchean las vulnerabilidades descubiertas y aprenden de sus errores para mejorar sus prácticas de programación futuras. Además, la mayoría de los sistemas no son estáticos. No se lanza un sistema seguro una vez para luego no actualizarlo nunca más; la mayoría de las aplicaciones y sistemas se actualizan con frecuencia, y ahí entran nuevas vulnerabilidades.
scriptuonclick.