0% encontró este documento útil (0 votos)
1K vistas24 páginas

Buenas Prácticas en Desarrollo Web Seguro

Este documento presenta una introducción a las buenas prácticas para el desarrollo de aplicaciones web seguras. Explica que los programadores que desarrollan aplicaciones son actores importantes y deben minimizar riesgos desde el inicio. Luego define conceptos como buenas prácticas, proyecto informático y objetivos de seguridad como integridad, disponibilidad y confidencialidad. Finalmente ofrece una lista de tips para buenas prácticas como planificación, comunicación con clientes, documentación y pruebas.

Cargado por

Clemen Buitrago
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
1K vistas24 páginas

Buenas Prácticas en Desarrollo Web Seguro

Este documento presenta una introducción a las buenas prácticas para el desarrollo de aplicaciones web seguras. Explica que los programadores que desarrollan aplicaciones son actores importantes y deben minimizar riesgos desde el inicio. Luego define conceptos como buenas prácticas, proyecto informático y objetivos de seguridad como integridad, disponibilidad y confidencialidad. Finalmente ofrece una lista de tips para buenas prácticas como planificación, comunicación con clientes, documentación y pruebas.

Cargado por

Clemen Buitrago
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

MARCO

TERICO
CONCEPTUAL
Liliana Cjar Bahamn

Noviembre de 2015

ANTEPROYECTO ESPECIALIZACIN EN SEGURIDAD INFORMATICA


GUA DE BUENAS PRCTICAS PARA EL DESARROLLO DE APLICACIONES WEB SEGURAS,
ORIENTADAS A LA FORMACIN DE PROGRAMADORES

Cada vez que miramos en nuestro entorno, vemos la cantidad de tecnologa que
existe, la comunicacin, los juegos, la televisin, la telefona, en fin, cada
negocio, cada casa y particularmente cada persona cuenta con un aparato que le
permite comunicarse y estar informado de manera inmediata. Nuestro activo
principal, tanto personal como de empresas es la informacin que genera ante
cualquier uso de la tecnologa, y todo esto generalmente queda guardado en
nuestros aparatos electrnicos.
Es importante saber que cuando se utiliza un computador, un telfono o
enviamos un correo, necesitamos de programas o aplicaciones que ayuden a
obtener y desarrollar la actividad que se requiere, los desarrolladores de estas
aplicaciones, los programadores que manejan pginas WEB son los actores ms
importantes de este intercambio tecnolgico y por supuesto estn las amenazas,
los riegos y las vulnerabilidades latentes en cada uno de estos programas y
aplicaciones.
Un aporte fundamental que se pretende con este trabajo es ofrecer a los
estudiantes de media tcnica de las instituciones educativas del municipio de
Medelln una gua que permita minimizar los riesgos a que estn expuestos
desde el momento de la realizacin del programa, que los estudiantes desde su
aprendizaje tengan en cuenta esta gua y la incorporen al momento del desarrollo
de su actividad.
Lo primero que se debe tener en cuenta son algunos tips que existen para
proporcionar buenas prcticas en cualquier proyecto informtico.

BUENAS PRCTICAS PARA EL DESARROLLO DE UN PROYECTO


INFORMTICO

Qu son buenas prcticas?

Son un conjunto de acciones ordenadas, ciertas, coherente y seguras, con


objetivos claros y procedimientos adecuados, realizadas por personas que ponen
en prctica sus conocimientos en pro de satisfacer una necesidad identificada,
obviamente, cumpliendo con normas, polticas, reglas y estndares que la
certifiquen como apta para ponerla en funcionamiento y que se convierta en un
referente para mejorar otros procesos. (FEAPS, 2007)

Porque se les llaman buenas prcticas?

Porque cumplen con normas, polticas, estndares y reglas que la hacen


vlida y conforme a la Ley para que cumpla con su perfecto su
funcionamiento.
Porque atacan de raz una necesidad convirtindola en una fortaleza.
Porque el personal encargado son personas calificadas y especializados para
desarrollar la labor.
Porque las propuestas son innovadoras y creativas.

Que hace que una prctica sea mal desarrollada?

El tiempo reducido en su ejecucin


Personal con conocimientos escasos del tema
Que la necesidad no sea tan evidente.
Desarrollo por investigaciones equivocadas
Etapas de inicio poco slidas.1

Feaps.( 2007) Buenas prcticas FEAPS , pag. 6,7, 9 y 10

Qu es un proyecto informtico?

Es el cubrimiento de una necesidad identificada por alguien y realizado por un


grupo de personas conocedoras de las tecnologas de la informacin y la
comunicacin, que construyen un producto de software que satisfaga esa
necesidad.2

Tips de buenas prcticas para el desarrollo de un proyecto informtico

Existe tanta literatura como medios para obtener los diferentes tips que hacen
que un proyecto informtico sea reconocido como buen proyecto, porque
cumplen con los lineamientos especficos que lo hacen sobresalir de los dems
proyectos y porque culminan satisfaciendo las necesidades por los que fueron
creados. Aqu nombro algunos de ellos:

Lo primero que se debe hacer es un acercamiento con el cliente para saber


