Seguridad en Sistemas de Información Web
Introducción
Frente a la existencia casi omnipresente de sistemas web de información en casi todos los ámbitos de actividad de las personas que requieran la gestión de su memoria (información), se nos plantea la necesidad de consultar el estado del arte de este tipo de sistema, de cara a la seguridad.
Este informe se realizó en base a una pequeña búsqueda bibliográfica sobre trabajos y literatura académica de habla hispana. Analizaremos algunos trabajos (trabajos finales de grado y de maestría) que abordan este tema, para tratar de responder las siguientes preguntas:
- ¿Es suficiente OWASP para el desarrollo de software web seguro?
- ¿Se puede aplicar OWASP en desarrollos Mobile o para dispositivos
móviles? - ¿Cómo se asegura que se haya aplicado correctamente OWASP al
desarrollar un sistema web?
A lo largo de este informe se hablará brevemente del método utilizado, se desarrollarán algunos conceptos y definiciones, indispensables para entender sobre qué estamos tratando. Luego se sintetizarán algunos trabajos seleccionados para finalmente expresar una conclusión, intentando responder las preguntas planteadas.
La revisión bibliográfica
Se realizó una revisión sistemática de bibliografía basada fundamentalmente en repositorios académicos disponibles en internet. Fueron de mucha utilidad sitios como la Red de Repositorios Latinoamericanos, Research Gate, y Google Scholar.
Se llevó a cabo una búsqueda de artículos y trabajos académicos con las palabras clave “sistema de información”, “seguridad de la información”, “OWASP” y “normas de seguridad informática”. De la inmensa cantidad de trabajos encontrados se seleccionaron trece trabajos en base a la información brindada por sus títulos, resúmenes y conclusiones.
Finalmente se efectuó la lectura de cuatro trabajos (un TFM, dos TFG y un artículo) de los cuales sólo se pudo obtener información útil de tres de ellos, descartando un trabajo final de grado por su pobre redacción y redundancia en las definiciones.
La lista con los datos de los trabajos académicos preseleccionados figura en la sección Anexo A: Trabajos preseleccionados.
Definiciones
Dada la cantidad de conceptos mencionados en los trabajos académicos analizados, en esta sección daremos definición a los elementos más importantes. Además, se agregan algunos conceptos “límite” para dar un marco de aplicabilidad a nuestro objeto de estudio: el modelo OWASP y los sistemas de información web.
Sistema de información – SI
Un Sistema de Información (SI) es un conjunto ordenado de mecanismos que tienen como fin la administración de datos e información, de manera que estos puedan ser recuperados y procesados fácil y rápidamente.
Todo sistema de información se compone de una serie de recursos interconectados y en interacción, dispuestos del modo más conveniente en base al propósito informativo trazado, como puede ser recabar información personal, procesar estadísticas, organizar archivos, etc.
Se debe destacar que no es lo mismo un sistema de información que un sistema informático, a pesar de que estos últimos constituyen a menudo el grueso de los recursos de un SI. Existen muchos otros métodos para los sistemas de información que no necesariamente pasan por la
informática. Esto convierte a los SI en un concepto mucho más amplio y abarcador que un
sistema informático. (Raffino, 2020)
Sistema web
Un Sistema web es un programa de software centralizado (cliente/servidor) o descentralizado
(P2P) basado en arquitecturas de red y construido con tecnologías web. Estas tecnologías son,
en su mayoría, estándares para la interoperabilidad entre sistemas heterogéneos. Eso quiere
decir que un sistema web es un sistema informático basado en protocolos y lenguajes que funcionan en Internet. Como ejemplos más populares podemos mencionar: HTTP, SMTP, TLS, Websockets, DNS, HTML, CSS, JavaScript, REST, etc.
Un Sistema web puede encarnar un Sistema de Información, pero no necesariamente deben
ser sinónimos.
Por su lado, un concepto similar es el de Aplicación web. Se denomina aplicación web a aquellas herramientas que los usuarios pueden utilizar accediendo a un servidor web a través de internet o de una intranet mediante un navegador. En otras palabras, es un programa que se codifica en un lenguaje interpretable por los navegadores web en la que se confía la ejecución al navegador. (Wikipedia, 2010)
Aplicación Móvil (Mobile app)
Se denomina Aplicación Móvil a todo programa de software auto contenido, diseñado para ser ejecutado en un dispositivo móvil (teléfono inteligente, reloj inteligente, Tablet, electrodoméstico, etc.).
Un dispositivo móvil es una computadora de arquitectura especial, distinta a las clásicas computadoras personales, pero con similares prestaciones pese a su economía en materia de hardware, brindando en algunos casos prestaciones limitadas de transferencia de datos, pantalla, dispositivos de entrada, almacenamiento, capacidad de procesamiento, etc. No obstante, los dispositivos móviles en la actualidad compiten ferozmente para desplazar a las computadoras personales brindando cada vez más y mejores servicios al usuario.
El diseño de una aplicación móvil se puede enfocar de distintas maneras, ya sea para ejecutarla directamente sobre la plataforma en concreto, sobre un navegador web o mediante una combinación de ambos diseños. (Rodriguez Sanchez, 2019)
En la actualidad existen, al menos, tres modelos de arquitectura para aplicaciones móviles: Aplicaciones nativas: son escritas y compiladas especialmente para la plataforma dónde serán ejecutadas. Son más rápidas y eficientes, pero se requiere de un esfuerzo de desarrollo para escribir una versión de la aplicación para cada plataforma existente en el mercado.
Aplicaciones web: son construidas sobre tecnologías web y ejecutadas por intermedio de un navegador web móvil. Son más lentas porque están basadas en lenguajes de programación interpretados por el navegador web.
Además, dependen de la conexión a internet del dispositivo. Su gran ventaja es que son multiplataforma y siempre están actualizadas.
Aplicaciones híbridas: Son una combinación de las dos anteriores. Poseen una parte compilada en código nativo y otra parte (la mayor) basada en tecnologías web. Generalmente estas aplicaciones suelen embeber un navegador web oculto, dando la sensación de ser aplicaciones nativas.
Sistema Legacy
Aún en la actualidad existen muchas instalaciones de sistemas multiusuario denominados Legacy. Estos sistemas dominaban la informática empresarial antes de la irrupción de internet, aunque hoy en día siguen vigentes en muchas empresas como sistemas de gestión interna, y muy a menudo adaptados con interfaces web.
En este texto se menciona ese tipo de sistema para abarcar un poco más de rango en el ámbito de los sistemas de información y marcar un límite al alcance del modelo OWASP.
Estos sistemas multiusuario en general están basados en el modelo de arquitectura Cliente/Servidor, son programados para una plataforma en particular y funcionan generalmente en mainframes, sistemas AS/400 y servidores basados en x86.
Si bien utilizan protocolos de comunicación de red, estos protocolos no son necesariamente los mismos que utilizan las aplicaciones web, las comunicaciones están basadas en sockets y transmisión binaria de datos.
Computación Personal: Sistemas monolíticos
Por último, quisiera mencionar los sistemas monolíticos de computación personal. Se denomina así a programas de software que funcionan como sistemas de información en una única computadora. Pueden tener amplias capacidades en el manejo de información, almacenamiento en bases de datos, generación de reportes, facturación y búsquedas. Pero su principal característica es que son “piezas sólidas de software” y no soportan más de un usuario conectado a la vez.
Muchas PyMEs en nuestro país aún siguen utilizando este tipo de sistemas.
Auditoría de seguridad informática
Una auditoría de seguridad informática o auditoría de seguridad de sistemas de información es el estudio que comprende el análisis y gestión de sistemas llevado a cabo por profesionales para identificar, enumerar y posteriormente describir las diversas vulnerabilidades que pudieran presentarse en una revisión exhaustiva de las estaciones de trabajo, redes de comunicaciones o servidores.
Fases de una auditoría.
Los servicios de auditoría constan de las siguientes fases:
Enumeración de redes, tecnologías y protocolos.
Verificación del Cumplimiento de los estándares internacionales. ISO, COBIT, etc.
Identificación de los sistemas operativos instalados.
Análisis de servicios y aplicaciones.
Detección, comprobación y evaluación de vulnerabilidades.
Medidas específicas de corrección.
Recomendaciones sobre implantación de medidas preventivas.
Tipos de auditoría.
Realizar auditorías con cierta frecuencia asegura la integridad de los controles de seguridad aplicados a los sistemas de información. Acciones como el constante cambio en las configuraciones, la instalación de parches, actualización de softwares y la adquisición de nuevo hardware hacen necesario que los sistemas estén continuamente verificados mediante auditoría.
Los servicios de auditoría pueden ser de distinta índole:
- Auditoría de seguridad interna. En este tipo de auditoría se contrasta el nivel de seguridad y privacidad de las redes locales y corporativas de carácter interno.
- Auditoría de seguridad perimetral: En este tipo de análisis, el perímetro de la red local o corporativa es estudiado y se analiza el grado de seguridad que ofrece en las entradas exteriores.
- Test de intrusión: La prueba de intrusión es un método de auditoría mediante el cual se intenta acceder a los sistemas, para comprobar el nivel de resistencia a la intrusión no deseada. Es un complemento fundamental para la auditoría perimetral.
- Análisis forense. El análisis forense es una metodología de estudio ideal para el análisis posterior de incidentes, mediante el cual se trata de reconstruir cómo se ha penetrado en el sistema, a la par que se valoran los daños ocasionados. Si los daños han provocado la inoperatividad del sistema, el análisis se denomina análisis postmortem.
- Auditoría de páginas web: Entendida como el análisis externo de la web, comprobando vulnerabilidades como la inyección de código SQL, verificación de existencia y anulación de posibilidades de Cross Site Scripting (XSS), etc.
- Auditoría de código de aplicaciones. Análisis del código tanto de aplicaciones web como de cualquier tipo de aplicación, independientemente del lenguaje de programación empleado. (Auditoría de seguridad de sistemas de información, s.f.)
Vulnerabilidad
Es una debilidad o fallo en un “sistema de información que pone en riesgo la seguridad de la información pudiendo permitir que un atacante pueda comprometer la integridad, disponibilidad o confidencialidad de esta, por lo que es necesario encontrarlas y eliminarlas lo antes posible.” (INCIBE, 2017)
Amenaza
“Es toda acción que aprovecha una vulnerabilidad para atentar contra la seguridad de un sistema de información. Es decir, que podría tener un potencial efecto negativo sobre algún elemento de nuestros sistemas.” (INCIBE, 2017)
Ingeniería social
En el campo de la seguridad de la información, la ingeniería social es la práctica para obtener datos confidenciales a través de la manipulación psicológica de los usuarios legítimos. La técnica se puede utilizar para conseguir información, acceso o privilegio en sistemas, que permitan realizar algún acto que perjudique o exponga a una persona o empresa a riesgos y abusos. El principio en el que se sustenta la ingeniería social es aquel que afirma que en cualquier sistema los usuarios representan el eslabón débil de la cadena.
A través de internet suelen enviarse solicitudes para renovar credenciales de acceso a sitios, e-mails falsos que piden respuestas e, incluso, las famosas cadenas, que llevan a revelar información sensible o a violar políticas de seguridad.
De esta manera, se aprovechan algunas tendencias naturales de las personas en vez de tener que encontrar agujeros de seguridad en los sistemas. Otro ejemplo muy difundido es el uso de archivos adjuntos en e-mails, que una vez que se ejecutan diseminan un código de tipo malicioso. (Budris, 2013)
OWASP
OWASP (Open Web Application Security Project) es una organización internacional sin fines de lucro dedicada a la seguridad de los sistemas web. Uno de sus principios fundamentales es que todo el material por ellos producido es liberado a la comunidad bajo licencias de software libre, y accesible en su sitio web. Esto permite que cualquier persona tenga acceso a los avances y mejoras en materia de seguridad informática. Dichos materiales incluyen documentación, herramientas de software, videos y foros de consulta.
La producción más conocida de esta organización es la llamada OWASP Top 10. OWASP Top 10 es un reporte periódico de seguridad informática que afecta a todo tipo de aplicación web, enfocado en los 10 riesgos más críticos y comunes de encontrar. Este reporte es elaborado por un equipo de expertos en seguridad de todo el mundo. OWASP se refiere a su Top 10 como “un documento de concientización” y recomienda que todas las empresas incorporen el informe en sus procesos para minimizar y/o mitigar los riesgos de seguridad. (OWASP, 2021)
Normas ISO Serie 27000
La serie contiene las mejores prácticas recomendadas en Seguridad de la información para desarrollar, implementar y mantener Especificaciones para los Sistemas de gestión de la Seguridad de la Información (SGSI).
La seguridad de la información tiene asignada la serie 27000 dentro de los estándares ISO/IEC. Abajo se enumeran algunas de ellas, las primeras que fueron publicadas:
- ISO 27000: Contiene la descripción general y vocabulario a ser empleado en toda la serie 27000.
- UNE-ISO/IEC 27001:2007: “Sistemas de Gestión de la Seguridad de la Información (SGSI). Requisitos”. Es la norma principal de requisitos del Sistema de Gestión de Seguridad de la Información. Los SGSIs deberán ser certificados por auditores externos a las organizaciones.
- ISO/IEC 27002: Guía de buenas prácticas que describe los objetivos de control y controles recomendables en cuanto a seguridad de la información con 11 dominios, 39 objetivos de control y 133 controles.
- ISO/IEC 27003: Contiene una guía de implementación de SGSI e información acerca del uso del modelo PDCA y de los requisitos de sus diferentes fases.
- ISO 27004: Especifica las métricas y las técnicas de medida aplicables para determinar la eficiencia y eficacia de la implantación de un SGSI y de los controles relacionados.
- ISO 27005: Consiste en una guía para la gestión del riesgo de la seguridad de la información y sirve, por tanto, de apoyo a la ISO 27001 y a la implantación de un SGSI.
- ISO 27006: Especifica los requisitos para la acreditación de entidades de auditoría y certificación de sistemas de gestión de seguridad de la información. (ISO/IEC 27001, s.f.)
Modelo COBIT
COBIT es la sigla para identificar Objetivos de Control para las Tecnologías de Información y Relacionadas. Este sistema de control está constituido por un conjunto de prácticas orientadas al manejo de los procesos relativos a la información, entre las que encontramos su distribución, almacenamiento y administración, y además asegurar que estos resultados estén conectados con los requerimientos del negocio.
Este modelo puede dar respuesta a las diferentes necesidades que tiene toda organización de una manera esquematizada, enfocándose en las necesidades que tienen los diferentes grupos objetivos:
- La alta dirección: Evaluar las decisiones de inversiones en tecnologías de información, teniendo en cuenta el balance entre el Riesgo adquirido y el control obtenido.
- Los auditores: Contar con un sistema que les permita generar los controles mínimos necesarios para realizar sus diferentes labores de revisión y análisis.
- Los usuarios: Tener la certeza sobre la seguridad y el control que se está ejerciendo sobre los productos de información que ofrece la organización y también el que pueden proveer terceras partes.
- El área de Sistemas: Poder evaluar su gestión frente a la organización y establecer el camino a seguir para estar alineada con los objetivos estratégicos de la misma.
Análisis de los trabajos seleccionados
Se han seleccionado tres trabajos académicos para intentar encontrar un enfoque propio del modelo OWASP frente a las necesidades de seguridad que tienen los sistemas de información basados en tecnología web.
Cabe destacar que se llevó a cabo la lectura de cuatro trabajos, uno de los cuales fue descartado por su mala redacción e inconsistencia, pese a ser interesante el tema abordado en dicho documento.
Información precisa de cada trabajo se encuentra disponible en el Anexo A y en la sección de referencias.
TFG: Aspectos fundamentales en la construcción de las páginas web seguras basados en OWASP
Uno de los objetivos de este trabajo es identificar las principales amenazas y vulnerabilidades existentes para los sistemas web, así como la recopilación de las medidas de seguridad más efectivas para contrarrestar tales amenazas.
La investigación se basa en la revisión de informes de empresas de seguridad web y documentos públicos disponibles en el sitio de OWASP.
En base a los reportes consultados de distintas fuentes, se elaboró una tabla Top 5 de vulnerabilidades más frecuentes en sistemas web.
Los resultados del estudio indican una fuerte presencia de vulnerabilidades que permiten ataques de tipo XSS (Cross-site Scripting) y del tipo SQL injection.
Se termina concluyendo, entre otros temas, que las vulnerabilidades en los sistemas están ligadas a la mala administración del producto de software (aplicaciones web) una vez liberado al mercado, la falta de seguimiento, mantenimiento y la falta de pruebas para fortalecer la seguridad. Estos defectos pueden llegar a convertir al sistema vulnerable frente a amenazas externas. También, las configuraciones de seguridad incorrectas pueden ocurrir a cualquier nivel de la aplicación, incluyendo la plataforma, el servidor web, el servidor de aplicaciones, el servidor de bases de datos, los frameworks de desarrollo y el código personalizado. (Zambrano Villota & Ojeda Ortiz, 2017)
TFM: Formulación de criterios de evaluación para realizar auditorías a sistemas de información web
Este trabajo refleja el desarrollo de un proyecto de investigación encaminado a establecer y diseñar criterios de evaluación para la auditoría a sistemas de información web, aplicado a la realización de auditorías de sistemas de empresas que tengan implementado algún sistema de información.
El tema principal del documento es la Auditoría de Sistemas, aplicada a sistemas de información web. El tema resulta relevante para este informe, porque aporta una mirada más amplia que el hecho de aplicar solo las recomendaciones propuestas en OWASP, abordando otras metodologías tales como COBIT.
Contiene un marco teórico sólido, definiendo conceptos como sistemas de información, sistemas de información web, base de datos, conexiones seguras, seguridad en la world wide web, protocolos de encriptación (SSL y TLS) y servidores seguros. También toca temas relacionados con la parte humana, los alcances de la auditoría informática,
síntomas de la desorganización, herramientas de control, técnicas de trabajo y demás.
Se utiliza COBIT como marco guía de la auditoría a nivel de procesos de la empresa y su administración, y OWASP como framework y herramienta de evaluación de vulnerabilidades de los sistemas web.
Finalmente se concluye que para garantizar la seguridad de los sistemas de información web, es necesario establecer lo siguiente:
- Capacitar al personal
- Generar planes de continuidad y contingencia
- Políticas que garanticen que los múltiples elementos realicen las funciones para las cuales están destinados, así como que la infraestructura que lo soporta cumpla con los controles necesarios.
- Concientizar a la alta gerencia que, además de poseer suficientes controles de seguridad, deben estar bien configurados y deben ser cumplidos por todo el personal involucrado. (García Restrepo & Rodriguez Sarmiento, 2010)
TFM: Auditoría de seguridad de aplicaciones móviles
Este trabajo me resultó interesante porque complementa los temas planteados en las preguntas: la autoría de sistemas móviles utilizando OWASP, como también sus recomendaciones para el diseño y desarrollo de tales aplicaciones.
Se estudia la situación actual respecto a las vulnerabilidades y vectores de amenazas más representativos en las aplicaciones móviles.
Aparece en escena el Estándar de Verificación de Seguridad de Aplicaciones Móviles de OWASP, MASVS. Este método es específico para estudiar las vulnerabilidades del software diseñado para dispositivos móviles. Desarrollar un marco de evaluación específico para aplicaciones móviles es de vital importancia, dado que los dispositivos móviles tienen plataformas y características especiales, distintas a las de las computadoras personales.
Para la realización de este trabajo se llevó a cabo una auditoría a una aplicación móvil de código abierto utilizando las recomendaciones y herramientas de diagnóstico provistas por la organización OWASP y otras compañías. Estas herramientas son Mobile Security Framework, Inspeckage y Zed Attack Proxy. El estudio se realizó sobre la plataforma Android, haciendo uso de máquinas virtuales y emuladores, como también de dispositivos reales.
Finalmente se concluye que las auditorías de seguridad de aplicaciones móviles son hoy en día una práctica necesaria y recomendada para garantizar que se cumplan los requerimientos básicos de seguridad ante la amenaza creciente de malware enfocado a este tipo de dispositivos. La guía propuesta por OWASP para testing de seguridad móvil en concreto, resulta una muy completa referencia para llevar a cabo auditorías de seguridad ya que proporciona, además, un listado de buenas prácticas para que el auditor verifique los Requisitos de Seguridad MASVS de acuerdo con tres niveles de seguridad. (Rodriguez Sanchez, 2019).
Conclusiones
En primer lugar, debo reconocer lo interesante del tema tratado en esta investigación.
Realizar este trabajo me abrió un mundo de posibilidades para encarar proyectos de seguridad informática, posibilidades desconocidas por mí hasta el momento.
El modelo OWASP resulta ser una gran caja de herramientas compuesta por reportes de seguridad, recomendaciones, procedimientos de control, software libre de testeo y otros métodos para garantizar la seguridad de los sistemas de información web y sistemas móviles.
Si bien estas herramientas son elementos pragmáticos para salvar a los sistemas de sus propias vulnerabilidades, y teniendo en cuenta los enfoques adoptados por los trabajos estudiados, se entiende que es mejor realizar auditorías de seguridad informáticas basadas en OWASP en combinación con alguna norma estándar como puede ser COBIT o la serie ISO 27000.
Las herramientas OWASP son bastante concretas y técnicas para resolver problemas de seguridad. Pero estos problemas generalmente tienen un origen muy alejado del código fuente o la configuración de un sistema, pueden originarse en la forma organizacional de la empresa, en sus procesos internos, en su cultura y costumbres. Las vulnerabilidades más fáciles de explotar son los descuidos de las personas, y esta materia la estudia de lleno la ingeniería social. En este sentido, creo que es mejor garantizar la seguridad de los sistemas de información en base a normas estándares de seguridad, además de utilizar las herramientas y recomendaciones de OWASP como medios concretos de evaluación de la seguridad.
Referencias
Auditoría de seguridad de sistemas de información. (s.f.). Recuperado el 2 de 2 de 2021, de Wikipedia, la enciclopedia libre:
http://es.wikipedia.org/wiki/Auditoría_de_seguridad_de_sistemas_de_información Budris, P. (2013). Ethical hacking. Buenos Aires: Users.
Correa, C. A., & Díaz, H. P. (2010). Las amenazas informáticas: peligro latente para las organizaciones actuales. Recuperado el 1 de 2 de 2021, de http://revistahumanidades.uis.edu.co/index.php/revistagti/article/view/1259
García Restrepo, J. K., & Rodriguez Sarmiento, E. J. (2010). Formulación de criterios de evaluación para realizar auditorías a sistemas de información web. Barranquilla: Corporación universitaria de la costa.
INCIBE. (2017). INCIBE. Obtenido de https://www.incibe.es/protege-tuempresa/blog/amenaza-vs-vulnerabilidad-sabes-se-diferencian
ISO/IEC 27001. (s.f.). Recuperado el 2 de 2 de 2021, de Wikipedia, la enciclopedia libre: http://es.wikipedia.org/wiki/ISO/IEC_27001
Raffino, M. E. (2020). Concepto de Sistema de Información. Obtenido de Concepto.de: https://concepto.de/sistema-de-informacion/
Rodriguez Sanchez, E. (2019). Auditoría de seguridad de aplicaciones móviles. Universitat Oberta de Catalunya.
Wikipedia. (2010). Aplicación web. Obtenido de Wikipedia: https://es.wikipedia.org/wiki/Aplicación_web
Zambrano Villota, A., & Ojeda Ortiz, G. (2017). Aspectos fundamentales en la construcción de páginas web seguras basados en OWASP. Universidad Mariana.