16 nov 2015

9 prácticas de programación segura que no puedes ignorar (y III)

6. Seguridad positiva

Definir lo que está permitido y rechazar todo lo demás. Este modelo, también llamado "lista blanca", es el único método verdadero de prevención de ataques no deseados y que no pensaba que podrían ocurrir durante el desarrollo.
Regularmente aparecen nuevos tipos de malware y ataques y por lo tanto es imposible mantener las aplicaciones protegidas día a día. Definir "listas blancas" de aplicaciones, permite limitar la superficie de ataque sólo a una cierta cantidad de riesgos aceptables a través de la práctica del modelado de amenazas, discutida anteriormente.

En la práctica:
  • Nunca confiar en el usuario (un tema común en estas prácticas y uno que siempre ignoramos).
  • Teniendo en cuenta la práctica anterior sobre mantener simple el proceso de seguridad, la lista blanca debe ser fácil de mantener y administrar.

7. Fallar en forma segura

Como escribió perfectamente Bruce Schneier, "cuando un cajero automático falla, se apaga; no arrojan dinero por la ranura".

Debemos darnos cuenta de que el fracaso es inevitable y de que las aplicaciones fallarán. Esto permite asegurar el entorno y estar preparados. Tenemos que asegurarnos que cuando nuestro software falle, no comiencen a ofrecer datos sensibles en el proceso.

En la práctica:
  • Seguir el principio de menor privilegio ayuda firmemente negando el acceso a cualquier usuario sin autenticar.
  • Si hay un error al procesar la información de inicio de sesión, se debe asegurar que la aplicación no divulgue ningún tipo de información que un error genérico
  • Registrar siempre la falla para su posterior análisis y para comprender el error y la estrategia de mejoras que se pueden seguir.
Se puede leer Failing-securely de US-CERT y FAIL-Open-Authentication

8. Evitar la seguridad por oscuridad

La seguridad por oscuridad no funciona. La hemos visto fallar una y otra vez pero sin embargo algunas organizaciones todavía no parecen entenderlo. Por ejemplo, mientras se exige a los usuarios que utilicen contraseñas seguras, se ofrece una "forma altenativa" de ingreso a la aplicación (backdoor)... Simplemente no se puede confiar en eso. Todavía se necesita validar las entradas, asegurar la base de datos, registrar los errores para su posterior análisis, etc.

Quizás una de las mejores maneras de evitar la seguridad por oscuridad es asumir que el código fuente ya fue comprometido. Esa sería la peor situación posible, pero no podemos mantener continuamente nuestros dedos cruzados con la esperanza de que una vulnerabilidad aún no descubierta aparezca y sea utilizada para atacar la organización.

En la práctica:
  • Asumir que el código fuente ya ha sido comprometido y siempre garantizar pruebas de seguridad adecuada.
  • Realizar un modelado de amenaza y seguir el principio de defensa en profundidad para conocer donde se puede ser más vulnerable y decidir cómo seguir adelante.

9. Corrección completa

Comprender y remediar las vulnerabilidades de mayor riesgo. Sólo a través de pruebas adecuadas y de la formación, una organización puede reducir verdaderamente sus riesgos de seguridad y aprender de los errores del pasado para planificar el futuro. Remediar las vulnerabilidades en el código es la única manera en que verdaderamente se puede avanzar en un programa de seguridad integral.

Un análisis de código fuente funciona especialmente bien tanto en lo que respecta a las pruebas por cuestiones de seguridad como en el caso de seguimiento de las revisiones. Tal y como dice la Guía de pruebas de OWASP:
Las pruebas de seguridad código y las Unit Test permiten validar que los cambios en el código fuente mitigan las vulnerabilidades a las que se está expuesto por los errores en la codificación.
Los resultados del análisis automático (y manual) de código pueden utilizarse como puerta de entrada para el control de software de control.

En la práctica:

  • Realizar pruebas y análisis de código y de seguridad manual y automático para ahorrar tiempo y problemas con un mínimo esfuerzo.

Lecturas recomendadas


    Suscríbete a nuestro Boletín

    0 Comments:

    Publicar un comentario

    Gracias por dejar un comentario en Segu-Info.

    Gracias por comentar!