Sei sulla pagina 1di 13

CGI

CGI es aun utilizado por muchos sitios. Una ventaja de CGI es la facilidad para escribir lalgica de la
aplicacin en un lenguaje nativo rpido, tal como C o C++, o de habilitar unaaplicacin que previamente no
era web a que sea accesible va navegadores web.

Existen varias desventajas al escribir aplicaciones usando CGI:

La mayora de los lenguajes de bajo nivel no soportan salidas de HTML de manera directa, y por lo tanto
se necesita escribir o utilizar una librera, o una salida HTML deber ser creada en el momento por el
programador.
El ciclo escritura compilacin implementacin ejecucin es ms lento que en la mayora de las
tecnologas recientes.
CGI son procesos separados, y la penalizacin en el rendimiento de IPC y en la creacin de procesos
puede ser significativa en algunas arquitecturas.
CGI no soporta controles de sesin, por lo tanto una librera tiene que ser escrita o importada para
soportar sesiones.
No todos se encuentran confortables escribiendo en un lenguaje de bajo nivel (tal como C o C++), por lo
tanto la barrera de ingreso es de alguna manera alta, particularmente comparado con lenguajes de script.
La mayora de los lenguajes de 3ra generacin comn mente utilizados en programas CGI (C o C++)
sufren de desbordamientos de pila y prdida de recursos. Para evitar esto, es necesaria una gran cantidad
de habilidades.

Filtros

Los filtros son usados para propsitos especficos,tales como controlar el acceso a un sitio web, implementar
otro marco de aplicaciones web (por ejemplo Perl, PHP o ASP), o proveer un control de seguridad. Un filtro
debe ser escrito enC o C++ y puede ser de alto rendimiento ya que reside dentro del contexto de ejecucin del
mismo servidor web. Ejemplos tpicos de una interface de filtro son los mdulos de servidor webApache,
SunONENSAPIs, y Microsoft ISAPIs. Ya que los filtros son interfaces especiales raramente utilizadas que
pueden directamente afectar la disponibilidad del servidorweb, ya no son ms considerados.

Scripting

La falta de controles de CGI sobre el manejo de sesiones y los controles de autorizacin ha obstaculizado el
desarrollo de aplicaciones web de utilidad comercial. Junto con tiempos de desarrollo relativamente ms
lentos, los desarrolladores web se han inclinado hacia lenguajes de script como una solucin. Los intrpretes
corren cdigo script dentro del proceso del servidor web, y debido a que los scripts no son compilados, el
ciclo escritura implementacin ejecucin era un poco ms rpido. Los lenguajes de script raramente sufren
de desbordamientos de pila o prdidas de recursos, por lo tanto es msfcil para los programadores evitar uno
de los problemas de seguridad ms comunes.

Tiene algunas desventajas:

La mayora de los lenguajes de script no se encuentran slidamente tipificados y no promueven buenas


prcticas de programacin.
Los lenguajes de script son generalmente ms lentos que sus contrapartes compilados (algunas veces
hasta 100 veces ms lento).
Los scripts muchas veces llevan a generar cdigo fuente difcil de mantener a medida que su tamao
aumenta.
Es difcil (pero no imposible) escribir grandes aplicaciones de varias capas en lenguajes de script, muy
frecuentemente la capa de presentacin, aplicacin y datos residen en la misma mquina, limitando la
escalabilidad y seguridad.
La mayora de los lenguajes de script no soportan nativamente mtodos remotos o llamadas de servicios
web, haciendo difcil la comunicacin con servidores de aplicacin y servicios web externos.

A pesar de sus desventajas, muchas aplicaciones aun son escritas en lenguaje de script, tales como
eGroupWare (PHP), y muchos sitios antiguos de banca electrnica se encuentran frecuentemente
escritos en ASP.
Los marcos de lenguaje de script incluyen ASP, Perl, ColdFusion, y PHP. Sin embargo, muchos de estos
son considerados hbridos ahora, particularmente las ltimas versiones de PHP y ColdFusion, que
permiten la optimizacin de scripts.