sus necesidades, expectativas, requerimientos y viabilidad de su peticin.
Una vez se tenga reconocido el proyecto y lo que se va a hacer, se debe
empezar con la planificacin del trabajo en general, hacer un bosquejo de los
resultados y hacrselo saber al cliente para poner en marcha el proyecto; de
ah en adelante se debe tener en cuenta lo que sigue:
Involucrar al cliente en el desarrollo del proyecto. Hacer partcipe al cliente de
la evolucin del proyecto y sobretodo en la fase de requerimientos, con esto
se garantiza que lo que se hace es lo que quiere el cliente.
Valorar la importancia del sistema a implementar. El cliente debe tener claro
que lo que se est haciendo ser para beneficio de su empresa por tanto
debe instruir a sus empleados acerca de la importancia de poner en
funcionamiento el proyecto finalizado.
Concientizar al cliente y sobre todo a los empleados de que el proyecto en
mencin es un apoyo a la gestin de los empleados y que en ningn
momento sustituir al empleado quien es el responsable y decide qu, cundo
y cmo realizar el trabajo.
Tener siempre presente los objetivos del negocio.
Tener siempre una comunicacin directa con el cliente, evitar los
intermediarios.
Elaborar un mapa de riesgos.
2

M. Astudillo. (2009) El Proyecto informtico. Documento disponible en:


http://www.monografias.com/trabajos-pdf2/proyecto-informatico/proyecto-informatico.pdf

Flexibilidad en los requerimientos. El cliente hace la solicitud de un proyecto


producto de una necesidad manifiesta, sabe lo que necesita pero no sabe
cmo se desarrollar, por tanto a medida que se realicen los requerimientos,
el cliente puede ir modificando sus exigencias de acuerdo a la complejidad del
proyecto.
Evaluar de manera efectiva la complejidad de los requerimientos. Explicar al
cliente lo que significa en tiempo y plata sus requerimientos permitiendo al
cliente reformar sus exigencias y al realizador del proyecto cumplir con los
tiempos estipulados.
Reconocer delante del cliente la importancia de la realizacin del proyecto y
los beneficios que traer a su empresa.
Cuando se dirija al cliente hacerlo en lenguaje ordinario, evitar las palabras
tcnicas que confundan al cliente, los tecnicismos generan desconfianza, las
palabras comunes, hacen que el cliente entienda y confe.
Averiguar quines sern los beneficiados con el proyecto, que hacen y que
necesitan y definir las posibles soluciones acordes con los procesos
implementados en la empresa.
Definir el alcance del proyecto, identificar los requerimientos y organizarlos de
acuerdo con su urgencia.
Una vez se est ejecutando el proyecto, se debe estar preparado para
posibles pequeas variaciones en el alcance del proyecto, lo cual implica
reprocesar; esto solo es posible si redunda en mejor calidad en el proyecto y
excelente satisfaccin para el cliente.
Se debe tener en cuenta de documentar constantemente, levantar actas de
las reuniones y documentar los procesos realizados.
Tener clara la trazabilidad del producto, conocer los requerimientos y todos
los mtodos que se aplican para su solucin desde el levantamiento de
requerimientos, pasando por los modelos arquitectnicos, el diseo, el
programa que se utilizar, el cdigo fuente aplicado y los casos de prueba.
Utilizar diseos giles que le permitan hacer modificaciones a medida que el
proyecto avance, igualmente hacer modificaciones al modelo de acuerdo con
la exigencia del proyecto.
Realizar las pruebas de cdigo y comprobar su funcionamiento.
Las herramientas que generan cdigo facilitan en gran medida el trabajo.
El diseo es una parte esencial para el desarrollo del proyecto, con ello se
tiene identificado su inicio, avance y culminacin.
Tener claro que en la etapa de requerimientos se debe hacer adems de la
recoleccin y anlisis de los requerimientos, un estudio de factibilidad que
integra la disponibilidad de recursos que se utilizarn para llevar a cabo el
proyecto, objetivos, alcance, limitaciones, costos aproximados, tiempo de
ejecucin, etc.

Existen numerosas herramientas para desarrollo de software, tener en cuenta


las convenciones necesarias de acuerdo con el lenguaje de programacin que
escoja.3

LA SEGURIDAD EN INFORMTICA

La seguridad informtica no es ms que la accin de proteger mediante


mecanismos tcnicos y legales, los activos ante cualquier amenaza, riesgo o
dao que lo pueda atacar, empezando por los activos fsicos con los cuales se
crea y adelantan las labores diarias, y siguiendo con la informacin generada que
finalmente se convierte en el reflejo del buen nombre de la empresa.

El Riesgo es la identificacin de las vulnerabilidades medidas mediante la


probabilidad de que ocurra un suceso y los posibles daos que ocasionara en el
desarrollo de la empresa, es all donde toma parte la seguridad informtica
buscando mecanismos de defensa y proteccin.

Es de vital importancia dirigir la proteccin de los activos hacia los objetivos


fundamentales de la seguridad como son la integridad, la disponibilidad y la
confidencialidad.

La Integridad, garantiza que los datos permanezcan exactos y que no puedan


ser borrados o modificados por personas no autorizadas, La firma digital es uno
de los mecanismos fundamentales para conservar la integridad en la informacin.

La Disponibilidad asegura que la informacin se encuentre al alcance de los


que la necesiten y que estn autorizadas, para ello existen los permisos que se
otorgan a los usuarios, de lectura, de escritura y de ejecucin.

La Confidencialidad asegura que la informacin est resguardada y que solo


sea accesible para las personas que cuentan con la autorizacin necesaria para

J.C. Herazo (2010) Preparado para presentar tu proyecto de seguridad informtica ante gerencia?
Disponible en: http://liacolombia.com/2011/02/%C2%BFpreparado-para-presentar-tu-proyecto-deseguridad-informatica-ante-gerencia/

utilizarla, para la confidencialidad es importante el cifrado de la informacin


