Marco Teorico

34
5. MARCO TEÓRICO CONCEPTUAL Cada vez que miramos en nuestro entorno, vemos la cantidad de tecnología que existe, la comunicación, los juegos, la televisión, la telefonía, 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 información que genera ante cualquier uso de la tecnología, y todo esto generalmente queda guardado en nuestros aparatos electrónicos. Es importante saber que cuando se utiliza un computador, un teléfono 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 páginas WEB son los actores más importantes de este intercambio tecnológico y por supuesto están 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 técnica de las instituciones educativas del municipio de Medellín una guía que permita minimizar los riesgos a que están expuestos desde el momento de la realización del programa, que los estudiantes

description

PROYECTO

Transcript of Marco Teorico

Page 1: Marco Teorico

5. MARCO TEÓRICO CONCEPTUAL

Cada vez que miramos en nuestro entorno, vemos la cantidad de tecnología que existe, la comunicación, los juegos, la televisión, la telefonía, 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 información que genera ante cualquier uso de la tecnología, y todo esto generalmente queda guardado en nuestros aparatos electrónicos.

Es importante saber que cuando se utiliza un computador, un teléfono 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 páginas WEB son los actores más importantes de este intercambio tecnológico y por supuesto están 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 técnica de las instituciones educativas del municipio de Medellín una guía que permita minimizar los riesgos a que están expuestos desde el momento de la realización del programa, que los estudiantes desde su aprendizaje tengan en cuenta esta guía 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 prácticas en cualquier proyecto informático.

Page 2: Marco Teorico

5.1 BUENAS PRÁCTICAS PARA EL DESARROLLO DE UN PROYECTO INFORMÁTICO

5.1.1 Que son buenas prácticas

Son un conjunto de acciones ordenadas, ciertas, coherente y seguras, con objetivos claros y procedimientos adecuados, realizadas por personas que ponen en práctica sus conocimientos en pro de satisfacer una necesidad identificada, obviamente, cumpliendo con normas, políticas, reglas y estándares que la certifiquen como apta para ponerla en funcionamiento y que se convierta en un referente para mejorar otros procesos.

5.1.2 ¿Porque se les llaman buenas prácticas?

Porque cumplen con normas, políticas, estándares y reglas que la hacen válida y conforme a la Ley para que cumpla con su perfecto su funcionamiento.

Porque atacan de raíz una necesidad convirtiéndola en una fortaleza.

Porque el personal encargado son personas calificadas y especializados para desarrollar la labor.

Porque las propuestas son innovadoras y creativas.

5.1.3 Que hace que una práctica sea mal desarrollada.

El tiempo reducido en su ejecución Personal con conocimientos escasos del tema Que la necesidad no sea tan evidente.

Page 3: Marco Teorico

Desarrollo por investigaciones equivocadas Etapas de inicio poco sólidas.

5.1.4 Que es un proyecto informático

Es el cubrimiento de una necesidad identificada por alguien y realizado por un grupo de personas conocedoras de las tecnologías de la información y la comunicación, que construyen un producto de software que satisfaga esa necesidad.

5.1.5 Tips de buenas prácticas para el desarrollo de un proyecto informático

Existe tanta literatura como medios para obtener los diferentes tips que hacen que un proyecto informático sea reconocido como “buen proyecto”, porque cumplen con los lineamientos específicos que lo hacen sobresalir de los demás 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 petición.

Una vez se tenga reconocido el proyecto y lo que se va a hacer, se debe empezar con la planificación del trabajo en general, hacer un bosquejo de los resultados y hacérselo 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 partícipe al cliente de la evolución del proyecto y sobretodo en la fase de

Page 4: Marco Teorico

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 mención es un apoyo a la gestión de los empleados y que en ningún momento sustituirá al empleado quien es el responsable y decide qué, cuándo y cómo realizar el trabajo.

Tener siempre una comunicación directa con el cliente, evitar los intermediarios.

Flexibilidad en los requerimientos. El cliente hace la solicitud de un proyecto producto de una necesidad manifiesta, sabe lo que necesita pero no sabe cómo 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 realización del proyecto y los beneficios que traerá a su empresa.