Encriptacin SSL

vSSL significa "Secure Sockets Layer". SSL Definicin, Secure Sockets Layer es un protocolo diseado para
permitir que las aplicaciones para transmitir informacin de ida y de manera segura hacia atrs. Las
aplicaciones que utilizan el protocolo Secure Sockets Layer s sabe cmo dar y recibir claves de cifrado con
otras aplicaciones, as como la manera de cifrar y descifrar los datos enviados entre los dos.

Algunas aplicaciones que estn configurados para ejecutarse SSL incluyen navegadores web como Internet
Explorer y Firefox, los programas de correo como Outlook, Mozilla Thunderbird, Mail.app de Apple, y SFTP
(Secure File Transfer Protocol) programas, etc Estos programas son capaces de recibir de forma automtica
SSL conexiones.

Para establecer una conexin segura SSL, sin embargo, su aplicacin debe tener una clave de cifrado que le
asigna una autoridad de certificacin en la forma de un Certificado. Una vez que haya una nica clave de su
cuenta, usted puede establecer una conexin segura utilizando el protocolo SSL.

https://www.digicert.com/es/ssl.htm

Se necesita para instalar un certificado SSL en la pgina web lo siguiente:

1) Un servidor web o cuenta web hosting que soporte SSL.


2) Direccin IP Dedicada.
3) Acceso a la configuracin SSL desde su panel de control para generar el CSR.
4) El certificado SSL.

http://blog.neothek.com/blog-neothek/que-es-un-certificado-ssl-y-como-funciona/

HTTPS (HTTP sobre SSL o HTTP segura)

HTTPS es el uso de Secure Socket Layer (SSL) o TransportLayer Security (TLS) como una subcapa de una
solicitud HTTP. HTTPS cifra y descifra las solicitudes realizadas por un visitante como la informacin que
devuelve el servidor.

HTTPS utiliza el puerto 443, a menos que se especifique lo contrario, en lugar del puerto HTTP 80 en sus
interacciones.Supongamos que usted visita un sitio Web para ver su catlogo en lnea. Cuando est listo para
realizar su orden, se enviar una pgina Web con un formulario de pedido que comienza con https: //.

Al hacer clic en Enviar desde su navegador HTTPS, toda la informacin ser encriptada y enviada al
vendedor. De la misma manera, la respuesta desde el servidor / vendedorviajar de forma encriptada y llegar
con una direccin URL https y ser desencriptada por su navegador.
De esta manera toda la informacin desde y hasta el visitante y servidor viajan por el Internet de forma
segura.
http://blog.neothek.com/blog-neothek/que-es-un-certificado-ssl-y-como-funciona/
Este escenario agrupa un conjunto derequerimientos con el objetivo de securizarla informacin que se
transmite medianteel protocolo HTTP: peticiones y respuestas,sesiones, cookies, cabeceras, etc.

La aplicacin debe garantizar que las redireccionesHTTP no incluyen datos no validados,que la aplicacin
acepta nicamente unconjunto predefinido de mtodos HTTP (porejemplo, GET y POST), cada respuesta
HTTP especfica a travs de la cabecera ContentTypeun conjunto de caracteres seguro (porejemplo, UTF-
8), se utilizan atributos (Securey HTTPOnly) para la proteccin de informacin sensible en las cookies, valida
que lascabeceras HTTP (tanto de peticiones como derespuesta) nicamente contengan caracteresimprimibles,
y se genera un token criptogrficamente seguro asociado al identificadorde sesin para todas aquellas
peticiones querealizan operaciones sensibles.

http://www.vicenteaguileradiaz.com/pdf/SIC94_Seguridad_Aplicaciones_OWASP.pdf

ESAPI (La API de Seguridad OWASP Empresa)

