INTRODUCCIÓN El Sist Sistem ema a opera operatitivo vo es norma normalm lmen ente te solo solo una una porc porció ión n del del tota totall de software que corre en un sistema particular. Pero el Sistema Operativo cont contro rola la el acce acceso so a los los recu recurs rsos os del del sist sistem ema. a. La segu seguri rida dad d de los los Sistemas Operativos es solo una pequeña parte del problema total de la segurida idad en los sist istemas mas de compu mputación ión, pero éste vien iene increm increment entánd ándos ose e en gran gran medid medida. a. Hay muchas muchas razone razoness para para que la seguridad de los Sistemas Operativos reciba especial atención hoy en día. La evolución de los sistemas de computación, ha sido en las últimas décadas de una magnitud asombrosa. Las computadoras se han tornado más accesibles, también se tiene un aumento en los riesgos vinculados con la seguridad. Pero hay una cosa que se ha mantenido constante a través de todo este tiempo, y es que los sistemas digitales se han vuelto cada vez más complejos. Los microprocesadores se han vuelto más complejos. Los sistemas operativos se han vuelto más complejos. Los ordenadores se han vuelto más complejos. Las redes se han vuelto más complejas. Las redes individuales se han combinado y han aumentado todavía más su complejidad. Ejemplo claro de ello es Internet, la gran red de computadoras, a medida que aumenta su complejidad va tornándose más insegura. Si tenemos en cuenta que todo software no está libre fallos, entonces un software complejo es probable que falle y un porcentaje de estos fallos afecte a la seguridad. Tamb Tambié ién n es impor importa tant nte e menc mencio iona narr que que los los sist sistem emas as comp comple lejo joss son son necesariamente modulares, ya que de otra manera no se podría manejar su comp comple lejid jidad ad.. Pero Pero el aume aument nto o de la modu modula larid ridad ad sign signifi ifica ca que que la segu segurid ridad ad dism dismin inuy uye e porq porque ue falla falla a menu menudo do dond donde e dos dos módu módulo loss se comunican. La única manera razonable de probar la seguridad de un sistema es realiza realizarr evalua evaluacio ciones nes de seguri seguridad dad en él. Sin embarg embargo, o, cuanto cuanto más comp comple lejo jo es el sist sistem ema, a, más más dura dura se vuel vuelve ve la eval evalua uaci ción ón de su seguridad. Un sistema más complejo tendrá más errores relacionados con la seguridad en su análisis, diseño y programación. Y desgraciadamente, el número de errores y la dificultad de evaluación no crecen de acuerdo con la complejidad, crece mucho más rápido.
1
SEGURIDAD Y PROTECCIÓN Conceptos de Seguridad y Protección P rotección La seguridad en los sistemas de una computadora es un elemento muy impo im port rtan ante te en di dise seño ño de lo loss si sist stem emas as op oper erat ativ ivos os ya qu que e ma mane neja jan n información muy valiosa para sus propietarios. La seguridad de un sistema tiene múltiples facetas, desde la protección ante posibles daños físicos de los datos (fuego, terremotos, etc.) hasta el acceso indebido a los mismos (intrusos, fallos de confidencialidad, etc.). Los ataques contra la confidencialidad, la integridad o la disponibilidad de recurs rec ursos os en un sis sistem tema a deb deben en pre preven venirse irse y so solve lventa ntarse rse med median iante te la política y los mecanismos de seguridad de un sistema. La seguridad debe tener en cuenta eventos tanto internos como externos (provenientes del entorno en que opera el sistema), de nada sirve tener mecanismos de protección interna muy buenos, si el sistema operativo no es capaz de identificar a los usuarios que acceden al sistema o si no existe una política de salvaguarda de datos antes la rotura de un disco. La protección, consiste en evitar que se haga un uso indebido de los recursos que están dentro del ámbito del sistema operativo. Es necesario comprobar que los recursos (archivos, zonas de memoria, etc.) solo se usan por aquellos usuarios que tienen derechos de acceso. El sis sistem tema a ope operat rativo ivo de debe be pro propor porcio ciona narr los me medio dioss pa para ra imp implem lemen entar tar políticas de protección deseadas por el usuario. La seguridad de un sistema operativo se basa principalmente en tres aspectos de diseño: 1. Evita Evitarr pérd pérdid ida a de dat datos os 2. Con Contro trolar lar la la confi confiden dencia cialid lidad ad 3. Cont Controlar rolar el acceso acceso a los los datos datos y recu recursos rsos La pérdida de datos puede deberse a catástrofes naturales o artificiales, a errores del hardware o del software de la computadora (rotura de un disco) o a errores humanos. Una solución para estos problemas es hacer que los administradores del sistema mantengan varias copias de los datos almacenados en distintos lugares. En el ámbito interno del sistema operativo hay operaciones que pueden violar la confidencialidad de los datos. Una simple asignación de bloque
2
de disco libre a un usuario le proporcionará el bloque con el contenido del usuario anterior si el sistema operativo no tiene una política definida para este tipo de situaciones. En estos casos, siempre hay que limpiar los recursos de los datos anteriormente existentes. Sin em Sin emba barg rgo o la co conf nfid iden enci cial alid idad ad de lo loss da dato toss es un pr prob oble lema ma de seguridad que sobrepasa el ámbito de los sistemas operativos. En cuanto al control del acceso a datos y recursos, es necesario asegurar que los usuarios no acceden archivos para los que no tienen permisos de acceso, a cuentas de otros usuarios o páginas de memoria o bloques de disco que contienen información de otros usuarios.
Problemas de Seguridad Muchos fallos en los sistemas, no se deben al sistema de protección sino a la ingenuidad de los usuarios. Poner como palabra de acceso el nombre de familiares, matrícula de su auto o poner “.“ En la cabecera del path (camino de búsqueda de archivos ejecutables).
Problemas más frecuentes en un sistema de información: i nformación: • Uso indebido o malicioso de programas: Dos formas frecuentes de generar talios de seguridad usando están técnicas son el caballo de Troya y la puerta de atrás. El caballo de Troya se basa en la idea de crear un programa para que haga cosas no autorizadas en el sistema cuando actúa en el entorno adecuado. Ejemplo: un editor de texto modificado para que haga copias de los archivos a los directorios de ¡os intrusos. La puerta de atrás consiste en crear un agujero de seguridad al sistema a través tra vés de un pro progra grama ma pri privile vilegia giado do que o per permit mite. e. Alg Alguno unoss eje ejemplo mplos: s: Convencer a un programador de sistema para que le deje acceder con priv pr ivilileg egio ioss an anor orma male les; s; pe perm rmiti itirr qu que e el di dise seña ñado dorr de un pr prog ogra rama ma se reserve el acceso por medios no conocidos, tales como una identificación rese re serv rvad ada. a. Lo Loss pr prob oble lema mass de se segu guri rida dad d ge gene nera rado doss po porr pr prog ogra rama mass malicioso malic iososs son generalmente generalmente difíci difíciles les de detectar y corre corregir. gir. Las puertas de atrás no siempre son perjudiciales o maliciosas. Pueden tener varias causas: se dejan a propósito para probar el sistema, como un medio de acceso encubierto que permite extraer información del sistema sin que el dueño sea consciente de ello: este último últim o caso es realmente peligroso.
Usuarios rios inexp inexpertos ertos o descu descuidado idados: s: Borra • Usua Borrarr arch archivos ivos no dese deseados ados,, dejar abiertos los accesos al sistema durante largo tiempo o escribir la palabra clave en un papel junto a la computadora. Este tipo de problemas
3
generados genera dos por des descu cuido ido pue pueden den dis dismin minuir uir si el adm adminis inistra trador dor añ añade ade cier ci erto toss ma mand ndat atos os,, co como mo de dele lete te o rm (b (bor orra rarr ar arch chiv ivos os), ), se pu pued eden en configurar para pedir confirmación de cada acción que realizan.
• Usu Usuari arios os no au autor toriza izados dos:: Lo Loss si sist stem emas as op oper erat ativo ivos, s, co como mo UN UNIX IX o Windows NT, mantienen cuentas para los usuarios autorizados. El acceso a dichas cuentas se protege mediante contraseñas, o palabras clave, que solo so lo de debe be con conoce ocerr el due dueño ño de las mismas. mismas. Uno de es estos tos us usuar uarios ios,, denomi den ominad nado o ad admin minist istrad rador or o súp súperer-usu usuari ario, o, pue puede de ac acced ceder er a tod todo o el sistema saltándose las protecciones del resto de los usuarios. El proceso de re reco cono noci cimie mient nto o de us usua uario rio,, de deno nomin minad ado o au aute tent ntic icac ació ión, n, es mu muyy importante para evitar que usuarios no autorizados accedan al sistema. La posibilidad de cargar programas externos en un sistema o de que existan usuarios no autorizados se incrementa mucho en sistemas con arquitectura abierta conectados en redes. Los administradores prefieren tener sistemas sin interferencias externas, de forma que se pueda evitar que programas externos entren en dominios de otros usuarios. En la actu ac tual alid idad ad es mu muyy di difíc fícilil te tene nerr si sist stem emas as co compl mplet etam amen ente te as asila ilado dos, s, cualquier computadora actual tiene una unidad de disco extraíble o una conexión a la red. Aunque se intenten comprobar todos los accesos desde dispositivos externos, existe un cierto grado de apertura que no se pued pu ede e ev evititar ar.. Po Porr ej ejem empl plo: o: el co corre rreo o el elec ectró tróni nico co qu que e pu pued ede e ca carg rgar ar programas pequeños que posteriormente cargan en el sistema programas más destructores. La existencia de sistemas abiertos da lugar a cuatro tipos principales de ataques de seguridad virus, gusanos, rompedores de clave y bombardeos. Todos ellos están relacionados con la velocidad de propag pro pagaci ación ón de uno unoss sis sistem temas as a otr otros, os, lo que permite permite ata atacar car des desde de sistemas remotos o enviar programas de ataque a otros sistemas. Virus: Se denomina con este nombre a todos lo programas que se auto replican con fines destructivos o de violación de seguridad. Se llaman así por analogía con los virus que actúan sobre los seres vivos. Como ellos necesitan de un programa que transporte el virus y de un agente que los transmita para infectar a otros programas. Existen múltiples formas de insertar un virus en un progr Existen programa ama o un disco. Se puede insertar en medio, añadir al principio, al final o en ambos extremos de un programa. También puede reemplazar completamente un programa por otro con el mismo nombre pero comportamiento distinto. Dentro de un disco, lo normal es infectar el sector de carga del disco, suplantándolo con el virus, y algunos más.
4
Los vi Los viru russ se ha han n co conv nver ertitido do en un una a fo forma rma mu muyy po popu pula larr de ge gene nera rar r amen am enaz azas as de se segu guri rida dad, d, so sobr bre e to todo do en co comp mput utad ador oras as pe pers rson onal ales es conectadas a Internet, donde los mecanismos de protección son más débiles y los usuarios más confiados. Un caso típico de un virus que se propaga por Internet es el del virus --1 love you--, que en mayo de 2000 se propagó a miles de máquinas en Internet incorporado en un mensaje de correo electrónico; el cual en pocas horas causó pérdidas por miles de millones de dólares y llegó a infectar sistemas incluso en el Pentágono, el cuartel general de ejército americano. La solución para una infección por un virus puede adoptar dos formas:
Comprobación manual de todos los dispositivos de almacenamiento para limpiarlos del virus. Creación de un antídoto que también se propague y limpie el virus.
En cualquier caso, lo mejor es practicar técnicas preventivas tales como comprobación rutinaria de discos del sistema, comprobación de cualquier disco dis co ex extraí traíble ble que se ins instal tale, e, com compro probac bación ión de cua cualqu lquier ier pro progra grama ma recibido antes de ejecutarlo, etc.
Gusanos: El 2 de noviembre de 1998, R. T. Morris, un estudiante de CornelI, liberó un programa gusano en Internet; el cual explotaba los fallos de seguridad para acceder a sistemas remotos y, además, se replicaba a sí mismo para acce cede derr a má máss sis iste tema mass. El gu gusa sano no est sta aba co comp mpue uest sto o po porr dos programas: un pequeño programa de 99 líneas en C y el gusano principal. El pr prog ogra rama ma pe pequ queñ eño o er era a un ca carg rgad ador or qu que, e, un una a ve vezz co comp mpililad ado o y ejecutado en el sistema destino, cargaba el gusano principal. El gusano leía las tablas de encaminamiento del sistema infectado y enviaba el cargador a todos los sistemas remotos que podía, usando para ello tres mecanismos de penetración: • Intérprete de mandatos remoto (rsh). • Demonio del finger • Sendmail. Algunas posibles utilizaciones son buscar computadoras desocupada desocupadass para pa ra di dist strib ribui uirr ca carg rga a en el si sist stem ema, a, pr prop opor orci cion onar ar to tole lera ranc ncia ia a fa fallo lloss
5
permiti perm itien endo do qu que e un se segme gment nto o de dell gu gusa sano no ar arra ranq nque ue ot otro ro si fa falla lla su computadora, realizar tareas en paralelo, etc. El principal problema de los gusanos no es que sean destructivos, que la mayoría no lo son, sino que colapsan las redes de comunicacione comunicaciones. s.
Rompedores de sistemas de protección: Estoss pr Esto prog ogra rama mass llllev evan an a ca cabo bo di dist stin inta tass pr prue ueba bass so sobr bre e si sist stem emas as,, generalmente remotos, para tratar de romper la seguridad de los mismos y pod poder er eje ejecut cutar ar ac acces cesos os ile ilegal gales. es. Una de las pru prueba ebass que eje ejecut cutan an típicamente consiste en tratar de adivinar las palabras clave que tienen loss us lo usua uari rios os pa para ra ac acce cede derr al si sist stem ema. a. Es Esta ta pr prue ueba ba,, qu que e se ba basa sa en distintos tipos de programas de cifrado y un diccionario de palabras clave, compara las del diccionario con las de los usuarios del sistema. Las palabras clave que se usan para acceder al sistema son en muchos caso ca soss pa pala labr bras as de us uso o co comú mún, n, no nomb mbre ress pr prop opio ioss o in incl clus uso o la mi mism sma a identificación del usuario. Por ello, la mayoría de los sistemas operativos exigen actualmente el uso de palabras clave con una longitud mínima, con caracteres especiales, etc.
Satan (Security Administrador Tools for Analyzing Networks) es un buen ejemplo de este tipo de programas. Satan es un simple recolector de información que está disponible para que cualquiera pueda comprobar el estado de seguridad de una red. El problema surge en que cualquiera puede ser un intruso desde el exterior de la red. Para solventar este problema, la red debería estar islada adecuadamente y proporcionar sólo información limitada a los usuarios externos. Por una parte permiten mejorar la seguridad de la red. Por otra, permiten que los intrusos puedan encontrar puntos débiles en la seguridad.
Bombardeo: Un ataque de seguridad con mucho éxito en Internet es el que consiste en lleva lle varr ac acab abo o bo bomb mbar arde deos os ma masi sivo voss co con n pe petic ticio ione ness de se serv rvic icio io o de establecimiento de conexión a un servidor determinado. Estos ataques masivos provocan que el servidor deniegue sus servicios a los clientes legales y puedan llegar a bloquear al servidor. Este problema causó a principios del año 2000 el bloqueo de servidores de In Inte tern rnet et fa famo moso soss co como mo ya yaho hoo o o al alta tavi vist sta. a. Pa Para ra Jo Jogr grar ar qu que e es esto toss ataques tengan éxito, los atacantes se enmascaran con las direcciones e
6
identidades de otros usuarios (spoofing) y llevan a cabo los ataques desde múltiples clientes. La tabla de procesos, por ejemplo, es crítica, ya que si se llena, la computadora no puede crear ni siquiera el proceso de apagar el sistema. Para evitarlo, los administradores deben poner límites, siempre que sea posible, a los recursos que cada usuario puede tener simultáneamente (número de procesos, impresoras, etc).
Políticas de Seguridad El rol de la protección es proveer un mecanismo para el fortalecimiento de las políticas que gobiernan el uso de recursos. Tales políticas se pueden establecer de varias maneras, algunas en el diseño del sistema y otras son son form formul ulad adas as por por el admin adminis istr trad ador or del del sist sistem ema. a. Otra Otrass pued pueden en ser ser definidas por los usuarios individuales para proteger sus propios archivos y programas. Las políticas son diversas, dependen de la aplicación y pueden estar sujetas a cambios a lo largo del tiempo. Un princ incipio impo mportante es la separac ración de política icas de los mecanismos. ‘Los ‘Los meca mecani nism smos os dete determ rmin inan an cómo cómo algo algo se hará hará.. Las Las políticas deciden que se hará’. hará’.
La separación es importante para la flexibilidad del sistema. Los requisitos de seguridad son siempre una cuestión importante en las organizaciones. La existencia de un sistema seguro pasa porque exista una Polític que defi defina na clar claram amen ente te la segu segurid ridad ad que que Política a de Seguri Seguridad dad que proporciona el sistema, independientemente de los mecanismos usados para implementarla. Imagine que una universidad tiene una computadora compartida entre alumnos y profesores, de forma que los alumnos no pueden tener acceso a Internet pero los profesores sí. El sistema operativo de esta computadora necesita una política de control de acceso a los recursos según el usuario que solicite dichos accesos. Es necesario saber primero si la política de seguridad que ofrece dicho sistema operativo satisface los requisitos de seguridad de la instalación. Es decir, si es confiable.
7
Política Militar Se basa basa en la clas clasifific icac ació ión n de todo todoss los los obje objeto toss con con requ requis isito itoss de seguridad en uno de los cinco niveles de seguridad siguientes: • • • • •
Desclasificado Restringido Confidencial Secreto Alto Secreto
Niveles de Seguridad de la Política Militar Los Los cinc cinco o nive nivele less se estr estruc uctu tura ran n lógi lógica came ment nte e como como un conj conjun unto to de círcul círculos os concé concéntr ntrico icoss en cuyo cuyo interi interior or está está el alto alto secret secreto o y en cuyo cuyo exterior están los documentos públicos (desclasificados). En gene genera ral,l, los los usua usuario rioss que que tiene tienen n acce acceso so a obje objeto toss de nive nivell i (ej: (ej: secreto) también lo tienen a los de i+1 (confidenciales). Sin embargo, el acceso a la información se controla por la regla de lo que se nece necesi sita ta sabe saber. r. De esta esta forma forma se pued puede e compartimentar a los usuarios, haciendo más estricta la regla general de acceso. Un compartimento se pued puede e exte extend nder er a vario varioss nive nivele less y dent dentro ro del del mismo se aplica también la regla general de acceso. Usar compartimentos permite establecer conjuntos de usuarios que acceden a la información y ocultar documentos a usuarios con el mismo nivel se seguridad. Ejemplo: Imagine una empresa con dos secciones: personal y contabilidad. El presidente tiene acceso a ambos y acreditación 0, mayor que los jefes de dichas secciones (compartimentos) que tienen acreditación 1. El jefe de pers person onal al y el pres presid iden ente te tien tienen en acce acceso so a los los expe expedi dien ente tess de los los trab trabaj ajad ador ores es (cla (clasi sific ficac ació ión n nive nivell 1), 1), pero pero el de cont contab abili ilida dad d no. no. Su acred redita itación ión es sufi suficcient iente e, pero pero su secció cción n no está dent dentro ro del compartimento de las que tienen acceso a esos documentos.
8
Políticas Comerciales Basá Basánd ndos ose e en la polí polític tica a milit militar ar,, pero pero gene genera ralme lment nte e debi debililita tand ndo o las las restri restricci ccione oness de segur segurida idad, d, se han diseña diseñado do varias varias polític políticas as de uso comercial. Algunos ejemplos de ellas son las de Clark-Wilson, separación de debe debere ress o la mura muralla lla chin china. a. Toda Todass ella ellass usan usan los los princ princip ipio ioss de compartimentación de los usuarios y de clasificación de la información. Como ejemplo de política de seguridad, se estudia brevemente la política de la muralla china. La política de la muralla china clasifica a objetos y usuarios en tres niveles de abstracción: • • •
Objetos Grupos Clases de Conflicto
Cada objeto pertenece a un único grupo y cada grupo a una única clase de conflicto. Una clase de conflicto, sin embargo, puede incluir a varios grupos. Por ejemplo, suponga que existe información de tres fabricantes de automó automóvil viles es (Volks (Volkswag wagen, en, Seat Seat y Gener General al Motors Motors)) y dos bancos bancos (HSBC y BBVA). Con la muralla china existen 5 grupos y 2 clases de conflicto (bancos y automóviles). La política de control de acceso es sencilla. Una persona puede acceder a la información siempre que antes no haya accedido a otro grupo de la clase de conflicto a la que pertenece la información a la que quiere acceder. Eso le invalida para conocer más información de otros grupos de esa clase de conflicto. En el acceso 2 Juan conoce información de la clase de conflicto Automoción, específicamente de General Motors. Por tanto, para posteriores accesos podrá acceder a ambas clases de conflicto, pero sólo a los grupos que ya han accedido.
Modelos de Seguridad Un modelo es un mecanismo que permite hacer explícita una política de seguridad. Los Modelos Modelos de Seguridad Seguridad Multinivel permiten representar rangos de sensibilidad y reflejar la necesidad de separar rigurosamente los sujetos de los objetos a los que no tienen acceso.
9
Ejemplos de modelos de este estilo son los modelos de rejilla, el modelo de confidencialidad de Bell-La Padula y el modelo de integridad de Biba. se centra ntran n en resp respo onder der formalmente las propiedades que un sistema seguro debe satisfacer.
Los Los
Mode Modelo los s
de
Segu Seguri rida dad d
Ilim Ilimit itad ada a
Todos ellos se basan en dos principios: •
•
Usan la teoría general de la computación para definir un sistema formal de reglas de protección. Usan una matriz de control de acceso, en cuyas filas están los sujetos y en cuyas columnas están los objetos.
Los derechos de acceso del sujeto i sobre el objeto j son los contenidos del elemento de la matriz (i,j). Es importante resaltar que la existencia de un modelo de seguridad no es requisito obligatorio en todos los sistemas operativos.
Diseño de Sistemas Operativos Seguros: Para dotar a un sistema operativo con mecanismos de seguridad es nece ne cesa sario rio di dise seña ñarlo rlo pa para ra qu que e ad admit mitan an es esto toss me meca cani nism smos os de desd sde e el principio. Incluir mecanismos de seguridad dentro de u sistema operativo existente es muy difícil porque las repercusiones de los mecanismos de segu se gurid ridad ad af afec ecta tan n pr prác áctic ticam amen ente te a to todo doss os el elem emen ento toss de dell si sist stem ema a operativo. Un sistema será confiable si el conjunto de mecanismos de protección, incluyendo hardware, software y firmdware, proporciona una política de seguridad unificada en el sistema.
Principios de Diseño y Aspectos de Seguridad Los criterios de diseño para dotar a un sistema operativo con mecanismos de seguridad son: 1. Diseño abierto. El diseño del sistema debería ser público para disuadir a posibles curiosos, recurriendo para ello a la reducción de aspectos ocultos al mínimo. 2. Exigir permisos. Es mejor identificar que objetos son a accesibles y cómo identificar los que no. De esta forma se tienen mecanismos para pedir permisos de acceso a todos 105 objetos. ,
10
3. Privilegios mínimos. Se les debe conceder únicamente la prioridad necesaria para llevar a cabo su tarea. Este principio permite limitar los daños en casos de ataques maliciosos. 4. Mecanismos económicos. Los mecanismos de protección deberían de ser sencillos, regulares y pequeños. Un sistema así se puede analizar, verificar, probar y diseñar fácilmente. , 5. Intermediación completa. Cada intento de acceso al sistema debe ser comprobado, tanto los directos como los indirectos. Si se relaja este principio de diseño de forma que no se comprueben todos los accesos a un objeto, es necesario comprobar los permisos de los usuarios de forma periódica y no sólo cuando se accede al recurso por primera vez. 6. Comparición mínima. Los sistemas que usan la separación física o lógica de los usuarios permiten reducir el riesgo de comparición ilegal de obje ob jeto tos. s. La se sepa para ració ción n de debe be ap aplic licar arse se cu cuid idad ados osam amen ente te cu cuan ando do se asignan a un usuario objetos libres que antes fueron de otro usuario, parar evitar que se conviertan en canales de comunicación encubiertos. 7. Fáciles de usar y aceptables . El esquema de protección debe ser aceptado por los usuarios y fácil de usar. Si un mecanismo es sencillo, y no es desagradable, existen menos posibilidades de que los usuarios traten de evitarlo. 8. Separación de privilegios. Si se quiere diseñar un sistema seguro, los accesos a cada objeto deben depender de más de un mecanismo de protección. En ge gene nera rall un si sist stem ema a op oper erat ativ ivo o mu multltip ipro rogr gram amad ado o llllev eva a a ca cabo bo la lass siguientes tareas relacionadas con la seguridad del sistema:.
Autenticación de usuarios. En un sistema operativo debe existir un método seguro y fiable de identificar a los usuarios y cada usuario debe tener una identidad única. bje eto toss de un 8. 8.0 0 de debe ben n se ser r Asignació Asigna ción n de re recur cursos sos.. Los obj asignados a los procesos que los solicitan sin que hay conflictos, violaciones de normas de seguridad, problemas de comparición o fallos de confidencialidad a través de recursos re-usables.
Control de accesos a los recursos del sistema. El dueño de un objeto tiene un cierto grado de libertad para establecer quién y cómo puede acceder a un objeto.
11
Control de la comparición y la comunicación entre procesos . Para que se puedan aplicar controles de acceso, hay que controlar todos los accesos, incluyendo la comunicación entre procesos y la reutilización de elementos. Protección de datos del sistema de protección en sí mismo. Es necesario tener estos recursos bien protegidos para que el acceso a los mismos no facilite violaciones de seguridad.
Técnicas de Diseño de Sistema Seguros Estas son:
Separación de recursos. Hay cuatro formas básicas de separación entre procesos:
1. Física: Lo Loss rec recurs ursos os eje ejecut cutan an en dis distint tintas as pla plataf taform ormas as ha hardw rdware are,, dependiendo de sus restricciones de seguridad. 2. Temporal: Ocurre cuando los procesos se ejecutan a distintas horas. 3. Criptográfica: Para asegurar que los datos de distintos usuraos no sean inteligibles para los demás, aunque puedan acceder a dichos datos. 4. Lógica: Lo Loss sis sistem temas as pro propor porcio cionan nan múl múltipl tiples es esp espac acios ios lóg lógico icoss de ejecución, asignando uno a cada proceso.
Uso de entornos virtuales. Permiten proporcionar separación lógica de forma natural, ó sea, que los entornos virtuales deben apoyarse en recursos reales, pero el sistema operativo puede proporcionar a loss us lo usua uario rioss lo loss re recu curs rsos os vi virt rtua uale less y co cont ntro rola larr el ac acce ceso so a lo loss missmo mi mos. s. Eje jemp mplo loss de me meca cani nissmo moss vir irtu tua ale less im imp port rta ant nte es son. múltiples de memoria virtual y las máquinas virtuales. Diseño por Capas. Consiste en una técnica de diseño de sistemas que consiste en asemejar la visión de un sistema seguro a una serie de círculos concéntricos donde los niveles interiores son de máss co má conf nfia ianz nza a y ca cada da ca capa pa só sólo lo titien ene e ac acce ceso so a la lass ca capa pass adyacentes. Este diseño permite relajar el concepto de núcleo de seguridad, repartiendo sus funciones por las distintas capas del sistema, ocultar datos entre niveles y reducir daños en caso de fallo de seguridad. En cada capa se incluye la funcionalidad a los elementos de esta capa; en caso de un fallo de seguridad solo esos elementos se verán afectados.
12
Controles de Seguridad Externos al Sistema Operativo Los tres tipos de controles externos al sistema operativo que se aplican más frecuentemente para prevenir fallos de seguridad durante las etapas de desarrollo y de prueba de un sistema operativo son: 1.
Equipos de Penetración y Limitación de Acceso
Para tratar de detectar el mayor número de fallos posible es habitual usar equipos de penetración, en donde su misión es llevar a cabo todos los ataq at aque uess de se segu gurid ridad ad so sobr bre e un si sist stem ema. a. El co conj njun unto to de pr prue ueba bass de seguridad debe ser complejo y riguroso, sobre todo si se trata de sistemas que están conectados en red por la posibilidad de difusión de virus e inte in tent nto o de ad adqu quis isic ició ión n de pa pala labr bras as de ac acce ceso so al si sist stem ema a me medi dian ante te programas que descifran dichos códigos (crackers). La complejidad de las compr co mprob obac acio ione ness y el re regis gistr tro o de ac acce ceso so au aume ment ntan an en lo loss si sist stem emas as conectados a una red; en tal caso la seguridad se enfrenta a múltiples puntos de ejecución y canales de comunicación expuestos, por tal motivo se debe utilizar algún mecanismo de protección como el firewall, que consiste en limitar el acceso a la red interna y solo poder realizarlo a través de una máquina determinada denominada cortafuegos. 2.
Controles de Programación
Existe Exis ten n mé méto todo doss pa para ra as aseg egur urar ar la ca calilida dad d de pr prog ogra rama maci ción ón en el desarrollo de un sistema operativo: •
•
•
Diseño detalla lad do y contrastado de las ta tarreas a dise seño ño y có códi digo go de dell si sist stem ema a de debe ben n se ser r programar: el di revisados por un grupo de los diseñadores y programadores para que el grupo se involucre en la corre corrección cción y segu seguridad ridad del producto para detectar errores de programación, código malicioso, etc. Aplicar el principio de aislamiento a cada componente dell si de sist stem ema: a: se puede aplicar a los programas encapsulando datos y métodos de un objeto de forma que sólo se puedan acceder por métodos verificados e interfaz definida. Pruebas Prueba s por par parte te de pro probad badore ores s ind indepe ependi ndient entes es no relacionados con los miembros del equipo: importantes para la seguridad del sistema contra los códigos maliciosos por parte de algún programador.
13
•
3.
Gestión de Configuración: cualquier cambio o instalación de so soft ftwa ware re en un sis iste tema ma de debe be se serr ap apro roba bado do po porr el admin ad minist istrad rador, or, est este e con contro troll pro proteg tege e fre frente nte ame amenaz nazas as no intencionadas.
Uso de Estándares para Seguridad.
Un Si Sist stem ema a Op Oper erat ativo ivo es un pr proy oyec ecto to de pr prog ogra rama maci ción ón gr gran ande de qu que e requiere controles necesarios en su desarrollo. Existen estándares que describen un sistema fiable, como por ejemplo DoD-2167 A, el SSE-CMM y ellSO 9000. .
Controles de Seguridad del Sistema Operativo Algunos controles de seguridad que se deben aplicar en el sistema operativo son:
Ejecutar Software Viable: es aquel que ha sido desarrollado y analizado de forma que se puede confiar en que hará lo que se esper es pera. a. Es la ba base se so sobre bre las que se eje ejecut cutan an ap aplica licacio ciones nes no fiables. Las bibliotecas de interfaz del 8.0. como los generadores de código deben ser fiables. desar sarrol rolló ló par para a des descri cribir bir las Sospechar Sospec har de los Pro Proces cesos: os: se de relaci rel acione oness ent entre re dos pro proces cesos. os. los sis sistem temas as qu que e sos sospec pechan han se ejecutan como si los otros procesos fueran maliciosos, por lo tanto en todos los módulos se aplica el encapsulamiento y ocultación de información. Una técnica de sospecha es monitorizar los procesos para ver si tiene patrones de ejecución sospechosos.
Ejecutar los Procesos con Confinamiento: técnica utilizada por los 8.0. para reducir los daños en caso de fallos de seguridad o código malicioso. Un proceso confinado tiene limitados los recursos del sistema a los que puede acceder. Es útil para proteger el sistema ante virus ya que si se aplica estrictamente el virus sólo puede dañar el compartimiento al que tiene acceso. Registrar los Accesos: se origina una lista de los usuarios que acceden a los objetos del sistema especificando cuándo y cómo se real re aliz izan an es esos os ac acce ceso sos. s. En el re regis gistr tro o de ac acce ceso soss se pu pued eden en efectu efe ctuar ar au audito ditoria riass per periód iódica icass par para a det detec ectar tar fal fallos los de se segur gurida idad d como el uso de cerrojos sobre un archivo para crear un canal encubierto.
14
Buscar Periódicamente Agujeros de Seguridad: el 8.0. debe comprobar que no hay intentos de violación de la seguridad del sistem sis tema. a. Alg Algun unas as co compro mprobac bacion iones es so son: n: pal palabr abras as cla clave ve cor cortas tas o senc se ncill illas as,, pr prog ogra rama mass co con n pr prio iorid ridad ad in inde debi bida da,, pr prog ogra rama mass no autorizados en directorios del sistema.
Criptografía La crip cripto togr graf afía ía es usad usada a para para la trans transfo forma rmaci ción ón de dato datoss para para hacerlos incomprensibles para todos, excepto para el usuario destinatario. El problema de la privacidad tiene relación con la prevención de la no auto autori riza zaci ción ón para para la extra extracc cció ión n de infor informa maci ción ón desd desde e un cana canall de comunicación. Los problemas de autentificación están relacionados con la preve prevenci nción ón contr contra a intrus intrusos os que inten intentan tan modific modificar ar una transm transmisi isión ón o insertar falsos datos dentro de una transmisión. Los problemas de disputa están relacionados con la providencia de reserva de un mensaje con prueba legal de la identidad enviada.
Sistema de Privacidad Criptográfico En un sistema de privacidad criptográfico, el remitente desea transmitir cierto mensaje no cifrado a un receptor legítimo, la transmisión ocurre sobre un canal inseguro asume ser monitoreado o grabado en cinta por un intruso. El remitente pasa el texto a una unidad de encriptación que transforma el texto a un texto cifrado o criptograma; el mismo no es entendible por el intruso. El mensaje es transmitido entonces, sobre un canal seguro. Al finalizar la recepción el texto cifrado pasa a una unidad de descripción que regenera el texto.
Criptoanálisis Criptoanálisis es el proceso de intentar regenerar el mensaje desde el texto cifrado pero sin conocimiento de las claves de encriptación. Esta es la tarea normal de los intrusos. Si el intruso o criptoanalista no puede determinar determinar un mensaje desde el texto cifrado (sin la clave), clave), entonces entonces el sistema de criptografiado es seguro.
15
Métodos y Técnicas de Encriptación Cesar Está técnica consistía simplemente en sustituir una letra por la situada tres lugares más allá en el alfabeto esto es la A se transformaba en D, la B en E y así sucesivamente hasta que la Z se convertía en C.
Gronsfeld Este método utiliza más de un alfabeto cifrado para poner en clave el mensaje y que se cambia de uno a otro según se pasa de una letra del texto en claro a otra. Es decir que deben tenerse un conjunto de alfabetos cifrados y una forma de hacer corresponder cada letra del texto original con uno de ellos.
RSA En los sistemas tradicionales de cifrado debe comunicarse una clave entre el emisor y el receptor del mensaje, el problema aquí es encontrar un cana canall segu seguro ro para para tran transm smiti itirr dich dicha a clav clave. e. Este Este prob proble lema ma vien viene e a resolverse en los sistemas de clave pública la clave de cifrado, pues un tiempo tiempo enorme enormemen mente te de ordena ordenador dor es neces necesario ario para para encont encontrar rar una transformación de descifrado a partir de la de cifrado.
DES DES fue desarrollado por IBM a mediados de los setenta. Aunque tiene un buen diseño, su tamaño de clave de 56 bits es demasiado pequeño para los patrones de hoy. DES (Data Encryption Standard) es un mecanismo de encriptación de datos de uso generalizado. Hay muchas implementaciones de hardware y software de DES. Este transforma la información de texto llano en datos encr encript iptad ados os llam llamad ados os text texto o cifra cifrado do medi median ante te el uso uso de un algo algorit ritmo mo especial y valor semilla llamado clave. Si el receptor conoce la clave, podrá utilizarla para convertir el texto cifrado en los datos originales. Es un mecanismo de encriptado simétrico.
Chaffing & Winnowing Esta técnica propuesta por Donald Rivest. Es más un intento de esquivar las restricciones a la criptografía en EE.UU. (y otros países) que una propue propuesta sta razona razonable ble debid debido o al tamaño tamaño de los mensa mensajes jes result resultant antes. es. El término inglés “winnowing” se tomará como aventar es decir separar el
16
grano de la paja y el término “chaffing” por el castellano empajar (cubrir o rellenar con paja). La idea básica consiste en mezclar la información real (grano) con otra de relleno (paja) de modo que sea imposible separarlas excepto para el destinatario.
SKIPJACK Este Este algori algoritmo tmo fue desca descalifi lifica cado do por por el gobier gobierno no de Estado Estadoss Unido Unidos. s. Algunos detalles sobre el algoritmo en sí y sus aplicaciones en la práctica a los chips Clipper y Capstone. Skipjack fue desarrollado por la NSA inicialmente para los chips Clipper y Capstone. Su diseño comenzó en 1985 y se completó su evaluación en 1990.
BÍFIDO El método Bífido es un cifrado fraccionario. Es decir que cada letra viene representada por una o más letras o símbolos, y donde se trabaja con estos símbolos más que con las letras l etras mismas.
WLBYKYAAOTB Este método altera la frecuencia de los caracteres a diferencia de lo que ocurre por ejemplo con los cifrados monos alfabéticos. Admite algunas variaciones como por ejemplo dividir la lista en 3,4,..., n partes.
Cifrado exponencial Es un sistema sistema basado en la exponencia exponenciación ción modular, modular, debido Pohlig y Hellman (1978). Este método es resistente al criptoanálisis.
Blowfish Este algoritmo realiza un cifrado simple en 16 ciclos, con un tamaño de bloque de 64 bytes para un total de 448 bits. Aunque hay una fase compleja de la inicialización. El cifrado de datos es muy eficiente en los microprocesadores grandes.
17
Sistemas de Clave Pública Un sistema criptográfico de clave pública es tan seguro como su clave. La distribución de las claves debe ser manejada sobre canales altamente seguros. Esto suele consumir mucho tiempo. A veces, tales canales de seguridad no están disponibles. Los sistemas de clave pública no tienen tal problema en la distribución de la clave. En el sistema criptográfico convencional el cifrado y descifrado está están n ínti íntima mame ment nte e rela relaci cion onad ados os.. Estos stos siste istema mass usan usan una una clav clave e encri ncript pta ada, E, y una clav lave descif scifra rado do,, D, de mane manera ra que no es computacionalmente viable (dentro de un tiempo razonable) determinar E a partir de D. De esta forma, E puede ser hecha pública sin comprometer la seguridad de D. Esto simplifica el problema de la distribución de la clave. Cada usuario genera una clave de cifrado y una de descifrado, la clave de cifrado está hecha pública y la clave cifrada se mantiene secreta. Así cualquiera puede enviar un mensaje encriptado a un usuario particular (porqu (porque e la clave clave de cifrad cifrado o es públic pública), a), pero pero solo solo aquell aquellos os usuari usuarios os pueden descifrar el mensaje (porque la clave de descifrado es privada). E es llamada una clave pública y D es llamada una clave privada.
Firmas Digitales Para que una firma digital sea aceptada como sustituta de una firma escrita debe ser: · Fácil de autentificar (reconocer) por cualquiera. · Producible únicamente por su autor. En los cripto-sistemas de clave pública el procedimiento es: · El remitente usa la clave privada para crear un mensaje firmado. · El receptor: Usa la clave pública del remitente para descifrar el mensaje ó Guarda el mensaje firmado para usarlo en caso de disputas disputas
18
Medidas Básicas de Seguridad En general se puede afirmar que si la llave privada solo es conocida y accesible por el sujeto A, sería prácticamente imposible, para otro sujeto B, falsificar una firma digital del sujeto A, o abrir un sobre digital dirigido al sujeto A, utilizando métodos matemáticos. El atacante de un sistema va a centrar su esfuerzo en encontrar debilidades en la implementación del software o hardware de seguridad. A continuación se mencionan los dos puntos de ataque más comunes: · Generación de Números Aleatorios La generación de las llaves utiliza métodos pseudo aleatorios por lo que es muy importante que un sujeto B no puede replicar el procedimiento que siguió un sujeto A cuando este generó sus llaves. · Ataque a la Llave Privada La llave privada, que normalmente reside en un archivo debe mantenerse encr encrip ipta tada da con con un algo algori ritm tmo o simé simétr tric ico, o, util utiliz izan ando do como como llav llave e una una contraseña. La contraseña debe ser elegida por el usuario en forma tal que resulte impredecible para quien intente adivinarlo por asociación de ideas. La encriptación por contraseña es normalmente presa de ataques deno denomin minad ados os de dicc diccio iona nari rio o que que busc buscan an exha exhaus ustitiva vame mente nte entre entre un conjunto de palabras formadas por letras del abecedario. Otro ataque más sutil se concentra en intentar por prueba y error las posibles contraseñas que un sujeto utiliza en base a acciones de ideas, por ejemplo, su apodo, el nombre de su esposa, su apodo y fecha de nacimiento, etc. La llave privada solo se debe de encontrar desencriptada cuando está en la memoria de la computadora y mientras el programa de seguridad esté funcionando. Si el sujeto se encuentra en un entorno de cómputo en donde sea posible que un atacante realice un vaciado a disco del estado de la memoria del programa de seguridad, entonces la llave privada está en peligro. Si se está en un entorno de cómputo en donde sea posible que un atacan atacante te interc intercept epte e el teclad teclado o entonc entonces, es, su llave llave privad privada a está está en peligro. Si se está en un entorno de cómputo en donde sea posible sust sustititui uirr el prog progra rama ma de segu seguri rida dad d por por uno uno fals falso o que que capt captur ure e su contraseña y su llave privada encriptada entonces, su llave privada está en peligro.
19
Las formas más seguras de evitar el robo de llaves ll aves privadas es de firmar y abrir sobres en una computadora aislada física y virtualmente del mundo exterior. A dicha computadora deben de entrar mensajes a firmar y deben de salir salir mens mensaj ajes es firma firmado dos, s, nunc nunca a debe debe de salir salir ni expo expone nerr la llave llave privad privada. a. Este Este es el caso caso de por por ejempl ejemplo, o, los Agent Agentes es Certifi Certificad cadore ores, s, Autoridades Certificadoras y en general general aplicaciones altamente sensitivas. sensitivas.
Seguridad Seguri dad y Pro Protec tecció ción n en Sistemas Sistemas Operati Operativos vos de Pro Propós pósito ito General Un si sist stem ema a op oper erat ativ ivo o pu pued ede e da darr so sopo porte rte de ej ejec ecuc ució ión n a mú múlti ltipl ples es procesos de múltiples usuarios, que ejecutan de manera concurrente. Por ello, una de las funciones principales del sistema operativo es proteger los recursos de cada usuario para que pueda ejecutar en un entorno seguro. Donde los mecanismos permiten controlar el acceso a los objetos del sistema permitiéndolo o denegándolo sobre la base de información tal como la identificación del usuario, el tipo de recurso, la pertenencia del usuario a cierto grupo de personas, las operaciones que puede ,hacer el usua us uari rio o o el gr grup upo o co con n cada re recu curs rso o, etc tc.. La exi xist ste enc ncia ia de lo loss mecanismos de seguridad obliga a mantener un compromiso constante entre separación y comparición. 1. Autenti 1. Autenticación cación de Usuarios Usuarios
El ob obje jetitivo vo de la id iden entitififica caci ción ón de dell us usua uari rio, o, ta tamb mbié ién n de deno nomi mina nado do aute au tent ntic icac ació ión, n, es de dete term rmin inar ar si un us usua uari rio o (p (per erso sona na,, se serv rvic icio io o computadora) es quien dice ser. Para lo cual existen diversas formas de establecer la identidad de un usuario, tales como:
Pedir información que s6lo él conoce a través de contraseñas, juegos de preguntas preguntas o algoritmos de identificación. Determinar características físicas del usuario tales como la pupila, la huella dactilar, el DNA, la firma y etc. Pedir un objeto que use el usuario, como puede ser una firma electrónica, una tarjeta con banda magnética o con un chip.
Además, como criterio general de seguridad, los sistemas operativos modernos dan la posibilidad de registrar todos los accesos al sistema, lo cual permite hacer controles interactivos ya posteriori de dichos accesos. El proceso de autenticación: Habitualmente, cuando un usuario quiere
acceder al sistema, aparece una pantalla o mensaje de entrada. En el caso de Windows NT, la pantalla pide tres valores:
20
Identificación del usuario: nombre del usuario del sistema. Palabra clave o contraseña: espacio para teclear la l a clave. Dominio de protección al que pertenece el usuario.
Existen varios fallos posibles en el proceso de entrada al sistema, por lo que este proceso debe ser robusto y no dar información a los intrusos. Donde un ataque a la seguridad del sistema relacionado con el proceso de autenticación consiste en suplantar al proceso que pide los datos de entrada. 2. Palabras Claves ó Contraseñas
El método más usado actualmente para identificar a un usuario es el de cont co ntra rase seña ñas, s, o pa pala labr bras as cl clav aves es.. Un Una a co cont ntra rase seña ña es un co conj njun unto to de caracteres alfanuméricos y especiales conocido únicamente por el usuario y por el sistema operativo sobre el que se ha llegado a un acuerdo para que sea usado como clave de acceso al sistema. Normalmente, cuando se habilita un nuevo usuario en el sistema, este introduce su contraseña, que pue puede de ca cambia mbiarr pos poster terior iormen mente te tan tantas tas vec veces es com como o qui quiera era.. Dic Dicha ha contraseña se guarda cifrad en archivos especiales. Este sistema es sencillo de implementar y de usar, funcionando de forma similar en todos los sistemas operativos. Sin embrago es necesario tomar las siguientes cuatro decisiones básicas de diseño para un sistema como este: Asignación Asignación de claves: claves: La palabra clave es fijada por el usuario cuando
entra en su cuenta y la puede cambiar tantas veces como quiera. Longitud y formato de claves: claves: La longitud y el formato de las claves han
ido cambiando a través del tiempo, principalmente debido a la detección de fallos asociados a las claves usadas en cada momento. Donde para aumentar la complejidad de la clave se puede hacer que el mandato que permite cambiar la contraseña obligue al usuario a meter caracteres no alfanuméricos y que fuerce la existencia de contraseñas de una longitud mínima añadiendo números aleatorios a la palabra antes de cifrarla. Almacenamie Almacenamiento nto de claves: claves: Las claves suelen almacenarse en archivos
cifrados, con lo cual se incrementa la seguridad. Para a dif dificu iculta ltarr la det detec ecció ción n de con contra traseñ señas as Dura Duració ción n de las las clave claves s: Par válidas por parte de posibles intrusos se puede configurar el sistema operat ope rativo ivo:: los sis sistem temas as ope operat rativo ivoss per permite miten n que las co contr ntrase aseñas ñas de usuario sean válidas únicamente durante un cierto tiempo.
21
3. Dominios de Protección Para poder implementar mecanismos de protección sobre los objetos del sistem sis tema, a, que pue pueden den se serr har hardwa dware re (UC (UCP, P, me memor moria, ia, etc etc.) .) o so softwa ftware re (proce (pr ocesos sos,, arc archiv hivos, os, se semáfo máforos ros,, etc etc.), .), es nec necesa esario rio en pri primer mer lug lugar ar disponer de identificadores únicos de usuarios y objetos. La re rela laci ción ón en entr tre e ob obje jeto toss y de dere rech chos os de ac acce ceso so se de defin fine e us usan ando do dominios de protección. Un dominio de protección es un conjunto de pares par es (ob (objet jeto, o, der derech echos) os),, don donde de ca cada da pa parr esp especi ecific fica a un ob objet jeto o y las operaciones que puede ejecutar sobre el mismo. Un obje jetto puede pert rte enecer a vario ioss domin inio ioss de prote teccción simultáneamente. En cada momento, un proceso ejecuta un dominio de protección, pudiendo cambiar de un dominio a otro, si el sistema operativo lo permite. 4. Matrices de Protección
La relación entre dominios y objetos se puede definir de forma completa mediante 6ba matriz de protección, también denominada de acceso. Los dominios de protección son las filas de la matriz y los objetos son las columnas de la misma. El elemento (i, j) expresa las operaciones que el dominio i; puede ejecutar sobre el objeto j. Si la matriz de protección esta completame comp letamente nte defin definida, ida, los mecan mecanismos ismos de prote protección cción pueden sabe saber r siempre qué hacer cuando un proceso de un dominio solicita determinada operación sobre un objeto. El modelo de matriz de protección, derivado del modelo teórico HRU pun pu nto de vis ista ta conc nce eptu tua al, pe pero ro ti tie ene in inco conv nve eni nie ent nte es pa para ra su implementación:
La matriz de un sistema complejo puede ser muy grande y muy dispersa. Una matriz tiene un número fijo de filas (dominios) y columnas (objetos), lo que es muy poco flexible para sistemas cuyo número de dominios u objetos puede cambiar.
Para resolver estos problemas, la mayoría de los sistemas operativos implementan la matriz mediante estructuras dinámicas de datos (listas) a las que se puede añadir o quitar elementos sin tener que redefinir ninguna estructura de datos del sistema operativo. Para la implementación de la matriz mediante elementos dinámicos, los sistemas operativos usan dos enfoques:
22
Almacenar la matriz por columnas, con una lista por objeto que especifica qué operaciones puede hacer cada dominio sobre ese objeto. La lista resultante se denomina lista de control de acceso (ACL, Acces Control List). Almacenar la matriz por filas, con una lista por dominio que especifique qué operaciones se pueden hacer sobre un objeto cuan cu ando do se pe pert rten enec ece e a es ese e do domi mini nio. o. La lilist sta a re resu sultltan ante te se denomina lista de capacidades (capabilities).
5. Lista de Control de Acceso
Una forma frecuente de controlar los accesos a un objeto es usar el identificador del usuario como criterio. Con listas de control de acceso es necesario especificar para cada dominio de protección, e incluso para 'cad 'c ada a us usua uari rio, o, qu qué é titipo poss de ac acce ceso so al ob obje jeto to so son n po posi sibl bles es.. Pa Para ra implementar esta solución, a cada objeto (archivos, directorios, procesos, etc. se le asocia una lista de pares: (Dominio, Operaciones)
Cuando un usuario pide acceso a un objeto, se determina a qué dominio de protección pertenece y se recorre la lista para ver si se puede hacer la operación solicitada. La lilist sta a de co cont ntro roll de ac acce ceso so se co corre rresp spon onde de di dire rect ctam amen ente te co con n la lass nece ne cesi sida dade dess de lo loss us usua uari rios os.. Estas stas lilist stas as titien enen en do doss pr prob oble lema mass asociados:
Construir y mantener las listas l istas es costoso en tiempo y recursos. Es ne nece cesa sario rio dis dispo pone nerr de es estr truc uctu tura rass de al alma mace cena namie miento nto de tamaño variable porque las listas pueden tener longitudes distintas dependiendo del objeto.
Listas de Control de Acceso en UNIX
En UNIX, solo existen tres dominios de protección: dueño, grupo, otros. Para cada dominio se permiten tres tipos de operaciones sobre un objeto: leer (r), escr escribir ibir (w) y ejecutar (x). Todas las oper operacion aciones es de inte interfaz rfaz Con el sistema operativo, estos permisos se indican Con números en octal. Se usa un digito para cada dominio y el valor de loS bits de cada digito se pone a 1 si la operación es posible a 0 si no lo es.
23
Los parámetros de protección de un objeto se pueden cambiar en UNIX mediante las llamadas al sistema chmod y chown. Listas de Control de Acceso en Windows NT
Todos los objetos de Windows NT tienen asignados descriptores de seguridad como parte de sus fichas de acceso. La parte mas significativa de los descriptores de seguridad es la lista de control de accesos. Cada entrada de la ACL contiene los descriptores de seguridad de los distintos dominios del sistema y los derechos de la ACL para permitir o denegar al acceso al objeto. El criterio de asignación de derechos en la ACL de un objeto nuevo en Windows NT es el siguiente: 1. Si el creador creador de un objeto objeto proporcio proporciona na una ACL ACL de forma forma explicita explicita,, el sistema la incluye en la ficha de acceso de dicho objeto. 2. Si no proporci proporciona ona una ACL de forma forma explici explicita, ta, pero pero el obj objeto eto tiene tiene un nombre, el sistema comprueba si el objeto debe heredar la de los objetos de su directorio. En ese caso se incluye en la fila de acceso del objeto la ACL heredada de los objetos de su directorio. 3. Si ni ning ngun una a de la lass do doss co cond ndic icio ione ness an ante teri rior ores es se cu cump mple len, n, el 'subsistema de seguridad aplica al objeto una ACL por defecto. Además, en los descriptores de seguridad de los objetos se puede activar un campo de auditoria que indica al subsistema de seguridad que debe espiar al objeto y generar informes de seguridad cuando algún usuario intente hacer un uso incorrecto del mismo. 6. Capacidades
La otra forma posible de implementar la matriz de protección es asociar a cada dominio un conjunto de descriptores que indiquen las operaciones que los componentes de ese dominio pueden efectuar sobre cada objeto del sistema. Estos descriptores se denominan capacidades (capabilities) y son una combinación de una referencia a un objeto con los permisos de acceso al mismo desde el dominio del poseedor de la capacidad. Las listas de capacidades son a su vez objetos, por 10 que pueden ser incluidas dentro de otras listas de capacidades, facilitando la comparición de los objetos en dominios y subdominios. La mayoría de los sistemas que usan capacidades se basan en el hecho de que las listas de capacidades están siempre dentro del espacio de
24
memoria del sistema operativo, sin que exista posibilidad de migrar a espacio de memoria de los procesos de usuario. Una capacidad no pueda ser modificada. En casi todos los sistemas es necesario destruirla y crear una nueva, siguiendo un esquema de uso de una única vez. A nivel interno se han propuesto tres métodos para proteger las listas de capacidades:
Arquitectura Arqui tectura etiquetada, etiquetada, en al cual la palabra de memoria tenga
un bi bitt de et etiq ique ueta ta ad adic icio iona nall di dici cien endo do si co cont ntie iene ne o no un una a capacidad. En caso positivo, esa posición de memoria sólo puede ser modificada por procesos que ejecuten dentro del núcleo del sistema operativo. Esta solución es cara y poco adecuada para sistemas de propósito de general.
Capacidades cifradas. cifradas. La clave de cifrado es desconocida por los
usuarios, que deben limitarse a manipular las capacidades cifradas recibidas del sistema operativo. Este sistema se ajusta bien a las necesidades de los sistemas operativos distribuidos.
Listas de control de acceso asociadas a cada capacidad.
Las capacidades no se corresponden directamente con las necesidades de los usuarios y son menos intuitivas que las ACL. Debido a ello, la mayoría de los sistemas operativos proporcionan ACL como mecanismo de protección. Sin embargo, las capacidades tienen varias ventajas:
Son muy útiles par Son para a inc incluir luir inf inform ormaci ación ón de pro protec tecció ción n par para a un proceso en particular. El mecanismo de comprobación de derecho es muy sencillo. Se adaptan muy bien a sistemas distribuidos.
Su gran desventaja sigue siendo que la revocación de accesos a un obje ob jeto to pu pued ede e se serr in inef efic icie ient nte e si se de dese sea a ha hace cerl rla a co con n cr crititer erio ioss de selectividad entre dominios o para revocar derechos parciales. prin inci cipa pall pr prob oble lema ma de la lass Revoca Rev ocació ción n de Der Derech echos os de Acc Acceso eso:: El pr capacidades es que, en un sistema dinámico, pueden existir cientos de capacidades concedidas para acceder a un objeto, lo que hace muy difícil su control. Por lo cual, revocar los derechos de acceso para un objeto en part pa rtic icul ular ar es mu muyy di difí fíci cil,l, ya qu que e el si sist stem ema a de debe be bu busc scar ar to toda dass la lass
25
capacidades existentes sobre el mismo para aplicar la revocación de derechos. Donde Dond e la lass ca capa paci cida dade dess se pu pued eden en im impl plem emen enta tar, r, pa para ra fa faci cililita tarr la revocación de derechos de Acceso como:
Lista de control de acceso en la cual se puede mantener una lista
desde cada objeto a todas sus capacidades. Si hay modificaciones, se recorre dicha lista y se aplican. Claves de versión donde cada objeto tiene una clave maestra que se copia en cada nueva capacidad sobre ese objeto. lndirecciones de manera que las capacidades no apunten direct dir ectame amente nte a los obj objeto etos, s, sin sino o a una tab tabla la glo global bal int interm ermedi edia a desde la cual se apunta al objeto.
Servicios de Protección y de Seguridad. Los serv servic icio ioss de pro protecc tecció ión n y segur gurida idad de un sist siste ema varía rían dep dependie ndiend ndo o de la comple mplejijida dad d del del sist siste ema impl imple ement menta ado. do. A continuación, presentaremos algunos servicios de protección genéricos en sistemas operativos clásicos. Dichos servicios se concentrarán para el estándar POSIX y para Windows NT.
Servicios Genéricos. En gene genera ral,l, todo todoss los los sist sistem emas as oper operat ativo ivoss crea crean n la info informa rmaci ción ón de protección cuando se crea un objeto, por lo que no es muy frecuente encontrar servicios de creación y destrucción de ACL (Access Control List List)) o capa capaci cida dade dess disp dispon onib ible less para para los los usua usuario rios. s. Es much mucho o más más frecuente que los servicios de protección incluyan llamadas al sistema para para cambia cambiarr carac caracter teríst ística icass de la inform informaci ación ón de protec protecció ción n o para para cons consul ulta tarr dich dichas as cara caract cter erís ístitica cas. s. A cont contin inua uaci ción ón,, most mostra rare remo moss una una descripción más compleja de servicios genéricos: • Crear este servi servicio cio permite permite crear crear un Crear un descri descripto ptorr de protecc protección ión:: este nuevo descriptor de protección, que inicialmente, puede no estar asignado a ningún objeto. Lo más usual, sin embargo, es que estén indisolublemente unidos a un objeto y que su ciclo de vida vaya asociado al del objeto, aunque puede ser más corto.
26
• Destruir un descriptor de protección: protección : Elimina del sistema un descriptor de protección. No lo hace para aquellos objetos asociados al descriptor que están siendo utilizados o están abiertos. • Abrir un descriptor descriptor de protección protección:: Permite abrir un descriptor, creado previamente para usarlo asociado a un objeto. • Obtener información de protección: protección : Permite a los usuarios conocer la información de protección de un objeto. Para ello, deben tener permisos de acceso al descriptor de protección que quieren consultar. • Cambiar información de protección: protección : Permite a los usuarios cambiar la información de protección de un objeto. Para ello deben tener permisos de acceso y modificación del descriptor de protección que se desea modific modificar. ar. Normal Normalmen mente te el descri descripto ptorr incluy incluye e inform informaci ación ón acerca acerca del dueño dueño del objeto objeto,, su dominio dominio,, sus privile privilegio gios, s, etc. etc. Muchas Muchas de estas estas características, son modificables. • Fijar información de protección por defecto: defecto : Permite fijar máscaras de protección que se aplican por defecto a los objetos de un dominio. De esta forma, los usuarios pueden asegurarse de que sus recursos tienen unas características de protección prefijadas, incluso aunque se creen con descriptores de protección vacíos.
Servicios POSIX. El estándar POSIX, define servicios que, en general, se ajustan a los servic servicios ios genéri genérico coss ya descri descritos tos.. Sin embarg embargo, o, no existe existen n servi servicio cioss específicos para crear, destruir o abrir descriptores de protección. Estos se asocian a los objetos y se crean y se destruyen con dichos objetos. A continuación se definen las más frecuentes. • Comprobación de la posibilidad de acceder a un archivo : access comprueba si un archivo e4stá accesible con unos ciertos privilegios. Comprueba si un archivo existe y se usa una función que devuelve cero si así lo es, o -1 en caso de error. • Cambio del modo de protección de un archivo: archivo : chmod cambia los derechos de acceso a un archivo. Sólo el dueño de un archivo o el súper usuario puede ejecutar esta llamada.
27
• Cambio del propietario de un archivo: archivo : chown cambia el propietario y el grupo de un archivo. Sólo el dueño del archivo o el superusuario puede cambiar estos atributos. • Obtención de los los ide identifi tific cadores del propie pietar tario y de su grupo: grupo: existen algunas llamadas como getuid, geteuid, getgid y qetegid que permiten obtener los identificadores reales y afectivos del propietario de un archivo y de su grupo. Estas llamadas son sólo de consulta y no modifican nada. • Cambio de los identificadores del propietario y de su grupo: grupo : existen algu alguna nass lla llamada madass como como setu setuid id y setg setgid id que que perm permititen en camb cambia iarr los los identificadores reales del usuario y de su grupo. • Defin llamada a umask umask Definir ir la másc máscar ara a de prot protec ecció ción n por por defe defecto cto:: la llamad permite a un usuario definir una máscara de protección que será aplicada por defecto a todos sus objetos creados a partir de ese instante. • Otras llamadas POSIX : algunas están relacionadas con la identificación de usua usuari rios os y las las sesi sesion ones es de trab trabaj ajo o de los los mism mismos os.. La llam llamad ada a qetgroups permite obtener la lista de grupos de un usuario. Las llamadas getlogin y getlogin_r devuelven el nombre del usuario asociado a un proceso. La llamada uname permite identificar al sistema en el que se ejecuta el sistema operativo.
Servicios de Win32. Windows NT tiene un nivel de seguridad C2 según la clasificación de seguridad del Orange Book del DoD, lo que significa la existencia de control de acceso discrecional, con la posibilidad de permitir o denegar derechos de acceso para cualquier objeto partiendo de la identidad del usua usuario rio que que inte intenta nta acce accede derr al obje objeto to.. Para Para impl implan anta tarr el mode modelo lo de seguridad, Windows NT usa un descriptor de seguridad y listas de control de acceso (ACL), que a su vez incluyen dos tipos de entradas de control de acceso (ACE): las de permisos y las de negociaciones de accesos. Las llamadas al sistema de Win32 permiten manipular la descripción de los usuarios, los descriptores de seguridad y las AOL. A continuación se definen las más frecuentes. • Dar servicio cio Dar valo valore res s inic inicia iale les s a un desc descri ript ptor or de segu seguri rida dad d : el servi Initia Initializ lizeSe eSecur curityD ityDesc escript riptor or inicia inicia el descri descripto ptorr de seguri seguridad dad con con unos unos valores de protección por defecto.
28
• Obtención del identificador de un usuario: usuario : la llamada GetUserName permite obtener el identificador de un usuario que ha accedido al sistema. • Obtención de la información de seguridad de un archivo: archivo : el servicio GetFileSecurity extrae el descriptor de seguridad de un archivo. • Cambio de la información de seguridad de un archivo : el servicio SetFilesecurity fija el descriptor de seguridad de un archivo. • Obtención de los identificadores del propietario de su grupo para un las llamadas GetSecurityDescriptorOwner y archivo: GetSecurityDescriptorGroup permiten extraer la identificación del usuario de un descrip riptor de seguridad y del grupo al que perte rtenece. Habitualmente, el descriptor de seguridad pertenece a un archivo. Estas llamadas son sólo de consulta y no modifican nada. • Cambio de los identificadores del propietario de su grupo para un llamadas SetSecurityDescriptionOwner y archivo: archivo: las SetSec SetSecurit urityDe yDescr script iptorG orGrou roup p permite permiten n modific modificar ar la identi identific ficaci ación ón del usuario en un descriptor de seguridad y del grupo al que pertenece. • Gestión las lla llamada madass Init Initia ialilizzeAcl, Acl, de ACLs y ACEs: las AddAccessAllowedAce AddAccessAllowedAce y AddAccessDeniedAce AddAccessDeniedAce permiten iniciar una AOL y añadir entradas de concesión y denegación de accesos. • Otra alguna nass está están n rela relaci cion onad adas as con con la Otras s llam llamad adas as de Win32 in32 : algu identi identific ficaci ación ón de usuari usuarios. os. Lookup LookupAcc Accou ountN ntName ame permite permite obten obtener er el identificador de un usuario mediante un nombre de cuenta suya. LookupAccountSid permite obtener el nombre de la cuenta de un usuario a partir de su identificador. Además incluye llamadas para obtener información de las ACL (Get (GetAc AclIlInfo nforma rmatio tion) n),, obte obtene nerr las las entra entrada dass de una una ACE ACE (Get (GetAc Ace) e) y borrarlas (deleteAce). Existe un conjunto de llamadas similar al mostrado para proporcionar seguridad en objetos privados de los usuarios, tales como sockets o bases de datos propietarias. Otras, permiten proteger objetos del núcleo, tales como la memoria.
29
Kerberos Protocolo de Seguridad Kerberos . Es un protocolo de seguridad muy difundido en entornos Unix Unix,, aunque adoptado también por otros sistemas operativos como Windows 2000 . Kerberos es un sistema de autentificación de usuarios, que posee un doble objetivo: •
•
Impedir que las claves sean enviadas a través de la red, con el consiguiente Riesgo de su divulgación. Centralizar la autentificación de usuarios, manteniendo una única base de Datos de usuarios para toda la red.
Kerberos, como protocolo de seguridad, usa una Criptografía de claves simétricas, lo que significa que la clave utilizada para cifrar es la misma clave utilizada para descifrar o autenticar usuarios. Esto permite a dos computadores en una red insegura, demostrar su identidad mutuamente de mane manera ra segu segura ra.. Kerb Kerber eros os ento entonc nces es rest restrin ringe ge los los acce acceso soss sólo sólo a usua usuari rios os auto autori riza zado doss y aute autent ntic ica a los los requ requer erim imie ient ntos os a serv servic icio ios, s, asumiendo un entorno distribuido abierto, en el cual usuarios ubicados en estaciones de trabajo acceden a estos servicios en Servidores distribuidos a través de una red. Origen y Desarrollo de Kerberos El Instituto Tecnológico de Massachusetts (MIT) desarrolló Kerberos para proteger los servicios de red proporcionados por el Proyecto Athena. El proy proyec ecto to reci recibió bió el nomb nombre re debi debido do al pers person onaj aje e mito mitoló lógic gico o grie griego go Kerberos. Existen varias versiones del protocolo. Las versiones 1 a 3 se desarrollaron sólo dentro del ambiente del MIT. Steve Miller y Clifford Neum Neuman an,, los los prin princi cipa pale less dise diseña ñado dore ress de la vers versió ión n 4 de Kerb Kerber eros os,, publicaron esa versión al final de la década de 1980. La versión 5, diseñada por John Kohl y Clifford Neuman, apareció como la RFC 1510en 1510en 1993 (que quedó obsoleta por la RFC 4120 en 2005), con la intención de eliminar las limitaciones y problemas de seguridad presentes en la versión 4. Windows 2000, Windows XP y Windows Server 2003 usan una variante de Kerber Kerberos os como como su métod método o de autent autentica icació ción n por defec defecto. to. Alguno Algunoss agrega agregados dos de Microsoft al conj conjun unto to de prot protoc ocol olos os de Kerb Kerber eros os está están n docu docume ment ntad ados os en la RFC RFC 3244 3244 "Mic "Micro roso soft ft Windo Windows ws 2000 2000 Kerb Kerber eros os Change Password and Set Password Protocols" ( Protocolos de Cambio y establecimiento de clave de tipo Kerberos en Microsoft Windows 2000). Mac OS X de Apple también usa Kerberos tanto en sus versiones de cliente y de servidor.
30
Funcionamiento General de Kerberos Cada usuario dispone de una clave. Cada Servidor dispone Servidor dispone de una clave. Kerberos mantiene una base de Datos que contendrá a todas estas claves. La clave de un usuario será derivada de su contraseña y estará cifrada. La clave de un servidor se genera aleatoriamente. Los servicios de Red que requieren Autenticación, así como los usua usuario rioss que que requ requie iera ran n esto estoss serv servic icio ios, s, se debe deben n regi regist stra rarr con con Kerberos. Las claves privadas se negocian cuando los usuarios se registran. Kerbe Kerberos ros,, en Conoci Conocimie miento nto de todas todas las claves claves privad privadas as,, crea crea mensajes para informar a un servidor de la autenticidad de un usuario que requiere servicios de éste.
Cómo Funciona:
A continuación se describe someramente el protocolo. Se usaran las siguientes abreviaturas:
AS = Authentication Server TGS = Ticket Granting Server SS = Service Server.
En resumen el funcionamiento es el siguiente: el cliente se autentica a sí mismo contra el AS, así demuestra al TGS que está autorizado para recibir un ticket de servicio (y lo recibe) y ya puede demostrar al SS que ha sido aprobado para hacer uso del servicio kerberizado.
31
En más detalle: 1. Un usu usuar ario io ing ingre resa sa su su nomb nombre re de de usu usuar ario io y pas passw swor ord d en el el cliente 2. El cli clien ente te gen gener era a una una clav clave e hash hash a par partitirr del del pass passwo word rd y la la usará como la clave secreta del cliente. 3. El cli clien ente te env envía ía un un mens mensaj aje e en tex texto to pla plano no al al AS sol solic icititan ando do servicio en nombre del usuario. Nota: ni la clave secreta ni el password son enviados, solo la petición del servicio. 4. El AS co compru mprue eba si el el clie client nte e está está en en su ba base de da datos. tos. Si Si es así, el AS genera la clave secreta utilizando la función hash con la password del cliente encontrada en su base de datos. Entonces envía dos mensajes al cliente: 1. Mens Mensaj aje e A: Clie Client nt/T /TGS GS sess sessio ion n key key cifra cifrada da usa usand ndo o la clave secreta del usuario 2. Mens Mensaj aje e B: Ticke Tickett-Gr Gran antiting ng Tic Ticke kett (que (que incl incluy uye e el ID de cliente, la dirección de red del cliente, el período de validez y el Client/TGS session key) cifrado usando la clave secreta del TGS. 5. Una Una vez vez que que el cli clien ente te ha ha reci recibi bido do los los men mensa saje jes, s, des desci cifr fra a el mensaje A para obtener el client/TGS session key. Esta session key se usa para las posteriores comunicaciones con el TGS. (El cliente no puede descifrar el mensaje B pues para cifrar éste se ha usado la clave del TGS). En este momento el cliente ya se puede autenticar contra el TGS. 6. Ento Entonc nces es el clie client nte e env envía ía los los sig sigui uien ente tess men mensa saje jess al al TGS TGS:: 1. Mens Mensaj aje e C: Compu Compues esto to del del Tic Ticke ket-G t-Gra rant ntin ing g Tic Ticke kett del del mensaje B y el ID del servicio solicitado. 2. Mensaje D: Autenticador (compuesto por el ID de clie liente nte y una marc marca a de tie tiempo mpo), cifra ifrado do usando ndo el client/TGS session key.
32
7. Cuan Cuando do rec recib ibe e los los mens mensaj ajes es ant anter erio iore res, s, el el TGS TGS desc descififra ra el el mensaje D (autenticador) usando el client/TGS session key y envía los siguientes mensajes al cliente: 1. Mens Mensaj aje e E: Clie Client nt-to -to-s -ser erve verr tick ticket et (qu (que e incl incluy uye e el ID de de cliente, la dirección de red del cliente, el período de validez y una Client/Server session key) cifrado usando la clave secreta del servicio. 2. Mens Mensaj aje e F: Clie Client nt/s /ser erve verr sess sessio ion n key cifr cifrad ada a usand usando o el client/TGS session key. 8. Cuando el cliente recibe los mensajes E y F, ya tiene suficiente información para autenticarse contra el SS. El cliente se conecta al SS y envía los siguientes mensajes: 1. Mensaje E de del pa paso an anterior ior. 2. Mens Mensaj aje e G: un nue nuevo vo Aut Auten entitica cado dorr que que incl incluy uye e el ID ID de cliente, una marca de tiempo y que está cifrado usando el client/server session key. 9. El SS desc descififra ra el el tick ticke et usa usando ndo su pro propia pia cla clave se secre creta y envía el siguiente mensaje al cliente para confirmar su identidad: 1. Mensaje H: la marca de tiempo encontrada en el último Autenticado Autenticadorr recibido recibido del cliente cliente más uno, cifrado cifrado el client/server session key. 10. 10. El clie client nte e desc descififra ra la conf confir irma maci ción ón usan usando do el clien lient/ t/se serv rver er session key y chequea si la marca de tiempo está correctamente actualizada. Si esto es así, el cliente confiará en el servidor y podrá comenzar a usar el servicio que este ofrece. 11. 11. El ser servi vido dorr prov provee ee del del serv servic icio io al al clie client nte. e.
Niveles de Protección de Kerberos Autenticación Prueba que el usuario es quien dice ser. Puede ser que la autenticidad se establezca al inicio de la Conexión de red y luego se asuma que los siguientes mensajes de una Dirección de red determinada se originan desde la parte autenticada.
33
Integridad de datos Asegura que los datos no se modifican en tránsito. Se requiere autenticación de cada mensaje, sin importar el contenido del mismo. Esto se denomina mensajes seguros.
Privacidad de datos Asegura que los datos no son leídos en tránsito. En este caso, no sólo se autentica cada mensaje, sino que también se cifra. Éstos mensajes son privados.
Arquitectura de Kerberos Un servidor Kerberos se denomina KDC (Kerberos Distribution Center), y pro provee dos dos serv servic icio ioss fund funda ament menta ales: les: el de aute utentica ticaci ció ón (AS (AS, Authentication Service) y el de tickets (TGS, Ticket Granting Service). El prim primer ero o tiene tiene como como Func Funció ión n aute autent ntic icar ar inic inicia ialme lment nte e a los los Clie Client ntes es y proporcionarles un ticket para comunicarse con el segundo, el servidor de tickets, que proporcionará a los clientes las credenciales necesarias para comun comunica icarse rse con un servid servidor or final final que es quien quien realme realmente nte ofrece ofrece un servicio. Además, el servidor posee una Base de datosde datos de sus clientes (usuarios o Programas) Programas) con sus respectivas claves privadas, conocidas únicamente por dicho servidor y por el Cliente que al que pertenece. La arquitectura de Kerberos está basada en tres objetos de seguridad: Clave de Sesión, Ticket y Autenticador. La clave de sesión es una clave secreta generada por Kerberos y expedida a un cliente para uso con un servidor durante una sesión de trabajo. El ticket es un testigo expedido a un cliente del servicio de tickets de Kerb Kerber eros os para para solic solicititar ar los los serv servic icio ioss de un serv servido idor. r. El tick ticket et garantiza que el cliente ha sido autenticado recientemente. El autenticador es un testigo construido por el cliente y enviado a un servidor para probar su Identidad y la actualida idad de la Comunicación. Sólo puede ser utilizado una vez.
34
Desventajas de Kerberos A pesar de que Kerberos elimina una amenaza de seguridad común, puede ser difícil de implementar por una variedad de razones: La Migración de contraseñas de usuarios desde una base de datos de contraseñas estándar UNIX estándar UNIX,, tal como /etc/passwd o /etc/shadow, a una base de datos de contraseñas Kerberos, puede ser tediosa y no hay un mecanismo rápido para realizar esta tarea.
Kerberos presupone que cada usuario es de confianza, pero que está utilizando una máquina no fiable en una red no fiable. Su principal Obje Objetitivo vo es el de prev preven enir ir que que las las cont contra rase seña ñass no cifr cifrad adas as sean sean enviadas a través de la red. Sin embargo, si cualquier otro usuario, aparte del usuario adecuado, tiene acceso a la máquina que emite tickets (KDC) para la autenticación, Kerberos estaría en Riesgo.
Para Para que que una una apli aplica caci ción ón use use Kerb Kerber eros os,, el códi código go debe debe ser ser modific modificado ado para para hacer hacer las llamad llamadas as aprop apropiad iadas as a las librer librerías ías de Kerberos. Las aplicaciones que son modificadas de esta forma son consid considera eradas das como como kerbe kerberiza rizada das. s. Para Para alguna algunass aplica aplicacio ciones nes,, esto esto pued puede e supo supone nerr un esfu esfuer erzo zo exce excesi sivo vo de Programación, Programación, debi debido do al tamañ maño de la aplica icación o su Diseño. Diseño. Para Para otra otrass apli aplica caci cion ones es incompatibles, los cambios se deben realizar en el modo en que el servidor de red y sus clientes se comunican; de nuevo, esto puede supone suponerr basta bastante nte progra programac mación ión.. En gener general, al, las aplica aplicacio ciones nes de código cerrado que no tienen soporte de Kerberos son usualmente las más problemáticas.
Finalmente, si decide usar Kerberos en su red, debe darse cuenta de que es una elección de todo o nada. Si decide usar Kerberos en su red, debe recordar que si se transmite cualquier contraseña a un servicio que no usa Kerberos para autenticar, se corre el riesgo de que el paquete pueda ser interceptado. Así, su red no obtendrá ningún
35
beneficio de usar Kerberos. Para asegurar su red con Kerberos, solo debe debe utiliza utilizarr las versio versiones nes kerbe kerberiz rizada adass de todas todas las aplica aplicacio ciones nes cliente/servidor que envíen contraseñas sin cifrar o no utilizar ninguna de estas aplicaciones en la red. r ed.
CONCLUSION Los sistemas operativos proveen algunos mecanismos de protección para poder implementar políticas de seguridad. Las políticas definen qué hay que que hace hacerr (qué (qué dato datoss y recu recurs rsos os debe deben n prot proteg eger erse se de quié quién; n; es un problema de administración), y los mecanismos determinan cómo hay que hacerlo. Esta separación es importante en términos de flexibilidad, puesto que las políticas pueden variar en el tiempo y de una organización a otra. Los mecanismos que ofrece el sistema operativo necesariamente deben deben comple complemen mentar tarse se con con otros otros de caráct carácter er extern externo. o. Por ejempl ejemplo, o, impedir el acceso físico de personas no autorizadas a los sistemas es un mecanismo de protección cuya implementación no tiene nada que ver con el sistema operativo. Un aspecto importante de la seguridad es el de impedir la pérdida de información, la cual puede producirse por diversas causas: fenómenos natu natura rale les, s, guer guerra ras, s, erro errore ress de hard hardwa ware re o de soft softwa ware re,, o erro errore ress humanos. La solución es una sola: mantener la información respaldada, de preferencia en un lugar lejano. Otro aspecto importante de la seguridad, es el que tiene que ver con el uso no autorizado de los recursos: * Lectura de datos. * Modificación de datos. * Destrucción de datos. * Uso de recursos: ciclos de CPU, impresora, almacenamiento. Protección absoluta contra uso malicioso de los sistemas es imposible, pero si los costos de violar un sistema son superiores a los potenciales ben benefic ficios ios que se puede ueden n obte btener, ner, ento ntonce nces el siste istema ma pue puede considerarse seguro. El problema es que esa protección no obstaculice el uso del sistema por parte de usuarios autorizados. Demasiada seguridad podría ser contraproducente si es muy engorrosa para los usuarios, pues estos tenderán a eludir los procedimientos para facilitarse la vida.
36
REFERENCIAS BIBLIOGRAFICAS
Jesú Jesúss
Carr Carret eter ero o Peré Peréz, z, Feli Felixx Garc García ía Carb Carbal alle leir ira. a. “Sistemas Operativos” . Mc. Graw Hill. Colombia 2004.
Milan Milan Milenk Milenkovi ovic. c. “Sistemas Sistemas Operativos”. Operativos”. Mc. Graw Hill. España 1994.
William Stallings.”Sistemas Operativos”. Mc. Graw Hill. España 1996.
Dámas maso o Vel Velázq ázquez uez.. (201 (2012) 2).. Seguri gurid dad y Articulo Articulo en Internet Internet Dá
Articulo Articulo en Internet Internet Dennis Sinho. (2012). Políticas de Seguridad en
Articulo Articulo en Internet Internet Wikipedia. (2012). Seguridad y Protección en
Articulo Articulo en Internet Internet
Articulo Articulo en Internet Internet
Protección. Recuperado el 15 de Junio de 2012, de http://www.webprogramacion.com/43/sistemas-perativos/seguridad-desistemas-operativos.aspx Sist Sistem emas as Oper Operat ativ ivos os.. Recu Recupe pera rado do el 15 de Juni Junio o de 2012 2012,, de http://esistemasoperativos.mforos.com/1836129/9545451-seguridad/ Sist Sistem emas as Oper Operat ativ ivos os.. Recu Recupe pera rado do el 16 de Juni Junio o de 2012 2012,, de http://es.wikipedia.org/wiki/Sistema_operativo#Gesti.C3.B3nproteccion_ Este Esteba ban n Yoma Yomair iro. o. (201 (2012) 2).. Segu Segurid ridad ad de Sistemas. Recuperado el 16 de Junio de 2012, de http://blogs.utpl.edu.ec/sistemasoperativos/2009/05/04/seguridad-10/
Univer Universid sidad ad de San Carlos Carlos de Guatem Guatemala ala.. (2012). Kerberos. Recuperado el 17 de Junio de 2012, de http://es.scribd.com/doc/15255924/Kerberos
37