Cuando se dirija al cliente hacerlo en lenguaje ordinario, evitar las palabras técnicas que confundan al cliente, los tecnicismos generan desconfianza, las palabras comunes, hacen que el cliente entienda y confíe.

Averiguar quiénes serán 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 pequeñas variaciones en el alcance del proyecto, lo cual implica reprocesar; esto solo es posible si redunda en mejor calidad en el proyecto y excelente satisfacción para el cliente.

Page 5: Marco Teorico

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 métodos que se aplican para su solución desde el levantamiento de requerimientos, pasando por los modelos arquitectónicos, el diseño, el programa que se utilizará, el código fuente aplicado y los casos de prueba.

Utilizar diseños á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 código y comprobar su funcionamiento. Las herramientas que generan código facilitan en gran medida el

trabajo. El diseño es una parte esencial para el desarrollo del proyecto, con

ello se tiene identificado su inicio, avance y culminación. Tener claro que en la etapa de requerimientos se debe hacer

además de la recolección y análisis de los requerimientos, un estudio de factibilidad que integra la disponibilidad de recursos que se utilizarán para llevar a cabo el proyecto, objetivos, alcance, limitaciones, costos aproximados, tiempo de ejecución, etc.

Existen numerosas herramientas para desarrollo de software, tener en cuenta las convenciones necesarias de acuerdo con el lenguaje de programación que escoja.

5.2 LA SEGURIDAD EN INFORMÁTICA

La seguridad informática no es más que la acción de proteger mediante mecanismos técnicos y legales, los activos ante cualquier amenaza, riesgo o daño que lo pueda atacar, empezando por los activos físicos con los cuales se crea y adelantan las labores diarias, y siguiendo con la información generada que finalmente se convierte en el reflejo del buen nombre de la empresa.

Page 6: Marco Teorico

El Riesgo es la identificación de las vulnerabilidades medidas mediante la probabilidad de que ocurra un suceso y los posibles daños que ocasionaría en el desarrollo de la empresa, es allí donde toma parte la seguridad informática buscando mecanismos de defensa y protección.

Es de vital importancia dirigir la protección 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 información.

La Disponibilidad asegura que la información se encuentre al alcance de los que la necesiten y que estén autorizadas, para ello existen los permisos que se otorgan a los usuarios, de lectura, de escritura y de ejecución.

La Confidencialidad asegura que la información esté resguardada y que solo sea accesible para las personas que cuentan con la autorización necesaria para utilizarla, para la confidencialidad es importante el cifrado de la información relevante.

Estos tres objetivos no podrían ser eficaces si no tenemos en cuenta que a cada usuario que haga uso de la información de la empresa debe tener permiso y autenticarse al momento de ingreso, esto para que se pueda identificar el tipo de operaciones que realiza y que clase de información puede manipular en un caso dado. Igualmente se debe tener el control de los movimientos que se presenten con el sistema realizando registros y auditorías, esto garantiza el no repudio

Page 7: Marco Teorico

(verificación que una transacción cualquiera que sea su naturaleza haya sido entregada y recibida)

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 compañías existen empleados que pueden afectar la información ya sea de forma involuntaria o voluntaria y que pueden poner en riesgo la estabilidad de la compañía.

5.2.1 Riesgos que pueden afectar la WEB

Cada día el uso de aplicaciones WEB en las compañías se hace más frecuente dado el avance tecnológico en cuanto a comercio electrónico y a la necesidad de prontitud y facilidad de las transacciones o negocios, las compañías cada día se ven obligadas a manejar su información a través de la red lo que las hacen vulnerables ante los ataques informáticos.

La empresa Gartnet Inc. Situada en Stamford, Connecticut, Estados Unidos, Está dedicada a la consultoría e investigación de las Tecnologías de la información, estima que el 75% de los ataques informáticos están direccionados hacia las aplicaciones web y que generalmente éstos son producidos con fines de ganancias económicas, por tan razón, la seguridad en las aplicaciones debe ser tenida en cuenta desde el momento del diseño hasta el momento de su ejecución.