Es un cdigo abierto, biblioteca gratuita, aplicacin web de control de seguridad que hace que sea ms fcil
para los programadores escribir aplicaciones de menor riesgo. Las bibliotecas ESAPI estn diseados para
hacer ms fcil para los programadores para retrofit de seguridad en las aplicaciones existentes. Las
bibliotecas ESAPI tambin sirven como una base slida para el desarrollo de nuevos.

Teniendo en cuenta las diferencias especficas del idioma, todas las versiones de OWASP ESAPI tienen el
mismo diseo bsico:

Hay un conjunto de interfaces de control de seguridad. Definen por ejemplo, tipos de parmetros que se pasan
a los tipos de controles de seguridad.
Hay una implementacin de referencia para cada control de seguridad. La lgica no es especfica de la
organizacin y la lgica no es especfico de la aplicacin. Un ejemplo: la validacin de entrada basada
cadena.
Hay opcionalmente sus propias implementaciones para cada control de seguridad. Puede haber lgica de la
aplicacin contenida en estas clases que pueden ser desarrolladas por o para su organizacin. Un ejemplo: la
autenticacin de la empresa.

Este cdigo fuente del proyecto est licenciado bajo la licencia BSD, que es muy permisiva y lo ms cercano
a dominio pblico como es posible. La documentacin del proyecto est disponible bajo la licencia
CreativeCommons. Usted puede utilizar o modificar ESAPI como quieras, incluso incluirlo en productos
comerciales.

Las siguientes organizaciones son algunas de las muchas organizaciones que estn empezando a adoptar
ESAPI para asegurar sus aplicaciones web: American Express, Fundacin Apache, Booz Allen Hamilton,
aspecto de la seguridad, Coraid, The Hartford, Campus Infinito, Lockheed Martin, MITRE, Marina de los
EE.UU. - SPAWAR, Banco Mundial, SANS Institute.

https://www.owasp.org/index.php/ESAPI

OWASP MANTRA - SECURITY FRAMEWORK

Mantra es un navegador especialmente diseador para el anlisis de seguridad WEB. Este navegador WEB
esta desarrollado sobre la base de los principales navegadores, existiendo una versin en fase BETA sobre el
motor de Firefox, y una versin en desarrollo (ALFA) sobre Google Chrome
Mantra es un proyecto que tiene surge de la necesidad de dar continuidad a FireCAT. Si recordis, fue un
proyecto que pretenda reunir en un nico catalogo todas aquellas extensiones (add-ons) desarrolladas para el
navegador de Mozilla Firefox orientadas a la seguridad, en especial las dedicadas al anlisis / auditoria de
aplicaciones WEB.

Cuando se instalaba el catalogo en el Mozilla Firefox, ste se converta en FireCAT proporcionando al


navegador WEB capacidades y funcionalidades para la realizacin de auditorias de seguridad
a aplicaciones WEB.

Ahora OWASP ha desarrollado un navegador WEB Open Source especialmente diseado para realizar
el anlisis de seguridad de la aplicaciones WEB, es decir, que este navegador esta especialmente indicado a
desarrolladores de aplicaciones WEB y/o Ethical Hacker / WEB Pentester.

No obstante, tambin puede ser utilizado por cualquier usuario, pues es un navegador WEB simple y cmodo,
incluye una elegante forma de organizar la pestaas de navegacin que puede resulta muy til cuando se
necesita consultar varias pestaas al mismo tiempo. Adems, proporciona un navegador con unas capacidades
extras, como las que describo en el siguiente prrafo.
Integra en el navegador mltiples herramientas de seguridad con las que se puede:

Manipular las cabeceras HTTP


Capacidad de fingerprinting WEB (HTTP)
Interceptar las peticiones GET/POST
Manipular los campos de entrada de texto (strings)
Editar las cookies del navegador
Capacidad para trabajar con diferentes Proxy
Modificar el campo User-Agent del navegador
Obtener informacin de las aplicaciones WEB
Capacidad de realizar comprobaciones de Seguridad bsicas (XSS, SQL)
Interesante capacidad para organizar las pestaas de navegacin