relevante.
Estos tres objetivos podran ser ms eficaces si a cada usuario que haga uso de
la informacin de la empresa se le diera permiso y tuviera que autenticarse al
momento de ingreso, esto como parte de la seguridad y para que se pueda
identificar el tipo de operaciones que realiza y la clase de informacin pueda
manipular en un caso dado. Igualmente se debe tener el control de los
movimientos que se presenten con el sistema realizando registros y auditoras,
esto garantiza el no repudio (verificacin que una transaccin cualquiera que
sea su naturaleza haya sido entregada y recibida) 4

Todo caso de seguridad en la empresa es de orden primordial toda vez que no


solamente existe ataques desde el exterior, sino que dentro de las mismas
compaas existen empleados que pueden afectar la informacin ya sea de
forma involuntaria o voluntaria y que pueden poner en riesgo la estabilidad de la
compaa.

Riesgos que pueden afectar la WEB

Cada da el uso de aplicaciones WEB en las compaas se hace ms frecuente


dado el avance tecnolgico en cuanto a comercio electrnico y a la necesidad de
prontitud y facilidad de las transacciones o negocios, las compaas cada da se
ven obligadas a manejar su informacin a travs de la red lo que las hacen
vulnerables ante los ataques informticos.
La empresa Gartnet Inc. Situada en Stamford, Connecticut, Estados Unidos, Est
dedicada a la consultora e investigacin de las Tecnologas de la informacin,
estima que el 75% de los ataques informticos estn direccionados hacia las
aplicaciones web y que generalmente stos son producidos con fines de
ganancias econmicas, por tan razn, la seguridad en las aplicaciones debe ser
tenida en cuenta desde el momento del diseo hasta el momento de su
ejecucin.
Muchas de las aplicaciones que tienen que ver con transacciones comerciales
son objetivos de los delincuentes informticos que tratan de violar la seguridad
para obtener claves, contraseas, nmeros de tarjetas de crdito etc.; Estas
aplicaciones generalmente presentan vulnerabilidades porque no son
desarrolladas con el tiempo necesario para tener en cuenta la seguridad dadas
4

Infosegur (2013). Objetivos de la Seguridad informtica. Disponible en:


https://infosegur.wordpress.com/tag/no-repudio/

las presiones ejercidas por el cliente para la entrega y porque no se tiene la


conciencia de la importancia que la seguridad representa.

Otro de los objetivos son las debilidades de HTTP que existen cuando se utilizan
puertos TCP conocidos como el puerto 80 y/o 443 para la comunicacin y
aunque la funcin del Firewall es filtrar el trfico de informacin que entra y sale
de dos redes o de computadores que trabajan dentro de una misma red y que
deben cumplir con unas reglas especficas (que en caso de no cumplirse, la
informacin es bloqueada), si utiliza estos puertos para permitir la comunicacin,
de nada sirve.

QUE ES UNA APLICACIN WEB

Primero que nada debemos saber que la palabra WEB (Acrnimo de World Wide
Web), es una palabra inglesa que tiene como significado red, telaraa o malla y
es utilizada en los medios informticos para referirnos a internet 5

Una aplicacin web, es una herramienta que ha sido creada mediante cdigo con
el nico propsito de interactuar con el usuario y cumplir con un propsito
especfico de realizar una orden que le ha solicitado un usuario. Es tambin una
herramienta que se ejecuta en internet y por tanto todos los datos archivos, o
historial de navegacin, quedan guardados en la web. Generalmente son
accedidas directamente (online) y no necesitan instalarse en el computador para
realizar su trabajo, un ejemplo de ello son Yahoo, Gmail o Microsoft Outlook, que
son programas que guardan la informacin en la nube y pueden ser accedidos
desde cualquier computador o dispositivo mvil en cualquier parte del mundo

Las aplicaciones web nos ofrecen muchas ventajas como su gratuidad o sea que
se puede obtener una aplicacin que sirva para un fin especfico de manera
gratuita y no necesita descargarse en el computador para poder ejecutarla.

Otras de sus bondades es la accesibilidad ya que como su informacin queda


guardada en la nube, se puede ingresar a ella en cualquier momento y lugar,
igualmente se puede trabajar en ellas de manera simultnea entre varios
usuarios.
15 Consulta realizada el 24 de octubre de 2015, disponible en: http://definicion.de/web/

Ciclo de vida en el desarrollo de aplicaciones web.

El auge que han tenido en los ltimos aos las TIC (Tecnologas de la
Informacin y la Comunicacin) ha hecho que no solamente las empresas se
beneficien de ellas por la necesidad en sus transacciones casi que inmediatas y
la urgencia en las comunicaciones giles y efectivas, sino que ha ingresado a los
hogares obligando a las personas a hacer uso de ellas no solamente utilizando la
parte transaccional sino utilizndolas como mtodo de investigacin y hasta de
diversin y esparcimiento.

Es as como cada da se inventan nuevos plataformas, sistemas operativos,


programas, aplicaciones etc. que son el resultado de grandes investigaciones
que permiten suplir en gran parte las necesidades de los usuarios y que hacen al
mundo entero partcipe del uso de las tecnologas.

Las aplicaciones web son programas informticos que se realizan a travs de un


computador y que son accedidas por la web por medio de una red como internet
o intranet o sea que no necesitan ser descargadas y se puede acceder a ellas
desde cualquier lugar y en mltiples plataformas.

Existen muchsimas metodologas para el desarrollo de aplicaciones web, la


variedad de estas metodologas depende de los requerimientos. Existen tcnicas
de modelado conceptual tradicional, mtodos de diseo orientadas a objetos y
tambin existen mejoras del modelo conceptual implantando modelos de
navegacin y presentacin. (Silva, 2001), (Marcos, 2002).

