Sunteți pe pagina 1din 55

*

Examinaremos la interfaz de programacin y el registro, una pequea base de datos en la memoria.

*

Windows 2000 cuenta con un conjunto de llamadas al sistema que puede ejecutar. Sin embargo. Microsoft nunca ha publicado la lista de llamadas al sistema y adems las cambia de una versin a la siguiente. Ms bien, lo que ha definido un conjunto de llamadas a funciones denominado interfaz de programacin de aplicaciones (API: Application Programming Interface) Win32. Las API son procedimientos de biblioteca que efectan llamadas al sistema para realizar el trabajo o. en algunos casos, realizan el trabajo ah mismo, en el espacio de usuarios. Las llamadas de la API Win32 existentes no cambian al cambiar la versin de Windows, aunque con frecuencia se aaden nuevas.

Windows 2000 aade una buena cantidad de funcionalidad a Win32, as que cuenta con llamadas adicionales en la API que no estn incluidas en versiones anteriores de Win32 y que no funcionan en versiones ms antiguas de Windows.

*
La filosofa de Win32 consiste en proporcionar una interfaz exhaustiva, e incluir muchas funciones (procedimientos) que no son (ni deberan ser) llamadas al sistema.

* Muchas * Toda

llamadas de la API Win32 crean objetos de kernel incluidos archivos, procesos. Subprocesos. Canalizaciones, etc. llamada que crea un objeto devuelve un resultado llamado identificador (handle) a su invocador.

* Este puede utilizarse para ejecutar operaciones con el objeto.


* Los
identificadores son especficos para el proceso que cre el objeto, no obstante, es posible copiar un identificador y pasarlo a otros procesos empleando un mecanismo protegido.

* Cada objeto tiene un descriptor de seguridad que indica quin est y


quin no est autorizado para realizar algn tipo de operaciones con el objeto.

* No

todas las estructuras de datos creadas por el sistema son objetos. Y no todos los objetos son objetos del kernel.

* Los verdaderos objetos de kernel son:


* Los
que deben nombrarse, protegerse o compartirse de alguna manera.

* Los que tienen un tipo definido por el sistema. * Los que tienen operaciones bien definidas que se ejecutan con l
y ocupa espacio en la memoria del kernel.

* Aunque

los usuarios pueden realizar las operaciones (emitiendo llamadas Win32), no pueden tener acceso a los datos de manera directa

* Se dice que Windows 2000 est orientado a objetos porque la

nica forma de manipular objetos es invocando operaciones con sus identificadores o emitiendo llamadas a la API Win32. * Por otra parte el sistema carece de algunas propiedades bsicas de los sistemas orientados a objetos, como herencia y polimorfismo.

* Win32

proporciona ms de 60 llamadas para crear y destruir archivos y directorios, abrir y cerrar archivos, leer y escribir archivos, solicitar y establecer atributos de archivos, y muchas cosas ms. rea en la que Win32 proporciona llamadas es la seguridad. Cada proceso tiene un ID (identificador) y cada objeto puede tener una lista de control de acceso que indica cules usuarios pueden tener acceso a l y qu operaciones pueden efectuar con l.

* Otra

* Las

llamadas al sistema relacionadas con procesos, Subprocesos, Sincronizacin, administracin de memoria, E/S de archivos y seguridad no son algo nuevo. Otros sistemas operativos tambin las tienen, aunque en general no por centenares, como en Win32.

* Sin embargo, lo que en realidad distingue a Win32 son los miles y miles
de llamadas para la interfaz grfica...

* Hay

* * En

llamadas para crear, destruir, administrar y usar ventanas, mens, barras de herramientas, barras de estado, barras de desplazamiento, cuadros de dilogo. Iconos y muchos olios elementos que aparecen en la pantalla. * Hay llamadas para dibujar formas geomtricas, Rellenar administrar las paletas de color que usan, manejar fuentes (tipos de letra) y colocar iconos en la pantalla. * Por ltimo, hay llamadas para manejar el teclado, el ratn y otros dispositivos de entrada. As como audio, impresin y otros dispositivos de salida.

