Requerimientos de seguridad

Anuncio
SEGURIDAD
La seguridad en sistemas es un área de las
Ciencias de la Computación que se ocupa
de diseñar las normas, procedimientos,
métodos y técnicas destinados a conseguir
un sistema de información seguro y
confiable.
El objetivo es prevenir ataques y
minimizar los riesgos que surgen de
distintos tipos de amenazas.
SEGURIDAD
Orígenes de las amenazas
•Usuarios
•Personal técnico interno
•Intrusos
•Errores de programación
•Programas maliciosos
•Fallos electrónicos o lógicos
•Siniestros
•Catástrofes naturales
SEGURIDAD
Tipos de ataques
Internos
Externos
SEGURIDAD
Consecuencias de los ataques
•Robo de información
•Destrucción de información
•Anulación del funcionamiento de los
sistemas
•Suplantación de la identidad
SEGURIDAD
La seguridad en sistemas es una cualidad que
se mide con valores 0 o 1, un sistema es
seguro o no es seguro.
No es posible garantizar la seguridad.
Un sistema es seguro hasta que se detecta
una vulnerabilidad.
Las vulnerabilidades son los puntos débiles
que permiten que un atacante comprometa
la integridad, disponibilidad o
confidencialidad de los datos .
SEGURIDAD EN LOS DATOS
Alternativas de ataque
Modificación restringida
y auditable
Integridad
CIA
Confidencialidad
Visibilidad
restringida
Disponibilidad
Accesibilidad libre de
ataques
SEGURIDAD EN LOS DATOS
Es necesario controlar
• Ingreso y generación
• Almacenamiento
• Transmisión
Se busca prevenir tanto
errores no intencionales como
ataques intencionales.
SEGURIDAD EN LOS DATOS
Principio de seguridad
• Validar todas las entradas
• Filtrar todas las salidas
¿Es suficiente?
La seguridad nunca puede quedar a
cargo del usuario o de otro tipo de actor
externo.
 Peer to peer
 Cliente-Servidor
 Clound
SEGURIDAD EN LOS DATOS
Ingreso
• Autenticación segura - Identidad
• Definir niveles de acceso - Permisos
• Evitar inyecciones de código
SEGURIDAD EN LOS DATOS
Autenticación segura
La autenticación es el proceso que le permite
a una entidad probar su identidad ante otra.
La autenticación segura busca prevenir
ataques a través de la usurpación de
identidad.
Los protocolos de autenticación digital
actuales permiten demostrar la posesión de
las credenciales sin transmitirlas por la red.
SEGURIDAD EN LOS DATOS
Autenticación segura
La autenticación segura se basa en el uso
de una credencial:
• Contraseñas
• Certificado Digital
• Firma Digital
Los dos últimos previenen repudio.
SEGURIDAD EN LOS DATOS
Autenticación segura
Pilares
 Lo que el usuario sabe (su contraseña)
 Lo que el usuario tiene (tarjeta, smartphone)
 Lo que el usuario es (retina, huella digital)
Un ataque busca vulnerar el pilar más débil.
La seguridad de cada uno está ligada a la
tecnología empleada, tanto el software y
hardware
SEGURIDAD EN LOS DATOS
Autenticación segura
Contraseñas, niveles de restricción
 8 caracteres que combinen números, letras
mayúsculas y minúsculas
 Actualización cada 40 días
 Almacenamiento seguro de contraseñas
 No repetir entre las últimas 5
 Forzar cambiar contraseña asignada por el
administrador
 Con 5 intentos fallidos se bloquea