Las aplicaciones web tienen un proceso de desarrollo o de vida que puede


dividirse en etapas; este proceso permite visualizar el trabajo de manera
ordenada, haciendo que cualquier persona sepa observarlo y entenderlo. Estas
etapas estn divididas as:

Etapa de levantamiento de necesidades u oportunidades o de requisitos


Etapa de anlisis
Etapa de diseo
Etapa de codificacin,
Etapa de Pruebas
Etapa de instalacin

Etapa de mantenimiento. 6

ETAPA DE LEVANTAMIENTO DE NECESIDADES U OPORTUNIDADES O DE


REQUISITOS: En esta fase se identifican los usuarios y sus necesidades, las
formas de las necesidades de informacin, necesidades de navegacin,
necesidades de adaptacin y necesidades de interfaz de usuario. Tambin
requisitos especficos de informacin, terminando con un prototipo de interfaz del
usuario.

ETAPA DE ANALISIS: Luego de que el cliente ha expresado sus necesidades, se


realiza entonces el anlisis, se determinan los requisitos que debe tener la
aplicacin, como pblico objetivo, hardware y software a utilizar, mdulos,
requisitos tcnicos, alcance, responsabilidades, plazos, costos etc.

ETAPA DE DISEO: Propuesta firmada como aceptada, adelanto en dinero,


material, esquemas de diseo o planos del programador, es la manifestacin de
la estructura de la aplicacin.

ETAPA DE CODIFICACIN: Desarrollo del cdigo de acuerdo a la estructura


anterior, los desarrolladores deben conocer la interfaz y el cdigo a desarrollar de
acuerdo con el lenguaje de programacin es la traduccin de la estructura en
cdigo que ofrezcan como resultado una interfaz amigable al cliente.

ETAPA DE PRUEBAS: Las aplicaciones web necesitan pruebas de integracin,


de tensin, de escalabilidad, de carga, de resolucin y de compatibilidad, con ello
se comprueba que la aplicacin se desarrolla en forma adecuada conforme a las
exigencias del cliente.

ETAPA DE INSTALACIN: Luego de haber terminado con la codificacin y


realizado las pruebas pertinentes, llega esta etapa que es la entrega oficial del
proyecto al cliente, en donde se deja instalado el programa y funcionando, se
debe tener en cuenta que durante todo el proceso ha habido acompaamiento
directo con el cliente, por tanto en esta etapa ya se entrega el programa
funcionando a satisfaccin del cliente
6

Consulta realizada el 28 de octubre de 2015, disponible en: http://elvex.ugr.es/idbis/db/docs/lifecycle.pdf

ETAPA DE MANTENIMIENTO: Generalmente las aplicaciones WEB necesitan


actualizaciones porque las correcciones de errores se van haciendo a medida
que se va desarrollando la codificacin.

Arquitecturas para el desarrollo de aplicaciones web.


Una aplicacin Web es un sitio dentro de internet que ha sido creada para
contener informacin a la que puede acceder desde un motor de bsqueda con
un tema especfico, permitiendo a los usuarios obtener informacin rpidamente
con una gama amplia de alternativas de uso.

Figura 1: Arquitectura de una aplicacin WEB

Fuente: http://www.n4designlab.com.mx/blog/index.php/119-aspectos-basicosde-las-aplicaciones-web

Tiene 3 componentes principales: Servidor web, conexin a la red y los clientes.


Un cliente realiza una peticin desde un buscador, esta peticin viaja usando una
conexin de red usando el protocolo HTTP y llega hasta un servidor web que se

encarga de buscar entre su sistema de archivos la solicitud y entrega la respuesta


correspondiente, una vez entregada la solicitud, se rompe el proceso. 7

SEGURIDAD EN EL CICLO DE VIDA DE UNA APLICACIN WEB.

La seguridad que se debe aplicar al crear una aplicacin web es un tema muy
amplio dados los puntos de vulnerabilidades que lo contienen y las amenazas
constantes a las que se est expuesta, es importante tener un conocimiento muy
amplio de la manera de prevenirlos, lo importante en la creacin de una
aplicacin web dinmica es que se puede actualizar constantemente.
Aunque las amenazas que rodean las aplicaciones web estn latentes, es
importante tener en cuenta algunas recomendaciones para minimizar el riesgo,
algunas de ellas seran:

El servidor debe mantenerse en un lugar seguro donde no tenga acceso


de personas no autorizadas.
Realizar copias de seguridad frecuentemente y guardarlas en lugares
seguros.
Cierre los puertos que no utiliza y cancele los servicios no utilizados.
Mantenga un programa antivirus potente que vigile y reporte la informacin
que entra y sale.
Asegrese de que se cumpla la orden de utilizar contraseas fuertes y
ocultas.
Utilice firewall potentes.
Utilice la criptografa para proteger la informacin sensible.
Para descargas utilice solamente fuentes y pginas confiables.
Desconfe de correos de remitentes desconocidos.
Verifique que la direccin comience por https, es una conexin segura y no
utilice computadores pblicos para realizar transacciones.
Controle las entradas y salidas, contactos, informacin, contraseas etc.
de las redes sociales. 8

Consulta realizada en 28.10-2015 disponible en: https://programacionwebisc.wordpress.com/2-1arquitectura-de-las-aplicaciones-web/


8
J. Lpez.(2010) Monogrfico: Seguridad en Internet Consejos para minimizar los riesgos en la navegacin
por internet, disponible en: http://recursostic.educacion.es/observatorio/web/en/listadomonograficos?start=4

