Sistema seguro desde el inicio
¿Por que cuesta tanto generar un sistema seguro?
Generar un sistema seguro, parece ser algo complejo. Suele suceder que los arquitectos diseñan los sistemas sin tener en cuenta la seguridad, centrándose solamente en los requisitos funcionales para construir rápidamente un producto que sea viable.
Pero, ¿qué sucede cuando necesitamos aumentar la seguridad para proteger la información de posibles manipulaciones o filtraciones?
Los controles básicos de una aplicación generalmente son para proteger la identidad y los controles de acceso, pero, aun así, el intercambio y el almacenamiento de la información permanece desprotegido, ya que ésta reside en campos de texto legibles, en una base de datos sin cifrado y por lo tanto el sistema sigue siendo vulnerable al ataques externos e internos.
Generalmente las organizaciones intentan resolver el problema a través de la adquisición de herramientas de monitoreo de base de datos, para «alertar» al equipo de seguridad sobre posibles intentos de acceso no autorizado, y dependiendo del nivel de criticidad de la información, puede ser acompañada por la adquisición de herramientas de enmascaramiento de bases de datos y herramientas de protección de red.
Sin embargo, los problemas relacionados al diseño pobre de la arquitectura siguen siendo un riesgo que debe ser controlado.
Entonces, ¿qué medidas se recomiendan para incorporar seguridad en el diseño de tu sistema?
1) Tomar conciencia
Ese es el primer paso. Tomar conciencia de que la seguridad es tan importante como los requisitos funcionales para generar un sistema seguro. Si estás leyendo este artículo, significa que la seguridad es importante para ti, y estás en el camino correcto.
2) Prevención de riesgos
Determinar la sensibilidad de los datos que manejas y decidir qué mecanismo de protección se debe implementar para proteger estos datos en todo momento, tanto mientras esta almacenado en una base de datos, transportado dentro del sistema o intercambiando datos con sistemas externos, es una pieza clave para que el sistema seguro sea concebido de la mejor forma.
3) Los ataques internos también existen
Cuando pensamos en la seguridad, generalmente se piensa en ataques externos, por lo que implementamos controles de seguridad pensando que los peligros vendrán solo desde fuera de la organización. Pero hoy en día los ataques internos se dan con mayor frecuencia y es una de las formas de ataque más prominentes. Empleados descontentos, credenciales robadas o procedimientos operativos deficientes son una fuente para obtener acceso a los datos.
4) Redundancia
La mayoría de los diseños de sistemas tienden a minimizar la redundancia de datos por buenas razones; si los datos se almacenan en un lugar, es necesario actualizarlos en un solo lugar, lo que minimiza el riesgo de errores y hace que el sistema sea más eficiente. Pero un diseño seguro requiere incorporar cierta redundancia de los datos, para poder detectar y dificultar posibles alteraciones.
5) No confíes en nadie
Cada pieza de información que «ingresa» al sistema debe considerarse insegura, hasta que haya sido debidamente desinfectada y comprobada. Nuca debe utilizarse información externa, si la misma ya esta almacenada en tu sistema.
6) Realiza pruebas desde temprano y en forma continua
Aunque tú y tu equipo sean excelentes codificadores, debes probar tu sistema. Al principio del proceso, cuando empieces a realizar pruebas, comenzarás a buscar y resolver errores. A medida que el sistema evoluciona, incorpora pruebas automatizadas y, mejor aún, probadores externos que tendrán una mirada externa de tu sistema lo cual les permitirá desafiar tu diseño de maneras inesperadas, que a ti no se te hubieran ocurrido pensar.
8) Simple y sencillo
Mantén tu sistema lo más simple y sencillo posible, lo que ayudará a reducir la posibilidad de ataques a los que estará expuesto tu sistema, disminuirá las posibilidades de mal funcionamiento y reducirá los costos de una cobertura de pruebas más completa.
Conclusión.
Si sigue estos pasos, tu sistema estará seguro desde el inicio, y eso seguramente te facilitará la vida en el futuro. Lograrás un sistema más fácil de monitorear y operar de una manera segura, sin la necesidad de incorporar herramientas externas de protección.
Mantente en contacto.
Te invitamos a inscribirte en nuestra lista de correos para mantenerte informado. También puedes leer más artículos de nuestro blog o comunicarte con nosotros para conversar como podemos ayudarte a transformar tus desafíos en soluciones.
Software Testing Bureau es una empresa especializada en pruebas de software y nuestra meta es que todo el software que se libere sea funcional, seguro y confiable. Contamos con más de diez años de experiencia realizando pruebas de software para clientes de toda Latinoamérica.
Puedes seguirnos en Twitter y LinkedIn!