Muchas de las aplicaciones que tienen que ver con transacciones comerciales son objetivos de los delincuentes informáticos que tratan de violar la seguridad para obtener claves, contraseñas, números de tarjetas de crédito etc.; Estas aplicaciones generalmente presentan vulnerabilidades porque no son desarrolladas con el tiempo necesario para tener en cuenta la seguridad dadas las presiones ejercidas por el cliente para la entrega y porque no se tiene la conciencia de la importancia que la seguridad representa.

Page 8: Marco Teorico

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 comunicación y aunque la función del Firewall es filtrar el tráfico de información que entra y sale de dos redes o de computadores que trabajan dentro de una misma red y que deben cumplir con unas reglas específicas (que en caso de no cumplirse, la información es bloqueada), si utiliza estos puertos para permitir la comunicación, de nada sirve.

5.3 QUE ES UNA APLICACIÓN WEB

Primero que nada debemos saber que la palabra WEB (Acrónimo de World Wide Web), es una palabra inglesa que tiene como significado red, telaraña o malla y es utilizada en los medios informáticos para referirnos a internet1

Una aplicación web, es una herramienta que ha sido creada mediante código con el único propósito de interactuar con el usuario y cumplir con un propósito específico de realizar una orden que le ha solicitado un usuario. Es también una herramienta que se ejecuta en internet y por tanto todos los datos archivos, o historial de navegación, 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 información en la nube y pueden ser accedidos desde cualquier computador o dispositivo móvil en cualquier parte del mundo

Las aplicaciones web nos ofrecen muchas ventajas como su gratuidad o sea que se puede obtener una aplicación que sirva para un fin

11 Consulta realizada el 24 de octubre de 2015, disponible en: http://definicion.de/web/

Page 9: Marco Teorico

específico de manera gratuita y no necesita descargarse en el computador para poder ejecutarla.

Otras de sus bondades es la accesibilidad ya que como su información queda guardada en la nube, se puede ingresar a ella en cualquier momento y lugar, igualmente se puede trabajar en ellas de manera simultánea entre varios usuarios.

5.3.1 Ciclo de vida en el desarrollo de aplicaciones web.

El auge que han tenido en los últimos años las TIC (Tecnologías de la Información y la Comunicación) 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 utilizándolas como método de investigación y hasta de diversión y esparcimiento.

Es así como cada día 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 partícipe del uso de las tecnologías.

Las aplicaciones web son programas informáticos que se realizan a través 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 múltiples plataformas.

Page 10: Marco Teorico

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 están divididas así:

Etapa de análisis Etapa de diseño Etapa de codificación, Etapa de Pruebas Etapa de instalación Etapa de mantenimiento.2

ETAPA DE ANALISIS: Luego de que el cliente ha expresado sus necesidades, se realiza entonces el análisis, se determinan los requisitos que debe tener la aplicación, como público objetivo, hardware y software a utilizar, módulos, requisitos técnicos, alcance, responsabilidades, plazos, costos etc.

ETAPA DE DISEÑO: Propuesta firmada como aceptada, adelanto en dinero, material, esquemas de diseño o planos del programador, es la manifestación de la estructura de la aplicación.

ETAPA DE CODIFICACIÓN: Desarrollo del código de acuerdo a la estructura anterior, los desarrolladores deben conocer la interfaz y el código a desarrollar de acuerdo con el lenguaje de programación es la traducción de la estructura en código que ofrezcan como resultado una interfaz amigable al cliente.

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

Page 11: Marco Teorico

ETAPA DE PRUEBAS: Las aplicaciones web necesitan pruebas de integración, de tensión, de escalabilidad, de carga, de resolución y de compatibilidad, con ello se comprueba que la aplicación se desarrolla en forma adecuada conforme a las exigencias del cliente.

ETAPA DE INSTALACIÓN: Luego de haber terminado con la codificación 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 acompañamiento directo con el cliente, por tanto en esta etapa ya se entrega el programa funcionando a satisfacción del cliente