pocas palabras, la API Win32 (sobre todo la parte de la GUI) es inmensa

*Aunque

la. API Win32 est disponible en Windows 98, no todas las versiones de Windows implementan todas las llamadas, y a veces tambin hay diferencias menores.

*Por

ejemplo, Windows 98 no tiene seguridad, as que las llamadas de la API relacionadas con seguridad, solo devuelven cdigos de error.
nombres de archivo de Windows 2000 emplean caracteres Unicode, que no se maneja en Windows 98. los nombres de archivo de Windows 98 no distinguen entre maysculas y minsculas, mientras que en Windows 2000 s.

*Los *Y

* Windows * En

necesita mantenerse al tanto de una gran cantidad dc informacin acerca del hardware, el software y los usuarios. Windows 3.x esta informacin se almacenaba en cientos de archivos .ini (de iniciacin) dispersos por todo el disco.

* A partir de Windows 95. Casi toda la informacin necesaria para


arrancar y configurar el sistema y adaptarlo al usuario actual se reuni en una gran base de datos central llamada Registro (registry).

* Si bien muchas partes de Windows 2000 son complicadas y sin

orden aparente, el Registro es una de las peores, y la extraa nomenclatura no ayuda en nada.

* La idea en la que se basa es muy sencilla * El


registro consiste en una coleccin de directorios, cada uno contiene subdirectorios o entradas. Es una especie de sistema de archivos para archivos muy pequeos, que tiene directorios y entradas(los archivos). confusin principia con el hecho de que Microsoft llama clave a un directorio, cosa que no es. Adems, todos los directorios del nivel ms alto comienzan con la cadena HKEY, que significa Identificador de clave. Los subdirectorios suelen tener nombres escogidos con un criterio ms lgico, aunque no siempre es as.

* La

* En

la base de la jerarqua estn las entradas, llamadas valores, que contienen la informacin. Cada valor tiene 3 partes: un nombre, un tipo y los datos.

* El nombre no es ms que una cadena en Unicode, a menudo


Default, s si el directorio solo contiene un valor.

* El

tipo es uno de 11 tipos estndar. Los ms comunes son cadena Unicode, lista de cadenas Unicode, entero de 32 bits, nmero binario de longitud arbitraria, y enlace simblico a un directorio o entrada en algn otro lugar del registro.

*En

el nivel ms alto, el registro de windows2000 tiene 6 claves, llamadas claves raz. ver esta lista en un sistema Windows 2000, puede usar uno de los editores de registros (Regedit o regedt32), con ellos tambin pueden modificarse los valores del registro. No se recomienda a aficionados alterar las claves ni los valores si es que planean volver a arranar el sistema.

*Para

* La

primera clave(es decir directorio), HKEY_LOCAL_MACHINE, tal vez sea la ms importante porque contiene toda la informacin acerca del sistema local. * Tiene 5 subclaves:

* La subclave HARDWARE contiene muchas subclaves que describen el

hardware e indican cual controlador controla cual dispositivo. * La subclave SAM (Security Account Manager) contiene los nombres de usuario, grupos, contraseas, y otra informacin de cuentas y seguridad necesaria para iniciar sesin. * La subclave SECURITY contiene informacin general de la directiva de seguridad(longitud mnima de contraseas, cuantos intentos fallidos se toleran , etc.) * La subclave SOFTWARE s donde los fabricantes de software almacenan preferencias entre otras cosas (En el Registro tambin se almacena informacin especfica para usuarios, pero bajo HKEY_USERS) * La subclave SYSTEM contiene sobre todo informacin acerca del arranque del sistema.

* La * La

siguiente clave de nivel ms alto es HKEY_USERS, que contiene los perfiles de todos los usuarios. Aqu se almacenan todas las preferencias especficas para cada usuario.

