Mostrando las entradas con la etiqueta website security. Mostrar todas las entradas
Mostrando las entradas con la etiqueta website security. Mostrar todas las entradas

07 junio, 2008

Protegiendo tú sitio web

La mayoría de los ataques que escuchamos en las noticias, o vemos en las revistas de TI están relacionados con infiltraciones a través de los servidores web. Es el punto más fácil de atacar de la empresa pues está a la vista del mundo.

Se requiere de por lo menos 3 pasos para asegurar que tu sitio web no sea un blanco fácil:

1) Pon un firewall.- Hoy en día la mayoría de los routers traen un firewall integrado, aunque sean utilicen ese. Si pueden comprar sería mejor y mucho mejor si compran un web application firewall, como por ejemplo el Teros 100.

2) Esconde la información.- Gran parte del inicio de un ataque se debe a que hay suficiente información disponible sobre el servidor como para asegurar un ataque exitoso. Así que quiten la información personal del WHOIS, quiten los headers de las respuestas del servidor, no le pongan un nombre a su máquina que revele el sistema operativo y quiten los comentarios de los archivos de código en el servidor.

3) Limpia la información que recibes.- Lamentablemente los firewall normales solo dan seguridad a los puertos 80 y 443 de para acceso http y ssl, pero no pueden hacer mucho para los ataques que vienen por esas conexiones como inyecciones de SQL, modificación de las cookies, cambios a los campos en las formas y otros trucos similares. Por este motivo hay que autentificar a todos los usuarios para distinguir el tráfico legítimo del atacante, niega rotundamente los pedidos mal formados y limpia toda la información que llega por parte del usuario antes de pasarla a la base de datos o al sistema.

Para los dos últimos casos, y si es que usan el IIS, les recomiendo que revisen herramientas como ServerMask que modifica los headers, automáticamente reescribe cookies de sesión, esconde las IP internas, emula etiquetas de otros servidores, y otras cosas más.

Y nunca se olviden de estar monitoreando y respaldando constantemente su sitio. ;)

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.

01 marzo, 2007

Como Proteger tus Websites y Evaluar su Seguridad

En una entrada anterior hablamos sobre como usar Access Diver para encontrar passwords en los sitios web. Mientras que esta herramienta funciona bien para hacer una prueba inicial de nuestro sitio, esta lejos de ser la mejor prueba de seguridad.

La realidad es que para la mayoría de las empresas que se dedican al desarrollo web o que tienen su propio web mantenido por su departamento de IT, les cuesta mucho tiempo y trabajo el revisar y asegurar sus sitios. Y como en la mayoría de los casos (con excepción de bancos, etc.) piensan que no es probable que los ataquen, dejan las revisiones de seguridad para después, el único detalle es que ese después nunca llega.

Un buen lugar para empezar a empaparse sobre seguridad de sitios web es el libro "How to Break Web Software: Functional and Security Testing of Web Applications and Web Services" de Mike Andrews y, James A. Whittaker ambos expertos en el campo. Sin embargo como el tiempo es oro y rara vez tenemos tiempo para ir a comprar el libro, leerlo y luego ponerlo en práctica, la mejor solución es dejar que una expertos lo hagan por nosotros.

Mientras que en el pasado estas soluciones eran caras, donde tenían que comprar equipo y profesionales que visitaban la oficina, hoy en día existen servicios de excelente calidad un costo muy aceptable, como el ClickToSecure de Cenzic.

Bajo el concepto de SaaS (Software as a Service), usan su famso HailStorm para hacer todo tipo de pruebas en tu sitio web sin necesidad de instalar ni configurar nada. Simplemente les das tu URL, hacen las pruebas y te entregan un reporte completo de todas las vulnerabilidades detectadas. La gran ventaja aquí, es que no hay que comprar ningún software, no hay que aprender a usarlo, configurarlo y correr las pruebas, todo esto se los dejamos a profesionales.

Otra de las ventajas es que no necesitamos estar al día en los diferentes tipos de ataques que existen pues ellos mantienen actualizadas sus pruebas con las últimas amenazas como son: entradas de información sin validar, control de acceso roto, autenticación y administración de sesiones rotas, XSS, buffer overflows, inyecciones de código, mal manejo de errores, y mal aseguradas consolas de administración y bases de datos entre otros.

Una vez obtenido el reporte se preguntarán que hacer para cubrir las vulnerabilidades. Una opción es que los mismo consultores de Cenzic les ayuden a corregirlas, en algunos casos las vulnerabilidades son sencillas y con el puro reporte las podemos corregir nosotros.

En caso de tener aplicaciones web grandes o varios servidores, la mejor opción puede ser instalar el firewall NC-1100 o NC-2000 de Net-Wall. Estos firewalls de aplicación defienden aplicaciones web y transacciones de hackers profesionales. Más del 80% de las intrusiones a servidores son a través de sus aplicaciones web, donde los tradicionesles firewalls e IDS no protegen, y es aquí donde los firewalls NC de Net-Wall nos resultan más útiles.

Estos vienen en dos categorias AF y AG. Los AF son application firewall que dan protección a las applicaciones web, mientras que los AG son application gateway que aparte de dar protección, aumentan el desempeño usando caching, compresión y más.

La ventaja de este firewall, es que no es necesario conocer las vulnerabilidades actuales, pues no depende de una base de datos de vulnerabilidades conocidas, sino que escanea los envíos en busca de inyecciones de SQL, XSS, buffer overflows, forms tampering, cookie tampering, escaneo de puertor, SYN flood, etc. El sistema integra políticas por parte del desarrollador, de tal manera que si queremos que un campo sea de 40 bytes de largo el firewall se asegura que no rebase ese largo en el envío, previniendo que pueden mandar virus, o que algún fuzzer este trantando de estrellar el código, etc.

El NC-1100 y 2000 tienen muchas ventajas más como encripción y desencripción de SSL, caching del contenido web, pooling de las conecxiones TCP, compresión de GZIP, load balancing (round robin, weighted round robin, y least requested por default pero se pueden implementar out of service redirections, y sticky connections). Todo esto no sale barato y por eso el NC-1100 anda alrededor de los $30,000 dólares.

Si les fue útil esta información y se sienten generosos me pueden donar el libro del que les hable en este blog visitando my wish list en Amazon.
My Amazon.com Wish List
Add to Technorati Favorites

Como siempre dejen sus comentarios, experiencias y opiniones.