ETAPA DE MANTENIMIENTO: Generalmente las aplicaciones WEB necesitan actualizaciones porque las correcciones de errores se van haciendo a medida que se va desarrollando la codificación.

5.3.2 Arquitecturas para el desarrollo de aplicaciones web.

Una aplicación Web es un sitio dentro de internet que ha sido creada para contener información a la que puede acceder desde un motor de búsqueda con un tema específico, permitiendo a los usuarios obtener información rápidamente con una gama amplia de alternativas de uso.

Figura 1: Arquitectura de una aplicación WEB

Page 12: Marco Teorico

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

5.4 SEGURIDAD EN EL CICLO DE VIDA DE UNA APLICACIÓN WEB.

La seguridad que se debe aplicar al crear una página 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 creación de una página web dinámica es que se puede actualizar constantemente.

Aunque las amenazas que rodean las aplicaciones web están latentes, es importante tener en cuenta algunas recomendaciones para minimizar el riesgo, algunas de ellas serían:

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.

Page 13: Marco Teorico

Mantenga un programa antivirus potente que vigile y reporte la información que entra y sale.

Asegúrese de que se cumpla la orden de utilizar contraseñas fuertes y ocultas.

Utilice firewall potentes. Utilice la criptografía para proteger la información sensible.

5.4.1 Que es Criptografía

Es la aplicación de una técnica, código o conjunto de códigos que han utilizado para ocultar información importante. Desde tiempos antiguos como en la época de los romanos, por necesidad de que no fueran descubiertas sus estrategias de guerra enviaban códigos que solo ellos conocían y que nadie podía descifrarlos. Igualmente se utilizó la máquina Enigma usada en la segunda Guerra mundial para enviar mensajes cifrados y se han utilizado otros como el cifrado César, el diseño Feistel, etc. (H. Corrales, C. Cilleruelo, A. Cuevas, 2014, p. 4)3

En nuestra época, con la llegada de las computadoras, el envío constante de información a través de los correos electrónicos, las transacciones que se realizan a través de la red, se hizo necesario encontrar una manera de esconder de manera óptima la información de manera que se haga inteligible ante cualquier ojo normal. Guardar información importante en los discos duros o en cualquier otro dispositivo, hace que la información allí almacenada sea apetecida por cualquier invasor dañino, es por esto que esta información, en ocasiones primordial y puede llegar a ser muy valiosa para la empresa, por tanto esta técnica que es utilizada para ocultar información importante que no pueda ser accedida por nadie excepto por el creador y por el receptor de la información quien conoce de antemano

3 Consultado el 26 de octubre de 2015, disponible en: http://www3.uah.es/libretics/concurso2014/files2014/Trabajos/Criptografia%20y%20Metodos%20de%20Cifrado.pdf

Page 14: Marco Teorico

la clave; con ello se garantiza la integridad, la confidencialidad y la disponibilidad de la información en tiempo real.

Algunos ejemplos de algoritmos de criptografía clásica se pueden consultar en la página https://genomorro.files.wordpress.com/2007/09/trabajo.pdf

5.4.2 Que uso tiene la Criptografía

La criptografía se creó con el propósito de esconder información de manera que cualquier persona que acceda a ella no pueda descifrarla fácilmente.

La Criptografía se ha utilizado para:

Permitir que la información solo sea accedida por las personas autorizadas.

Solo pueda ser modificada por las personas que tengan los permisos para hacerlo.

Que la información se pueda consultar en cualquier momento que se requiera.

Hace más seguras las comunicaciones y permite que mediante el cifrado simétrica se pueda tener privacidad y velocidad de transferencia al mismo tiempo.

Con el uso de firmas digitales, se asegura que el acceso a la información sea más controlado.

Facilitan el comercio electrónico reduciendo los riesgos de robo.

Page 15: Marco Teorico

La criptografía no solo es utilizada con fines benévolos, también ha sido utilizada para robos al interior de las compañías

Fuga de información. Encriptación de información con fines ilegales (pornografía,

espionaje, música, videos etc)

