Está en la página 1de 6

MAESTRÍA EN DIRECCIÓN ESTRATÉGICA EN INGENIERÍA DE SOFTWARE

Módulo 14: Principios de Software Seguro


Elisa Alanoca Quispe
Mayo, 2023

Instrucciones del trabajo final

Se pide elaborar una matriz similar a la actividad 3, con algunas consideraciones adicionales.

Para la matriz considere lo siguiente:

• 5 casos en total (hallazgos cualquiera), en relación a revisiones técnicas a nivel Sistemas Operativos,
Base de Datos, Aplicación.
• 2 casos (hallazgos) sobre controles de aplicación.

La matriz deberá tener el siguiente formato:

• Riesgo: Describa el riesgo / hallazgos a nivel Sistemas Operativo, Base de Datos y Aplicación (lo propio
para los 2 casos de controles de aplicación)
• Nivel de Riesgo: Indicar el nivel de riesgo por ejemplo: “alto”, “medio” o “bajo” (esto dependerá y
estará en función al nivel de riesgo que usted defina). Para ello debe definir una metodología propia
de evaluación de riesgos . Es decir, debe considerar la probabilidad, el impacto y nivel de riesgo,
elabore su matriz de riesgo.
• Control: Proponga un control o controles, a fin de dar tratamiento al riesgo.

Nro. Riesgo Nivel de Control


riesgo
1 Acceso no autorizado a la Alto Es fundamental promover una cultura de seguridad de
base de datos, uso de contraseñas dentro de la organización y capacitar a los usuarios
contraseñas débiles o sobre las mejores prácticas de seguridad en la gestión de
compartidas en la base de contraseñas, se debe:
datos
• Implementar una política de contraseñas seguras y
robustas para la base de datos. Esto puede incluir:

• Establecer requisitos de complejidad para las


contraseñas, como una longitud mínima, el uso de
caracteres alfanuméricos y símbolos, y la inclusión de
letras mayúsculas y minúsculas.

• Exigir una rotación periódica de contraseñas para evitar


el uso prolongado de contraseñas comprometidas.

• Prohibir el uso de contraseñas compartidas y promover la


asignación individual de credenciales de acceso a la base
de datos.

• Implementar medidas de protección adicionales, como el


uso de autenticación de dos factores, para fortalecer la
seguridad del acceso a la base de datos.

• Realizar auditorías regulares de seguridad para identificar


cualquier brecha o debilidad en el sistema de
autenticación y tomar medidas correctivas inmediatas.

Cuando se producen fallos Medio Implementar un proceso de gestión de actualizaciones y parches


en el sistema operativo que que incluya lo siguiente:
2 afectan la estabilidad del
software, por la falta de • Mantenerse actualizado con las últimas versiones del
actualizaciones y parches en
sistema operativo y aplicar las actualizaciones de
el sistema operativo; puede
deberse a que el software seguridad y los parches de corrección de errores de
se ejecuta en versiones manera regular.
antiguas del sistema
operativo que no reciben las • Establecer un proceso de evaluación de compatibilidad
actualizaciones de para garantizar que las actualizaciones del sistema
seguridad y correcciones de operativo sean compatibles con el software y las
errores más recientes. aplicaciones utilizadas.

• Realizar pruebas exhaustivas de las actualizaciones y


parches antes de implementarlos en entornos de
producción para minimizar los posibles impactos
negativos.

• Establecer una política de respaldo adecuada antes de


aplicar las actualizaciones y parches, para poder revertir
los cambios en caso de que se produzcan problemas.

• Utilizar herramientas y servicios de gestión de parches


que ayuden a automatizar y simplificar el proceso de
actualización, asegurando que se implementen de
manera oportuna y efectiva.

Además de aplicar actualizaciones y parches, también es


importante tener en cuenta las mejores prácticas de seguridad del
sistema operativo, como la configuración adecuada de permisos,
la implementación de políticas de seguridad y la realización de
auditorías regulares para identificar y corregir cualquier debilidad
en el sistema operativo que pueda afectar la estabilidad del
software.
3 Corrupción de datos:Los Alto Para mitigar los riesgos asociados con los errores de codificación y
errores de codificación y las vulnerabilidades en la aplicación, se pueden implementar los
vulnerabilidades en la siguientes controles:
aplicación representan una
debilidad común que puede
• Realizar pruebas exhaustivas de seguridad: Realizar
comprometer la seguridad y
estabilidad del software. pruebas de seguridad como pruebas de penetración,
Estas debilidades pueden escaneo de vulnerabilidades y análisis estático de código
incluir prácticas de para identificar posibles vulnerabilidades y debilidades en
programación inseguras, la aplicación.
falta de validación de
entrada, inadecuada • Aplicar buenas prácticas de codificación segura:
gestión de errores, entre Fomentar y aplicar prácticas de codificación segura, como
otros. la validación adecuada de entrada, el uso de funciones
criptográficas seguras, la gestión adecuada de
excepciones y errores, y la protección contra ataques de
inyección de código.

• Implementar el principio de "defensa en profundidad":


