martes, 8 de marzo de 2016

Introducción a la Seguridad de los Sistemas Operativos


Las cuestiones relacionadas con la seguridad de los sistemas operativos han cambiado de manera radical en las últimas dos décadas. No fue sino hasta principios de la década de 1990 que algunas personas tenían una computadora en su casa, y la mayoría de los trabajos de cómputo se realizaban en empresas, universidades y otras organizaciones en computadoras multiusuario, desde grandes mainframes hasta minicomputadoras. Casi todas estas máquinas estaban aisladas, sin conexión a una red. Como consecuencia, la seguridad estaba enfocada casi por completo en la forma de evitar que los usuarios se entrometieran en los asuntos de los demás usuarios. Si Carla y Claudia eran usuarios registrados de la misma computadora, el truco era asegurar que ninguna de las dos pudiera leer los archivos de la otra, o modificarlos, pero permitir que compartieran los archivos que querían compartir. Se desarrollaron modelos y mecanismos elaborados para asegurar que ningún usuario pudiera obtener derechos de acceso a los archivos que no debía.

Algunas veces, los modelos y los mecanismos implicaban clases de usuarios en vez de sólo individuos. Por ejemplo, en una computadora militar los datos tenían que marcarse como muy secretos, secretos, confidenciales o públicos, y había que evitar que los cabos husmearan en los directorios de los generales, sin importar quién era el cabo y quién era el general. Todos estos temas se investigaron de manera detallada, se hicieron reportes sobre ellos y se implementaron durante varias décadas.

Una suposición implícita era que, una vez que se elegía el modelo y se realizaba la implementación, el software era básicamente correcto y cumpliría con todas las reglas. Por lo general, los modelos y el software eran bastante simples, por lo que la suposición casi siempre era válida. Por ende, si en teoría Carla no tenía permitido ver cierto archivo de Claudia, en la práctica tampoco podía hacerlo.

La situación cambió con el surgimiento de la computadora personal e Internet, y con la desaparición de la mainframe y las minicomputadoras compartidas (aunque no cambió por completo, ya que los servidores en las LANs corporativas son como las minicomputadoras compartidas). Por lo menos para los usuarios domésticos no había amenaza de que otro husmeara en sus archivos, ya que no había otras personas que usaran en esa computadora.

Por desgracia, a medida que disminuyó esta amenaza surgió otra para ocupar su lugar (¿la ley de la conservación de las amenazas?): los ataques del exterior. Surgieron virus, gusanos y otras plagas digitales, entraron a las computadoras por medio de Internet y una vez establecidos, causaron todo tipo de estragos. Lo que los ayudó a hacer daño fue el explosivo crecimiento del bugware inflado (programas informáticos legales diseñados para realizar funciones concretas, pero con errores y una programación confusa que causan daños al hardware o al software del sistema). 

Estos han sustituido al formidable software eficiente de los años anteriores. Ahora que los sistemas operativos contienen 5 millones de líneas de código en el kernel y las aplicaciones de 100 MB son la regla en vez de la excepción, hay grandes cantidades de errores que las plagas digitales pueden explotar para hacer cosas que las reglas no permiten. Por lo tanto, ahora tenemos una situación en la que podemos mostrar formalmente que un sistema es seguro, y aun así se puede ver comprometido con facilidad debido a que cierto error en el código permite que un programa salvaje haga cosas que formalmente tiene prohibido hacer.