Existen variedad de herramientas que permiten detectar las vulnerabilidades de


las pginas web, sin embargo, existen mtodos que ayudan a proteger la
informacin y a mantenerla oculta en caso de ataques cibernticos. Para esto se
ha desarrollado una tcnica importante en el ocultamiento de la informacin, LA
CRIPTOGRAFA.

Qu es Criptografa?

Es la aplicacin de una tcnica, cdigo o conjunto de cdigos que han utilizado


para ocultar informacin importante. Desde tiempos antiguos como en la poca
de los romanos, por necesidad de que no fueran descubiertas sus estrategias de
guerra enviaban cdigos que solo ellos conocan y que nadie poda descifrarlos.
Igualmente se utiliz la mquina Enigma usada en la segunda Guerra mundial
para enviar mensajes cifrados y se han utilizado otros como el cifrado Csar, el
diseo Feistel, etc. (H. Corrales, C. Cilleruelo, A. Cuevas, 2014, p. 4)9
En nuestra poca, con la llegada de las computadoras, el envo constante de
informacin a travs de los correos electrnicos, las transacciones que se
realizan a travs de la red, se hizo necesario encontrar una manera de esconder
de manera ptima la informacin de manera que se haga inteligible ante
cualquier ojo normal. Guardar informacin importante en los discos duros o en
cualquier otro dispositivo, hace que la informacin all almacenada sea apetecida
por cualquier invasor daino, es por esto que esta informacin, en ocasiones
primordial y puede llegar a ser muy valiosa para la empresa, por tanto esta
tcnica que es utilizada para ocultar informacin importante que no pueda ser
accedida por nadie excepto por el creador y por el receptor de la informacin
quien conoce de antemano la clave; con ello se garantiza la integridad, la
confidencialidad y la disponibilidad de la informacin en tiempo real.

Figura 2: proceso de cifrado y descifrado de la informacin

Consultado el 26 de octubre de 2015, disponible en:


http://www3.uah.es/libretics/concurso2014/files2014/Trabajos/Criptografia%20y%20Metodos%20de%20Ci
frado.pdf

Fuente: propia

Algunos ejemplos de algoritmos de criptografa clsica se pueden consultar en la


pgina https://genomorro.files.wordpress.com/2007/09/trabajo.pdf.

Qu uso tiene la Criptografa?

La criptografa se cre con el propsito de esconder informacin de manera que


cualquier persona que acceda a ella no pueda descifrarla fcilmente.
La Criptografa se ha utilizado para:
Permitir que la informacin solo sea accedida por las personas autorizadas.
Solo pueda ser modificada por las personas que tengan los permisos para
hacerlo.
Que la informacin se pueda consultar en cualquier momento que se requiera.
Hace ms seguras las comunicaciones y permite que mediante el cifrado
simtrica se pueda tener privacidad y velocidad de transferencia al mismo
tiempo.
Con el uso de firmas digitales, se asegura que el acceso a la informacin sea
ms controlado.
Facilitan el comercio electrnico reduciendo los riesgos de robo.

La criptografa no solo es utilizada con fines benvolos, tambin ha sido utilizada


para robos al interior de las compaas
Fuga de informacin.
Encriptacin de informacin con fines ilegales (pornografa, espionaje, msica,
videos etc)
Qu clases de tecnologas existen?

Existen muchas maneras de encriptar la informacin, algunas de ellas pueden ser:

Criptografa Simtrica: Tcnica utilizada en ocultar informacin mediante una


nica clave (nmeros, letras, palabras o cadenas de letras o palabras
aleatorias con o sin sentido) que se utiliza para enmascarar y desenmascarar
un texto. Esta clave es conocida por el emisor y el recetor del mensaje. 10
Criptografa Asimtrica: Tcnica utilizada para el envo y recepcin de
informacin mediante 2 claves, una pblica (conocida por todos) y una privada
(conocida por una sola persona), la seguridad que ofrece la criptografa
asimtrica es que solo las dos claves son utilizadas para el descifrado de la
informacin. La clave pblica la conoce el emisor para encriptar la informacin
y la clave privada es conocida solamente por el receptor para descifrarla. 11
La Firma digital: Tcnica que permite demostrar ante auditores, que los
documentos son propios, se realiza mediante un Hash generado al documento
original, mediante la clave pblica se realiza el hash del descifrado y se
comparan, si coincide, la informacin es veraz y la firma es autntica. Es
importante comprobar las fechas de caducidad o revoque. 12

Certificados digitales: Tcnica que consiste en utilizar un certificado o


paquete de informacin que identifica al usuario que contiene informacin
acerca de ste, como direccin de correo electrnico, clave pblica, pas de
origen, periodo de validez y firma digital del certificado. Generalmente es utilizada
para identificar al titular del emisor de la informacin; es una tcnica utilizada
como refuerzo de las tcnicas anteriores13

Servicios criptogrficos disponibles

A continuacin se enumeran algunas herramientas que ofrecen servicios de


encriptacin, generadores de claves pblicas y privadas y firmas digitales de
documentos:
EncryptOnClick: Aplicacin que sirve para encriptar ficheros protegindolos
con una contrasea a la que puede acceder solo las personas interesadas, su
10

ANGEL, Jos de Jess. Criptografa para principiantes. P. 13 Disponible en:


http://spi1.nisu.org/recop/www.seguridata.com/pdf/cbasica.pdf
11
Ibid., p. 21
12
Ibid., p. 24
13
Ibid., p. 37

