El jueves 11 de noviembre de 2021 se publicó en el Boletín Oficial la Disposición 8/2021 de la Dirección Nacional de Ciberseguridad (la “Disposición”). (1)
La misma aprueba la Guía Introductoria a la Seguridad para el Desarrollo de Aplicaciones Web (la “Guía”). La misma está pensada con el objetivo de contribuir al desarrollo seguro de aplicaciones en organismos que forman parte del Sector Público Nacional.
Se destaca que la programación segura es la práctica de escribir código agotando todos los esfuerzos para que no sea vulnerable. Actualmente, gran parte de los ataques cibernéticos tienen que ver con un aprovechamiento de las vulnerabilidades del software. En este sentido, es que se busca – a través de la Guía- impartir una serie de principios y buenas prácticas de seguridad que sean incorporadas durante todas las etapas del ciclo de vida del desarrollo del software.
La Guía fue escrita por personal técnico -integrantes de la Dirección Nacional de Ciberseguridad – y otros especialistas y está organizada en doce secciones. Estas incluyen consideraciones sobre ciertos requerimientos, principios para un diseño seguro, seguridad en procesos de implementación, programación, ataques comunes, mantenimiento, entre otras.
Por ejemplo, en la sección seis, al hablar sobre los principios para un diseño seguro se señala que ciertas vulnerabilidades suelen incorporarse a la aplicación a partir de decisiones de diseño incorrectas. Por ello, se alerta sobre ciertos puntos en los que conviene reparar y tener en cuenta para prevenir fallos:
a. Minimizar la superficie de ataque: cada línea de código es un “bug” en potencia, lo cual puede implicar una vulnerabilidad a ser explotada. Por ello, se debe reducir la cantidad de componentes y librerías de las que dependerá.
b. Diseñar para ser mantenido: diseñar sistemas de arquitectura simple cuyo mantenimiento sea sencillo y permita corregir vulnerabilidades en forma rápida y efectiva. Cuánto más simple sea el sistema utilizado, más pequeña será la ventana de vulnerabilidad, ya que se detectará con rapidez dónde y cuál es el problema.
c. Eslabón débil: la arquitectura de seguridad de una aplicación será tan resistente como lo sea el componente con el mínimo de seguridad, ya que los atacantes suelen comenzar por explotar las vulnerabilidades más fáciles.
d. Seguridad por defecto: dado que los usuarios no suelen cambiar los parámetros de seguridad que obtienen “por defecto”, es recomendable ofrecer desde un principio que todos los controles de seguridad estén encendidos.
e. Mantener la usabilidad: lograr un equilibrio entre controles de seguridad y la usabilidad del sistema, evitando confundir a los usuarios y llevarlos a tomar malas decisiones de seguridad.
f. Autorización para todo por defecto: configurar la aplicación para que se requiera autorización para acceder a los recursos que ofrece.
g. Principio de mínimo privilegio: asignar a un componente o usuario solo los permisos necesarios y suficientes para realizar una acción específica, y siempre postergarlos hasta lo más cercano a la ejecución de dicha acción. Asimismo, revocarlos una vez dejen de ser necesarios.
h. Separación de responsabilidades y roles: separar y aislar privilegios de modo que una falla no afecte ni se replique en el resto del sistema.
i. Defensa en profundidad: establecer controles de seguridad consecutivos que seguirán en pie independientemente de que falle alguno de los otros.
j. Controles: no confiar en datos validados en un equipo cliente ya que un atacante podría manipularlos arbitrariamente.
k. Administradores: dado que el software no puede defenderse a sí mismo de atacantes, la aplicación debe dar herramientas que permitan a los administradores analizar el comportamiento de los usuarios para detectar cualquier problema y, en su caso, solucionarlo.
l. Secretos: diseñar teniendo en mente que el público acabará conociendo los detalles de su funcionamiento interno.
m. Modelado de amenazas: ayuda a estudiar y mejorar los diseños propuestos para la aplicación, detectando los puntos débiles.
Las restantes secciones contienen gran detalle de recomendaciones y situaciones para prevenir la exposición a amenazas en las aplicaciones, acompañando a los desarrolladores en cada etapa del proceso.
Este artículo es un breve comentario sobre temas de interés general y novedades legales en Argentina. En este sentido, no pretende ser un análisis exhaustivo ni brindar asesoramiento legal.
Referencias:
Autor:
Ignacio Sáenz Valiente
Socio | Asesoramiento Corporativo y Reorganizaciones Societarias
ivaliente@svya.com.ar
Foto/ilustración:
Foto de Tecnología creado por rawpixel.com