Академический Документы
Профессиональный Документы
Культура Документы
Filtrar entradas
Asegurarse que los datos de entrada son vlidos
Escapar salidas
Asegurar que los datos salientes no se malinterpreten
https://secure.flickr.com/photos/cdharrison/359763327/
OWASP
Proyecto Abierto de Seguridad en Aplicaciones Web Comunidad abierta dedicada a habilitar a las organizaciones para desarrollar, comprar y mantener aplicaciones confiables.
Inyeccin
Inyeccin - Ejemplo
Inyeccin - Riesgos
Inyeccin - Nota
Inyeccin - Defensa
Usar una API segura que evite el uso del intrprete o provea una interface parametrizada
Inyeccin - Defensa
Funciones ms complicadas
Un usuario mantiene su sesin activa siguiendo enlaces que incluyen su identificador de sesin
http://caralibro.com/preferencias.php? sessionid=52e83279678a
Un usuario inicia sesin desde una cabina de Internet y luego cierra el navegador sin cerrar sesin Qu sucede si luego otro usuario entra a la misma web?
Un fuerte control de gestin de sesiones Tiempos lmites de vigencia Cifrar las claves de tus usuarios!!! session_regenerate_id(TRUE)
El usuario accede a informacin personal con una direccin que incluye su identificador
http://caralibro.com/cuenta.php?id=87392
if ($_GET['id']==$_SESSION['id'])
Una aplicacin de correo electrnico permite configurar una cuenta adicional para reenviar los mensajes
http://caralibro.com/reenviar.php? mail=root@local.com
Qu pasa si creo una pgina con una etiqueta HTML que hace una llamada a la URL con otra direccin e-mail
Una herramienta administrativa es instalada en el servidor web y se deja accesible sin clave
http://caralibro.com/phpmyadmin
Se suben por error carpetas .SVN en el servidor de produccin Qu sucede si la configuracin del servidor web permite ver archivos ocultos?
La aplicacin muestra el detalle completo de los errores Y si el detalle completo muestra informacin relevante del funcionamiento de la aplicacin?
ERROR [credit-card-db] (MySqlSystem.java:1331) - Invalid column name java.sql.SQLException: Invalid column name social_security_numbre: select username, password, ssn from users where id = ? sun.jdbc.rowset.CachedRowSet.getColIdxByName(CachedRowSet.java:1383)\ at com.mysql.Driver.MySQLDriver.a(MySQLDriver.java:2531) at sun.jdbc.rowset.CachedRowSet.getString(CachedRowSet.java:2167) at com.ppe.db.MySqlSystem.getReciPaying(MySqlSystem.java:1318) at control.action.FindUserAction.perform(FindKeyUserAction.java:81) at org.apache.struts.action.ActionServlet.processActionPerform(ActionServlet) at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1586) at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:492) at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
Definir procesos para actualizar versiones de herramientas empleadas Verificar que herramientas administrativas no se encuentren accesibles Proteger la configuracin de los componentes que usa la aplicacin Deshabilitar mensajes de errores, advertencias o informacin
La base de datos de claves usa algn algoritmo hash pero sin sal (un dato adicional que se suma al valor original)
md5($_POST['clave']);
Un ataque de fuerza bruta demora menos en encontrar la clave si sta no est sumada a una sal
Asegrese de que los datos cifrados y la clave que los descrifra se encuentran en lugares distintos
hash('sha256',$sal.$_POST['clave']);
http://caralibro.com/admin
Verificar por cada pgina que se requiera que el usuario tenga los privilegios suficientes para acceder a ella.
if (is_capable($_SESSION['userid'],$page))
Una aplicacin no utiliza certificados de seguridad en la transmisin de datos sensibles Qu sucede si un atacante lee las transmisiones del usuario?
Una aplicacin utiliza certificados de seguridad pero han sido mal configurados y muestran errores frecuentemente a los usuarios Qu sucede si un atacante crea una pgina falsa y que muestra errores similares?
Usar SSL para todas las pginas que utilizan datos sensibles
Verificar que el certificado sea vlido, no se haya vencido y est configurado para todos los dominios usados por la aplicacin.
10
10
Una aplicacin tiene pginas del tipo redirect, con un parmetro URL
http://caralibro.com/ir.php?url=curso.php
10
Una peticin enva, adems de los datos normales, la url que mostrar al confirmarse la transaccin
http://caralibro.com/transaccion.php? dato1=cualquiera&exito=inicio.php
10
10
Evitar usar redirecciones. Si se utiliza, evitar que el usuario pueda manipular el destino. Tambin se debe asegurar que el destino ser vlido y autorizado.
Plugins (Flash, Acrobat, Java) XSS con CSS JSON con datos sensibles Remote Code Injection XSS + Ajax + CSRF
https://secure.flickr.com/photos/anonymous9000/3644243073/
Referencias bibliogrficas
OWASP Top Ten Project [Spanish Translation] https://www.owasp.org/index.php/Top_10 2010: A Web Hacking Odyssey - Top Ten Hacks of the Year http://www.slideshare.net/jeremiahgrossman/2010-a-web-hacking-odysseytop-ten-hacks-of-the-year RIA And AJAX Security Workshop, Part 1 http://www.slideshare.net/astamos/ria-and-ajax-security-workshop-part-1presentation Evolution Of Web Security http://www.slideshare.net/shiflett/evolution-of-websecurity Rails Security Best Practices http://www.slideshare.net/ihower/rails-security3299368 Web Application Security Tutorial http://www.slideshare.net/xplodersuv/EducauseAnnualWebAppSecTutorialV3 Web Security Horror Stories http://www.slideshare.net/simon/web-securityhorror-stories-presentation PHP Security Consortium http://phpsec.org/ PHP Filtros de saneamiento http://php.net/manual/es/filter.filters.sanitize.php
https://secure.flickr.com/photos/nickstone333/3390456806/
Firefox (Estable), Aurora y Mobile firefox.com/channel Firefox Portable (ejecutable desde USB) mozilla.pe/firefox-portable
Complementos en Firefox
Hackbar
Complementos en Firefox
User Agent RG
Complementos en Firefox
PassiveRecon
Complementos en Firefox
FoxyProxy Standard
Complementos en Firefox
Tamper Data
Advertencia final
https://secure.flickr.com/photos/takomabibelot/2455018965/
Mozilla Per
/mozillaperu