siguiente clave del nivel ms alto. HKEY_PERFORMANCE_DATA, que ofrece una ventana hacia el sistema operativo, tambin permite el acceso a contadores de desempeo del sistema. * Las siguientes tres claves del nivel ms alto no existen en realidad.

* Todas son enlaces simblicos a algn otro lugar del Registro.

* La * La

clave HKEY_CLASSES_ROOT es la ms interesante: apunta al directorio que maneja objetos COM (Modelo de Objetos Componentes: Component Object Model) y las asociaciones entre extensiones de archivo y programas. clave HKEY_CURRENT_CONFIG se enlaza con la configuracin de hardware vigente. Esta clave apunta a la configuracin actual.

* De forma similar, HKEY_CURRENT_USER apunta al usuario actual, con el fin dc que


sus preferencias puedan hallarse rpido.

* Ninguna de las tres ltimas claves aade algo en realidad, pues la informacin de
todos modos est disponible en otros lugares.

* As, * El

a pesar que REGEDIT y REGEDIT32 mencionan cinco claves de nivel superior, en realidad slo hay tres directorios de nivel superior. programador de Win32 tiene acceso pleno al Registro. Hay llamadas para crear y eliminar claves, buscar valores dentro de claves y ms. En la siguiente figura se presentan algunas de las ms tiles.

*Cuando

se apaga el sistema, la mayor parte de la informacin del Registro se almacena en el disco, en archivos llamados subrboles (hives). Casi todos ellos estn en \winnt\system32\config. se actualizan, se preparan en forma automtica copias de seguridad, y las escrituras se efectan empleando transacciones atmicas para evitar la corrupcin, en caso de que el sistema falle durante la escritura. prdida del Registro requerira reinstalar todo el software.

*Cuando

*La

* Windows

2000 tiene sistema de memoria virtual muy avanzado. Hay varias funciones de Win32 para utilizarlo y una parte del ejecutivo junto con seis subprocesos de kernel dedicados para administrarlo.

* Los procesos que inician durante la fase de arranque. Los que estn

arriba de la lnea siempre se inician. Los que estn debajo son ejemplos de servicios que podran iniciarse.

Proceso

Descripcin

Proceso inactivo o nulo sistema smss.exe csrss.exe winlogon.exe lass.exe services.exe

No es realmente un proceso, alberga el subproceso inactivo Crea smss.exe y archivos de paginacin; lee Registros; abre DLLs Primer proceso real; asigna valores iniciales; crea csrss y winlogon Proceso del subsistema Win32 Demonio de inicio de sesin Administrador de autenticacin Examina el Registro e inicia servicios

Servidor de impresor Servidor de archivos Demonio telnet Proc. de correo electrnico recibido Proc. De fax recibido Solucionador de DNS Registro de sucesos Adm. De Plug-and-Play

Permite a trabajos remotos usar la impresora Atiende solicitudes de archivos locales Permite inicios de sesin remotos Acepta y guarda correo electrnico que llega Acepta e imprime faxes que llegan Servidor del sistema de nombres de dominio de Internet Asienta diversos eventos del sistema Supervisa el hardware para detectar dispositivos

* En

Windows 2000, cada proceso de usuario tiene su propio espacio de direcciones virtual. Las direcciones virtuales son de 32 bits, as que cada proceso tiene 4 GB de espacio de direcciones virtual. * Los 2 GB inferiores, menos aproximadamente 256 MB, estn disponibles para el cdigo y los datos del proceso; los 2 GB superiores se hacen corresponder con la memoria kernel en forma protegida. El espacio de direcciones virtual se pagina por demanda, con un tamao de pgina fijo (4KB en el Pentium).

* Organizacion

del espacio de dirrecciones virtual para 3 procesos de usuario. Las partes blancas son privadas para cada proceso, las areas sombreadas se comparten entre todos los procesos