http://www.seguridadparatodos.es/2013/05/OWASP-Mantra-Browser-Pentesting.html

Struts: El controlador y las acciones

Struts es un framework, lo cual significa que no solo nos proporciona un API con el que trabajar (esto ya lo
hara una librera) sino tambin una filosofa de desarrollo, una "forma de hacer las cosas". Por tanto, el
primer beneficio de usar un framework es que estamos haciendo las cosas de una forma ya probada, la misma
idea que constituye la base de los patrones de diseo software.

Struts no es el nico framework MVC existente en el mundo J2EE.Aunque existen muchos otros, Struts es el
ms extendido con mucha diferencia, hasta el punto de haberse convertirdo en un estndar "de facto" en el
mundo J2EE. Por tanto, usando Struts estamos seguros de que dispondremos de una gran cantidad de
recursos: documentacin, interaccin con otros usuarios del framework a travs de foros y similares y una
amplia base de desarrolladores.

Veamos cmo implementa Struts los componentes del patrn Modelo-Vista-Controlador:


El controlador es un servlet, de una clase proporcionada por Struts. Ser necesario configurar la
aplicacin web (a travs del fichero web.xml) para que todas las peticiones del usuario se redirijan a
este servlet.
El controlador despacha las peticiones del usuario a la clase adecuada para ejecutar la accin. En
struts, las clases que ejecuten las acciones deben heredar de la clase Action.
La vista se implementar normalmente mediante pginas JSP. Struts ofrece dos herramientas para
ayudar en la presentacin de datos: los ActionForms son clases que capturan los datos introducidos
en formularios y permiten su validacin. Las libreras de etiquetas permiten mostrar errores y
facilitar el trabajo con formularios.
La implementacin del modelo corre enteramente a cargo del desarrollador, ya que es propio de la
capa de negocio y no est dentro del mbito de Struts.

En esta primera sesin trataremos la parte del controlador y las acciones. En la sesin 2 trataremos de la vista,
describiendo algunas de las libreras de etiquetas del framework.

El ciclo que se sigue cuando Struts procesa una peticin HTTP aparece en la siguiente figura

1) El cliente realiza la peticin, que recibe el controlador de Struts. Todas las peticiones pasan por l, ya
que la peticin no es una URL fsica (no es un servlet o un JSP) sino que es un nombre simblico
para una accin.
2) El controlador despacha la peticin, identificando la accin y disparando la lgica de negocio
apropiada.
3) La lgica de negocio actualiza el modelo y obtiene datos del mismo, almacenndolos en beans.
4) En funcin del valor devuelto por la lgica de negocio, el controlador elige la siguiente vista a
mostrar.
5) La vista toma los datos obtenidos por la lgica de negocio.
6) La vista muestra los datos en el cliente

Seguridad declarativa en Struts


La versin 1.1 de Struts introdujo la seguridad basada en acciones. Esto quiere decir que podemos combinar
los mecanismos estndar de seguridad declarativa J2EE con el funcionamiento de nuestra aplicacin Struts.
Por tanto, primero necesitamos configurar el web.xml para restringir el acceso a los recursos protegidos a los
usuarios que tengan determinado rol.

Para cada accin especificaremos qu rol o roles pueden ejecutarla, mediante el atributo roles de la
etiqueta <action> en el struts-config.xml.Por ejemplo:

<actionroles="admin,manager"
path="/admin/borrarUsuario"
...
</action>
Si se intenta ejecutar una accin para la que no se tiene permiso, el controlador lanzar una excepcin
detipo org.apache.struts.chain.commands.UnauthorizedActionException. Ya
hemos visto cmo capturar una excepcin y hacer que el navegador se redirija a una pgina de error.

