Algunas cuestiones sobre seguridad

Hola a todos,

A raiz de algunas consultas que fuimos respondiendo sobre manejo de sesiones y temas de seguridad en el sistema, a continuación van algunos puntos que nos resultan interesantes de compartir con toda la comunidad.

El tema de seguridad es muy amplio en lo que respecta a aplicaciones web. Involucra cuestiones de seguridad a diferentes niveles: Sistema Operativo, PHP (no sólo lo relacionado con sesiones sino que también con otros parámetros que pueden hacer un sistema vulnerable), Apache, Postgres, el navegador web y, finalmente, la aplicación en si, que tiene cuestiones de seguridad resueltas en el framework  (SIU-Toba) y en la aplicación en si misma.

Con respecto a la instalación y configuración de los 5 primeros, eso es responsabilidad del administrador de sistemas de la institución que implementa el sistema. Desde el Mapuche lo que hacemos es controlar ciertas cuestiones que son críticas para la seguridad e informamos con mensajes de precaución al momento de hacer la instalación/actualización del sistema (es decir, el instalador mira algunas configuraciones y si no son las sugeridas, tira mensajes de error o advertencia). La seguridad a nivel aplicación es responsabilidad nuestra como desarrolladores del sistema y tratamos de tener en cuenta los estándares y buenas prácticas que se utilizan para el desarrollo de sistemas web.

En la Extranet del SIU, dentro del repositorio en la carpeta Raiz\ SIU-Mapuche\Documentacion, hay un documento llamado "Tips-de-seguridad-SIU-Mapuche.pdf" donde se tratan los temas más frecuentes relacionados con seguridad y las responsabilidades de cada parte involucrada.

También los invitamos a que miren cómo resuelven estas cuestiones otros sistemas (del SIU, de otras insituticiones, e incluso de los desarrollos internos de la universidad misma u otras universidades) para ver si hay aspectos importantes de seguridad que se nos están escapando desde Mapuche. Además, estaría bueno que se puedan poner en contacto con otros actores de la Comunidad - ya sea a través de la lista de mails usuarios.mapuche@siu.edu.ar o el foro comunidad (http://infotec.siu.edu.ar) - para ver cómo resuelven ellos cuestiones de deployment de los sistemas del SIU.

El tiempo de inactividad de la sesión de la aplicación estaba seteado en un valor arbitrario (de 30 minutos) hasta la versión 1.12.1. El problema es que había procesos que demoraban más de ese tiempo en terminarse y por lo tanto cuando el proceso terminaba y querían ver los resultados, el sistema se cerraba porque la sesión había expirado. Por este motivo, subimos el tiempo de caducidad de la sesión (de la aplicación, no de PHP) a un valor alto para evitar que se produzca el problema anterior. Hoy ese valor no es configurable desde el sistema, pero tenemos planificado hacerlo. El tiempo de caducidad de la sesión en la infraestructura (por ejemplo, algunos parámetros de sesión de PHP) se pueden definir de acuerdo a su criterio, pero puede tener impacto en el comportamiento del sistema. Tengan en cuenta que existen otros parámetros que también impactan en el tiempo de vida de una sesión de PHP - como la configuración de garbage collector - que también pueden tener impacto.

Estaría bueno que traten de optimizar todas las medidas de seguridad relacionadas con el deployment de la aplicación - desde la configuración de la infraestructura hasta la implementación de SSL - y que traten además de reforzar las buenas prácticas en la utilización del sistema (utilización de claves de usuarios seguras, monitoreo de accesos para evitar accesos indebidos, etc.), y que todo esto lo puedan complementar con las herramientas de log y auditoría que provee el sistema.

Esperamos haber aclarado un poquito más algunas cuestiones de seguridad y los invitamos a que compartan sus conocimientos con el resto de la comunidad para poder seguir creciendo.

Saludos para todos,
Equipo SIU-Mapuche