* Por lo general, los 64 KB ms bajos y ms altos del espacio de direcciones

virtual de cada proceso no tienen correspondencia. Se tom esta decisin en forma intencional porque ayuda a atrapar errores de programacin. * Los apuntadores no vlidos suelen ser 0 o -1, as que un intento por usarlos en Windows 2000 causar una interrupcin de sistema inmediata, en lugar de leer basura o, peor an, escribir en una posicin de memoria incorrecta. Sin embargo, cuando se estn ejecutando programas MS-DOS antiguos en modo de emulacin, pueden hacerse corresponder en esta rea.

* El cdigo y los datos privados del usuario inician en los 64 KB y se


extienden casi hasta los 2 GB.

* El

ltimo fragmento de los 2 GB inferiores contiene algunos contadores y temporizadores del sistema que todos los usuarios comparten bajo un rgimen de slo lectura.

* El hecho de que sean visibles aqu permite a los procesos acceso


a ellos sin el gasto adicional de una llamada al sistema.

* Los 2 GB superiores contienen el sistema operativo, incluidos el

cdigo, los datos y las reservas paginada y no paginada (que se usa para objetos, etctera). Todos los procesos de usuario comparten los 2 GB superiores, con excepcin de las tablas de pginas, que son exclusivas de cada proceso. Los procesos en modo de usuario no pueden escribir en los 2 GB altos de la memoria, y ni siquiera leerlos.

* El motivo para colocar aqu el sistema operativo es que cuando un sub proceso efecta una llamada

al sistema, salta por una interrupcin de sistema al modo de kernel y sigue ejecutndose sin perder su identidad.

* Al hacer visible todo el sistema operativo y todas sus estructuras de datos (as como todo el proceso

de usuario) dentro del espacio de direcciones de un subproceso cuando ingresa en el modo de kernel, se elimina la necesidad de modificar el mapa de memoria o de desalojar el cach cuando el subproceso ingresa en el kernel.

* Lo nico que hay que hacer es cambiar a la pila de kernel del subproceso.

* Lo que se sacrifica aqu es espacio de direcciones privado del proceso, a cambio de que las llamadas

al sistema sean ms rpidas. Para los grandes servidores de bases de datos 2GB podran ser poco, y es por ello que en Advanced Sever y Datacenter Server se ofrece la opcin de un espacio de usuario de 3 GB.

* Una pgina virtual dada puede estar en uno de tres estados: libre,
reservada o comprometida.

*Una

pgina libre no est usando en la actualidad y cualquier referencia a ella causa un fallo de pgina. o los datos y una pgina, se dice que la pgina est comprometida.

*Una vez que se establece correspondencia entre el cdigo *Una


pgina virtual tambin puede estar en estado reservado, lo que significa que no est disponible para hacerse corresponder mientras no se retire en forma explcita la reservacin. pginas tienen otros atributos, como ser o no legibles, escribibles y ejecutables.

*Adems del atributo libre, comprometida o reservada, las

* Windows 2000, al igual que muchas versiones de UNIX, permite establecer correspondencia *

en forma directa entre archivos y regiones de los espacios de direcciones virtuales (es decir, series de pginas consecutivas).
Cuando se ha establecido correspondencia entre un archivo y el espacio de direcciones, dicho archivo puede leerse o escribirse empleando referencias ordinarias a la memoria. Los archivos con correspondencia en memoria se implementan igual que otras pginas comprometidas. ello, mientras un archivo tiene correspondencia en memoria, la versin que est en la memoria podra no ser idntica a la que est en el disco (debido a escrituras recientes en el espacio de direcciones virtual). embargo, cuando se elimina la correspondencia del archivo o se escribe en forma explcita en el disco, la versin de disco se actualiza.

* Por * Sin

* Windows