5.4.3 Que clases de tecnologías existen

Existen muchas maneras de encriptar la información, algunas de ellas pueden ser:

Criptografía Simétrica: Técnica utilizada en ocultar información mediante una única clave (números, 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.4

Criptografía Asimétrica: Técnica utilizada para el envío y recepción de información mediante 2 claves, una pública (conocida por todos) y una privada (conocida por una sola persona), la seguridad que ofrece la criptografía asimétrica es que solo las dos claves son utilizadas para la desencriptación de la información. La clave pública la conoce el emisor para encriptar la información y la clave privada es conocida solamente por el receptor para desencriptarla.5

La Firma digital: Técnica que permite demostrar ante auditores, que los documentos son propios, se realiza mediante un Hash generado al documento original, mediante la clave pública se realiza el hash del descifrado y se comparan, si coincide, la información es

4 ANGEL, José de Jesús. Criptografía para principiantes. P. 13 Disponible en: http://spi1.nisu.org/recop/www.seguridata.com/pdf/cbasica.pdf 5 Ibid., p. 21

Page 16: Marco Teorico

veraz y la firma es auténtica. Es importante comprobar las fechas de caducidad o revoque.6

Certificados digitales: Técnica que consiste en utilizar un certificado o paquete de información que identifica al usuario que contiene información acerca de éste, como dirección de correo electrónico, clave pública, país de origen, periodo de validez y firma digital del certificado. Generalmente es utilizada para identificar al titular del emisor de la información; es una técnica utilizada como refuerzo de las técnicas anteriores7

5.4.4 SERVICIOS CRIPTOGRÁFICOS DISPONIBLES

A continuación se enumeran algunas herramientas que ofrecen servicios de encriptación, generadores de claves públicas y privadas y firmas digitales de documentos:

EncryptOnClick: Aplicación que sirve para encriptar ficheros protegiéndolos con una contraseña a la que puede acceder solo las personas interesadas, su interfaz se compone de cuatro botones por los que se puede acceder a todas acciones del programa.

Folder encripter: Aplicación que permite encriptar y desencriptar mediante una contraseña, archivos o carpetas.

Softavir-strict: Herramienta que permite ejecutar solamente los programas que hayan sido añadidos a la lista (Lista blanca), así asegura que no dejara que ningún software intruso ingrese al sistema.

6 Ibid., p. 247 Ibid., p. 37

Page 17: Marco Teorico

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 aplicación gratuita que sirve para encriptar archivos y desencriptarlo mediante contraseña o pin.

Paragon Encrypted Disk SE: Es una herramienta que encripta archivos mediante imágenes codificadas en diferentes tipos de codificación.

PGP ENCRYPTER: Programa que permite el cifrado de la información, genera claves públicas 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 información.

SecureZIP Express: Herramienta disponible para el cifrado de información, expedición de certificados digitales mediante X.509 y entrega de claves.

5.5 BUENAS PRÁCTICAS DE CODIFICACIÓN – 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 informática,

Page 18: Marco Teorico

deben conocer acerca de lo que significa OWASP (“Open Web, Application Security Proyect” o en español “Proyecto abierto de seguridad de aplicaciones Web), ya que es una organización 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 tecnología, cualquier información al respecto se puede encontrar en página www.owasp.org

No es el propósito reescribir los datos encontrados allí, pero es una invitación para los que requieren del tema de seguridad en las empresas y hasta en la utilización de aplicaciones a nivel personal, por lo menos se cercioren del tema. Allí se podrá encontrar entre otros:

Herramientas y estándares de seguridad en aplicaciones. Libros completos de revisiones de seguridad en aplicaciones,

desarrollo de código fuente seguro, y revisiones de seguridad en código fuente.

Controles de seguridad estándar y librerías. Capítulos locales en todo el mundo. Investigaciones de vanguardia. Extensas conferencias alrededor del mundo. Listas de correo8

5.5.1 Seguridad en la Construcciones de aplicaciones

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

Page 19: Marco Teorico

Si bien es cierto que existen innumerables de fallas que se pueden producir para mantener protegido los sistemas de información, también es cierto que la mayoría de ellos ocurren desde el momento mismo de la creación de código 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 información y la comunicaciones que viaja a través de internet.

La página de OWASP está tomada como referente dado que es un proyecto abierto y creado por personas que tienen un vasto conocimiento en los sistemas y más en lo que se refiere al tema de seguridad informática, dedicado a la búsqueda diseñado con el fin de crear conciencia acerca de la seguridad en la información, además, es libre tanto para afiliarse y aportar conocimientos en pro del beneficio de los usuarios, como para servirse de todos los productos que ofrece, como beneficio particular; podría tomarse como una guía esencial para los desarrolladores de software.

Podemos utilizar los documentos y herramientas que ofrecen tales como:

Una guía para construir aplicaciones y servicios Web seguros. Documento en español en donde se detalla la seguridad utilizando diferentes programas como J2EE, ASP, .NE, PHP., disponible en: https://www.owasp.org/images/b/b2/OWASP_Development_Guide_2.0.1_Spanish.pdf

OWASP Cheat Sheet: Trucos para defenderse de las vulnerabilidades, Disponible en: .

Guía 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

Page 20: Marco Teorico

Guía de revisión de código OWASPO: ofrece verificación de código de las aplicaciones. Disponible en: https://www.owasp.org/images/8/80/Gu%C3%ADa_de_pruebas_de_OWASP_ver_3.0.pdf

La última actualización de los diez riesgos más críticos en aplicaciones Web es del 2013 tomando como base la actualización de 2010 y ofrecen documentos con las principales vulnerabilidades y los controles que se puedan aplicar en estos caso como

De acuerdo con un estudio realizado por la página de OWASP9, catalogaron las 10 principales vulnerabilidades o riesgos en la seguridad informáticas más críticos de las aplicaciones Web, en ella está contenido las explicaciones de qué es, el impacto, y cómo prevenirlos, algunos ejemplos de ataques realizados y referencias o bibliografías en donde encuentra mayor información. Estos están catalogados de la siguiente manera:

1. “A1 Inyección: Las fallas de inyección, tales como SQL, OS, y LDAP, ocurren cuando datos no confiables son enviados a un intérprete como parte de un comando o consulta. Los datos hostiles del atacante pueden engañar al intérprete en ejecutar comandos no intencionados o acceder datos no autorizados”.10

2. “A2 Pérdida de Autenticación y Gestión de Sesiones: Las funciones de la aplicación relacionadas a autenticación y gestión de sesiones son frecuentemente implementadas incorrectamente, permitiendo a los atacantes comprometer contraseñas, claves, token de sesiones, o explotar otras fallas de implementación para asumir la identidad de otros usuarios.”11

9 OWASP Top 10 – 2013- Los diez riesgos más críticos en Aplicaciones Web, Disponible en: https://www.owasp.org/images/5/5f/OWASP_Top_10_-_2013_Final_-_Espa%C3%B1ol.pdf10 Ibid, pag. 711 Ibid, pag. 8

Page 21: Marco Teorico

3. “A3 Secuencia de Comandos en Sitios Cruzados (XSS): Las fallas XSS ocurren cada vez que una aplicación toma datos no confiables y los envía al navegador web sin una validación y codificación apropiada. XSS permite a los atacantes ejecutar secuencia de comandos en el navegador de la víctima los cuales pueden secuestrar las sesiones de usuario, destruir sitios web, o dirigir al usuario hacia un sitio malicioso”.12

4. “A4 Referencia Directa Insegura a Objetos: Una referencia directa a objetos ocurre cuando un desarrollador expone una referencia a un objeto de implementación interno, tal como un fichero, directorio, o base de datos. Sin un chequeo de control de acceso u otra protección, los atacantes pueden manipular estas referencias para acceder datos no autorizados.”13

5. “A5 Configuración de Seguridad Incorrecta: Una buena seguridad requiere tener definida e implementada una configuración segura para la aplicación, marcos de trabajo, servidor de aplicación, 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 librerías de código utilizadas por la aplicación.”14

6. “A6 Exposición de Datos Sensibles: Muchas aplicaciones web no protegen adecuadamente datos sensibles tales como números de tarjetas de crédito o credenciales de autenticación. Los atacantes pueden robar o modificar tales datos para llevar a cabo fraudes, robos de identidad u otros delitos. Los datos sensibles requieren de métodos de protección adicionales tales como el cifrado de datos, así como también de precauciones especiales en un intercambio de datos con el navegador.”15

12 Ibid, pag. 913 Ibid, pag. 1014 Ibid, pag. 1115 Ibid, pag. 12

Page 22: Marco Teorico

7. “A7 Ausencia de Control de Acceso a las Funciones: La mayoría de aplicaciones web verifican los derechos de acceso a nivel de función 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 función. Si las solicitudes de acceso no se verifican, los atacantes podrán realizar peticiones sin la autorización apropiada.”16

8. “A8 Falsificación de Peticiones en Sitios Cruzados (CSRF): Un ataque CSRF obliga al navegador de una víctima autenticada a enviar una petición HTTP falsificado, incluyendo la sesión del usuario y cualquier otra información de autenticación incluida automáticamente, a una aplicación web vulnerable. Esto permite al atacante forzar al navegador de la víctima para generar pedidos que la aplicación vulnerable piensa son peticiones legítimas provenientes de la víctima.”17

9. “A9 Uso de Componentes con Vulnerabilidades Conocidas: Algunos componentes tales como las librerías, los frameworks y otros módulos de software casi siempre funcionan con todos los privilegios. Si se ataca un componente vulnerable esto podría facilitar la intrusión en el servidor o una perdida seria de datos. Las aplicaciones que utilicen componentes con vulnerabilidades conocidas debilitan las defensas de la aplicación y permiten ampliar el rango de posibles ataques e impactos”18.

10. “A10 Redirecciones y reenvíos no validados: Las aplicaciones web frecuentemente redirigen y reenvían a los usuarios hacia otras páginas o sitios web, y utilizan datos no confiables para determinar la página de destino. Sin una validación apropiada, los atacantes pueden redirigir a las víctimas hacia sitios de phishing o malware, o utilizar reenvíos para acceder páginas no autorizadas”.19

16 Ibid, pag. 1317 Ibid, pag. 1418 Ibid, pag. 1519 Ibid, pag. 16

Page 23: Marco Teorico
Page 24: Marco Teorico

5.6 TECNOLOGÍA A IMPLEMENTAR - ACUNETIX WEB VULNERABILITY SCANNER

Con la importancia que tiene la tecnología y la implementación de las diferentes herramientas que nos proporciona la WEB, los delincuentes informáticos están al acecho buscando en los sistemas quien tiene más descuidada la información, en términos de seguridad, para ingresar y robar datos sensibles como claves, información de tarjetas de crédito o bases de datos de clientes, todo con fines lucrativos.20

La web, igualmente ofrece diferentes herramientas que permiten si no tener a salvo la información, 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

5.6.1 Que es y para qué sirve ACUNETIX WEB VULNERABILITY SCANNER

Creada en 1997 con el fin de realizar análisis de sitios WEB y detección 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 análisis inteligente, demás entrega informes de auditoría muy confiables.

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

Page 25: Marco Teorico

5.6.2 Que detecciones realiza?

Son muchas las vulnerabilidades que detecta, entre otras tenemos:

Associada con OpenVAS (Open Vulnerability Assessment System) El escáner de seguridad, es una suite de software que integra servicios y herramientas utilizadas para el escaneo y gestión de vulnerabilidades de seguridad de sistemas informáticos.

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

informático es capaz de inyectar datos en una petición 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 validación de un usuario y acceden al directorio padre.

Remote File inclusión, Se da solamente en páginas dinámicas en PHP que contienen la función include(), dejando enlazar archivos remotos de otros servidores.

Autenticación, consiste en interceptar una sesión de la víctima y esperar a que se identifique para robar su datos