Evitar los ataques por fuerza bruta
SEGURIDAD EN LOS DATOS
Autenticación segura
Un certificado digital es un documento electrónico
que permite garantizar la identidad del emisor de un
mensaje o el usuario de un sistema.
El certificado digital permite verificar que la
autorización del usuario para acceder al sistema está
vigente, pero también protege la identidad del
usuario mismo.
SEGURIDAD EN LOS DATOS
Autenticación segura
Un certificado digital consta de una pareja de
claves criptográficas, una pública y una privada.
Lo otorga una autoridad de certificación, que es
una entidad de confianza que asegura que la clave
pública se corresponde con los datos del titular.
SEGURIDAD EN LOS DATOS
Autenticación segura
Las claves se crean con un algoritmo matemático,
de forma que aquello que se cifra con una de las
claves sólo se puede descifrar con su clave pareja.
El titular del certificado debe mantener bajo su
poder la clave privada, ya que si ésta es sustraída, el
sustractor podría suplantar la identidad del titular
en la red.
En este caso el titular debe revocar el certificado lo
antes posible, igual que se anula una tarjeta de
crédito sustraída.
SEGURIDAD EN LOS DATOS
Autenticación segura
La firma digital es un mecanismo criptográfico que
permite al receptor de un mensaje firmado
digitalmente tener certeza, no solo de la autoría del
mensajes, sino también de que este no ha sido
alterado desde su firma.
La firma digital otorga plena prueba y valor legal
para efectuar transacciones.
Un certificado digital tiene la firma digital de la
autoridad certificante.
SEGURIDAD EN LOS DATOS
Autenticación segura
La validez de una firma se ampara en la
imposibilidad de falsificarla.
La clave es secreta, única, verificable, no repudiable
y se obtiene con algoritmos complejos.
Como la firma no es repudiable, el firmante no
puede negar su propia firma.
SEGURIDAD EN LOS DATOS
Autenticación segura
La firma digital es un instrumento con características
técnicas y normativas.
Es decir, existen procedimientos técnicos que
permiten la creación y verificación de firmas
digitales, y existen documentos normativos que
respaldan el valor legal de las firmas.
SEGURIDAD EN LOS DATOS
Autenticación segura
El sistema no debería permitir que el atacante
haga un bypass de la aplicación y acceda
directamente a los datos.
La web implica nuevos desafíos.
SEGURIDAD EN LOS DATOS
Autenticación segura
Una aplicación con autenticación no debería
permitir que sus funcionalidades puedan
accederse directamente con un link.
Robar una cookie (por ejemplo porque el
servidor la guarda en una carpeta pública)
permite acceder a una sesión de usuario sin
tener credenciales.
Cuando el usuario termina una sesión el
browser no debería permitir volver a ella con la
opción back.
SEGURIDAD EN LOS DATOS
Restricciones de acceso
Las restricciones de acceso habilitan o
limitan el acceso a ciertas funcionalidades
o datos en base a la identidad o rol del
usuario (autenticado).
Pueden depender del estado del sistema,
la hora, la localización del usuario, etc.
SEGURIDAD EN LOS DATOS
Restricciones de acceso
Modelo basado en roles
 Jerárquico (Administrador, supervisor, operario,
el administrador no tiene restricciones, el
supervisor puede hacer todo lo que puede hacer el
operario)
 No jerárquico (Auditor, Gerente, Cajero, no hay
relación jerárquica entre Auditor y Cajero. El
auditor puede ver todo, pero no puede modificar.
El cajero solo puede ver y modificar algunos
datos)
SEGURIDAD EN LOS DATOS
Restricciones de acceso
Para cada rol o nivel de usuario se definen
los permisos o las restricciones.
SEGURIDAD EN LOS DATOS
Inyecciones de código
Los controles de acceso a los datos sobre los
caminos convencionales son insuficientes.
No alcanza con que las opciones insertar,
modificar o editar ofrecidas por el sistema
requieran autenticación.
Es necesario prevenir otras formas de acceder
a estas operaciones, por fuera de la aplicación.
Más aun es necesario prevenir la modificación
de las tablas usadas por la autenticación.
SEGURIDAD EN LOS DATOS
Inyecciones de código
Cuando el usuario completa un formulario
escribe 50 caracteres en un campo que requiere
20. Los 30 caracteres adicionales pueden ser un
comando SQL que modifica los datos
almacenados
Los primeros 20 caracteres se chequean
dependiendo del tipo de campo y el resto se
descarta o se usa para detectar ataque.
Principio de seguridad:
Validar toda la entrada
SEGURIDAD EN LOS DATOS
Inyecciones de código
Un generador de reportes tan flexible que
permite al usuario ingresar un comando SQL
que accede directamente a la base datos,
habilita a un usuario que inició una sesión para
consultar información, pueda también
modificarla.
Si los requerimientos imponen restricciones de
acceso para modificar la información, las
funcionalidades ofrecidas para mostrar datos no
deberían permitir modificarlos.
SEGURIDAD EN LOS DATOS
Generación de datos
La opciones de procesamiento estadístico no
deberían permitir inferir otro tipo de datos.
¿Cuántos empleados varones de 62 años tienen
antecedentes penales?
Si la respuesta es 1 y el usuario sabe que hay un
único empleado con 62 años, identificó a quien
tiene antecedentes penales.
Principio de seguridad:
Filtrar toda la salida
SEGURIDAD EN LOS DATOS
Transmisión y almacenamiento de datos
Plano
Encriptado
Sniffing
SEGURIDAD EN LOS DATOS
Encriptación
• Grandes volúmenes de datos (algoritmos
simétricos)
• Contraseñas (algoritmos hash para encriptar
contraseñas almacenadas)
• Firma Digital (algoritmos asimétricos y hash
para encriptación)
El algoritmo no basta, RCA va a fallar si la
contraseña tiene 4 letras.
SEGURIDAD Y CICLO DE VIDA
REQUERIMIENTOS DEL NEGOCIO Y REGLAS DEL NEGOCIO
ANÁLISIS DE RIESGOS
REVISIÓN DE CÓDIGO
TEST SEGURIDAD
TEST DE PENETRACIÓN
OPERACIONES DE SEGURIDAD
RN+RU
Requerimientos
Análisis
de Riesgos
Diseño
Revisión de código +
Análisis estático
Implementación
Testing de
Seguridad
Testing
Penetration
Testing
Operaciones
de Seguridad
Mantenimiento
REQUERIMIENTOS DE SEGURIDAD
Surgen de
• Reglas del negocio
• Requerimientos del Usuario: casos de
abuso
Están incluidos en
• Requerimientos no funcionales
Derivan en:
• Requerimientos funcionales
• Requerimientos para los datos
REQUERIMIENTOS DE SEGURIDAD
Reglas del Negocio
ISO 27000.
FISMA, Federal Information Security Management Act.
SOX, Sarbanes-Oxley.
HIPAA, Health Insurance Portability & Accountability Act.
PCI DSS, Payment Card Industry Data Security Standard.
NIST SP 800, National Institute of Standards and Technology
Special Publication (series).
COBIT, Control Objectives for Information and Related
Technology.
ITIL, Information Technology Infrastructure Library.
OTROS!
REQUERIMIENTOS DE SEGURIDAD
¿Necesita que el sistema sea seguro?
¿Cuán seguro debería ser el sistema?
No son preguntas adecuadas
REQUERIMIENTOS DE SEGURIDAD
¿Qué datos son confidenciales?
¿Sobre qué funcionalidades es necesario
restringir el acceso?
¿Para qué tipos de usuarios?
¿Es posible definir roles? ¿La estructura
de roles es jerárquica?
¿Qué mecanismo es adecuado para
restringir el acceso? ¿Contraseñas?
¿Credencial digital?¿Firma digital?
REQUERIMIENTOS DE SEGURIDAD
Caso de uso
UC 1: Login al Web Store
Actor principal: Cliente.
Precondición: el Cliente tiene acceso a internet.
Postcondición: el Cliente tiene acceso a su cuenta.
Descripción Breve: El Cliente ingresa su nombre de
usuario y contraseña y si son válidos consigue acceder
a su cuenta para comprar online.
REQUERIMIENTOS DE SEGURIDAD
Casos de abuso
Los casos de abuso del usuario son los casos de uso de
quien intenta vulnerar el sistema.
Por ejemplo:
• Obtener datos privados
• Alterar datos
• Denegar servicio a la aplicación
Lo que NO debe hacer software, podrían considerarse
como anti-requerimientos
REQUERIMIENTOS DE SEGURIDAD
Caso de abuso
MUC 1: Sniffing de Password
Actor Primario: Atacante
Precondición: El atacante tiene acceso a una máquina
“en el camino” (red) entre el usuario y el sistema.
Postcondición: El atacante obtuvo una (o más)
credenciales (usuario/passwd) válidos.
Descripción Breve: El atacante pretende obtener
credenciales para luego lograr acceso no autorizado al
sistema.
REQUERIMIENTOS DE SEGURIDAD
Caso de abuso
Flujo Normal
1. El Atacante instala un sniffer de red.
2. El sniffer guarda todos los paquetes que contengan los
strings “Login”, “Username”, o “Password”.
3. El atacante lee los logs del sniffer.
4. El atacante prueba con pares username/password
5. Si encuentra un par válido logra acceso al sistema.
Requerimiento funcional derivado: cinco intentos continuos y
fallidos de login, bloquean la cuenta.
Observación: un atacante puede bloquear el acceso al usuario
legítimo.
REQUERIMIENTOS DE SEGURIDAD
Casos de uso y casos de abuso
Mitiga – Un caso de uso puede mitigar la
posibilidad de que un caso de abuso pueda
completarse exitosamente (para el atacante).
Amenaza – Un caso de abuso puede amenazar
un caso de uso, explotándolo o dificultándolo.
REQUERIMIENTOS DE SEGURIDAD
Usuario común
incluye
Enviar información
extiende
Encriptar todos los datos
y enviar Texto Cifrado
Embeber el Texto Cifrado
en una Imagen
Atacante
Hackear el canal de
comunicación
y obtener el texto plano
Capturar el texto cifrado
y hacer criptoanálisis
para extraer el texto plano
REQUERIMIENTOS DE SEGURIDAD
Escenarios
Escenario 1: La aplicación almacena información
sensible que debe ser protegida según el standard
HIPAA.
Requerimiento de seguridad: aplicar criptografía
fuerte para proteger información confidencial.
REQUERIMIENTOS DE SEGURIDAD
Escenarios
Escenario 2: La aplicación transmite datos de usuario
confidenciales usando redes no confiables.
Requerimientos de seguridad: Los canales de
comunicación deben protegerse con criptografía para
prevenir snooping . Además debe emplearse
autenticación criptográfica mutua para prevenir
ataques man-in-the-middle (integridad y
autenticidad)..
REQUERIMIENTOS DE SEGURIDAD
Escenarios
Escenario 3: La aplicación debe permanecer
disponible a usuarios legítimos.
Requerimientos de seguridad: Debe monitorearse la
utilización de recursos por parte de usuarios remotos
para limitarla a aquellos que sean legítimos.
SEGURIDAD VS. USABILIDAD
Un sistema seguro va a requerir mayor
esfuerzo del usuario:
• Ingresar contraseña
• Actualizar contraseña periódicamente
• Validación estricta de los datos de
entrada
Puede ser contraproducente. El usuario establece
contraseñas obvias, las transmite de manera no
segura o directamente las tiene a la vista.
SEGURIDAD VS. DISPONIBILIDAD
Un sistema de autenticación que
bloquea al usuario luego de 5 intentos
fallidos, compromete la disponibilidad.
Para balancear seguridad y
disponibilidad, el analista puede
plantear al cliente la alternativa de
desbloquear automáticamente al
usuario, luego de trascurrido cierto
período de tiempo.
http://cybersecurity.ieee.org/center-for-secure-design/avoiding-thetop-10-security-flaws.html
OWASP LIST
OWASP Top
10-2003
OWASP Top
10-2004
A1-Entrada no
validada
A1-Entrada no
validada
A2-Control de
acceso
interrumpido
A2-Control de
acceso
interrumpido
A3-Administración
de cuentas y
sesión
interrumpida
OWASP Top
10-2007
OWASP Top
10-2010
A1-Secuencia de
comandos en sitios A1-Inyección
cruzados XSS
A2-Fallas
de inyección
A3-Administración
A3-Ejecución de
de autenticación y
ficheros
sesión
malintencionados
interrumpida
A4-Referencia
A4-Fallas de cross A4-Fallas de cross
insegura y directa
site scriptingXSS
site scriptingXSS
a objetos
A5A5A5-Falsificación de
Desbordamiento Desbordamiento peticiones en sitios
de bufer
de bufer
cruzados CSRF
OWASP Top
10-2013
A1-Inyección
A2-Pérdida de
A2-Secuencia de
autenticación y
comandos en sitios
gestión de
cruzados XSS
sesiones
A3-Pérdida de
A3-Secuencia de
autenticación y
comandos en sitios
gestión de
cruzados XSS
sesiones
A4-Referencia
A4-Referencia
directa insegura a directa insegura a
objetos
objetos
A5-Falsificación de A5-Configuración
peticiones en sitios de seguridad
cruzados CSRF
incorrecta
OWASP LIST
OWASP Top
10-2003
A6-Fallas de
inyección de
comandos
OWASP Top
10-2004
A6-Fallas de
inyección
A7-Manejo
A7-Problemas de
inadecuado de
manejo de errores
errores
A8-Uso inseguro
de criptografía
A9-Fallas de
administración
remota(no
aplicable)
A10-Configuración
indebida de
servidor web y de
aplicación
A8Almacenamiento
inseguro
A9-Negación de
servicio
OWASP Top
10-2007
A6-Revelación de
información y
gestión incorrecta
de errores
A7-Pérdida de
autenticación y
gestión de
sesiones
A8Almacenamiento
criptográfico
inseguro
A9Comunicaciones
inseguras
A10A10-Falla de
Administración de
restricción de
configuración
acceso a URL
insegura
OWASP Top
10-2010
OWASP Top
10-2013
6-Defectuosa
configuración de
seguridad
A6-Exposición de
datos sensibles
A7Almacenamiento
criptográfico
inseguro
A7-Ausencia de
control de acceso a
las funciones
A8-Falla de
restricción de
acceso a URL
A8-Falsificación de
peticiones en sitios
cruzados CSRF
A9-Uso de
A9-Protección
componentes con
insuficiente en la
vulnerabilidades
capa de transporte
conocidas
A10-Redirecciones A10-Redirecciones
y reenvíos no
y reenvíos no
validados
validados
Descargar