http://www.jtech.ua.es/j2ee/publico/struts-2010-11/sesion01-struts-apuntes.html

Framework ---> Estos son frameworks de desarrollo de aplicaciones, cada una maneja a su propia
manera la seguridad, seria bueno que si hablas de estos frameworks ubiques la seccion de cada una de
ellas que se refiere a seguridad.

Un framework de aplicaciones web es un tipo de framework que permite el desarrollo de sitios web
dinmicos, web services (servicios web) y aplicaciones web. El propsito de este tipo de framework es
permitir a los desarrolladores construir aplicaciones web y centrarse en los aspectos interesantes, aliviando la
tpica tarea repetitiva asociada con patrones comunes de desarrollo web. La mayora de los frameworks de
aplicaciones web proporcionan los tipos de funcionalidad bsica comn, tales como sistemas de templates
(plantillas), manejo de sesiones de usuario, interfaces comunes con el disco o el almacenamiento en base de
datos de contenido cacheado, y persistencia de datos. Normalmente, los frameworks de aplicacin web
adems promueven la reutilizacin y conectividad de los componentes, as como la reutilizacin de cdigo, y
la implementacin de bibliotecas para el acceso a base de datos.

Los mejores frameworks son especialmente buenos para organizar proyectos de gran magnitud, y a su vez
tratando de mantenerse fuera del camino, sin imponerse por sobre el proyecto.

El ms conocido patrn de diseo de aplicaciones web es la arquitectura Model-View-Controller (MVC:


Modelo-Vista-Controlador). Un Modelo es un objeto que representa datos o incluso una actividad en forma de
tabla en base de datos. Una Vista es algn tipo de visualizacin del estado del modelo, y un Controlador
ofrece funciones (herramientas) para cambiar el estado del modelo.

Web ApplicationFrameworks

Ruby onRails Framework MVC basado en Ruby, orientado al desarrollo de aplicaciones web

CodeIgniter Poderoso framework PHP liviano y rpido

Kohana Un fork de CodeIgniter, Gracias a Samuel por mencionarlo en los comentarios.

Django Framework Python que promueve el desarrollo rpido y el diseo limpio

CakePHP Framework MVC para PHP de desarrollo rpido

Zend Framework Framework para PHP 5, simple, claro y open-source

Yii Framework PHP de alto rendimiento basado en componentes


Pylons Framework web para Python que enfatiza la flexibilidad y el desarrollo rpido

Catalyst Framework para aplicaciones web MVC elegante

Symfony Framework full-stack

TurboGears Prxima generacin construido sobre Pylons

Fuente: linuxlinks

http://www.juntadeandalucia.es/servicios/madeja/contenido/recurso/211#Estandares_y_frameworks_actuales
_que_abordan_la_seguridad_en_servicios_web

Herramientas de Seguridad

En alguna ocasin he ledo comparaciones de estas herramientas con otras que nicamente hacen
sus anlisis en base a firmas, como por ejemploNikto o la versin gratuita de N-Stalker Esta
comparacin es un error, ya que el enfoque es completamente distinto. Ambas estn enfocadas a
detectar vulnerabilidades pero las aplicaciones basadas en patrones generalmente tienen bases de
datos ms amplias y actualizadas que las herramientas comprensivas y por lo tanto son
complementarias.

Las caractersticas son muy similares en todas ellas, hacen una navegacin previa y
posteriormente lanzan el banco de pruebas. Exceptuando las dos ltimas, scrawlr y acunetix, que
nicamente detectan SQL Injection y XSS respectivamente, todas las dems buscan las
vulnerabilidades ms comunes.

Sandcat Free Edition


URL: http://www.syhunt.com/?n=Sandcat.Sandcat
Descarga: http://www.syhunt.com/?n=Sandcat.Download
Sistema Operativo: Windows
NetSpaker CE
URL: http://www.mavitunasecurity.com/communityedition/
Descarga: http://www.mavitunasecurity.com/communityedition/download/
Sistema Operativo: Windows

