2010-02-28 21 views
23

Estoy desarrollando una aplicación web. Como, una adecuada, he usado cosas como Joomla en el pasado para hacer cosas increíbles, pero ahora finalmente me he ensuciado las manos con PHP, MySQL y CodeIgniter.Prueba de vulnerabilidades de seguridad en aplicaciones web: ¿Mejores prácticas?

Cuando está creando aplicaciones web serias que manejarán grandes cantidades de datos, ¿qué precauciones debo tomar contra mis entradas de datos para desinfectarlas por completo? Sé que existe el ajuste obvio, el escape, la limpieza xss, etc., pero ¿qué otras técnicas debo incorporar para detener las inyecciones en la base de datos?

No solo eso, pero ¿hay algún código de inyección de base de datos no destructivo con el que pueda probar todas mis entradas? Al igual que en, ¿inyectará algo visible, pero en realidad no dañará mi base de datos de prueba? No soy exactamente un hacker y necesito un poco de orientación sobre esto.

¿Qué otros métodos comunes usan los hackers para destruir o leer los datos del usuario, y cómo puedo verificarlo yo mismo? No tengo el dinero para contratar a un consultor de seguridad ya que solo tengo 16 años, pero tengo una buena experiencia con las computadoras y estoy seguro de que podría realizar algunos trucos si se dan algunos consejos sobre lo que son.

Sé que es una gran cantidad de preguntas, pero para resumir, ¿qué haces para asegurarte de que todo sea 100% seguro?

+3

Proteger una aplicación web es un tema amplio. Hay libros enteros al respecto. Por lo tanto, la pregunta, aunque es buena, es demasiado inespecífica en mi opinión y debería estar cerrada o ser una wiki comunitaria. También hay muchas preguntas y respuestas sobre SO sobre cómo prevenir la inyección de SQL, XSS, CSRF, etc. – Gordon

Respuesta

19

SQL Injection y XSS son los errores más comunes que cometen los programadores. La buena noticia es que son más fáciles de probar automáticamente, siempre y cuando tenga el software adecuado. Cuando estoy en un pentest, uso Sitewatch o Wapiti para encontrar vulnerabilidades de aplicaciones web. Acunetix es muy caro.

Pero no puede disparar una herramienta automatizada y esperar que todo funcione.Hay varias precauciones que debe tomar con CUALQUIER escáner de vulnerabilidad que elija.

1) asegúrese de que display_errors = On en su php.ini Sql Injection pruebas dependen de poder ver los mensajes de error mysql en las páginas de respuesta! ¡Sin errores, sin vulnerabilidad detectada!

2) Escanee las áreas autenticadas de su aplicación. Crea una cuenta de usuario específicamente para probar. Acuentix tiene un asistente sencillo donde puede crear una secuencia de inicio de sesión. Si está usando wapiti, puede darle una cookie a wapiti o darle a wapiti una solicitud posterior para que se active, pero esto es un poco complicado.

DESPUÉS ha probado su aplicación y luego prueba su servidor para la configuración incorrecta. Para probar su servidor, debe ejecutar OpenVAS que es la nueva versión más gratuita de Nessus que ahora es un producto comercial. Luego debe seguir esto con PhpSecInfo. Estas pruebas le notificarán problemas con su configuración o si está ejecutando un software vulnerable anterior.

Nada será 100% seguro, SIEMPRE. No importa lo que hagas, hay vulnerabilidades que se deslizarán por las grietas. Existen vulnerabilidades en todas las plataformas de desarrollo que llevan a compromisos que ninguna herramienta puede probar. También hay errores en las herramientas de prueba que utiliza. Hay postigos falsos y falsos negativos y algunas pruebas que solo no funcionan, un buen ejemplo de que nunca he visto una herramienta CSRF automatizada que realmente encuentre vulnerabilidades legítimas. La prueba CSRF de Acunetix es una completa pérdida de tiempo.

También está el OWASP testing guide que entra en mayor detalle. Esto no debe confundirse con el OWASP Top 10 que también es un recurso excelente. El PHP Security Guide es también un gran recurso para los programadores de php.

4

I don't have the money to hire a security consultant since I'm only 16
Tiene 16 no quiere decir que usted no tiene dinero para contratar: D .
No necesita contratar a nadie. Hay muchas herramientas gratuitas en línea que puede usar para probar la vulnerabilidad de su aplicación web.

  1. Trate de usar http://www.zubrag.com/tools/sql-injection-test.phppara probar la vulnerabilidad de inyección SQL

  2. http://www.parosproxy.org: grabadora de tráfico web, tela de araña, calculadora de hash, y un escáner para el ensayo de ataques a aplicaciones Web comunes, tales como la inyección SQL y cruz -site scripting

  3. HP WebInspect software [no es gratis] prueba ataques web comunes como la inyección de parámetros, scripts entre sitios, directorio transversal, [intenta buscar en Google]

  4. http://portswigger.net/suite/: Burp Suite es una plataforma integrada para atacar aplicaciones web. Contiene todas las herramientas de Burp con numerosas interfaces entre ellas diseñadas para facilitar y acelerar el proceso de ataque de una aplicación. Todas las herramientas comparten el mismo marco robusto para manejar solicitudes HTTP, persistencia, autenticación, proxies ascendentes, registro, alertas y extensibilidad.

+0

Gracias por todos los enlaces, ¡fantástico! – Jack

+0

webinpsect y paraos son una pérdida de tiempo, no he usado los demás. – rook

0

Use WebCruiser Web Vulnerability Scanner para escanear vulnerabilidades de inyección SQL, WebCruiser no es solo una herramienta de escaneo de seguridad web, sino también una herramienta de inyección SQL automática, una herramienta de inyección XPath, una herramienta XSS.

Cuestiones relacionadas