2000 permite de manera explcita establecer correspondencia entre dos o ms procesos y la misma [arte de un archivo al mismo tiempo, tal vez en diferentes direcciones virtuales.

* Vale

sealar que presenta un problema si dos programas comparten un archivo DLL y uno de ellos modifica los datos estadsticos del archivo. Si no se toman medidas especiales, el otro ver los datos modificados, lo cual quiz no es lo que se desea. El problema se resuelve estableciendo correspondencias de todas las pginas como de slo lectura pero en realidad s pueden escribirse.

* Est tcnica se denomina copiar al escribir

* La API Win32 incluye varias funciones que permiten a un proceso administrar


en forma explcita su memoria virtual

* Todas ellas operan en una regin que consiste en una sola pgina, o bien, en una secuencia de dos
o ms pginas que son consecutivas en el espacio de direcciones virtual.

* Las * Las * El

primeras cuatro funciones de la API sirven para asignar, liberar, proteger y determinar la situacin de regiones de; espacio de direcciones virtual. siguientes dos funciones permiten a un proceso fijar pginas en la memoria para que no se intercambien a disco, y cancelar tal propiedad. sistema operativo impone un lmite para evitar que los procesos se vuelvan demasiado codiciosos. 2000 tambin cuanta con funciones API que permiten a un proceso tener acceso a la memoria virtual de otro proceso sobre el cual se le ha otorgado control. ltimas cuatro funciones API que se muestran sirven para administrar archivos con correspondencia en memoria.

* Windows * Las

* CreateFileMapping. * Las

Esta funcin devuelve un identificador para el objeto de correspondencia de archivo y, de forma opcional, introduce un nombre para ese identificador en el sistema de archivos. dos funciones que siguen eliminan y establecen correspondencias de archivos, respectivamente.

* Un proceso puede usar la ltima funcin para establecer correspondencia entre un archivo
con el que otro proceso ya tiene correspondencia.

* As,

dos o ms procesos pueden compartir regiones de sus espacios de direcciones. Esta tcnica les permite escribir en regiones limitadas de sus respectivas memorias.

* Windows 2000 maneja un solo espacio de direcciones lineal de 4 GB. * No se maneja segmentacin en ninguna de sus modalidades. En teora,

el tamao de pgina puede ser cualquier potencia de dos, hasta 64 KB. En Pentium el tamao es fijo, de 4 KB; en Itanium puede ser de 8 o 16 KB. Adems, el sistema operativo en s puede usar pginas de 4 MB para reducir el espacio que ocupa su tabla de pginas. * A diferencia del calendarizador, el administrador de memoria trabaja en forma exclusiva con procesos y no se ocupa de los subprocesos. * Un descriptor de direccin virtual (VAD; Virtual Address Descriptor) que indica el intervalo de direcciones a las que se les ha aplicado correspondencia, el archivo que se usar como almacn de respaldo, y el desplazamiento de la correspondencia de ste, as como el cdigo de proteccin.

* Windows

2000 no utiliza ninguna forma de pre paginacin. Cuando se inicia un proceso, ninguna de sus pginas est en la memoria. Todas ellas se traen en forma dinmica del disco conforme se generan fallos de pgina. * En cada fallo de pgina se genera una interrupcin de sistema para saltar al kernel. El kernel construye un descriptor que indica lo que sucedi y lo pasa al componente del ejecutivo que administra la memoria. * El administrador de memoria verifica que sea vlido. Si la pgina solicitada est dentro de una regin comprometida o reservada, el administrador de memoria busca su direccin en la lista de VADs, halla (o crea) la tabla de pginas y busca la entrada pertinente.

* Los

bits ms importantes de la entra de tabla de pginas, en lo que concierne al algoritmo de paginacin, son los bits A y D. * Hay cinco categoras de fallos de pgina:

* La pgina a la que se hizo referencia no est comprometida. * Hubo una violacin de la proteccin. * Se ha escrito una pgina compartida. * La pila necesita crecer. * La pgina a la que se hizo referencia est comprometida
correspondencia.

pero no tiene

* Los primeros casos son errores fatales. * El tercer caso tiene los mismos sntomas que el segundo (un intento por

escribir en una pgina de slo lectura), pero el tratamiento es distinto. La solucin es copiar la pgina en un nuevo marco de pgina fsico y aplicarle correspondencia de lectura/escritura. As es como funciona el copiado al escribir. * El cuarto caso requiere asignar un nuevo marco de pgina y aplicarle correspondencia en memoria. Sin embargo, las reglas de seguridad exigen que la pgina est llena de ceros, para evitar que el proceso pueda averiguar algo acerca del dueo anterior de la pgina. * El quinto caso es un fallo de pgina normal. Se localiza la pgina y se le aplica correspondencia en memoria.

* El

reemplazo de pginas funciona como sigue. El verdadero algoritmo de reemplazo de pginas es el que decide cules pginas se quitarn a los procesos y se colocarn en la lista libre (en realidad hay cuatro listas libres, pero por el momento es suponer que slo hay una) * Windows 2000 libera pginas. Cada proceso tiene un conjunto de trabajo. * El conjunto de trabajo de un proceso dado se describe con dos parmetros: el tamao mnimo y el mximo, Estos lmites no son estrictos.

* El

mnimo inicial predeterminado est dentro del intervalo de 20 a 50 y el mximo inicial predeterminado est dentro del intervalo de 45 a 345, dependiendo de la cantidad total de RAM. El administrador del sistema puede modificar estos lmites.

* Si se presenta un fallo de pgina y el conjunto de trabajo es ms pequeo que el


mnimo, se aade la pgina. En cambio, si se presenta un fallo de pgina y el conjunto de trabajo es ms grande que el mximo, se expulsa una pgina del conjunto de trabajo (pero no de la memoria). implica que Windows 2000 utiliza un algoritmo local para evitar que un proceso perjudique a otros acaparando memoria. No obstante, el sistema trata de afinar su funcionamiento hasta cierto punto.

* Esto

*
* En
realidad hay cuatro listas libres. Cada pgina en la memoria esta en uno o ms conjuntos de trabajo, o bien, exactamente en una de estas cuatro listas.

* Las

lista de reserva (limpia) y modificada contiene pginas que hace poco se expulsaron de un conjunto de trabajo, todava estn en la memoria y asociadas con el proceso que las estaba usando. La diferencia es que las pginas limpias tienen una copia vlida en disco y por tanto, pueden abandonarse cuando se desee, mientras que las pginas modificadas no tienen una copia vlida en el disco.

* La lista libre consiste en pginas limpias que ya no estn asociadas con ningn proceso. *
Las pginas de la lista de pgina en cero no estn asociadas con ningn proceso y adems ya se han llenado de ceros. quinta lista contienen pginas de RAM, fsicamente defectuosa que pudieran existir para asegurarse de que no se usen nunca.

* Una

(1)Cuando el administrador de conjunto de trabajo quita una pgina de un conjunto de trabajo, esta se coloca al fondo de la lista de reserva o de la modificada, dependiendo de su estado de limpieza. (2) Las pginas de ambas listas siguen siendo vlidas, de modo que s se presenta un fallo de pgina y se necesita una de estas pginas, se saca de la lista y se vuelve a colocar en el conjunto de trabajo. (3) Cuando termina un proceso ya no puede generar fallo as que se colocan en la lista libre. Cada 4 segundos se ejecuta el subproceso intercambiador, este busca procesos que no hayan tenido ningn subproceso activo durante cierto nmero de segundos. Si encuentra procesos as, anula la fijacin de sus pilas de kernel y sus pginas se pasan a

* (4) Otro subproceso demonio el escritor de pgina con correspondencia y el escritor de * * *

pgina modificada, se activan en forma peridica para ver si hay suficientes pginas limpias. Si no hay suficiente, toman pginas de la parte superior de la lista modificada, las escribe en disco y luego la pasan a la lista de reserva. (5) Si un proceso elimina la correspondencia de una pgina, esta deja de estar asociada con un proceso y puede colocarse en la lista libre. (6) Si un fallo de pgina requiere un marco de pgina para contener la pgina que va a leerse, el marco se toma de la lista libre. No importa si la pgina contiene informacin confidencial porque va a sobrescribirse en su totalidad. (7) Cuando crece una pila se necesita un marco de pgina vaco y las reglas de seguridad exigen que esta pgina este llena de ceros. Por este motivo se ejecuta el subproceso de pginas en ceros, este borra las pginas que estn en la lista libre y las pasa a la lista de pginas en cero. Siempre que la CPU esta inactiva y hay pginas libres, ms vale borrarlas para que una pginas en ceros es ms til que una pgina libre.

* En

general. Windows 2000 resuelve conflictos aplicando heursticas complejas, haciendo conjeturas, considerando precedentes histricos, usando mtodos prcticos y basndose en parmetros controlados por el administrador. El cdigo es tan complejo que los diseadores se resisten a tocar cualquier parte de l por temor a descomponer algo del sistema, el cual ya nadie entiende en realidad.

Aunque Windows 2000 no se dise en forma especfica para que cumpliera con C2 (requisitos dc seguridad C2 del Departamento de Defensa de Estados Unidos (DoD 5200.28-STD)), hereda muchas propiedades dc seguridad de NT, incluidas las siguientes:

*
* *

Inicio de sesin seguro con medidas anti falsificacin.


Controles de acceso a discrecin. Controles de acceso privilegiado. Proteccin del espacio de direcciones por proceso. Las pginas nuevas deben ponerse en cero antes de hacer que tengan correspondencia en memoria. Auditoria dc seguridad.

*
* *

* * * * *

Inicio de sesin seguro significa que el administrador del sistema puede obligar a todos los usuarios a usar una contrasea para iniciar sesin. Los controles de acceso a discrecin permiten al dueo de un archivo u otro objeto especificar quin puede usarlo y cmo. Los controles de acceso privilegiado permiten al administrador del sistema (sper usuario) sobrescribirlos si es necesario. La accin del espacio de direcciones tan slo significa que cada proceso tiene su propio espacio de direcciones virtual protegido, al que no tiene acceso ningn proceso no autorizado. El siguiente requisito implica que, cuando crece una pila. Las pginas que tienen correspondencia en memoria se han llenado con ceros para que los procesos no puedan leer la informacin vieja que el dueo anterior de la pgina haya puesto. La auditora de seguridad permite al administrador generar un registro de ciertos sucesos relacionados con la seguridad.

*
* Cada
usuario (y grupo) de Windows 2000 se identifica con un Identificador de seguridad (SID: Security ID). Los SIDs son nmeros binarios que tienen un encabezado corto seguido de un componente aleatorio largo. Se pretende que cada SID sea nico a nivel mundial.

* Cada proceso tiene una ficha de acceso que especifica el SID y otras propiedades.

* El encabezado contiene cierta informacin administrativa. * El campo tiempo o fecha de vencimiento indica cuando dejara
*

actualidad no se usa. Los campos grupos especifican los grupos a los que pertenece el proceso: esto se requiere para cumplir con POSIX

de ser vlida la ficha, pero en la

* La lista de control de acceso a direccin DACL (discretionary ACL) predeterminada es la lista


que se asigna a los objetos creados por el proceso, si no se especifica alguna otra ACL.

* El SID de usuario identifica al dueo del proceso.


* Los
SID restringidos son para permitir que procesos no confiables participen en trabajos junto con procesos confiables pero con menos capacidad para causar daos.

* Los privilegios que aparecen, si los hay, confieren al proceso facultades especiales como el

derecho a apagar la maquina o el acceso a archivos a los que de otra manera se negara. Los privilegios deciden las facultades del sper usuario en varios derechos que pueden asignarse a los procesos en forma individual.

* En sntesis, la ficha de acceso dice quien posee el proceso y que valores predeterminados y
facultades tiene asociados.

* Casi

todo el mecanismo de control de acceso de Windows 2000 se basa en descriptores de seguridad.

* El patrn usual es que, cuando un proceso crea un objeto, proporciona un descriptor

de seguridad como uno de los parmetros de las llamadas CreateProcess, CreateFile u otras que crean objetos. ese descriptor de seguridad se convierte en el que est asociado con el

* Entonces
objeto.

* Si

no se proporciona un descriptor de seguridad en la llamada de creacin del objeto, se usara la seguridad predeterminada que est en la ficha de acceso del invocador.

* Para crear un descriptor de seguridad, primero se le asigna memoria y

luego se le dan valores iniciales con InitializeSecurityDescriptor. Esta llamada llena del encabezado. Si se desconoce el SID del dueo, puede consultarse por nombre empleando LookupAccountSid y luego insertarse en el descriptor de seguridad. * Lo mismo se hace con el SID de grupo, si lo hay. Regularmente estos SIDs sern el de invocador y el de uno de los grupos del invocador, respectivamente, pero el admin del sistema puede incluir cualquiera.

* Muchas de las llamadas de la APIWin32 en materia de seguridad tienen que


ver con la administracin de descriptores de seguridad.

* Ahora

pueden asignarse valores iniciales a la DACL (o SACL) del descriptor de seguridad con Initialize ACL. aadirse entradas a una ACL con AddAccessAllowedAce y AddAccesDeniedAce. Estas pueden repetirse para aadir tantas entradas ACE como sea necesario.

* Pueden

* Puede usarse DeteleteAce para eliminar una entrada de una ACL existente. * Cuando
la ACL esta lista, puede usarse SetSecurityDescriptorDacl para asociarla con el descriptor de seguridad. Por ultimo cuando se crea el objeto, el descriptor de seguridad recin acuado puede pasarse como parmetro para que se asocie con el objeto.

* La seguridad en Windows 2000 se implementa con varios componentes. * Ei inicio de sesiones corre por cuenta de winlogon y la validacin, por

cuenta de Lsass y msgina.dll. * El resultado de un inicio de sesin exitoso es un nuevo Shell con su correspondiente ficha de acceso. Este proceso emplea las claves SECURITY y SAM dcl Registro. * La primera establece la directiva de segundad general y la segunda contiene la informacin de segundad para los usuarios individuales.

* Una vez que un usuario ha iniciado sesin, se efectan operaciones de

segundad. Cada llamada OpenXXX requiere el nombre del objeto que se abrir y el conjunto de derechos requeridos, el administrador de seguridad, verifica si el invocador tiene todos los derechos requeridos. lo hace examinando la ficha de acceso del invocador y la DACL asociada.

* Esto

* La lista de entradas de la ACL se examina en orden. Tan pronto como se


encuentra una entrada que coincide con el SID del invocador o de uno de sus grupos.

* El

acceso que se indique all se tomar como definitivo. Si estn disponibles todos los derechos que necesita el invocador. La apertura tiene xito: de lo contrario, fracasa. DACLs pueden tener entradas Deny adems de entradas Allow. Por este motivo, se acostumbra colocar en la ACL las entradas que niegan acceso antes que las que lo permiten, para que un usuario al que se ha negado cl acceso en forma especfica no pueda colarse por una puerta trasera.

* Las

* Una
* En

vez que se abre un objeto. Se devuelve al invocador un identificador para ese objeto.
llamadas subsiguientes, lo nico que se verifica es si la operacin que se est intentando pertenece al conjunto de operaciones solicitadas durante la apertura, para evitar que un invocador abra un archivo para leer y luego trate de escribir en l.

S-ar putea să vă placă și