Websecurify
URL: http://www.websecurify.com/
Descarga: http://code.google.com/p/websecurify/downloads/list
Sistema Operativo: Windows, Mac OS, Linux

w3af
URL: http://w3af.sourceforge.net/
Descarga: http://sourceforge.net/projects/w3af/files/
Sistema Operativo: Windows, FreeBSD, Linux
skipfish
URL: http://code.google.com/p/skipfish/
Descarga: http://code.google.com/p/skipfish/downloads/list
Sistema Operativo: Linux

wapiti
URL: http://www.ict-romulus.eu/web/wapiti/home
Descarga: http://www.ict-romulus.eu/web/wapiti/download
Sistema Operativo: Linux
scrawlr
URL: http://www.communities.hp.com/securitysoftware/blogs/spilabs/archive/2008/06/23/finding-sql-
injection-with-scrawlr.aspx
Descarga: https://h30406.www3.hp.com/campaigns/2008/wwcampaign/1-
57C4K/index.php?mcc=DNXA&jumpid=in_r11374_us/en/large/tsg/w1_0908_scrawlr_redirect/mcc_
DNXA
Sistema Operativo: Windows

acunetix free edition


URL: http://www.acunetix.com/cross-site-scripting/scanner.htm
Descarga: http://www.acunetix.com/vulnerability-scanner/download.htm
Sistema Operativo: Windows
http://www.securitybydefault.com/2010/04/8-herramientas-de-seguridad-web.html

Si bien es cierto el desarrollo de una app web tiene dos ambitos de seguridad tanto lo logico para preveer las
autorizaciones y autentitaciones al sistema, pero ademas de ello tambien tienes que ver la infraestructura
fisica que puedes implementar para evitar ataques a tus aplicaciones web por ejemplo los firewalls fisicos,
tambien la buena configuracion del Internet information Server si es un app asp.net o apache si es linux o
glassfish si es java

cifrar informacion

teclados virtuales

evitar los robots

uso de captcha

http://www.slideshare.net/guest3cf6ff/14-seguridad-en-aplicaciones-web-aspnet?qid=6c13caac-8076-4ef2-
8ba5-aef1106e4773&v=qf1&b=&from_search=1

http://www.slideshare.net/pviquez/seguridad-20?qid=6c13caac-8076-4ef2-8ba5-
aef1106e4773&v=qf1&b=&from_search=3

http://www.slideshare.net/pviquez/seguridad-20?qid=6c13caac-8076-4ef2-8ba5-
aef1106e4773&v=qf1&b=&from_search=3

http://www.slideshare.net/reneolivo/seguridad-en-apps-web-y-comercio-electrnico?qid=6c13caac-8076-4ef2-
8ba5-aef1106e4773&v=qf1&b=&from_search=6

http://www.slideshare.net/juaneladio/seguridad-en-el-desarrollo-de-aplicaciones-web?qid=6c13caac-8076-
4ef2-8ba5-aef1106e4773&v=qf1&b=&from_search=5

http://www.slideshare.net/reneolivo/seguridad-en-apps-web-y-comercio-electrnico?qid=6c13caac-8076-4ef2-
8ba5-aef1106e4773&v=qf1&b=&from_search=6
diapo 49
habla sobre las vulnerabilidades top ten en vulnerabilidades
http://www.slideshare.net/mauromaulinir/resumen-curso-de-seguridad-para-desarrolladores-de-aplicaciones-
web-y-mviles-de-esecuring-ca

http://www.slideshare.net/mauromaulinir/resumen-curso-de-seguridad-para-desarrolladores-de-aplicaciones-
web-y-mviles-de-esecuring-ca

http://www.slideshare.net/ramos866/seguridad-web-3112487?next_slideshow=1

Potrebbero piacerti anche