Introducción.
6.1.- Concepto y Objetivos de Protección
Los
mecanismos de protección controlan el acceso a un sistema limitado los
tipos de acceso a archivos permitidos a los usuarios. Además, los
mecanismos de protección deben garantizar que sólo los preocesos que
hayan obtenido la adecuada autorización del sistemaoperativo puedan
operar sobre los segmentos de memoria, CPU y otros recursos.
La
protección se proporciona mediante un mecanismo que controla el acceso
de los programas, de los procesos ode los usuarios a los recursos
definidos por un sistema informático. Este mecanismo debe proporcionar
un medio para especificar los controles que hay que imponer, junto con
algún modo de imponerlos.
La
seguridad garantiza la autenticación de los usuarios del sistema, con
el fin de proteger la integridad de la información almacenada en el
mismo (tanto datos como código), así como la de los recursos físicos del
sistema informático. El sistema de seguridad impide los accesos no
autorizados, la destrucción o manipulación maliciosas de los datos y la
introducción accidental de incoherencias.
6.1.- Concepto y Objetivos de Protección
Los procesos en un sistema operativo deben
protegerse de las actividades realizadas por otros procesos. Para proporcionar
dicha protección, podemos utilizar diversos mecanismos para garantizar que sólo
los procesos que hayan obtenido la adecuada autorización del sistema operativo
puedan operar sobre los archivos, los segmentos de memoria, sobre la CPU y
sobre otros recursos del sistema.
c .
El concepto de protección hace referencia a un
mecanismo para controlar el acceso de los programas, de los procesos o de los
usuarios a los recursos definidos por el sistema informático. Este mecanismo
debe proporcionar un medio de especificar los controles que hay que imponer,
junto con un modo de imponerlos. Podemos distinguir entre los conceptos de
protección y seguridad; este último es una medida de la confianza en que se
puedan preservar la integridad de un sistema de sus datos.
.
Objetivos de la protección.
.
.
A medida que los sistemas informáticos se han hecho
más sofisticados y a medida que su rango de aplicaciones se ha ido
incrementando, también ha crecido la necesidad de proteger la integridad de
esos sistemas. La protección se concebía originalmente como algo asociado a los
sistemas operativos multiprogramados, de modo que a los usuarios que no fueran
de confianza pudieran compartir de manera segura un espacio lógico de nombres
común, como por ejemplo un directorio de archivos, o compartir un espacio
físico de nombres común, como por ejemplo la memoria. Los conceptos modernos de
protección han evolucionado para incrementar la fiabilidad de cualquier sistema
complejo que haga uso de recursos compartidos.
Necesitamos proporcionar protección por diversas
razones. La más obvia es la necesidad de impedir una violación maliciosa e
intencionada de una restricción de acceso por parte de un usuario. Sin embargo,
tiene una mayor importancia general la necesidad de garantizar que cada
componente de programa activo en un sistema utilice los recursos del sistema
sólo en ciertas formas que sean coherentes con las políticas establecidas. Este
requerimiento tiene un carácter primordial si se quiere disponer de un sistema
fiable.
.
Los mecanismos de protección pueden mejorar la fiabilidad detectando los errores latentes en las interfaces definidas entre los distintos subsistemas de componentes. La detección temprana de errores de interfaz puede a menudo impedir que un subsistema correcto se vea contaminado por otro que no esté funcionando adecuadamente. Un recurso no protegido no puede defenderse frente al uso (o mal uso) por parte de un usuario no autorizado o incompetente. Un sistema orientado a la protección proporcionará medios para distinguir entre el uso autorizado y el no autorizado.
.
Los mecanismos de protección pueden mejorar la fiabilidad detectando los errores latentes en las interfaces definidas entre los distintos subsistemas de componentes. La detección temprana de errores de interfaz puede a menudo impedir que un subsistema correcto se vea contaminado por otro que no esté funcionando adecuadamente. Un recurso no protegido no puede defenderse frente al uso (o mal uso) por parte de un usuario no autorizado o incompetente. Un sistema orientado a la protección proporcionará medios para distinguir entre el uso autorizado y el no autorizado.
.
El papel de protección en un sistema informático es
proporcionar un mecanismo para la imposición de las políticas que gobiernen el
uso de recursos. Estas políticas pueden establecerse de diversas formas.
Algunas están fijas en el diseño de un sistema, mientras que otras se formulan
al administrar ese sistema. Existen también otras que son definidas por los
usuarios individuales para proteger sus propios archivos y programas. Un
sistema de protección deberá tener la flexibilidad sificiente para poder
imponer una diversidad de políticas.
.
.
Las políticas de uso de recursos pueden variar
según la aplicación y también pueden variar a lo largo del tiempo. Por estas
razones, la protección no es sólo cuestión del diseñador de un sistema
operativo. El programador de aplicaciones necesita utilizar también los
mecanismos de protección, para defender de un uso incorrecto los recursos
creados y soportados por un subsistema de aplicación. En este capítulo,
describiremos los mecanismos de protección que el sistema operativo debe
proporcionar para que los diseñadores de aplicaciones puedan usarlos a la hora
de diseñar su propio software de protección.
.
.
Observe que los mecanismos son distintos de las
políticas. Los mecanismos determinan cómo se llevará algo a cabo; las políticas
deciden qué es lo que hay que hacer. La separación entre políticas y mecanismos
resulta importante si queremos tener una cierta flexibilidad. Es probable que
las políticas cambien de un lugar a otro a lo largo del tiempo. En el caso
peor, cada cambio de políticas requeriría un cambio en el mecanismo subyacente;
la utilización de mecanismos generales nos permite evitar este tipo de
situaciones.
.
.
La protección es un mecanismo control de acceso de
los programas, procesos o usuarios al sistema o recursos. Hay importantes
razones para proveer protección. La más obvia es la necesidad de prevenirse de
violaciones intencionales de acceso por un usuario. Otras de importancia son,
la necesidad de asegurar que cada componente de un programa, use solo los
recursos del sistema de acuerdo con las políticas fijadas para el uso de esos
recursos.
.
.
Un recurso desprotegido no puede defenderse contra
el uso no autorizado o de un usuario incompetente. Los sistemas orientados a la
protección proveen maneras de distinguir entre uso autorizado y
desautorizado.
- Inicialmente protección del SO frente a usuarios poco confiables.
- Protección: control para que cada componente activo de un proceso sólo pueda acceder a los recursos especificados, y sólo en forma congruente con la política establecida.
- La mejora de la protección implica también una mejora de la seguridad.
- Las políticas de uso se establecen:
- Por el hardware.
- Por el administrador / SO.
- Por el usuario propietario del recurso.
- Principio de separación entre mecanismo y política:
- Mecanismo con qué elementos (hardware y/o software) se realiza la protección.
- Política es el conjunto de decisiones que se toman para especificar cómo se usan esos elementos de protección.
- La política puede variar dependiendo de la aplicación, a lo largo del tiempo.
- La protección no sólo es cuestión del administrador, sino también del usuario.
6.2.- Funciones del Sistema de
Protección.
Dado que los
sistemas de computo se han venido haciendo cada vez más sofisticados en sus
aplicaciones, la necesidad de proteger su integridad, también ha crecido. Los
aspectos principales de protección en un Sistema Operativo son:
- Protección de los procesos del sistema contra los procesos de usuario.
- Protección de los procesos de usuario contra los de otros procesos de usuario.
- Protección de Memoria.
- Protección de los dispositivos.
6.3.-
Implantación de Matrices de Acceso.
¿Qué es el
Dominio de Protección?
- Un sistema computacional esta compuesto por procesos y objetos, los Objetos involucran Hardware y Software, cada objeto tiene un nombre único que lo diferencia y cada objeto puede ser accesado solamente mediante operaciones bien definidas. Ejemplo:
- El CPU se utiliza solamente para ejecución.
- Los segmentos de memoria se pueden leer y escribir.
- Un archivo puede ser leído, escrito, ejecutado y borrado.
6.4.-
Protección Basada en el Lenguaje.
La protección que se ofrece en los sistemas de computación existentes casi siempre se ha logrado con la ayuda del núcleo de un sistema operativo, que actúa como agente de seguridad que inspecciona y valida cada intento por acceder a un recurso protegido. Puesto que la validación de todos los accesos puede dar pie a un gasto extra considerable, debemos apoyarla con hardware para reducir el costo de cada validación o bien debemos aceptar que el diseñador del sistema podría inclinarse por sacrificar los objetivos de la protección. Es difícil satisfacer todos estos objetivos si los mecanismos de soporte con que se cuenta restringen la flexibilidad para implementar diversas políticas de protección.
A medida que
ha aumentado la complejidad de los sistemas operativos, sobre todo al trata de
ofrecer interfaces de más alto nivel con el usuario, lo objetivos de la
protección se han vuelto mucho más refinados. En esta refinación observamos que
los diseñadores de los diseñadores de los sistemas de protección se han apoyado
mucho en ideas que se originaron en los lenguajes de programación y
especialmente en los conceptos de tipos de datos abstractos y objetos. Los
sistemas de protección ahora se ocupan no sólo de la identidad de un recurso al
cual se intenta acceder, sino también de la naturaleza funcional de ese acceso.
En los sistemas de protección más nuevos, el interés en la función que se invocará
se extiende más allá de un conjunto de funciones definidas por el sistema, como
los métodos de acceso a archivos estándar, para incluir funciones que también
podrían ser definidas por el usuario.
Las
políticas para el uso de recursos también podrían variar, dependiendo de la
aplicación, y podrían cambiar con el tiempo. Por estas razones, la protección
ya no puede considerarse como un asunto que sólo concierne al diseñador de un
sistema operativo; también debe estar disponible como herramienta que el
diseñador de aplicaciones pueda usar para proteger los recursos de un
subsistema de aplicación contra intervenciones o errores.
Aquí es
donde los lenguajes de programación entran en escena. Especificar el control de
acceso deseado a un recurso compartido en un sistema es hacer una declaración
acerca del recurso. Este tipo de declaración se puede integrar en un lenguaje
mediante una extensión de su mecanismo de tipificación. Si se declara la
protección junto con la tipificación de los datos, el diseñado de cada
subsistema puede especificar sus necesidades de protección así debería darse
directamente durante la redacción del programa, y en el lenguaje en el que el
programa mismo se expresa. Este enfoque tiene varias ventajas importantes:
- Las necesidades de protección se declaran de forma sencilla en vez de programarse como una secuencia de llamadas a procedimientos de un sistema operativo.
- Las necesidades de protección pueden expresarse independientemente de los recursos que ofrezca un sistema operativo en particular.
- El diseñador de un subsistema no tiene que proporcionar los mecanismos para hacer cumplir la protección.
- Una notación declarativa es natural porque
los privilegios de acceso están íntimamente relacionados con el
concepto lingüístico de tipo de datos.
Hay diversas técnicas que una implementación de lenguaje de programación puede utilizar para hacer cumplir la protección, pero cualquiera de ellas deberá depender hasta cierto punto del grado de soporte de una máquina subyacente y su sistema operativo.
¿Qué
ventajas relativas tiene entonces el cumplimiento basado exclusivamente en un
núcleo, en comparación con el cumplimiento forzado en gran medida por un
compilador?
- Seguridad: La obligación del cumplimiento por un núcleo ofrece un mayor grado de seguridad del sistema de protección mismo, que el que ofrece la generación de código de verificación de protección por un compilador. En un esquema apoyado por compilador, la seguridad depende de lo correcto que sea el traductor, de algún mecanismo subyacente de gestión de almacenamiento que proteja los segmentos desde los cuales se ejecuta el código compilador y, en última instancia, de la seguridad de los archivos desde los que se carga el programa.
- Flexibilidad: Hay límites a la flexibilidad de un núcleo de protección para implementar una política definida por el usuario, aunque podría proporcionar recursos suficientes para que el sistema haga cumplir sus propias políticas. Con un lenguaje de programación, se puede declarar la política de protección y hacerse cumplir según sea necesario en una implementación.
- Eficiencia: Se logra la eficiencia máxima cuando hardware apoya directamente el cumplimiento de la protección. En la medida en que se requiera soporte de software, el cumplimiento basado en el lenguaje tiene la ventaja de que es posible verificar el cumplimiento del acceso estático fuera de línea en el momento de la compilación.
En síntesis,
la especificación de la protección en un lenguaje de programación permite
describir un alto nivel de políticas de asignación y uso de recursos.
6.5.- Concepto de
Seguridad.
La seguridad
está definida en el diccionario como el conjunto de medidas tomadas para
protegerse contra robos, ataques, crímenes y espionajes o sabotajes. La
seguridad implica la cualidad o estado de estar seguro, es decir, la evitación
de exposiciones a situaciones de peligro y la actuación para quedar a cubierto
frente a contingencias adversas.
El uso
creciente y la confianza en los computadores en todo el mundo ha hecho surgir
una preocupación legítima con respecto a la seguridad informática. El uso de
los computadores ha extendido en ambientes comerciales, gubernamentales,
militares e incluso en los hogares. Grandes cantidades de datos vitales
sensibles se están confiando y almacenado cada vez más en computadores. Entre
ellos se incluyen registros sobre individuos, negocios y diferentes registros
públicos y secretos gubernamentales y militares. Grandes transacciones
monetarias tienen lugar diariamente en forma de transferencia electrónicas de
fondos. Más recientemente, informaciones tales como notificaciones de propiedad
intelectual y datos comerciales estratégicos son también almacenados,
procesados y diseminados mediante computadores. Entre ellos se incluyen diseños
de ventas, contratos legales y muchos otros.
La
seguridad, no solo requiere un sistema de protección apropiado, sino también
considerar el entorno externo en el que el sistema opera. La protección interna
no es útil si la consola del operador está al alcance de personal no autorizado,
o si los archivos se pueden sacar simplemente del sistema de computación y
llevarse a un sistema sin protección. Estos problemas de seguridad son
esencialmente de administración, no problemas del sistema operativo.
La
información almacenada en el sistema, así como los recursos físicos del sistema
de computación, tienen que protegerse contra acceso no autorizado, destrucción
o alteración mal intencionada, y la introducción accidental de inconsistencia.
6.6.- Clasificaciones de La
Seguridad.
Clasificación de seguridad.
Es decir que
la clasificación de los sistemas de computación según sus requerimientos de la
seguridad ha sido ampliamente discutida de la seguridad del sistema.
En esta
clasificación especifica, hay cuatro niveles de seguridad: a, b, c y d… a
continuación, se describen estos niveles de seguridad y las características de
cada uno.
- Nivel D es el Sistemas con protección mínima o nula no pasan las pruebas de seguridad mínima. MS-DOS y Windows 3. 1 son sistemas de nivel d. Puesto que están pensados para un sistema mono proceso y mono usuario, no proporcionan ningún tipo de control de acceso ni de separación de recursos.
- Nivel C a la Capacidad discrecional para proteger recursos, La aplicación de los mecanismos de protección depende del usuario, o usuarios, que tienen privilegios sobre los mismos. Entonces esto significa que un objeto puede estar disponible para lectura, escritura o cualquier otra operación. Y entonces casi todos los sistemas operativos comerciales de propósito general, como Unix, Linux o Windows NT se clasifican en este nivel.es decir dos son:
- Control de acceso por dominios.
- Control de acceso individualizado.
- Nivel B es el Control de acceso obligatorio en este nivel, los controles de acceso no son discrecionales de los usuarios o los dueños de los recursos, que deben existir obligatoriamente. Esto significa que todo objeto controlado debe tener protección sea del tipo que sea. Es decir que son tres y son:
- Etiqueta de seguridad obligatoria.
- Protección estructurada.
- Y el dominio de seguridad.
- Nivel A es el Sistemas de seguridad certificados para acceder a este nivel, la política de seguridad y los mecanismos de protección del sistema deben ser verificados y certificados por un organismo autorizado para ello.es decir dos tipos:
- Diseño verificado.
- Desarrollo controlado.
6.7.-
Validación y Amenazas al Sistema.
Amenazas a la seguridad en el acceso al
sistema:
- Intrusos.
- Programas malignos.
Intrusos:
- Piratas o hackers: individuos que acceden al sistema sin autorización.
- Los sistemas presentan agujeros por donde los hackers consiguen colarse.
Técnicas de
intrusión:
- Averiguar contraseñas (más del 80% de las contraseñas son simples).
- Probar exhaustivamente.
- Descifrar archivo de contraseñas.
- Intervenir líneas.
- Usar caballos de Troya.
Técnicas de
prevención de intrusos:
Establecer
una buena estrategia de elección de contraseñas:
- Contraseñas generadas por ordenador (difícil memorización).
- Inspección activa (proceso periódico de averiguación).
- Inspección proactiva (decidir si es buena en su creació
Técnicas de
detección de intrusos:
Investigar
actividades inusuales:
- Detección de anomalías estadísticas.
- Uso de registros de auditoría que recogen información del comportamiento de cada usuario.
- Detección basada en reglas.
- Conjunto de reglas empleadas para decidir si una actividad es inusual.
Tipos de
amenazas:
Amenazas
pasivas:
- Revelación del contenido del mensaje.
Amenazas
activas:
- Alteración del flujo de mensajes.
Privación del servicio:
- Impide el uso normal de los servicios de comunicaciones.
Suplantación:
- Cuando una entidad finge ser otra diferente.
Análisis del tráfico:
- En caso de que los mensajes vayan encriptados.
- Determinar las máquinas que se comunican y la frecuencia y longitud de los mensajes.
- Alteración del flujo de mensajes.
Clasificación de programas malignos:
Programas
malignos que necesitan anfitrión:
Forman parte
de un programa.
Trampillas:
- Punto de entrada secreto a un programa.
- Se usan para depuración y prueba.
- Pueden usarse para acceso no autorizado.
Bomba
lógica:
- Se ejecutan cuando se cumplen ciertas condiciones.
- Ej: se borra el disco duro si programador no estáen nómina.
Caballo de
Troya:
- Código dañino incrustado en programa que se ejecuta cuando se ejecuta el programa.
Programas malignos que no necesitan anfitrión:
Gusanos:
- Programas independientes.
- Se reproducen a través de la red.
- Además de propagarse pueden causar daños.
Bacterias:
- No dañan explícitamente.
- Su único objetivo es reproducirse.
- Se reproducen exponencialmente agotando la capacidad del procesador.
Virus:
- Código incrustado en un programa.
- Se reproducen e insertan en otros programas.
- Pueden causar daños.
Algoritmo de virus muy simple (tan sólo se reproduce):
- Encontrar 1ª instrucción de un ejecutable del disco.
- Sustituirla por salto a posición siguiente a la última instrucción.
- Insertar copia del código de virus (este algoritmo) en dicha posición.
- Hacer que el virus simule la instrucción sustituida por el salto.
- Saltar a la segunda posición.
6.8.- Cifrado.
Concepto de Cifrado.
El cifrado
es un método que permite aumentar la seguridad de un mensaje o de un archivo
mediante la codificación del contenido, de manera que sólo pueda leerlo la
persona que cuente con la clave de cifrado adecuada para descodificarlo. Por
ejemplo, si realiza una compra a través de Internet, la información de la transacción
(como su dirección, número de teléfono y número de tarjeta de crédito) suele
cifrarse a fin de mantenerla a salvo. Use el cifrado cuando desee un alto nivel
de protección de la información.
Métodos y
Técnicas de Cifrado:
Cifrado de
sustitución
El cifrado
de sustitución consiste en reemplazar una o más entidades (generalmente letras)
de un mensaje por una o más entidades diferentes.
Existen
varios tipos de criptosistemas de sustitución:
- La sustitución monoalfabética consiste en reemplazar cada una de las letras del mensaje por otra letra del alfabeto.
- La sustitución polialfabética consiste en utilizar una serie de cifrados monoalfabéticos que son re-utilizados periódicamente.
- La sustitución homófona hace posible que cada una de las letras del mensaje del texto plano se corresponda con un posible grupo de caracteres distintos.
- La sustitución poligráfica consiste en reemplazar un grupo de caracteres en un mensaje por otro grupo de caracteres.
Cifrado
César
Este código
de cifrado es uno de los más antiguos ya que su uso se remonta a Julio César.
El principio de cifrado se basa en la adición de un valor constante a todos los
caracteres de un mensaje o, más precisamente, a su código ASCII.
Cifrado ROT
13
El caso
específico del cifrado César donde la clave de cifrado es N (la 13º letra del
alfabeto) se denomina ROT 13? (se eligió el número 13, la mitad de 26, para que
sea posible cifrar y descifrar fácilmente mensajes textuales).
Cifrado de
Transposición
El método de
cifrado por transposición consiste en reordenar datos para cifrarlos a fin de
hacerlos ininteligibles. Esto puede significar, por ejemplo, reordenar los
datos geométricamente para hacerlos visualmente inutilizables.
El Cifrado
Simétrico.
El cifrado
simétrico (también conocido como cifrado de clave privada o cifrado de clave
secreta) consiste en utilizar la misma clave para el cifrado y el descifrado.
El cifrado
consiste en aplicar una operación (un algoritmo) a los datos que se desea
cifrar utilizando la clave privada para hacerlos ininteligibles. El algoritmo
más simple (como un OR exclusivo) puede lograr que un sistema prácticamente a
prueba de falsificaciones (asumiendo que la seguridad absoluta no existe).
El Cifrado
Asimétrico.
El cifrado
asimétrico (también conocido como cifrado con clave pública). En un
criptosistema asimétrico (o criptosistema de clave pública), las claves se dan
en pares:
- Una clave pública para el cifrado.
- Una clave secreta para el descifrado.
En un
sistema de cifrado con clave pública, los usuarios eligen una clave aleatoria
que sólo ellos conocen (ésta es la clave privada). A partir de esta clave,
automáticamente se deduce un algoritmo (la clave pública). Los usuarios
intercambian esta clave pública mediante un canal no seguro.
Muy buena Informacion! ;)
ResponderBorrarEste comentario ha sido eliminado por el autor.
ResponderBorrarEsta bastante completa la información gracias amigo por el post!
ResponderBorrarexcelente, muchas gracias...
ResponderBorrarEXCELENTE
ResponderBorraruff estoy agredecido, justo es lo que necesito. Salve la unidad jaja
ResponderBorrarY las tecnicas de seguridad cuales son ?
ResponderBorrarEste comentario ha sido eliminado por el autor.
ResponderBorrar