Este documento presenta una introducción a las vulnerabilidades comunes en aplicaciones web desarrolladas en PHP, incluyendo inyección SQL, inyección de código y secuestro de sesiones. Explica brevemente cómo funcionan estos ataques y formas de protegerse, como validar todos los datos de entrada, usar prepared statements en PHP, y configurar sesiones para evitar su fijación.
Cuando una aplicación web contiene vulnerabilidades, es hora de llamar a la caballería; pero, si nosotros somos los desarrolladores, nosotros somos la caballería, somos quienes debemos resolver las vulnerabilidades y entregar aplicaciones confiables. La lista OWASP Top 10 2013 es un proyecto que tiene el objetivo de que los desarrolladores tomemos conciencia de la seguridad en las aplicaciones al identificar los principales riesgos que enfrentan las organizaciones. El entender cómo ocurren las vulnerabilidades más comúnmente encontradas nos ayudará a mejorar nuestros hábitos al desarrollar aplicaciones.
Como desarrolladores web, una de las principales preocupaciones es cuán vulnerables son nuestros sitios o aplicaciones web. Esta charla explica algunos riesgos de seguridad y, más importante, cómo evitarlos. Basado en los riesgos de seguridad más críticos en el desarrollo web según OWASP Top Ten 2010, y con algunos ejemplos en PHP (aunque es fácilmente aplicable en otros entornos).
OpenSouthCode '18 - OWASP Top 10 (2017) [2018-June-01]AngelGomezRomero
The OWASP Foundation (Open Web Application Security Project) is a global non-profit organization that seeks to create an open community dedicated to the development and maintenance of reliable and secure applications.
One of OWASP's most well-known assets is the “OWASP Top 10”, a best practice guide developed with broad consensus with companies specializing in application security and containing the 10 most common flaws in web application security.
During the presentation, the 10 vulnerabilities included in the latest version of the 2017 guide are introduced, as well as techniques to detect and prevent them.
Cuando una aplicación web contiene vulnerabilidades, es hora de llamar a la caballería; pero, si nosotros somos los desarrolladores, nosotros somos la caballería, somos quienes debemos resolver las vulnerabilidades y entregar aplicaciones confiables. La lista OWASP Top 10 2013 es un proyecto que tiene el objetivo de que los desarrolladores tomemos conciencia de la seguridad en las aplicaciones al identificar los principales riesgos que enfrentan las organizaciones. El entender cómo ocurren las vulnerabilidades más comúnmente encontradas nos ayudará a mejorar nuestros hábitos al desarrollar aplicaciones.
Como desarrolladores web, una de las principales preocupaciones es cuán vulnerables son nuestros sitios o aplicaciones web. Esta charla explica algunos riesgos de seguridad y, más importante, cómo evitarlos. Basado en los riesgos de seguridad más críticos en el desarrollo web según OWASP Top Ten 2010, y con algunos ejemplos en PHP (aunque es fácilmente aplicable en otros entornos).
OpenSouthCode '18 - OWASP Top 10 (2017) [2018-June-01]AngelGomezRomero
The OWASP Foundation (Open Web Application Security Project) is a global non-profit organization that seeks to create an open community dedicated to the development and maintenance of reliable and secure applications.
One of OWASP's most well-known assets is the “OWASP Top 10”, a best practice guide developed with broad consensus with companies specializing in application security and containing the 10 most common flaws in web application security.
During the presentation, the 10 vulnerabilities included in the latest version of the 2017 guide are introduced, as well as techniques to detect and prevent them.
Argentesting 2017 - Proyecto OWASP Top 10Argentesting
Proyecto Top 10 de OWASP
La charla hace un pequeño recorrido sobre la evolución de la Web, la Seguridad informática dentro de la Web y el proyecto OWASP para luego desembocar en el OWASP Top Ten y ahí nos detenemos.
Desde ahí en adelante nos centralizamos en los 10 riesgos de seguridad más importantes en aplicaciones web.
Se va a explicar una por una su descripción, funcionamiento, su impacto y qué medidas tomar para prevenirlo.
A parte de todo eso se mostrará en vivo algunas de ellas para poder ver y darse cuenta cuando un sitio es vulnerable.
La prueba se hará mediante una máquina virtual levantando una web vulnerable preparada por OWASP para practicar este tipo de testing.
Terminando con recomendaciones y links para consultar todo lo dado.
Expositor: Juan Pablo Soto
10 riesgos más críticos que deben afrontar las organizaciones sobre sus aplic...Internet Security Auditors
Presentación sobre el Top 10 de Riesgos en Aplicaciones Web de Vicente Aguilera dentro del congreso ADWYS CON 11. La presentación desarrolló las 10 amenazas más frecuentes para la Seguridad de las Aplicaciones Web e incluyó una demostración práctica de una vulnerabilidad del sistema de autenticación de Gmail.
Webinar Gratuito: "Escanear Vulnerabilidades Web con Zed Attack Proxy"Alonso Caballero
Este webinar expone detalladamente el procedimiento de como utilizando la distribución Kali Linux, orientada a realizar pruebas de penetración y auditorías de seguridad; y puntualmente la herramienta OWASP Zed Attack Proxy (ZAP), es factible encontrar automáticamente vulnerabilidades de seguridad en las aplicaciones web, mientras se desarrollan y prueban las aplicaciones.
Open Web Application Security Project Top 10: OWASP con el fin de canalizar los esfuerzos en la seguridad de aplicaciones y APIs, llevó adelante un relevamiento global y colaborativo con los 10 riesgos de seguridad más críticos de la web, conocido como OWASP TOP 10.
Introducción al OWASP Top 10 - Los diez riesgos mas importantes en aplicaciones web
- Es un documento EDUCATIVO.
- Es GRATUITO.
- DESCRIBE los riesgos más críticos en aplicaciones Web
Para cada riesgo, aporta:
- Descripción del mismo
- Escenario de ejemplo de un ataque
- Pautas para verificar si nuestra aplicación es vulnerable
- Recomendaciones para prevenir dicho riesgo
2 - Curso Navegación Segura - Tipos de amenazas asociadas a los navegadoresJavier Navarro
La presentación corresponde al Curso de Navegación Segura, otorgado de manera gratuita por ESET como parte de su compromiso con los internautas. Es la continuación de "Conceptos sobre navegadores"
3 - Curso Navegación Segura - Seguridad y prevenciónJavier Navarro
La presentación corresponde al Curso de Navegación Segura, impartido por ESET como parte del apoyo gratuito que ofrece a los usuarios de internet. Es la continuación de “Tipos de amenazas asociadas a los navegadores”
Hackers en los sistemas de las administraciones públicasSEINHE
La charla expone las debilidades más frecuentes en las administrciones públicas que son aprovechadas por los atacantes para acceder a información sensible de las mismas y posibles soluciones.
Esta es una ponencia divulgativa que preparó Florencio Cano, de SEINHE, para presentar en el congreso anual que ISACA Valencia organiza en esta ciudad.
PPT de seminario de Seguridad con PHP, dictado el 18 de Junio de 2013 por Nazareno Lorenzo.
Incluye:
SQL Injection
XSS
File Uploads
LFI/RFI
CSRF
Hashing y Encriptación
Virus, el arte de algunos - Alberto García de Dios (/Rooted CON 2011)Oskar Laguillo
Virus, el arte de algunos. Conferencia presentada en /Rooted CON 2011 por Alberto García de Dios el 3 de Marzo de 2011 en Madrid.
Ver la conferencia en YouTube: http://youtu.be/ZUgHdX_6iGM
Argentesting 2017 - Proyecto OWASP Top 10Argentesting
Proyecto Top 10 de OWASP
La charla hace un pequeño recorrido sobre la evolución de la Web, la Seguridad informática dentro de la Web y el proyecto OWASP para luego desembocar en el OWASP Top Ten y ahí nos detenemos.
Desde ahí en adelante nos centralizamos en los 10 riesgos de seguridad más importantes en aplicaciones web.
Se va a explicar una por una su descripción, funcionamiento, su impacto y qué medidas tomar para prevenirlo.
A parte de todo eso se mostrará en vivo algunas de ellas para poder ver y darse cuenta cuando un sitio es vulnerable.
La prueba se hará mediante una máquina virtual levantando una web vulnerable preparada por OWASP para practicar este tipo de testing.
Terminando con recomendaciones y links para consultar todo lo dado.
Expositor: Juan Pablo Soto
10 riesgos más críticos que deben afrontar las organizaciones sobre sus aplic...Internet Security Auditors
Presentación sobre el Top 10 de Riesgos en Aplicaciones Web de Vicente Aguilera dentro del congreso ADWYS CON 11. La presentación desarrolló las 10 amenazas más frecuentes para la Seguridad de las Aplicaciones Web e incluyó una demostración práctica de una vulnerabilidad del sistema de autenticación de Gmail.
Webinar Gratuito: "Escanear Vulnerabilidades Web con Zed Attack Proxy"Alonso Caballero
Este webinar expone detalladamente el procedimiento de como utilizando la distribución Kali Linux, orientada a realizar pruebas de penetración y auditorías de seguridad; y puntualmente la herramienta OWASP Zed Attack Proxy (ZAP), es factible encontrar automáticamente vulnerabilidades de seguridad en las aplicaciones web, mientras se desarrollan y prueban las aplicaciones.
Open Web Application Security Project Top 10: OWASP con el fin de canalizar los esfuerzos en la seguridad de aplicaciones y APIs, llevó adelante un relevamiento global y colaborativo con los 10 riesgos de seguridad más críticos de la web, conocido como OWASP TOP 10.
Introducción al OWASP Top 10 - Los diez riesgos mas importantes en aplicaciones web
- Es un documento EDUCATIVO.
- Es GRATUITO.
- DESCRIBE los riesgos más críticos en aplicaciones Web
Para cada riesgo, aporta:
- Descripción del mismo
- Escenario de ejemplo de un ataque
- Pautas para verificar si nuestra aplicación es vulnerable
- Recomendaciones para prevenir dicho riesgo
2 - Curso Navegación Segura - Tipos de amenazas asociadas a los navegadoresJavier Navarro
La presentación corresponde al Curso de Navegación Segura, otorgado de manera gratuita por ESET como parte de su compromiso con los internautas. Es la continuación de "Conceptos sobre navegadores"
3 - Curso Navegación Segura - Seguridad y prevenciónJavier Navarro
La presentación corresponde al Curso de Navegación Segura, impartido por ESET como parte del apoyo gratuito que ofrece a los usuarios de internet. Es la continuación de “Tipos de amenazas asociadas a los navegadores”
Hackers en los sistemas de las administraciones públicasSEINHE
La charla expone las debilidades más frecuentes en las administrciones públicas que son aprovechadas por los atacantes para acceder a información sensible de las mismas y posibles soluciones.
Esta es una ponencia divulgativa que preparó Florencio Cano, de SEINHE, para presentar en el congreso anual que ISACA Valencia organiza en esta ciudad.
PPT de seminario de Seguridad con PHP, dictado el 18 de Junio de 2013 por Nazareno Lorenzo.
Incluye:
SQL Injection
XSS
File Uploads
LFI/RFI
CSRF
Hashing y Encriptación
Virus, el arte de algunos - Alberto García de Dios (/Rooted CON 2011)Oskar Laguillo
Virus, el arte de algunos. Conferencia presentada en /Rooted CON 2011 por Alberto García de Dios el 3 de Marzo de 2011 en Madrid.
Ver la conferencia en YouTube: http://youtu.be/ZUgHdX_6iGM
Seguridad en Aplicaciones Web y Comercio ElectrónicoRené Olivo
Presentación sobre vulnerabilidades que presentan las aplicaciones web y como contrarrestarlas. También explica como guardar información sensible de una manera segura.
Webinar: 10 Consejos para Mejorar la Postura de Seguridad de tu Sitio WebSucuri
El webinar 10 Consejos para Mejorar la Postura de Seguridad de tu Sitio Web tiene como objetivo informarte sobre las 10 técnicas de seguridad básicas más efectivas para reducir la superficie de ataque de tu sitio web, disminuyendo también el riesgo de infecciones de malware y todos los problemas que estas infecciones conllevan.
Si te gustaría estar al tanto de nuestros eventos en línea, suscríbete a nuestro newsletter: http://ow.ly/AJL930gTWwO
Y si estás interesado en una solución de seguridad de sitios web construida para agencias, desarrolladores y profesionales web, puedes recibir una cotización gratuita llenando este formulario: http://ow.ly/IzRu30gTWMB
Puedes seguir a Néstor en Twitter a la cuenta: https://twitter.com/pharar
Síguenos en Twitter, Facebook e Instagram:
https://twitter.com/SucuriSeguridad
https://www.instagram.com/SucuriSeguridad
https://www.Facebook.com/SucuriSeguridad
Seguridad actual
•
Que es un hacker?
•
La importancia de nuestros datos
•
OSINT
•
Fases de hacking
•
Ataques
•
Controla tu exposición digital
•
Como convertirse en un profesional de la seguridad
Presentación del webinar Seguridad en WordPress, impartido el 10 de mayo.
En este webinar, José María Baquero, Desarrollador Web en Arsys, explica cómo podemos reducir las vulnerabilidades de WordPress con una serie de medidas muy fáciles de implementar.
Vídeo del webinar disponible en https://www.youtube.com/arsys
Más información en https://blog.arsys.es y https://www.arsys.es
Curso de Práctica Operativa en Investigación. Módulo 5. Internet Security Aud...Internet Security Auditors
Clase impartida en el Colegio Oficial de Detectives de Cataluña. En esta clase se analizan las "Herramientas de Investigación" de las que se disponen en un ordenador para detectar intrusiones, ataques o acciones realizadas en los sistemas. También se presentan las "Herramientas de Seguridad" que provee Internet y que están disponibles para todo el mundo que sepa dónde y como emplear estas herramientas.
En esta charla veremos las vulnerabilidades de la lista OWASP top ten de 2017 y como evitarlas en NodeJS. Además también veremos buenas prácticas para segurizar nuestras apis utilizando JWT y JWKS.
Video: https://www.youtube.com/watch?v=bMwgLaDyD1w
Similar a Vulnerabilidades en Aplicaciones Web PHP (20)
Scaling FreeSWITCH to high cps and number of concurrent calls.
You'll learn about how the FreeSWITCH internals work and how to tweak them to improve different call scenarios. You'll learn about OS and environment changes that can help to remove bottlenecks and ensure audio quality.
1. Vulnerabilidades en Aplicaciones Web PHP
Moisés H. Silva
CIISA 2007
“ You can't consider the problem of defense without first understanding the problem of attack ”
- Doug Tygar -
1
3. PHP, Lenguaje Inseguro?
•
- Poder, Versatilidad y Facilidad son una fórmula para la inseguridad.
•
•
- PHP ha crecido de forma desorganizada.
•
- Zend está intentando poner un orden, PHP5 es un gran paso.
- La seguridad de un lenguaje de programación es inversamente proporcional a
•
la cantidad de responsabilidad delegada al programador.
•
•
- Sólo un programador debería escribir programas , PHP se lo permite a otros.
3
5. - Servicios de red más usados
Fuente: http://www.securityseer.com/
5
6. - Top 10 de vulnerabilidades web
Fuente: http://www.owasp.org/
6
7. SQL Injection
Qué es?
- SQL injection es el término usado para la introducción de datos en una aplicación
•
con la intención de ejecutar sentencias SQL para las que el sistema no fué diseñado
•
y/o para las cuales el usuario no tiene privilegios.
•
- Cualquier aplicación que haga uso de datos externos para crear consultas SQL
•
puede ser vulnerable sin importar el lenguaje en el que se encuentre escrita.
•
•
•
•
•
•
- Las aplicaciones web son más vulnerables debido a:
* La mayoría de los sitios web tienen al menos 1 base de datos.
* Anonimato del atacante y miles de aplicaciones online.
* Ejecución remota y automatizada de ataques.
* Aplicaciones de comercio online ( objetivo: tarjetas de crédito ).
7
8. SQL Injection
Cómo funciona un ataque?
- Se buscan los puntos de entrada de datos de la aplicación. En web, usualmente
•
los formularios.
•
- Deliberadamente se introducen datos incorrectos o posiblemente inesperados.
•
•
•
•
•
•
* Letras donde solo números son esperados.
* Caracteres de significado especial en sentencias SQL, en especial, comillas.
* Texto de longitudes no esperadas. ( Nombre de 500 caracteres? )
* Límites impuestos en el formulario localmente pueden ser excedidos con cURL.
- Esperamos errores SQL incorrectamente mostrados junto con el HTML, esto puede
•
darnos una idea del esquema de la base de datos o de la forma en que los datos del
•
formulario están siendo usados.
•
- Usar la información obtenida para intentar inyectar SQL.
•
9. SQL Injection
Formas de Protección
•
- Validar TODOS los datos que ingresan a la base de datos.
•
- No confiar en datos externos. Los datos externos más comunes son:
•
•
•
•
* HTTP/GET
* HTTP/POST
* FileSystem
- Estos datos no son confiables, ningún usuario es confiable.
•
•
- register_globals = off, pero eso todo mundo lo sabe, correcto?
•
- Usa mysql_escape_string, pg_escape_string y similares..
•
- Si es posible, utiliza PDO ( PHP Data Objects ) y prepared statements.
9
10. Code Injection
Qué es?
- Similar al SQL injection, pero más poderoso, el objetivo es ejecutar código
•
arbitrario.
•
- La causa es la incorrecta validación de datos que pueden provenir de fuentes no
•
confiables.
•
- Uno de los ataques más conocidos se basa en una funcionalidad de PHP
•
configurada mediante la directiva allow_url_fopen y allow_url_include.
•
- Archivos incluidos con include(), include_once(), require_once() son ejecutados
•
por el intérprete de PHP.
•
10
11. Code Injection
Cómo funciona un ataque?
•
- Se busca la entrada de datos que alimenta la inclusión de un archivo.
- Una vez encontrado, se alimenta la inclusión del archivo con un script que
•
contenga el código que se desea ejecutar.
•
- Debido a que el código será evaluado en el servidor de la víctima, se adquiere
•
control completo sobre la aplicación pudiendo inclusive comprometer el servidor.
•
•
- Otro tipo de ataque puede basarse en el constructor de php eval().
11
12. Code Injection
Formas de Protección
- allow_url_fopen = off en php.ini puede ayudar, sin embargo muchas aplicaciones
•
actuales confian en tener esta directiva habilitada.
•
- A partir de php 5.2, la directiva allow_url_include fué incluida como una solución
•
al problema que presentaba allow_url_fopen = off.
•
•
- Validar todos los datos utilizados para incluir y ejecutar archivos.
12
13. Session Hijacking
Qué es?
- Es el término utilizado para referirse a un tipo de ataque web en la que el
•
atacante logra personificarse ante la aplicación web como un usuario que ya
•
ha iniciado una sesión.
•
•
•
- Las aplicaciones web son mas vulnerables debido a que dependen de HTTP,
un protocolo sin conciencia de la existencia de sesiones.
- HTTP es también un protocolo textual y sin protección alguna de los datos
•
transmitidos. Cualquier dato puede ser expuesto mediante sniffers como
•
tcpdump y ethereal.
•
- Las aplicaciones web usan un session id para identificar una sesión iniciada.
•
Esto significa que el session id tiene que ser enviado en cada request del
•
cliente.
•
- El session id es el objetivo principal de un atacante. Si el session id es conocido,
•
es muy probable que la sesión pueda ser comprometida.
13
•
15. Session Hijacking
Cómo funciona un ataque?
•
- Para secuestrar una sesión se requiere conocer el session id (sessid)
•
- El session id es transmitido usando cookies o por la URL de las páginas web.
•
- 3 formas comunes de obtener el sessid son:
•
•
•
* Fuerza Bruta
* Intercepción
* Fixation ( pre-establecimiento de la sesión )
- Fuerza bruta requiere de enviar HTTP request al sitio web con diferentes
•
sessid's. Algunos de estos sessids pueden ser obtenidos del directorio /tmp
•
de un hosting compartido.
•
- La intercepción requiere que el atacante se encuentre en el mismo segmento
•
de red que la víctima, o en algún punto por el que los paquetes TCP de la víctima
•
sean ruteados.
15
•
16. Session Hijacking
Cómo funciona un ataque?
- El pre-establecimiento del sessid requiere de cierta confianza o ingenuidad
•
de parte de la víctima ( factores comunmente encontrados )
•
- Sniffear el tráfico web de la red en la que se encuentra la víctima.
•
- Es posible usar ARP spoofing para obligar al switch o al usuario a que sus
paquetes pasen por la máquina del atacante.
•
•
- Una vez que el sessid es conocido solo resta hacer un request HTTP con el
•
sessid obtenido.
•
- El conocimiento del sessid suele ser suficiente para tomar el control de la
•
sesión, sin embargo otras protecciones pueden existir.
•
- Además de obtener el sessid, puede ser requerido conocer algunos datos de
•
la víctima, como su direcciòn IP.
•
16
17. Session Hijacking
Formas de Protección
- El pre-establecimiento de sesión puede evitarse habilitando PHP para sólo
•
usar cookies para la sesión y no aceptarlas por URL.
•
•
- Siempre crear un nuevo session id al recibir los datos de autenticación.
- Todas las sesiones deben tener un tiempo de expiración por inactividad y
•
absoluto.
•
- La intercepción puede ser evitada utilizando HTTPS ( SSL ) para la conexiones
•
que requieran ser seguras.
•
- Los ataques de fuerza bruta y otros ataques basados en el conocimiento de un
universo de sessid's pueden ser protegidos guardando los sessid's en una base
•
de datos utilizando session_set_save_handler().
•
•
•
- Para protección extra se puede crear el session id de acuerdo a la dirección
•
IP o algún otro dato proveniente del cliente de forma que desde otra dirección
•
IP o cliente no se pueda utilizar el mismo session id.
17
•
•
18. More people are killed every year by pigs than by sharks,
which shows you how good we are at evaluating risk.
- Bruce Schneier -
Being able to break security doesn't make you a hacker
anymore than being able to hotwire cars makes you an automotive engineer.
- Eric Raymond -
The only truly secure system is one that is powered off, cast in a block of
concrete and sealed in a lead-lined room with armed guards
- Gene Spafford 18