Antecedentes
El factor más importante dentro de la protección de activos de información se basa en la administración de la seguridad de la información.
El aumento de los servicios de correo electrónico externos, la pérdida de barreras organizacionales a través del uso de facilidades de acceso remoto; exposiciones de seguridad tales como virus, negaciones de servicio, intrusiones, accesos no autorizados, nos lleva a la necesidad de una administración efectiva de la seguridad de la información.
Además la red mundial Internet y sus elementos asociados son mecanismos ágiles que proveen una alta gama de posibilidades de comunicación, interacción y entretenimiento, tales como elementos de multimedia, foros, chat, correo, comunidades, bibliotecas virtuales entre otros que pueden ser accedidos por todo tipo de público. Sin embargo estos elementos deben contener mecanismos que protejan y reduzcan los riesgos de seguridad alojados, distribuidos y potencializados a través del mismo servicio de Internet.
La Seguridad Informática, es el área de la informática que se enfoca en la protección de la infraestructura computacional y todo lo relacionado con esta (incluyendo la información contenida).
La Seguridad Informática no se limita al software y hardware, considera:
- Uso adecuado de las instalaciones donde se manejan los sistemas informáticos,
- Políticas de seguridad
- Medidas de contingencia
- Cultura de las personas y la organización
La seguridad informática se resume, por lo general, en cinco objetivos principales:
- Integridad: garantizar que los datos sean los que se supone que son
- Confidencialidad: asegurar que sólo los individuos autorizados tengan acceso a los recursos que se intercambian
- Disponibilidad: garantizar el correcto funcionamiento de los sistemas de información
- Evitar el rechazo: garantizar de que no pueda negar una operación realizada.
- Autenticación: asegurar que las entidades que se comunican son los que dicen que son.
Definición del problema o pregunta a responder
¿Es necesario aplicar técnicas de Seguridad Informática en Sitios WEB?
Estudio del arte
En temas de Seguridad Informática se encuentran muchos estudios, realizados principalmente por Universidades y Compañías dedicadas al desarrollo del Software de Antivirus.
Uno importante en México es el Artículo realizado por el departamento de Seguridad en Computo de la UNAM-CERT del 10 de Marzo del 2009, donde se detallan varios aspectos de aplicación de seguridad en las Páginas WEB. (UNAM – CERT, 2011)
La compañía Microsoft, de acuerdo a su política de apoyo a los usuarios con las actualizaciones de su software genero un Procedimiento de Seguridad Básica para WEB. (MICROSOFT, 2014)
La compañía de desarrollo de aplicaciones antivirus ESET, en su página principal, puso al público varios videos explicativos de tipos de virus y técnicas de intrusión. (ESSET, 2014)
Objetivos
Aplicar los procedimientos de la Seguridad Informática a los Sitios WEB desarrollados
Hipótesis
La aplicación de los procedimientos de la Seguridad Informática minimiza el riesgo de virus y amenazas en los sitios WEB.
Métodos y/o procedimientos
Los riesgos en los sistemas informáticos son principalmente cualquier usuario que tenga un correo electrónico y acceso a Internet, donde periódicamente haga consultas y/o actualizaciones en portales que le presten servicios: Tiendas virtuales, Bancos, portal de correo, pago de servicios públicos, etc.
De igual manera se debe detectar que se tiene que proteger:
Datos.- La Integridad, disponibilidad y confidencialidad
Personas e Instituciones.- Integridad, Imagen y la reputación
Identidad.- Evitar suplantación de nombre, IP, Cuenta de correo electrónico, URL
De esta manera se propone seguir lo correspondiente a la Seguridad Informática en la aplicación a los Sistemas WEB:
- Vulnerabilidades de las páginas WEB
- Técnicas de codificación segura
- Pruebas de intrusión
- Seguridad en Infraestructura de TI
- Concientización y capacitación al personal
1.- Vulnerabilidades comunes de las páginas WEB
Las vulnerabilidades más comunes son las siguientes:
- Confiabilidad de los datos del lado del cliente.- Esta consta de modificar los datos que se le proporcionan a la aplicación con la finalidad de obtener diferentes respuestas por parte del servidor.
- Manipulación de entradas
Dentro del contexto de un ataque a una aplicación Web, un atacante primero tratará de probar y manipular los campos de entrada para ganar acceso al servidor Web
Esto puede categorizarse de la siguiente manera:
- Manipulación de URL o parámetros de CGI
- Inyecciones en el encabezado HTML
- Evasión de filtros / detección de intrusos
- Manipulación de protocolos / métodos
- Buffer Overflow
- Filtrado de caracteres de salida de HTML.- El filtrado de caracteres ayuda a los desarrolladores a construir aplicaciones que no sean susceptibles de ataques de Cross Site Scripting (XSS)
- Accesibilidad a la raíz (“root”) de las aplicaciones Web.- En forma ideal una aplicación Web no debe exponer el directorio raíz del servidor Web. Algunas veces, es posible para el usuario acceder al directorio raíz si éste puede manipular la entrada o el URL
- Falta de autentificación de los usuarios antes de realizar tareas críticas.- Existen varias formas de brincarse el esquema de autentificación al usar una aplicación Web:
- Requerimiento directo de la página (navegación forzada).- Si la aplicación implementa control de acceso sólo en la página de “login”, el esquema de autentificación puede ser brincado.
Figura 1.- Mala aplicación de línea de petición del URL
Modificación de parámetros
Figura 2.- Ejemplo de Modificación de parámetros
- Predicción del identificador de sesión.- Varias aplicaciones Web administran autentificación usando valores de identificación de sesión (SESSION ID). Si el identificador de sesión es generado de una forma predecible, un usuario malicioso puede obtener un número de sesión válido y obtener acceso no autorizado a la aplicación, sustituyendo a un usuario previamente autentificado. Para esto hay técnicas como la predicción de cookies
- Inyección de SQL.- Una inyección de SQL es una metodología de ataque que tiene como objetivo los datos residentes en la base de datos. Intenta modificar los parámetros de la aplicación Web con la finalidad de alterar las instrucciones de SQL que son analizados para la recuperación de los datos de la base de datos. El atacante toma ventaja de una mala codificación o administración del sitio Web. Un ataque exitoso de inyección de SQL puede:
- Leer datos de la base de datos
- Modificar datos (INSERT/UPDATE/DELETE)
- Ejecutar operaciones administrativas en la base de datos (bajar la base de datos (“shutdown”) )
- Recuperar el contenido de un archivo presente en el sistema de archivos del DBMS
- y en algunos casos enviar comandos al sistema operativo
2.- Técnicas de codificación segura
Nunca confié de las entradas.- La más importante medida de defensa que los desarrolladores pueden tomar, es validar la entrada que su software recibe debido a que las entradas no revisadas o mal revisadas es la fuente de las peores vulnerabilidades existentes incluyendo buffer overflow, inyección de SQL, y una gran variedad de otras. Las situaciones siempre llegarán a un nivel en que tienes que depender de entradas correctas para producir resultados correctos. No se puede ser responsable de conocer donde todas la entradas que recibes son correctas, sin embargo, si se puede ser responsables de que las entradas aceptadas no sean obviamente equivocadas.
Esto nos lleva a que se tienen que aceptar las entradas, pero no se puede confiar en ellas, ¿entonces qué hacemos?:
- Realizar una revisión de sanidad
- Corroborarlas
- Tomar control de los límites y aceptar valores que se pueda saber con cierta certeza que son aceptables
- Validar las entradas.- Validar la entrada aun:
- Si esta viene sobre una conexión segura
- Llega de una fuente “confiable”
- O si está protegida por permisos de archivo estrictos
No permita que la seguridad de los programas dependa:
- Del intelecto
- Conocimiento profundo
- O buen comportamiento de las gentes que configuran, desarrollan, o lo mantienen
Realice validaciones de entrada no sólo sobre las entradas de los usuarios, sino además sobre los datos de cualquier fuente fuera del código.
La lista debe incluir, pero no limitada, a lo siguiente:
- Parámetros de línea de comando
- Archivos de configuración
- Datos recuperados de una base de datos
- Variables de ambiente
- Servicios de red
- Valores del Registro (Registry)
- Propiedades del sistema
- Archivos temporales
Validación de entrada fuerte.- La aproximación correcta para validar la entrada es revisarla contra una lista de valores buenos
Una buena validación no intenta revisar contra valores malos específicos
La validación contra valores buenos conocidos es llamada “lista blanca”
Las listas blancas pueden ser de dos tipos:
- Sólo ciertos valores (ejemplo: blanco, verde, rojo)
- O sólo ciertos elementos (ejemplo: números, caracteres, alfanuméricos, etc.)
Las listas negras rechazan en forma selectiva o “escapan” entradas potencialmente peligrosas de valores o secuencias
En otras palabras, una lista negra rechaza sólo datos conocidos como malos
Debido a que el conjunto de valores malos dentro de un contexto determinado es usualmente difícil de enumerar (o puede ser infinito), una lista negra tiende a estar incompleta.
Limitar las entradas numéricas.- Revise las entradas numéricas contra un valor máximo y uno mínimo como parte de la validación de entradas
Cuide de operaciones que pueden ser capaces de generar un número mayor al valor máximo o mínimo permitido
Cuando un atacante toma ventaja del límite de capacidad de una variable entera, el problema puede causar un buffer overflow.
3.- Pruebas de Intrusión
En el mercado del Software existen programas para verificar la seguridad de sitios WEB como son el WGET, WEBSCARAB.
WGET es una herramienta de línea de comandos para Unix y Windows que permite bajar el contenido de un sitio Web, trabaja en forma no interactiva, en el “background”, trabaja particularmente bien con conexiones no estables y lentas
WEBSCARAB es un marco de trabajo para analizar aplicaciones web que se comunica usando los protocolos HTTP y HTTPS. Está escrito en Java, por lo que es portable a muchas plataformas. WEBSCARAB tiene muchos modos de operación, implementados por varios plugins. Su uso mas común es operar WEBSCARAB como un proxy de intercepción, que permite al operador revisar y modificar las peticiones creadas por el navegador antes de que sean enviados al servidor, y para revisar y modificar respuestas enviadas por el servidor antes de que sean recibidas por el navegador. WEBSCARAB es capaz de interceptar comunicación en HTTP y HTTPS. (OWASP, 2011)
4.- Seguridad en Infraestructura de TI
Implementación de:
SOC (Security Operation Center):
Administrar, monitorear, controlar, manejar incidentes de seguridad y brindar soporte centralizado.
Zonas Seguras:
Definir los lineamientos y controles de los sistemas y redes para reforzar la seguridad con diferentes tecnologías como firewalls, IPS y VPN.
Endurecimiento:
Desarrollar y aplicar guías de configuración segura a una muestra de equipos para prevenir ataques o amenazas de seguridad.
5.- Concientización del personal
Es importante concientizar al personal interno de la importancia de la Seguridad Informática en las empresas, a través de políticas de difusión y/o de capacitación.
- Programa de concientización y entrenamiento.
- Modificar hábitos inseguros en la operación diaria.
- Capacitar a un grupo de entrenadores líderes en la cultura de la seguridad, quienes a su vez concientizarán al personal sobre los riesgos de no utilizar prácticas de seguridad.
- Diseñar e implantar un programa de comunicación a través de medios de comunicación como: carteles correo electrónico, protectores de pantalla y trípticos, para fomentar la cultura a toda la empresa.
- Controlar la navegación de los usuarios
- Establecer políticas que regulen el uso de aplicaciones y el acceso a estas.
- Controlar la fuga de información a través de correos electrónicos, control de dispositivos de almacenamiento (pen drive, discos duros, etc)
- Políticas de uso de contraseñas fuertes
- Capacitación
Formar a personal de TI en temas especializados de seguridad informática.
Conclusiones
Los tiempos actuales hacen que la información sea una herramienta valiosa para todas las empresas, esto hace que la seguridad de la misma información tome una relevancia importante.
Por tal motivo no basta con solo enfocarse en la seguridad física sino que se tiene que voltear a la Seguridad de los Sistemas Informáticos que se tienen además de considerar aspectos como la Tecnología, Gente y Procesos.
La aplicación de la Seguridad Informática a los Sistemas WEB internos es preponderante ya que la información es “poder” pero depende de quién la tenga y para que la quiera usar.
Bibliografía
- ESSET. (2014). Videos Explicativos. Recuperado el Febrero de 2014.
- MICROSOFT. (2014). Procedimientos de seguridad básicos para aplicaciones web. Recuperado el Febrero de 2014, de http://msdn.microsoft.com/es-es/library/zdh19h94(v=vs.100).aspx
- OWASP. (21 de junio de 2011). Proyecto WebScarab OWASP. Recuperado el 20 de enero de 2014, de https://www.owasp.org/index.php/Proyecto_WebScarab_OWASP
- UNAM – CERT. (2011 de MAYO de 2011). Aspectos Básicos de la Seguridad en Aplicaciones Web. Recuperado el 16 de ENERO de 2014, de http://www.seguridad.unam.mx/documento/?id=17