Programación de código seguro



Documentos relacionados
Seguridad en Sitios Web de Alto Tráfico. Ing. Enrique Hurtarte Juárez

Análisis Forense de Aplicaciones Web

Introducción a los certificados digitales

Introducción. Ciclo de vida de los Sistemas de Información. Diseño Conceptual

Hacking Ético Web. I Jornadas Tecnológicas CEEPS Carlos García García i52gagac@uco.es

Ataques a Aplicaciones de Bases de Datos

Catálogo de Iniciativas de Software de Latinoamérica

4S ESTANDARIZAR - SEIKETSU : Mediante la identificación se establece un lenguaje común: un nombre para cada cosa y cada cosa con un solo nombre.

PROCESO DE SOLICITUD DE EXAMEN DE VEHÍCULOS INDUSTRIALES

Contraseñas seguras: Cómo crearlas y utilizarlas

Operación 8 Claves para la ISO

Guía rápida de instalación

En cuanto a qué información está expuesta, la respuesta es que depende del espía que tengamos en nuestro equipo:

No es necesario crear una nueva cuenta, sólo deberá ingresar así:

Pruebas de Seguridad en aplicaciones web segun OWASP Donde estamos... Hacia donde vamos?

Google Calendar. Google Calendar

Problemas de correo. Debes rellenar este apartado con el nombre completo, por ejemplo,

PROCEDIMIENTO OPERATIVO DESARROLLAR SISTEMAS INFORMÁTICOS PDO-COCTI-DTIN-04

Deberemos escoger de nuestro equipo humano un responsable de la implementación (si no queremos hacerlo personalmente).

COPPEL MANUAL TÉCNICO MCC DE SISTEMAS PROGRAMACIÓN DESCRIPCIÓN DEL PROCESO DE ARQUITECTURA DE SOFTWARE

de la LOPD y del RDLOPD Cómo cumplir con la Ley sin perder operatividad y eficacia

TEMA 7: DIAGRAMAS EN UML

Advanced Cargo Information (ACI) Cuba Customs. Sending web messages ENTREGA DE MENSAJES ACI MEDIANTE EL SITIO WEB

Auditoría de Seguridad

PROCEDIMIENTO DE AUDITORIA INTERNA

La necesidad de construir software seguro

PROGRAMACIÓN PÁGINAS WEB CON PHP

Wiip Surveillance. Sistema de gestión de rondas de vigilancia. Wiip Systems C.B. S.L

2011 Universidad de Sevilla Grupo IDINFOR Universidad Carlos III Grupo ENTI

Investigación de Accidentes e Incidentes. AGELEC Ltda.

ITACA - Entrada al sistema ITACA: Describe como entrar al sistema y los problemas típicos asociados al acceso a un sistema informático

Estándares para planes de calidad de software. Escuela de Ingeniería de Sistemas y Computación Desarrollo de Software II Agosto Diciembre 2008

4. Si se le han de hacer presupuestos se utiliza un cliente Varios cuyos datos se pasan desde el cliente Marketing mediante un botón.

Gestión Documental con Microsoft Office SharePoint Server 2007 (MOSS) Ignacio López - Ingeniero en Informática Software Architect en Alhambra-Eidos