Utilizar varias capas de seguridad en la aplicación, como
firewalls de aplicaciones web, filtros de entrada de datos,
encriptación de datos sensibles y autenticación
adecuada, para reducir la exposición a riesgos y mitigar
posibles vulnerabilidades.

• Realizar revisiones de código: Realizar revisiones


periódicas del código para identificar y corregir errores de
codificación y vulnerabilidades en la aplicación. Estas
revisiones pueden ser realizadas por pares de
programadores o por especialistas en seguridad.

• Mantenerse actualizado con los parches y actualizaciones


de seguridad: Mantener la aplicación actualizada con los
últimos parches y actualizaciones de seguridad
proporcionados por los proveedores de software y
bibliotecas utilizadas. Esto ayuda a abordar las
vulnerabilidades conocidas y proteger la aplicación
contra amenazas conocidas.

Además, es importante fomentar una cultura de seguridad en el


equipo de desarrollo de software, proporcionando capacitación en
buenas prácticas de codificación segura y concienciando sobre la
importancia de la seguridad en todas las etapas del ciclo de vida
del desarrollo de software.
4 Pérdida de datos debido a Alto Es fundamental implementar y mantener un proceso sólido de
fallos de la base de datos, respaldo y recuperación de datos, y asegurarse de que se sigan las
debido a la falta de copias mejores prácticas de seguridad y almacenamiento de copias de
de seguridad adecuadas. Si
seguridad. Además, se recomienda realizar revisiones periódicas
no se implementan las
de las políticas y procedimientos de respaldo para garantizar su
medidas adecuadas para
respaldar los datos de la efectividad y cumplimiento.
base de datos, existe el Se pueden implementar los siguientes controles:
riesgo de que se produzcan
fallos en la base de datos y • Plan de respaldo y recuperación: Establecer un plan de
se pierdan los datos respaldo y recuperación de la base de datos que incluya
almacenados. la programación regular de copias de seguridad. Esto
garantizará que los datos se respalden de manera
adecuada y que haya puntos de recuperación disponibles
en caso de fallos en la base de datos.

• Pruebas de restauración: Realizar pruebas periódicas de


restauración de copias de seguridad para asegurarse de
que los datos respaldados se puedan restaurar
correctamente. Esto ayuda a verificar la integridad de los
datos de respaldo y la eficacia del proceso de
recuperación.

• Almacenamiento seguro de copias de seguridad:


Almacenar las copias de seguridad en ubicaciones
seguras y protegidas, lejos de la ubicación física de la base
de datos. Esto protege los datos de respaldo contra
pérdidas o daños físicos, como incendios, robos o
desastres naturales.
• Políticas de retención de datos: Establecer políticas claras
de retención de datos que determinen la duración y el
período de retención de las copias de seguridad. Esto
asegura que los datos se retengan durante el tiempo
adecuado y se eliminen de manera segura cuando ya no
sean necesarios.

• Monitoreo de la integridad de la base de datos:


Implementar herramientas y técnicas de monitoreo de la
integridad de la base de datos para identificar posibles
fallos y problemas de manera temprana. Esto ayuda a
prevenir la pérdida de datos y permite tomar medidas
correctivas antes de que ocurra un problema grave.
5 Corrupción de datos en la Media Para mitigar este riesgo y abordar la debilidad técnica, se pueden
base de datos, es común implementar los siguientes controles:
debido a la falta de
integridad y validación de • Restricciones y reglas de integridad: Establecer
datos. Esto puede permitir
restricciones y reglas de integridad en la base de datos
la inserción de datos
incorrectos, incompletos o para garantizar que los datos cumplan con las reglas y
inconsistentes en la base de estructuras definidas. Esto puede incluir restricciones de
datos, lo que puede clave primaria, clave foránea y reglas de validación para
comprometer la calidad y asegurar la integridad de los datos.
confiabilidad de los datos
almacenados. • Validación de entrada: Realizar una validación exhaustiva
de los datos antes de ser insertados en la base de datos.
Esto incluye verificar la precisión, completitud y
consistencia de los datos proporcionados por los usuarios
o fuentes externas.

• Transacciones y control de concurrencia: Utilizar


transacciones y mecanismos de control de concurrencia
adecuados para garantizar la consistencia y evitar la
corrupción de datos en situaciones de acceso
concurrente. Esto ayuda a mantener la integridad de los
datos durante las operaciones de lectura y escritura.

• Copias de seguridad y recuperación: Implementar un plan


de copias de seguridad y recuperación de datos adecuado
que permita restaurar los datos en caso de corrupción.
Esto incluye realizar copias de seguridad periódicas y
asegurarse de que los procedimientos de recuperación
sean eficientes y probados.

• Monitoreo y detección de corrupción de datos:


Implementar herramientas y técnicas de monitoreo que
permitan detectar y alertar sobre la corrupción de datos
en tiempo real. Esto ayuda a identificar y solucionar
problemas de corrupción de datos de manera rápida y
eficiente.

• Además de estos controles, es importante establecer