interfaz se compone de cuatro botones por los que se puede acceder a todas
acciones del programa.
Folder encripter: Aplicacin que permite encriptar y desencriptar mediante una
contrasea, archivos o carpetas.
Softavir-strict: Herramienta que permite ejecutar solamente los programas que
hayan sido aadidos a la lista (Lista blanca), as asegura que no dejara que
ningn software intruso ingrese al sistema.
Secryptor: Herramienta que permite encriptar los archivos guardados en la
nube.
Cryptext: Herramienta que encripta y desencripta el men contextual de
Windows.
Hide it Pro: Es una aplicacin gratuita que sirve para encriptar archivos y
desencriptarlo mediante contrasea o pin.
Paragon Encrypted Disk SE: Es una herramienta que encripta archivos
mediante imgenes codificadas en diferentes tipos de codificacin.
PGP ENCRYPTER: Programa que permite el cifrado de la informacin,
genera claves pblicas y privadas y realiza firmas digitales.
GnuPG: Herramienta de seguridad que permite generar un nuevo par de
claves, intercambia claves. Cifra y descifra documentos y firma y verifica
firmas.
BCArchive : Herramienta para encriptar y desencriptar informacin.
SecureZIP Express: Herramienta disponible para el cifrado de informacin,
expedicin de certificados digitales mediante X.509 y entrega de claves.

BUENAS PRCTICAS DE CODIFICACIN ARQUITECTURA PARA EL


DESARROLLO DE APLICACIONES WEB.

Antes de iniciar con la seguridad en aplicaciones, todos los que de alguna manera
deben trabajar con la parte de la seguridad informtica, deben conocer acerca de
lo que significa OWASP (Open Web, Application Security Proyect o en espaol
Proyecto abierto de seguridad de aplicaciones Web), ya que es una organizacin
de personas voluntarias que trabajan en pro de la comunidad, proporcionando
recursos gratuitos, apoyo a empresas para utilizar documentos, herramientas
confiables y gratuitas, recursos, foros y capacitaciones, con el fin de que cualquier
persona o empresa pueda acceder a ellas y obtener la mayor seguridad en todo lo
que respecta a la tecnologa, cualquier informacin al respecto se puede encontrar
en pgina www.owasp.org
No es el propsito de este trabajo, reescribir los datos encontrados all, pero es
una invitacin para los que requieren del tema de seguridad en las empresas y
hasta en la utilizacin de aplicaciones a nivel personal, por lo menos se informen
acerca de estos temas.
Qu se puede encontrar en esta pgina:

14

Herramientas y estndares de seguridad en aplicaciones.


Libros completos de revisiones de seguridad en aplicaciones, desarrollo de
cdigo fuente seguro, y revisiones de seguridad en cdigo fuente.
Controles de seguridad estndar y libreras.
Captulos locales en todo el mundo.
Investigaciones de vanguardia.
Extensas conferencias alrededor del mundo.
Listas de correo14

Consulta realizada el 13-11-2015 disponible en https://www.owasp.org/images/5/5f/OWASP_Top_10__2013_Final_-_Espa%C3%B1ol.pdf

Seguridad en la Construcciones de aplicaciones

Para evitar problemas de seguridad en una aplicacin, es buena prctica construir


la seguridad dentro del Ciclo de Vida de Desarrollo del Software igualmente
probar en todas las etapas y con frecuencia para detectar vulnerabilidades
tempranas dentro del ciclo, que se traducen en correcciones a menor costo. Las
pruebas se deben hacer con entradas no convencionales, es decir, no los datos
esperados por la aplicacin sino las excepciones. Es buena prctica La revisin
permanente del cdigo, proceso de comprobar manualmente el cdigo fuente de
una aplicacin web en busca de vulnerabilidades 15
Si bien es cierto que existen innumerables de fallas que se pueden producir para
mantener protegido los sistemas de informacin, tambin es cierto que la mayora
de ellos ocurren desde el momento mismo de la creacin de cdigo ya que
generalmente no se tiene en cuenta la cantidad de riesgos a que se est expuesto
dada la complejidad de la infraestructura digital que maneja todo o que respecta
las informacin y la comunicaciones que viaja a travs de internet.
La Fundacin OWASP es una entidad sin nimo de lucro est tomada como
referente dado que es un proyecto abierto, creado por personas que tienen un
vasto conocimiento en los sistemas y ms en lo que se refiere al tema de
seguridad informtica, dedicado a la bsqueda y lucha contra las causas de
software inseguro, tiene como fin crear conciencia acerca de la seguridad en la
informacin, es libre, por tanto cualquier persona se puede afiliar y aportar
conocimientos en pro del beneficio de los usuarios; podra tomarse como una gua
de consulta casi que obligatoria para los desarrolladores de software16
Los documentos originales estn creados en el idioma Ingls, pero ya han sido
traducido algunos documentos a varios idiomas incluyendo el espaol, Podemos
utilizar los documentos y herramientas que ofrecen, OWASP tiene catalogado sus
proyectos en categoras, los proyectos de desarrollo y los de documentacin.

15

