miércoles, 9 de marzo de 2016

Seguridad Operacional

Algunos de los controles de seguridad que se deben aplicar en el sistema operativo son:
  • Ejecutar software fiable.
  • Sospechar de los procesos.
  • Ejecutar los procesos con confinamiento.
  • Registrar los accesos.
  • Buscar periódicamente agujeros de seguridad.


El software fiable: es aquel que ha sido rigurosamente desarrollado y analizado, de forma que se puede confiar en que hará lo que se espera y nada más. Típicamente, el software fiable es la base sobre la que se ejecutan aplicaciones no fiables. Un sistema operativo debe ser fiable y, por tanto, se puede usar para que los programas de usuario ejecuten operaciones sensibles sin acceder a datos sensibles. Tanto las bibliotecas de interfaz del sistema operativo como los generadores de código deben ser fiables.

La sospecha mutua: es un concepto que se desarrolló para describir las relaciones entre dos procesos. Los sistemas que sospechan se ejecutan como si los otros procesos fueran maliciosos. Por ello, en todos los módulos se aplica el encapsulamiento y la ocultación de la información. El sistema operativo debe sospechar de todos los procesos que se ejecutan sobre él. Sin embargo, existen muy pocos sistemas operativos que apliquen este criterio de diseño con sus componentes internos, por lo que es necesario aplicar controles de programación muy estrictos durante el desarrollo de este tipo de sistemas. Una técnica típica de sospecha es monitorizar los procesos para ver si tienen patrones de ejecución sospechosos.

El confinamiento: es una técnica usada por los sistemas operativos para tratar de reducir los daños en caso de que existan fallos de seguridad o código malicioso. Un proceso confinado tiene estrictamente limitados los recursos del sistema a los que puede acceder. Este principio es muy útil para proteger el sistema ante la existencia de virus, ya que, si se aplica estrictamente, el virus sólo puede dañar el compartimento al que tiene acceso. La separación de dominios es una técnica de seguridad muy frecuente en sistemas operativos.

El registro de accesos: origina un listado de los usuarios que acceden a los objetos del sistema, especificando cuándo y cómo se han realizado dichos accesos. En un sistema operativo de propósito general se suelen registrar las entradas y salidas al sistema y los accesos a ciertos objetos. En un sistema seguro se registran muchos más eventos. En cualquier caso, es fundamental registrar los fallos de acceso a cualquier tipo de objetos, puesto que pueden revelar la presencia de intrusos. Asimismo, cuando se pruebe un programa nuevo sería conveniente registrar los eventos que origina para comprobar que no realiza acciones indebidas. Sobre el registro de accesos se pueden efectuar auditorías periódicas para tratar de detectar cualquier tipo de fallos de seguridad, como por ejemplo el uso de cerrojos sobre un archivo para crear un canal encubierto.

Buscar periódicamente agujeros de seguridad: Una vez en funcionamiento, el sistema operativo tiene que comprobar que no hay intentos de violación de la seguridad en el sistema. Algunas de las comprobaciones a realizar son: palabras clave cortas o muy sencillas, programas con prioridad indebida, programas con un identificador de usuario indebido, programas no autorizados en directorios del sistema, etc. Asimismo, el sistema operativo debe registrar los accesos a los recursos por parte de los usuarios. Cuando se ha producido un problema de seguridad, se puede usar el registro de accesos para saber quién lo ha producido, facilitar la recuperación y para prevenir problemas futuros.