políticas y procedimientos de gestión de datos
adecuados, capacitar al personal en la importancia de la
integridad de los datos y realizar auditorías regulares para
identificar y corregir posibles debilidades técnicas en la
gestión de datos.
6 Fallos de seguridad en la Alta Se pueden implementar los siguientes controles:
autenticación y autorización
debido a la implementación • Contraseñas seguras: Requerir contraseñas fuertes que
débil de los mecanismos de
cumplan con políticas de complejidad, incluyendo una
autenticación y autorización
combinación de caracteres alfanuméricos, mayúsculas y
en la aplicación. Esto puede
permitir ataques de fuerza minúsculas, y caracteres especiales. Además, establecer
bruta, vulnerabilidades de políticas de expiración y bloqueo de contraseñas después
sesión, manipulación de de un número determinado de intentos fallidos.
tokens u otros métodos de
elusión de la seguridad, lo • Verificación en dos pasos (2FA): Implementar un sistema
que resulta en un acceso no de autenticación de dos factores que requiera no solo la
autorizado a la aplicación y contraseña, sino también un segundo factor, como un
a los datos sensibles. código generado por una aplicación de autenticación o un
mensaje de texto enviado al dispositivo móvil del usuario.

• Gestión adecuada de permisos y roles: Establecer un


modelo de permisos y roles bien definido que limite el
acceso a la funcionalidad y los datos de la aplicación en
función de la autorización del usuario. Asegurarse de que
solo los usuarios autorizados tengan los privilegios
necesarios y que se implementen controles de acceso
adecuados.

• Protección de tokens de sesión: Utilizar técnicas de


protección adecuadas para los tokens de sesión, como su
almacenamiento seguro en el lado del servidor, el uso de
cookies seguras o la generación de tokens únicos y de
corta duración. Además, establecer políticas de
caducidad y revocación de sesiones inactivas para limitar
el tiempo de exposición.

• Pruebas de seguridad: Realizar pruebas de seguridad


regulares, como pruebas de penetración, para identificar
posibles vulnerabilidades en la autenticación y
autorización de la aplicación. Esto ayuda a identificar
debilidades técnicas y aplicar los controles necesarios
antes de que sean explotadas por posibles atacantes.

Además de implementar estos controles, es fundamental


mantenerse actualizado sobre las mejores prácticas de seguridad
en autenticación y autorización, y seguir los estándares y
recomendaciones de seguridad relevantes, como OAuth, OpenID
Connect, entre otros.
7 Inyeccion de código Alto Para mitigar este riesgo y abordar la debilidad técnica, se pueden
malicioso en la aplicación implementar los siguientes controles:
debido a la falta de
validación y sanitización
• Validación de entrada: Realizar una validación exhaustiva
adecuada de las entradas de
de todas las entradas de usuario para asegurarse de que
usuario. Esto puede
permitir que los atacantes cumplan con los formatos y tipos de datos esperados.
inyecten código malicioso, Esto incluye el uso de listas blancas (permitir solo ciertos
como comandos SQL, caracteres o patrones), verificación de longitud adecuada
scripts JavaScript o código y validación de tipos de datos.
PHP, en las entradas de la
aplicación, lo que podría dar • Sanitización de entrada: Aplicar técnicas de sanitización a
lugar a la ejecución de las entradas de usuario para eliminar o escapar de
acciones no deseadas o la caracteres especiales que puedan ser utilizados para
exposición de datos
inyectar código malicioso. Esto puede incluir el uso de
sensibles.
funciones específicas de sanitización según el contexto,
como htmlspecialchars() en PHP o htmlentities() en otros
lenguajes.

• Consultas parametrizadas o declaraciones preparadas:


Utilizar consultas parametrizadas o declaraciones
preparadas en lugar de concatenar directamente las
entradas de usuario en las consultas SQL. Esto ayuda a
prevenir la inyección de código SQL al separar los datos
de la consulta en sí.

• Limitar privilegios de ejecución: Asegurarse de que la


aplicación se ejecute con los privilegios mínimos
necesarios en el servidor o entorno de ejecución. Esto
reduce el impacto potencial de una inyección de código
malicioso limitando las acciones que el código de la
aplicación puede realizar en el sistema.

• Pruebas de penetración y revisión de código: Realizar


pruebas de penetración y análisis estático de código para
identificar posibles puntos de inyección y
vulnerabilidades en la aplicación. También es importante
contar con revisiones de código por parte de pares o
expertos en seguridad para detectar posibles debilidades
técnicas y garantizar la implementación adecuada de los
controles.

Es esencial mantenerse actualizado sobre las últimas técnicas de


ataque y las mejores prácticas de seguridad en el desarrollo de
aplicaciones para asegurar que se implementen los controles
adecuados para prevenir la inyección de código malicioso.

Matriz de riesgo:

GRAVEDAD IMPACTO
MUY
BAJO MEDIA ALTO ALTO
2 3 4 5

MUY ALTO 5 10 15 20 25
Aparicion
ALTO 4 8 12 16 20
Probabilidad
MEDIO 3 6 9 12 15
BAJO 2 4 6 8 10

Riesgo muy grave, requiere medidas preventivas urgentes

Riesgo importante requiere medidas preventivas obligatorias

Riesgo apreciable

También podría gustarte