Seguridad

Área DES_Seguridad

En este área se incluyen conceptos, recomendaciones, consejos y ejemplos de seguridad en los procesos de desarrollo de aplicaciones informáticas, teniendo en cuenta las indicaciones del Plan Director de Seguridad de los Sistemas de Información y Telecomunicaciones de la Administración de la Junta de Andalucía, del Esquema Nacional de Seguridad, de las normas ISO 27000 y de la Ley Orgánica de Protección de Datos.

Además de seguir estas consideraciones en los desarrollos de las aplicaciones, es muy importante prestar atención en los casos en que se utilicen componentes de terceros. En este sentido, el ENS recomienda disponer de un procedimiento documentado para la adquisición de componentes cuya evaluación se haya realizado conforme a normas europeas o internacionales (p.ej: cumple la ISO/IEC 15408, etc). Hay que tener en cuenta que la inclusión de un componente con vulnerabilidades en un sistema producirá probablemente un detrimento de la seguridad del mismo.

Una parte importante de los problemas de seguridad de los sistemas de información tiene su origen en defectos o carencias en las aplicaciones que los integran, lo cual eleva enormemente el riesgo de sufrir un incidente.

En una aplicación web, dividimos la seguridad en:

  • Disponibilidad: Asegurar que las entidades o procesos autorizados tienen acceso a los activos cuando lo requieren.
  • Autenticidad: Verificamos quien es el usuario. Generalmente, esto se hace pidiéndole un nombre de usuario y un password, es decir, se verifica que una entidad es quien dice ser o bien que garantiza la fuente de la que proceden los datos
  • Integridad: Asegurar que los datos que se envían entre el cliente y el servidor no hayan sido alterados de forma no autorizada. Para esto, se utilizan generalmente algoritmos de encriptación.
  • Confidencialidad: Asegurar que la información ni se pone a disposición, ni se revela a individuos, entidades o procesos no autorizados. Esto puede hacerse con algoritmos de encriptación y con certificados digitales.
  • Trazabilidad: Verificar que las actuaciones de una entidad pueden ser imputadas exclusivamente a dicha entidad.

El análisis de las vulnerabilidades potenciales es un objetivo básico para el incremento de la seguridad en las aplicaciones web, que en ocasiones es subestimado como factor de riesgo crítico. El mantener parámetros que no son verificados, roles sin controlar, desbordamientos que se producen en la memoria son algunas de las situaciones que pueden provocar brechas de seguridad en las aplicaciones.

Objetivos

  • Asegurar la autenticación de los usuarios
  • Gestionar los permisos de acceso a los recursos
  • Evitar la corrupción de los datos enviados entre cliente y servidor
  • Asegurar la no visibilidad de la información por terceros en las comunicaciones

Contenido del área

Recursos

Subáreas 

Control de Acceso y Autenticación

Se analizan la vulnerabilidades que pueden darse en las aplicaciones a la hora de identificar sus usuarios y los permisos que estos poseen. Recogiendo una serie de recomendaciones para el desarrollo de aplicaciones, que tenidas en cuenta, ayuden a mitigar los riesgos de producirse situaciones como el escalado de privilegios o la suplantación de identidad.

Codificación y Validación de entrada/salida

La debilidad de seguridad más común en aplicaciones web es la falta de validación apropiada de las entradas del cliente o del entorno.Teniendo en cuenta una serie de indicaciones y consejos a la hora de codificar nuestras aplicaciones podremos evitar problemas como la inyección de código SQL, de comandos, LDAP, XPath, XML o por XSS.

Cifrado

Una de las principales medidas para asegurar la integridad y la confidencialidad de la información que se transmite a través de la red es la encriptación o codificación de los mensajes, evitando que, aún interceptando nuestra comunicación, no sea posible su entendimiento. Para ello, se resumen diversas situaciones en las que se debe cifrar la información y los algoritmos a utilizar.

Gestión de Sesiones y Usuarios

El manejo de la sesión es uno de los aspectos críticos de la seguridad WEB. Veremos cómo es posible mejorar la seguridad en el control de acceso y la autenticación a través del manejo de las sesiones y de la información de los usuarios de nuestras aplicaciones.

Gestión de Errores y Excepciones

Uno de los focos que originan vulnerabilidades en nuestras aplicaciones se basa en la falta de control sobre los errores que se producen en su ejecución y el tratamiento correcto de las excepciones. Veremos cómo disminuir los riesgos de ser atacados a partir de la generación de un error o excepción en la aplicación.

Auditoría y Registro

La auditoría y el registro de los eventos que suceden al ejecutar nuestras aplicaciones nos permite monitorizarlas y detectar posibles intentos de ataques o intrusiones. Además, veremos cómo mejorar la gestión de los archivos de log para que sean más seguros.

Servicios Web

Dada la particularidad de los servicios web, se ha creado este apartado para que, además de tener en cuenta todas las indicaciones de seguridad dadas para el control de acceso y la autenticación, la codificación y validación de entrada/salida, el cifrado, etc. se tengan en cuenta otras actuaciones concretas para garantizar la seguridad en el uso de servicios web: la integridad, el no repudio y la confidencialidad de los mensajes, así como habilitar mecanismos para la identificación y autorización de servicios y usuarios.