Ejemplos y guías de aprendizaje Versión 8 Release 0. Guía de aprendizaje de Hiring Sample (Ejemplo de contratación para IBM Process Designer

Utilización del programa de Orabench Versión para Migración. Describir los pasos para la utilización del programa Orabench de Oracle.

b1010 formas de escribir código (in)seguro

CIMA. MANUAL DE USUARIO

UD 1: Adopción de pautas de seguridad informática

Programa en Microsoft Visual Basic 6.0 para el análisis de riesgos eléctricos en oficinas y centros de cómputo. López Rosales, Juan Carlo.

Modelamiento de Amenazas en el Desarrollo de Software

Primeras Jornadas de Seguridad Web OWASP DAY ARGENTINA 2010

MANUAL DE CONFIGURACIÓN DEL SERVICIO DE CORREO ELECTRÓNICO

El mercado de tarjetas de crédito viene utilizando un sistema anticuado para los

REGLAMENTO DE CENTRO DE CÓMPUTO

PROCEDIMIENTO DE AUDITORIA INTERNA

Preparado especialmente Por Orgatec TUTORIAL. MEJORA CONTINUA Parte del Sistema de Gestión de Calidad

"COACHING: HERRAMIENTA PARA EL DESARROLLO DEL POTENCIAL HUMANO" Presentado por: María José López Meseguer

Ingeniero Técnico en Informática - UCA Máster en Ingeniería del Software - US Máster en Seguridad de las TIC - US

COMERCIO ELECTRÓNICO COMERCIO ELECTRONICO. Gerencia Comercial

Este Anexo IV forma parte del Contrato Marco Multiservicios ( Contrato") suscrito entre I-MED S.A. y el Prestador.

Servicios Administrados al Cliente

Trabajo Semanal Alternativo

Test de intrusión (Penetration Test) Introducción

EMC Soporte remoto seguro para VNXe Requisitos y configuración Número de referencia Rev. 01 Mayo de 2014

Tener la WiFi abierta implica tener nuestra conexión a Internet compartida, además de otros riesgos:

Modelos y Bases de Datos

PROCEDIMIENTO DE AUDITORIA INTERNA

ISO Anexo A OBJETIVOS DE CONTROL Y CONTROLES DE REFERENCIA DANIELA RAMIREZ PEÑARANDA WENDY CARRASCAL VILLAMIZAR

INTRODUCCIÓN INTRODUCCIÓN. Guía de Comunicación Digital para la Administración General del Estado. Página 1 de 8

Segurinfo NOA Seguridad en el desarrollo de aplicaciones Web

Diseño e implementación 15% Instalación y comisionamiento 6% Operación y mantenimiento 15%

Offensive State Auditoría de Aplicaciones Web

APLICACIONES WEB GOOGLE ANAYLITICS

GERENCIA DE INTEGRACIÓN

PROCEDIMIENTO DE AUDITORIA INTERNA

Liderazgo Emprendedor

Actualización de versión a Bizagi 10.x

Taller de Gestión de Proyectos

Servicio de groupware

Seguridad en Aplicaciones Web

Experto en Análisis Deportivo de Datos y Big Data /! >

Manual de Operaciones del Club Aéreo del Personal de BancoEstado.

Actividades para mejoras. Actividades donde se evalúa constantemente todo el proceso del proyecto para evitar errores y eficientar los procesos.

Los procesos de negocio están en todas partes, en cada organización, en cada nivel.

PROGRAMA AUXILIAR Y EXTRACTOR DEINFORMACION HIS 2015 MANUAL

MOBILE SOLUTIONS TELECOMUNICACIONES S.A DE C.V.

Versión 10 Fecha de Elaboración: 21/10/2015 Página 1 de 8

Programación páginas web. Servidor (PHP)

Servicio de Informática Vicerrectorado de Tecnologías de la Información y la Comunicación

Capítulo 4 Pruebas e implementación de la aplicación CAPÍTULO 4 PRUEBAS E IMPLEMENTACIÓN DE LA APLICACIÓN

Manual de uso básico de la aplicación

SISTEMA DE TOMA DE DECISIONES PARA LA SELECCIÓN DE ESPECIES FORRAJERAS (STDF) Manual de Usuario Sistema Móvil

Microsoft Access 2007 (Completo)

Web: Ataque y Defensa. my kung fu is stronger than yours, The lone Gunmen

Acuerdo de aprobación de la Normativa Básica de Correo Electrónico de la Universidad Miguel Hernández.

Redes de área local Aplicaciones y Servicios Linux Enrutamiento

Guía de Usuario. Seguridad Internet. Triara.com SA de CV. Todos los derechos reservados

EVALUACIÓN EXTERNA EFQM CLAVES METODOLÓGICAS PARA

SurfCop. Libro blanco técnico

Boletín de seguridad de Xerox XRX08-004

Muchos programas de aplicación contienen herramientas para proteger la información, por ejemplo, Microsoft Word que te permite:

Transcripción:

Programación de código seguro

Distinción de vulnerabilidades Stack OverFlow y Heap OverFlow Comunes en lenguajes y aplicaciones de escritorio TOP 10 OWASP Muchas otras

Stack OverFlow

Stack OverFlow: Ejemplo

Heap OverFlow Evolución de la técnica Stack OverFlow Mayor complejidad Consiste en desbordar el Heap (Zona de memoria dinámica) -> (Datos del programa en tiempo de ejecución)

TOP 10 OWASP Las 10 vulnerabilidades más comunes que afectan a aplicaciones web También puede afectar a un programa de escritorio clásico Se están extendiendo gracias a las app móviles y multiplataforma

Inyección Se manda información no fiable a un interprete No solo SQL: LDAP, SO, SMTP, etc Fáciles de descubrir examinando el código Impacto severo

Pérdida de autenticación Problemas de lógica en la implementación de gestión de sesiones (Vulnerabilidades en el cierre de sesión, gestión de contraseñas, pregunta secreta, etc ) Impacto severo Ejemplos: hvp://example.com/sale/saleitems;jsessionid=2p0 OC2JDPXM0OQSNDLPSKHCJUN2JV?dest=Hawaii Las sesiones no expiran

XSS (Secuencia de comandos en sitios cruzados) Vulnerabilidad más común Se envía una página con datos suministrados por usuarios sin validarse correctamente <script>alert(1)</script>

Referencia directa insegura a objetos Se accede directamente a un recurso Para acceder a ese recurso, no se controla el usuario de la aplicación, sus permisos, etc hvp://example.com/app/accountinfo?acct=notm yacct

Inexistente control de acceso Tienen todas las funcionalidades su autenticación correspondiente en el lado del servidor? Los controles de autenticación se basan solamente en información solicitada u obtenida del usuario?

CSRF Obligar a un usuario a cometer una acción sin que se de cuenta Ej: <img src="hvp://example.com/app/transferfunds? amount=1500&descnaconaccount=avackersacct#" width="0" height="0"/> Utilizar un token aleatorio único por formulario y enlace, o utilizar chaptas que verifiquen la intervención de un usuario

Componentes con vulnerabilidades conocidas Eres consciente de las vulnerabilidades de los componentes y librerías que utilizas? Te aseguras de que no existen backdoors en los componentes que estás utilizando? Son seguros?

Conclusión! Punto común: Datos no controlados en las entradas de usuario NO SE PUEDE CONFIAR EN EL USUARIO. Si algo se puede romper, lo romperá. El usuario es el hacker más peligroso!!

Consejos para hacer código seguro Michael Howard Responsable de programas de seguridad en Microsoft Libro: Writing Secure Code

1- Asumir la responsabilidad Las herramientas de análisis no detectan todas las vulnerabilidades Somos responsables de hacer código seguro Si alguien puede arreglar su código, es quien lo conoce: Su programador Producto seguro = Diseño seguro + Código seguro Security By Design!

2- No confiar en los datos Toda entrada es nociva hasta que se demuestre lo contrario Según CVE: El 47% de las vulnerabilidades viene de confiar en los datos de entrada No bloquear lo malo: Solo dejar entrar lo esperado. Rechazar todo lo demás, en especial lo sospechoso. Ayudarse de expresiones regulares.

3- Análisis del modelo de amenazas TMA o Análisis del modelo de amenazas Ayuda a determinar los riesgos de seguridad de nuestra aplicación Indica como y por donde puede aparecer un posible ataque

4- Ir un paso por delante Vigilar siempre la aparición de nuevas técnicas y nuevas amenazas Listas de correo como: Bugtraq

5- Pruebas aleatorias Probar aleatoriamente datos en las entradas MS prueba su software con 100.000 iteraciones de baterías de entradas incorrectas

6- No escribir código no seguro Prohibido el uso de más de 500 funciones en C y C++ por no ser seguras. (Ej: Print) Reutilizar código que funciona y es seguro PHP: Explode, Split, StreamScandir, parse de los prepared staments

7- Asimetría estratégica El atacante no está limitado en el tiempo: Hay que repasar el código antiguo y mantenerlo en los niveles de calidad y seguridad actuales

TMA 1- Recopilar información Usuarios y casos de uso Crear DFD: Diagramas de flujo de datos 2- Analizar el modelo de amenazas Identificar entradas, limites de confianza, y flujo de una entrada desde su primera hasta su última aparición. Anotar activos implicados.

TMA 3- Catalogar las entradas Suplantación de identidad Manipulación de datos Rechazo Revelación de información Denegación de servicio Elevación de privilegios

TMA 4- Listar las amenazas

TMA 5- Analizar las amenazas, documentarse sobre las técnicas de explotación y mitigaciones. Implementar mitigaciones. 6- Repetir iteración del análisis con cierta continuidad

Qué más podemos encontrar? OWASP: Code Review Guide Development Guide Testing Guide Standard ASVS (Application Security Verification Standard)