(https://www.owasp.org/index.php/Category:OWASP_Code_Review_Project)
https://www.owasp.org/images/8/80/Gu%C3%ADa_de_pruebas_de_OWASP_ver_3.0.pdf
16
Pgina disponible en https://www.owasp.org

Algunos de ellos son:

Una gua para construir aplicaciones y servicios Web seguros. Documento en


espaol en donde se detalla la seguridad en aplicaciones Web, utilizando
diferentes programas como J2EE, ASP, .NE, PHP., disponible en:
https://www.owasp.org/images/b/b2/OWASP_Development_Guide_2.0.1_Spa
nish.pdf

Application Security Guide For CISOs. Documento en ingls que trata sobre
ayudar a los jefes de los servicios informticos, a gestionar los programas de
seguridad
de
las
aplicaciones.
Disponible
en:
https://www.owasp.org/images/d/d6/Owasp-ciso-guide.pdf
OWASP Cheat Sheet: Trucos para identificar las vulnerabilidades y su defensa
Disponible
en:
https://translate.google.com.co/translate?hl=es419&sl=en&u=https://www.owasp.org/index.php/OWASP_Top_Ten_Cheat_Sh
eet&prev=search
OWASP Categora de las Vulnerabilidades: Lista de las vulnerabilidades, que
son,
como
se
utilizan
y
como
combatirlas.
Disponible
en:
https://translate.googleusercontent.com/translate_c?depth=1&hl=es&prev=sear
ch&rurl=translate.google.com.co&sl=en&u=https://www.owasp.org/index.php/C
ategory:Vulnerability&usg=ALkJrhiPJIJCJW34BetOpiykG70P5dMKVw

Gua de pruebas OWASP: Muestra los procedimientos y herramientas para


probar la seguridad de las aplicaciones y est dedicada para desarrolladores
de software, Testers de software y especialista de seguridad especialmente.
Disponible
en:
https://www.owasp.org/images/8/80/Gu%C3%ADa_de_pruebas_de_OWASP_
ver_3.0.pdf
Gua de revisin de cdigo OWASPO: ofrece verificacin de cdigo de las
aplicaciones, an no est publicado en espaol, solo en ingls. Disponible en:
https://www.owasp.org/images/2/2e/OWASP_Code_Review_Guide-V1_1.pdf
Lista de preguntas frecuentes con sus respuestas (en Ingls), disponible en:
https://www.owasp.org/index.php/OWASP_AppSec_FAQ

OWASP Top 10-213 Los diez riesgos o vulnerabilidades ms crticas en


Aplicaciones Web, Es un documento en donde se relacionan los riesgos y
vulnerabilidades ms crticas de las aplicaciones Web, explicando que son,
como prevenirlas, ejemplos y referencias bibliogrficas para documentarse.
Disponible
en:
https://www.owasp.org/images/5/5f/OWASP_Top_10__2013_Final_-_Espa%C3%B1ol.pdf
La ltima actualizacin de los diez riesgos ms crticos en aplicaciones Web es
del 2013 tomando como base la actualizacin de 2010; de acuerdo con un
estudio realizado por la pgina de OWASP17, catalogaron las 10 principales
vulnerabilidades o riesgos en la seguridad informticas ms crticos de las
aplicaciones Web, en ella est contenido las explicaciones de qu es, el
impacto, y cmo prevenirlos, algunos ejemplos de ataques realizados y
referencias o bibliografas en donde encuentra mayor informacin. Estos estn
catalogados de la siguiente manera:

1. A1 Inyeccin: Las fallas de inyeccin, tales como SQL, OS, y LDAP,


ocurren cuando datos no confiables son enviados a un intrprete como
parte de un comando o consulta. Los datos hostiles del atacante pueden
engaar al intrprete en ejecutar comandos no intencionados o acceder
datos no autorizados.18
2. A2 Prdida de Autenticacin y Gestin de Sesiones: Las funciones de
la aplicacin relacionadas a autenticacin y gestin de sesiones son
frecuentemente implementadas incorrectamente, permitiendo a los
atacantes comprometer contraseas, claves, token de sesiones, o explotar
otras fallas de implementacin para asumir la identidad de otros
usuarios.19
3. A3 Secuencia de Comandos en Sitios Cruzados (XSS): Las fallas XSS
ocurren cada vez que una aplicacin toma datos no confiables y los enva
al navegador web sin una validacin y codificacin apropiada. XSS
permite a los atacantes ejecutar secuencia de comandos en el navegador
de la vctima los cuales pueden secuestrar las sesiones de usuario,
destruir sitios web, o dirigir al usuario hacia un sitio malicioso.20

17

OWASP Top 10 2013- Los diez riesgos ms crticos en Aplicaciones Web, Disponible en:
https://www.owasp.org/images/5/5f/OWASP_Top_10_-_2013_Final_-_Espa%C3%B1ol.pdf
18
Ibid, pag. 7
19
Ibid, pag. 8
20
Ibid, pag. 9

4. A4 Referencia Directa Insegura a Objetos: Una referencia directa a


objetos ocurre cuando un desarrollador expone una referencia a un objeto
de implementacin interno, tal como un fichero, directorio, o base de
datos. Sin un chequeo de control de acceso u otra proteccin, los
atacantes pueden manipular estas referencias para acceder datos no
autorizados.21
5. A5 Configuracin de Seguridad Incorrecta: Una buena seguridad
requiere tener definida e implementada una configuracin segura para la
aplicacin, marcos de trabajo, servidor de aplicacin, servidor web, base
de datos, y plataforma. Todas estas configuraciones deben ser definidas,
implementadas, y mantenidas ya que por lo general no son seguras por
defecto. Esto incluye mantener todo el software actualizado, incluidas las
libreras de cdigo utilizadas por la aplicacin.22
6. A6 Exposicin de Datos Sensibles: Muchas aplicaciones web no
protegen adecuadamente datos sensibles tales como nmeros de tarjetas
de crdito o credenciales de autenticacin. Los atacantes pueden robar o
modificar tales datos para llevar a cabo fraudes, robos de identidad u otros
delitos. Los datos sensibles requieren de mtodos de proteccin
adicionales tales como el cifrado de datos, as como tambin de
precauciones especiales en un intercambio de datos con el navegador.23
7. A7 Ausencia de Control de Acceso a las Funciones: La mayora de
aplicaciones web verifican los derechos de acceso a nivel de funcin antes
de hacer visible en la misma interfaz de usuario. A pesar de esto, las
aplicaciones necesitan verificar el control de acceso en el servidor cuando
se accede a cada funcin. Si las solicitudes de acceso no se verifican, los
atacantes podrn realizar peticiones sin la autorizacin apropiada.24
8. A8 Falsificacin de Peticiones en Sitios Cruzados (CSRF): Un ataque
CSRF obliga al navegador de una vctima autenticada a enviar una
peticin HTTP falsificado, incluyendo la sesin del usuario y cualquier otra
informacin de autenticacin incluida automticamente, a una aplicacin
web vulnerable. Esto permite al atacante forzar al navegador de la vctima

21

Ibid, pag. 10
Ibid, pag. 11
23
Ibid, pag. 12
24
Ibid, pag. 13
22

para generar pedidos que la aplicacin vulnerable piensa son peticiones


legtimas provenientes de la vctima.25
9. A9 Uso de Componentes con Vulnerabilidades Conocidas: Algunos
componentes tales como las libreras, los frameworks y otros mdulos de
software casi siempre funcionan con todos los privilegios. Si se ataca un
componente vulnerable esto podra facilitar la intrusin en el servidor o
una perdida seria de datos. Las aplicaciones que utilicen componentes
con vulnerabilidades conocidas debilitan las defensas de la aplicacin y
permiten ampliar el rango de posibles ataques e impactos26.
10. A10 Redirecciones y reenvos no validados: Las aplicaciones web
frecuentemente redirigen y reenvan a los usuarios hacia otras pginas o
sitios web, y utilizan datos no confiables para determinar la pgina de
destino. Sin una validacin apropiada, los atacantes pueden redirigir a las
vctimas hacia sitios de phishing o malware, o utilizar reenvos para
acceder pginas no autorizadas.27

Herramientas, aplicaciones o programas que permiten aplicar diferentes ataques,


con explicacin de cmo funciona un ataque en tiempo real, como:
WebScarab --> ZAP (The Zed Attack Proxy)
Dirbuster
DotNet
ESAPI
WebGoat
Mantra Framework
OWASP Live CD
OWASP AntiSamy Java Project
OWASP WAF
Entre muchos ms

25

Ibid, pag. 14
Ibid, pag. 15
27
Ibid, pag. 16
26

TECNOLOGA A IMPLEMENTAR - ACUNETIX WEB VULNERABILITY SCANNER

Con la importancia que tiene la tecnologa y la implementacin de las diferentes


herramientas que nos proporciona la WEB, los delincuentes informticos estn al
acecho buscando en los sistemas quien tiene ms descuidada la informacin, en
trminos de seguridad, para ingresar y robar datos sensibles como claves,
informacin de tarjetas de crdito o bases de datos de clientes, todo con fines
lucrativos.28

La web, igualmente ofrece diferentes herramientas que permiten si no tener a


salvo la informacin, por lo menos minimizar los riesgos a que se est expuesto,
para escanear las vulnerabilidades de las aplicaciones en la WEB, se tendr en
cuenta la herramienta ACUNETIX WEB VULNERABILITY SCANNER

Que es y para qu sirve ACUNETIX WEB VULNERABILITY SCANNER

Creada en 1997 con el fin de realizar anlisis de sitios WEB y deteccin de


vulnerabilidades, es una herramienta que opera como un vigilante de seguridad
virtual que realiza escaneo de las aplicaciones web incluyendo las integradas,
servidores web y servidores perimetrales, su eficacia permite detectar
vulnerabilidades que aparentemente no son detectadas por otras herramientas
mediante el motor de anlisis inteligente, dems entrega informes de auditora
muy confiables.

Qu detecciones realiza?

Son muchas las vulnerabilidades que detecta, entre otras tenemos:

Associada con OpenVAS (Open Vulnerability Assessment System) El


escner de seguridad, es una suite de software que integra servicios y
28

Consulta realizada el 25 de octubre de 2015, ADM TOOLS. Acunetix Web Vulnerability Scaner. Disponible
en: http://www.adm-tools.com/portfolio/acunetixwebvulnerabilityscanner/

herramientas utilizadas para el escaneo y gestin de vulnerabilidades de


seguridad de sistemas informticos.
Escanea vulnerabilidades a nivel de red
Detecta vulnerabilidades de SQL injection en la que los hacker modifican
comandos SQL para ingresar las bases de datos.
Cross Site Scripting en la que los atacantes realizan scripts maliciosos en el
navegador del visitante.
Ataques de CRLF Injection que se realiza cuando un delincuente
informtico es capaz de inyectar datos en una peticin a un servidor.
Code execution: es una vulnerabilidad muy peligrosa ya que los
delincuentes ejecutan comandos del servidor remotamente.
Directory traversal, se realizan cuando no hay seguridad respecto de la
validacin de un usuario y acceden al directorio padre.
Remote File inclusin, Se da solamente en pginas dinmicas en PHP que
contienen la funcin include(), dejando enlazar archivos remotos de otros
servidores.
Autenticacin, consiste en interceptar una sesin de la vctima y esperar a
que se identifique para robar su datos

CREACION DE UNA PGINA WEB PARA EL DESARROLLO DEL PROYECTO.

Dado que para los estudiantes es ms cmodo ver una pgina Web, se ha creado
una pgina en la que puedan consultar la gua

http://liliseguridadinformatica.webnode.es/

También podría gustarte