09 octubre, 2007

El top 10 de las vulnerabilidades de seguridad de los sitios web

Es bien sabido que a la hora de contratar un programador para desarrollar sitios web, el top de la lista en cuanto a importancia es creatividad mientras que al final de la lista esta la seguridad.

Por algún extraño motivo las empresas de desarrollo pequeñas y medianas creen que casi lo único importante es la imagen en los sitios web. Como quieren atraer clientes, necesitan tener un portafolio de diseño que venda, pues a los clientes a los que les quieren vender no tienen idea de lo que representa un sitio web y si los pueden apantallar con animaciones en flash y funcionalidad añadida como la de javascrip y AJAX mejor aún.

Los sitios estáticos, aquellos que cumplen la misma función que un anuncio de revista, son lo que pueden ser desarrollados poniendo lo visual antes que todo lo demás. Sin embargo muchas empresas desarrollan todos sus sitios web de la misma manera (con la imagen como prioridad) y con los mismos desarrolladores, exponiendo a los clientes a graves problemas de seguridad y funcionalidad.

Esto ha llevado a la creación de la Open Web Application Security Project (OWASP) y en especial de un reporte sobre las 10 vulnerabilidades más críticas de las aplicaciones web. Esta lista representa el consenso mayoritario en la industria sobre los errores más críticos de seguridad en las aplicaciones web.

La industria de las tarjetas de crédito ha adoptado esta lista como un estándar y requiere que todos los vendedores obtengan una revisión de seguridad de su código. El Departamento de la Defensa de USA también ha integrado está lista como parte de su Information Technology Security Certification and Accreditation (C&A) Process (DITSCAP).

Entre las 10 vulnerabilidades encontramos las siguientes:

Cross site scripting (XSS).- Cuando una aplicación toma datos proporcionados por el usuario y los manda al navegador, sin validar y cifrar primero la información, permite que se ejecuten scripts en el navegador del cliente logrando introducir gusanos, robar su información bancaria e introducirse en los sitiosweb como si fueran el usuario.

Paypal sufrió un ataque de estos el año pasado donde redireccionaban a los usuarios a una página para actualizar sus datos, obteniendo así el nombre de usuario y contraseña.

Inyecciones .- La más común en esta categoría es la de SQL, pero la inyección ocurre cuando se mandan datos por parte del usuario a un interpretador. El atacante engaña al interpretador logrando ejecutar comandos que le dan acceso a datos a los cuales no debería tener acceso.

Hackers Rusos lograron infiltrarse en el sitio de gobierno de Rhode Island y por medio de inyección de SQL obtener información de 53,000 tarjetas de crédito

Ejecución de Archivos Maliciosos.- Los atacantes pueden ejecutar archivos de forma remota en el servidor, comprometiendo la integridad del sistema. Cualquier aplicación que recibe archivos o nombres de archivos en el servidor puede padecer esta vulnerabilidad.

Inserción de Referencias Directas a Objetos.- Cuando los parámetros en el URL o en las formas contienen referencias directas a una implementaciones de objetos, como archivos, directorios, bases de datos, o llaves. Los atacantes pueden manipular esos objetos para ganar acceso a otros recursos.


Salidas de Información y mal manejo de errores.- Las aplicaciones pueden llegar a mostrar información sobre su configuración, forma de trabajo interna, etc. Los atacantes usan esta información para ganar acceso al sitio.

No restringir accesos a URLs.- Ciertas páginas que no son para los usuarios generales de un sitio, son fáciles de adivinar su dirección como /admin o si una página es 123456 prueban con 123457 etc.

Un hoyo en la Macworld Conference & Expo permitió a los hackers obtener pases platinum que tenían un costo de 1,700 dlls de manera gratuita. El código no evaluaba los privilegios de acceso en el servidor, sólo en el cliente, y con un simple javascript lograron ganar acceso.

Para mayor información sobre estas vulnerabilidades len el reporte de la
OWASP y familiarícense con las diferentes vulnerabilidades.

No hay comentarios.: