Uploaded by Cinthia Saavedra

investigación de UNIX

advertisement
U.A.G.R.M.
SCHOOL OF ENGINEERING
FACULTAD DE INGENIERÍA EN CIENCIAS DE
LA COMPUTACIÓN Y
TELECOMUNICACIONES
“Investigación de la seguridad en los Sistemas Operativos UNIX”
Grupo: 4
Estudiantes:
- Angélica
- Cinthia
- Bruno
- Ronald
- Gabriel
- Maikol B
- Lemuel R
Docente
:
Módulo: 5
Fecha: 3 de octubre de 2022
Santa Cruz - Bolivia
“Seguridad en Sistemas Operativos y Aplicaciones - DSIV1E1”
Contenido
I.
INTRODUCCIÓN A LA INVESTIGACIÓN .................................................................................................. 1
1.1.
Antecedentes ................................................................................................................................ 1
1.2.
Situación Problemática ................................................................................................................. 1
1.3.
Situación Deseada ......................................................................................................................... 1
1.4.
Objeto de la Investigación ............................................................................................................ 1
II.
OBJETIVOS ............................................................................................................................................. 2
2.1.
Objetivo General ........................................................................................................................... 2
2.2.
Objetivo Específicos ...................................................................................................................... 2
III.
MARCO TEÓRICO .............................................................................................................................. 2
3.1.
Mecanismos de seguridad de Unix ............................................................................................... 2
3.2.
Sistema de Ficheros de Unix ....................................................................................................... 18
3.2.1.
Concepto ............................................................................................................................. 18
3.2.2.
Directorios y estructura ...................................................................................................... 18
3.2.3 Niveles de acceso a la información............................................................................................... 21
3.3.
Mantenimiento de sistemas confiables ...................................................................................... 24
3.3.1.
Criptografía ......................................................................................................................... 24
3.3.2.
Protección de cuentas......................................................................................................... 27
3.4.
Auditoría en UNIX ....................................................................................................................... 28
3.5.
Amenazas .................................................................................................................................... 30
3.5.1.
Amenazas naturales ............................................................................................................ 30
3.5.2.
Amenazas no intencionales ................................................................................................ 31
3.5.3.
Amenazas intencionales...................................................................................................... 31
3.6.
Funcionalidades e Implementaciones de Unix con referencia a la seguridad ............................ 34
3.6.1.
TCP Wrappers...................................................................................................................... 35
3.6.2.
Kerberos en Unix ................................................................................................................. 36
3.7.
Consejos sobre seguridad en Unix .......................................................................................... 37
IV.
DESARROLLO DEL LABORATORIO ................................................................................................... 37
V.
CONCLUSIONES Y RECOMENDACIONES.............................................................................................. 42
VI.
REFERENCIAS................................................................................................................................... 44
“Seguridad en Sistemas Operativos y Aplicaciones - DSIV1E1”
Tabla de Figuras
Figura 1: Características de Seguridad en un SO Unix .................................................................................. 1
Figura 2: Estructura del sistema de archivos en UNIX .................................................................................. 3
Figura 3: Login del usuario arodriguez .......................................................................................................... 4
Figura 4: visualización del contenido de un archivo de texto passwd .......................................................... 5
Figura 4: Visualización del UID del usuario lromero ..................................................................................... 8
Figura 5: visualización del contenido de un archivo de texto group ......................................................... 10
Figura 7: TCP Wrappers............................................................................................................................... 36
“Seguridad en Sistemas Operativos y Aplicaciones - DSIV1E1”
I.
INTRODUCCIÓN A LA INVESTIGACIÓN
1.1. Antecedentes
A medida que pasa el tiempo los sistemas operativos Open Source se van haciendo populares
debido a su flexibilidad y sus utilidades. Existen comunidades que se dedican exclusivamente a
desarrollar y dar soporte a estos sistemas operativos. Los sistemas operativos Unix han sido una
principal fuente de funcionalidades para diversos objetivos en el mundo de la tecnología, como
por ejemplo la base de un Sistema Operativo para un equipo de seguridad.
1.2. Situación Problemática
Para la utilidad de un sistema operativo siempre se debe prever la seguridad, y cómo puede
resguardar la información que se almacena internamente. Ver si la configuración por defecto y la
actualización del sistema operativo protege la información como debería.
1.3. Situación Deseada
El propósito de esta investigación es conocer la seguridad en sistemas operativos Unix, las
características y funcionalidades que ofrece para proteger la información dentro de una empresa,
o en un hardware que tenga la instalado un SO en base a Unix.
1.4. Objeto de la Investigación
Archivos de Seguridad
Autenticación
Encriptación
Amenazas
Figura 1: Características de Seguridad en un SO Unix
1
“Seguridad en Sistemas Operativos y Aplicaciones - DSIV1E1”
II.
OBJETIVOS
2.1. Objetivo General
Analizar la seguridad en el Sistema Operativo Unix, mediante la investigación de sus
características principales.
2.2. Objetivo Específicos
❖ Identificar las principales características y mecanismos de seguridad del Sistema Operativo
Unix.
❖ Definir el tipo de autenticación que utiliza el SO Unix.
❖ Identificar y explicar la manera en cómo se autentica y se encriptan los usuarios y contraseñas.
❖ Definir los tipos de ataques que afectan a las vulnerabilidades de SO Unix.
❖ Explicar los tipos de mitigación ante las amenazas que existe en un SO Unix.
❖ Identificar las funcionalidades implementaciones de Unix con referencia a la seguridad
❖ Realizar un Laboratorio donde se vea al SO UNIX en funcionamiento.
❖ Definir las principales funcionalidades e implementaciones del SO Unix.
III.
MARCO TEÓRICO
3.1. Mecanismos de seguridad de Unix
3.1.1. Introducción
En este capítulo se destacan los principales mecanismos de seguridad de UNIX, es decir,
aquellos recursos que el sistema operativo proporciona y que conforman la base sobre la
que se establece la seguridad. El conocimiento de estos mecanismos por parte del
administrador de seguridad es completamente imprescindible, puesto que, bien
utilizados permiten que el sistema se muestre robusto ante cualquier ataque o fallo. Por
2
“Seguridad en Sistemas Operativos y Aplicaciones - DSIV1E1”
otro lado, mal utilizados proporcionarán una puerta abierta a cualquier atacante o
convertirán un programa inocente en un auténtico agujero de seguridad.
La estructura del sistema de archivos en UNIX
Figura 2: Estructura del sistema de archivos en UNIX
3.1.2. Usuarios y grupos en UNIX
Las cuentas de usuario son el primer objetivo de cualquier atacante, su finalidad suele ser
casi siempre esta, penetrar en el sistema consiguiendo apoderarse de una cuenta de
usuario (preferentemente la del root). Después pueden robar, destruir o falsificar datos
o simplemente dejar una nota, pero el daño ya está hecho: la seguridad del sistema se ha
visto comprometida.
Hay cuatro archivos principales de administración de usuarios:
/etc/passwd- Mantiene la información de cuenta de usuario y contraseña. Este archivo
contiene la mayor parte de la información sobre cuentas en el sistema Unix.
/etc/shadow- Contiene la contraseña encriptada de la cuenta correspondiente. No todos
los sistemas admiten este archivo.
/etc/group - Este archivo contiene la información del grupo para cada cuenta.
/etc/gshadow - Este archivo contiene información segura de la cuenta del grupo.
3
“Seguridad en Sistemas Operativos y Aplicaciones - DSIV1E1”
3.1.2.1. Cuentas de usuario
La identificación en los sistemas UNIX se realiza mediante un nombre de usuarios
(login) y la autentificación mediante contraseñas (password). Los nombres de usuario
se conocen también como nombres de cuenta. Para iniciar una sesión en un sistema
UNIX, es necesario conocer tanto el nombre de usuario como la contraseña
correspondiente. Por ejemplo, Angelica Rodríguez Rivero posee una cuenta. Su
nombre de usuario es arodriguez y su contraseña es"12345arr". Cuando Angelica
desee iniciar una sesión en el servidor, deberá autentificarse como usuario autorizado
ante la máquina de la siguiente manera.
Figura 3: Login del usuario arodriguez
De esta manera, el usuario queda totalmente autentificado y obtendrá un intérprete
de comandos (shell) desde el que podrá realizar diferentes tareas. Otra posibilidad es
que el servidor disponga de un entorno de trabajo en modo gráfico (X-Window), en
ese caso el proceso de autentificación se realiza de idéntica manera, con la única
diferencia de que el usuario obtendrá un entorno gráfico de trabajo en lugar del shell
habitual.
Los nombres de usuario estándar en UNIX tienen una longitud que puede ir de 1 a 8
caracteres. Estos nombres deben ser únicos en una misma computadora, puesto que
deben identificar al usuario de forma inequívoca (después se verá que esto no es
estrictamente cierto, puesto que dos usuarios pueden compartir el mismo UID). Las
contraseñas en UNIX tradicionalmente tenían una longitud de entre 1 y 8 caracteres,
aunque algunas versiones comerciales permiten contraseñas más largas. El uso de
contraseñas más largas implica una mayor seguridad, porque son más difíciles de
4
“Seguridad en Sistemas Operativos y Aplicaciones - DSIV1E1”
adivinar. La contraseña no debe ser obligatoriamente única para cada usuario, varios
usuarios pueden tener, de hecho, la misma contraseña, aunque de ser así, esto
indicaría que estos usuarios han elegido una mala contraseña. La elección de las
contraseñas, así como las posibles restricciones que se pueden establecer sobre ellas,
es de vital importancia a la hora de evitar intrusiones en el sistema, por ello, se
dedicará a esto otro apartado.
3.1.2.2. El archivo /etc/passwd
En los sistemas tipo UNIX, la información sobre las cuentas de usuario se almacena en una
base de datos localizada en el archivo/etc/passwd. Esta es un fichero de texto en el que los
diferentes registros se encuentran separados por el carácter dos puntos (:). Se puede emplear
el comando cat para visualizar el contenido del fichero passwd. A continuación, se puede ver
una muestra de un archivo típico como ejemplo:
Figura 4: visualización del contenido de un archivo de texto passwd
Algunas de las cuentas del ejemplo son cuentas del sistema como root, daemon o apm. El
resto son cuentas de usuario regulares del sistema como arodriguez, grosado, csaavedra. Las
cuentas que tienen un * en al campo de la contraseña no pueden ser utilizadas para iniciar
5
“Seguridad en Sistemas Operativos y Aplicaciones - DSIV1E1”
una sesión desde un terminal, es necesario utilizar la orden su. Son cuentas de sistema (en
ocasiones usuarios 'castigados'), que poseen archivos, a veces muy importantes, que realizan
tareas administrativas o dan servicios. Cada campo individual del archivo passwd posee un
significado directo. En la siguiente tabla se explica el significado de una de las líneas del
ejemplo:
Campo
Contenido
arodriguez
Nombre de usuario
*
Contraseña cifrada del usuario
101
Número de identificación del usuario (UID)
101
Número de identificación de grupo del usuario
(GID)
Angelica Rodríguez
Nombre completo de usuario
Rivero
home/arodriguez
Directorio del usuario
/bin/bash
Interprete de comandos del usuarioa
Tabla 1 : Explicación de las características del usuario arodriguez
La contraseña se guarda cifrada. La contraseña en sí no se guarda tal cual, en el sistema, si así
se hiciera, esto representaría un grave riesgo.
para la seguridad, y solo es aceptable cuando la política de seguridad lo admita por razones
particulares. En la actualidad, muchas organizaciones poseen grandes redes de tipo clienteservidor que contienen muchos servidores y una gran cantidad de estaciones de trabajo.
Normalmente es deseable que los usuarios entren en cualquiera de estas computadoras, y
que lo hagan con el mismo nombre de usuario y la misma contraseña. Esto conlleva que cada
usuario tenga una cuenta en cada estación de trabajo. Este requisito hace que sea
extremadamente difícil mantener la coherencia entre las bases de datos de usuarios de todos
los computadores. Para lograr esto se utilizan diversos paquetes software que proporcionan
el contenido del fichero /etc/passwd a toda la red.
Algunos de estos sistemas son:
6
“Seguridad en Sistemas Operativos y Aplicaciones - DSIV1E1”

Network Information System (NIS:Sistema de Información para la Red) de Sun
Microsystems.

NIS+ de Sun Microsystems

Distributed Computing Environment (DCE: Ambiente de Computación Distribuido)
de Open Software Foundation.

NetInfo de NeXT Computers
Todos estos sistemas toman la información, que por lo general, está almacenada en cada
estación de trabajo y la ponen en una o más computadoras que se usan como servidores de
red. Al usar estos sistemas, ya no se puede usar simplemente el comando cat, sino que hay
que utilizar una instrucción específica para cada sistema para ver el contenido del archivo
/etc/passwd. El servicio NIS de Sun complementa la información almacenada en los archivos
de las estaciones de trabajo. Por lo tanto, para ver la lista completa de las cuentas de usuario,
es necesario listar el contenido del archivo passwd local y además utilizar la siguiente
instrucción:
% ypcat passwd
El servicio NIS+, también de Sun, se puede configurar para complementar sustituir sus
entradas sobre cuentas de usuario en lugar de las que están en el archivo passwd local,
dependiendo del contenido del archivo /etc/nsswitch.conf. Para ver la lista de usuarios bajo
NIS+ hay que utilizar el comando niscat y especificar el dominio de NIS+. Por ejemplo:
% niscat -o passwd.dominio
En las computadoras que ejecutan NetInfo, el archivo local no se toma en cuenta y en su lugar
se usa la versión de red. Por ejemplo, para ver las cuentas de usuario, si se usa NetInfo, hay
que escribir:
% nidump passwd /
Las computadoras que usan DCE emplean una base de datos de red cifrada como alternativa
a las contraseñas cifradas y al archivo/etc/passwd.
Muchos administradores no utilizan sistemas de administración de bases de datos en red
porque temen que la seguridad se vea comprometida. Estos temores provienen del hecho de
7
“Seguridad en Sistemas Operativos y Aplicaciones - DSIV1E1”
que la configuración de estos sistemas es, en ocasiones, muy complicada y los protocolos que
utilizan pueden no ser particularmente resistentes a ataques. Es una práctica habitual entre
los administradores mantener simplemente un archivo central con la información de los
usuarios y copiarlo de forma periódica en las computadoras remotas. El inconveniente que se
presenta es que con frecuencia el administrador tiene que cambiar manualmente contraseñas
de usuarios. En general, es preferible aprender a dominar la configuración de estos sistemas,
luego colocar otras medidas defensivas como es el caso del cortafuegos (firewall).
3.1.2.3. Identificador de usuario (UID)
El UID es un número entero real de 16 bits (de 0 a 65535). Los primeros UID se usan
principalmente para funciones del sistema. Para las personas, normalmente empiezan en el
20, el 100 o el 500. Es habitual asignar el UID dependiendo del grupo primario del usuario: los
usuarios del grupo 500 tendrán los UID 501, 502, 503, y así sucesivamente. Algunas versiones
de UNIX permiten ahora UID de32 bits. En las versiones antiguas de UNIX los UID son enteros
de 16 bits con signo (de -32768 a 32767).
UNIX utiliza el archivo/etc/passwd para almacenar la correspondencia entre el nombre de
cada usuario y su UID. El UID de cada usuario se guarda en el tercer campo, después de la
contraseña cifrada. Esta es una línea del ejemplo anterior:
Figura 5: Visualización del UID del usuario lromero
Aquí se puede ver que el UID de lromero es 1006.
El UID es la información real que utiliza el sistema operativo para identificar al usuario. Los
nombres de usuario son solo una comodidad para nosotros. Si dos usuarios tienen el mismo
UID, UNIX los trata como si fueran el mismo usuario, aunque tengan nombres y contraseñas
distintos. Dos usuarios con el mismo UID pueden leerse y borrarse archivos libremente el uno
8
“Seguridad en Sistemas Operativos y Aplicaciones - DSIV1E1”
al otro, así como suspenderse los programas que ejecuten. Asignar a dos usuarios el mismo
UID es, por lo general, una mala idea, salvo algunas excepciones.
3.1.2.4. El archivo /etc/group
Todos los usuarios de UNIX pertenecen a uno o más grupos. El administrador del sistema
puede utilizar los grupos para definir conjuntos de usuarios que tendrán permiso de leer,
escribir y/o ejecutar ciertos archivos, directorios o dispositivos.
Cada usuario pertenece a un grupo primario, que se anota en el archivo /etc/passwd. El GID
del grupo primario de un usuario aparece después del UID del usuario.
Los grupos permiten manejar cómodamente a varios usuarios de alguna manera. Por
ejemplo, talvez se quiera abrir un grupo para un equipo de estudiantes que trabajan en un
proyecto y permitirles a ellos y sólo a ellos leer y modificar los archivos del equipo.
Los grupos también se usan para restringir el acceso a la información confidencial o
aplicaciones con licencias específicas. Por ejemplo, en muchas computadoras que usan UNIX,
solamente se permite examinar el contenido de la memoria del kernel del sistema al usuario
que pertenecen al grupo grupoB. El grupo grupoA se usa normalmente para quienes están
registrados como usuarios del programa comercial del manejo de bases de datos Ingres.
Algunas versiones especiales de UNIX permiten usar CAO o Controles de Acceso Obligatorio
(MAC: Mandatory Access Controls), los cuales controlan el acceso mediante etiquetas en los
datos, además o en lugar de los controles tradicionales CAV o Controles de Acceso Voluntario
(DAC: Discretionary Access Controls) de UNIX. Los sistemas que se basan en CAO/CAV
(MAC/DAC) no emplean los grupos tradicionales de UNIX. En su lugar, los valores de los GID y
el archivo /etc/group se pueden usar para especificar etiquetas de seguridad para el control
de acceso o bien para apuntar a listas de capacidades.
3.1.2.5. El archivo /etc/group
9
“Seguridad en Sistemas Operativos y Aplicaciones - DSIV1E1”
El archivo /etc/group contiene la base de datos con todos los grupos que hay en la
computadora y sus GID correspondientes. Su formato es similar del del archivo /etc/passwd.
He aquí una muestra de archivo /etc/group que pertenece a un sistema típico:
Figura 6: visualización del contenido de un archivo de texto group
La primera línea define el grupo root. Los campos se detallan en la siguiente tabla:
Campos
Contenido
root
Nombre de grupo
*
Contraseña grupo (Cifrada)
0
Número de identificación del grupo (GID)
root
Lista de usuarios miembros del grupo
Tabla 2 : Explicación de las características del grupo root
cuales se indican en el archivo/etc/passwd. Por ejemplo, arodriguez, lromero que pertenecen
al grupo grupoA a pesar de no aparecer explícitamente en el archivo /etc/group porque su
grupo primario es el 100. En algunas versiones de UNIX, se puede ejecutar el comando groups
o id para ver la lista de grupos a los que se pertenece.
3.1.2.6. Identificador de grupo (GID)
Todos los usuarios de UNIX pertenecen a uno o más grupos. Al igual que las cuentas de
usuario, los grupos tienen un nombre de grupo y un número de identificación de grupo (GID).
Usualmente, los valores de los GID también son enteros de 16 bits.
10
“Seguridad en Sistemas Operativos y Aplicaciones - DSIV1E1”
Análogamente al UID, el GID representa al grupo en el sistema, y no su nombre. Los grupos
permiten agrupar a varios usuarios que posean el mismo grupo primario (campo GID del
archivo /etc/passwd) o que aparezcan en el archivo /etc/group.
Las versiones de UNIX de AT&T anteriores a SVR4 sólo permitían que un usuario estuviera en
un grupo a la vez. Para cambiar de grupo había que usar el comando newgrp. Cuando un
usuario intentaba acceder a un archivo sobre el que tenía permiso por pertenecer al mismo
grupo, se le denegaba el acceso si, en ese instante, el usuario no estaba en ese mismo grupo.
Por eso debía usar el comando newgrp.
En la actualidad, los usuarios pertenecen a todos los grupos en los que aparecen en el
archivo/etc/group a la vez. El sistema operativo chequea todos los grupos a los que pertenece
el usuario para comprobar sus derechos de acceso. Aun así, el comando newgrp sigue
teniendo cierta importancia. Si un usuario quiere que sus archivos tengan un grupo (GID) en
especial de entre los que posee, debe utilizar el comando newgrp en cada archivo para
cambiarlos de grupo. Esto puede ser un poco pesado, si está generando muchos archivos, así
que puede cambiar de grupo con newgrp, de forma que todos los archivos que genere tengan
el nuevo GID.
3.1.2.7. Contraseñas
Para autentificar a un usuario, este debe demostrar su identidad. Existen tres maneras por la
que un usuario puede autentificarse ante el sistema. Puede usarse una o varias de estas a la
vez:

Se puede indicar algo que se sabe (por ejemplo, una contraseña)

Se puede mostrar algo que se tiene (por ejemplo, una tarjeta)

La computadora puede considerar alguna característica personal (por ejemplo, una
huella dactilar).
Ninguno de estos sistemas es infalible. Alguien puede robar la contraseña 'husmeando' la
linea de un terminal, puede robar la tarjeta en un atraco, y si tiene un cuchillo, quizás pueda
11
“Seguridad en Sistemas Operativos y Aplicaciones - DSIV1E1”
obtener una huella dactilar. En general, cuanto más confiable sea la forma de identificación,
más complicada será de usar, y más agresivo deberá ser el agresor para violarla.
Las contraseñas son el sistema de autentificación más simple: son un secreto que se comparte
con la computadora. Al iniciar la sesión, se escribe la contraseña para demostrar a la
computadora de quién se trata. La computadora se asegura de que la contraseña corresponde
al nombre de usuario que se ha especificado. Si corresponde, se puede continuar.
En el sistema UNIX no se despliega la contraseña, es decir, no se escribe en el terminal a
medida que se teclea. Esto proporciona protección adicional si alguien está mirando por
encima del hombro del que escribe. Esto puede parecer trivial, pero constituye la primera
medida de seguridad.
Las contraseñas son la primera línea de defensa de UNIX contra los extraños que quieren
penetrar en el sistema. Aunque se puede penetrar en el sistema o robar información a través
de la red sin abrir una sesión, muchas intrusiones se deben a contraseñas mal elegidas y mal
protegidas.
En los sistemas personales de escritorio no se usan contraseñas. La seguridad se basa en
métodos físicos como paredes, puertas y cerraduras. En algunos ambientes de confianza
tampoco se usan contraseñas, la confianza y el respeto pueden ser suficientes como medida
de seguridad.
Pero cuando una computadora está conectada a un modem y se puede acceder desde casi
cualquier parte del mundo, o cuando está conectada a una red, sobre todo Internet, entonces
las contraseñas son absolutamente necesarias. Si una cuenta de una computadora que
pertenece a una red se ve comprometida, puede poner en peligro a toda la red.
Las contraseñas convencionales han sido parte de UNIX desde sus primeros años. La ventaja
de las contraseñas es que funcionan sin un equipo especial (como lectores de tarjeta y de
huellas digitales).
12
“Seguridad en Sistemas Operativos y Aplicaciones - DSIV1E1”
En la actualidad las contraseñas convencionales en sistemas de red (la mayoría) no son
suficiente. Es necesario usar contraseñas descartables o criptografía, o ambas.
En algunas versiones de UNIX, si alguien intenta iniciar una sesión varias veces seguidas de
forma inválida se bloquea la cuenta. Sólo el administrados puede desbloquearla. El bloqueo
protege al sistema de quienes intentan adivinar una contraseña y avisa de que alguien ha
intentado penetrar en la cuenta.
Esta táctica puede ser utilizada en ataques de negación de servicio, para bloquear a ciertos
usuarios del sistema, o simplemente para fastidiar. En lugar del bloqueo, algunos sistemas
(como Linux) introducen un retardo mayor cada vez que se falla una conexión desde un
terminal, lo que limita los ataques de negación del servicio, cumpliendo el mismo efecto que
el bloqueo.
El cambio de contraseña es otro momento crítico. El comando passwd, que sirve para cambiar
la contraseña, solicita primero la contraseña anterior antes de la nueva. Así se evita que
alguien se siente en un terminal abierto y cambie la contraseña. Dejar un terminal abierto sin
protección, es un fallo de seguridad bastante grave, pero, por lo general, bastante común.
El comando passwd, también requiere que se repita la contraseña. Esto evita que, por un
error tipográfico, se cambie la contraseña por una desconocida.
Si se recibe un correo del administrador pidiendo que se cambie la contraseña a una
determinada, se debe ignorar y avisar al administrador. Este tipo de mensajes se envía con
frecuencia a usuarios novatos. Si se cumple la orden, puede tener consecuencias
devastadoras.
Si se comete un error, o se olvida la contraseña y se pierde es acceso a la cuenta, hay que
recurrir al administrador. Este no puede descifrar la contraseña de ningún usuario. Pero
puede eliminar la contraseña o cambiarla, (esta parece la mejor opción) sin dar la contraseña
vigente.
13
“Seguridad en Sistemas Operativos y Aplicaciones - DSIV1E1”
Uno de los fallos más habituales es asignar como contraseña el nombre de usuario. Esta es en
algunos sistemas una práctica habitual cuando se crea un usuario. Se debe obligar al usuario
a cambiar la contraseña en la primera sesión. Si no lo hace, es probable que cualquiera que
intente entrar en la computadora no tarde más de diez minutos en conseguirlo.
En general, se deben evitar las siguientes contraseñas:

El nombre propio, el de la esposa o del socio

En nombre de la mascota o del hijo

Los nombres de amigos o compañeros de trabajo

Los nombres de los personajes favoritos

El nombre del jefe

El nombre de cualquier persona

El nombre del sistema operativo que se está utilizando

El nombre de la computadora que se usa

El número de teléfono o el de la matrícula del coche

Cualquier parte del c.i. o número de la Seguridad Social

Cualquier cumpleaños

Cualquier otra información que sea fácil de averiguar (dirección, universidad, etc.)

Cualquier forma del nombre de usuario (por ejemplo, en mayúsculas o con letras
dobles)

Cualquier palabra que aparezca en un diccionario en cualquier idioma.

Nombres propios de lugares o personas

Contraseñas que sean una repetición de la misma letra

Patrones simples de letras del teclado: por ejemplo, qwerty

Cualquiera de éstos escrito al revés

Cualquiera de éstos con un dígito al principio o al final

En general, cualquier combinación de cualquiera de las anteriores
El motivo de estas recomendaciones, es que uno de los ataques más habituales consiste
en conseguir el archivo/etc/passwd de la computadora, y utilizar después un generador
de contraseñas. Estos programas (como el programa Crack) utilizan un diccionario y un
14
“Seguridad en Sistemas Operativos y Aplicaciones - DSIV1E1”
archivo de normas. En el archivo de normas se encuentran reglas para combinar las
palabras del diccionario. Así se genera una lista de posibles contraseñas que se encriptan
(el algoritmo es público) y se comparan con las contenidas en el archivo /etc/passwd.
3.1.2.8. Usuarios especiales: el superusuario
Además de los usuarios normales, UNIX tiene varios usuarios especiales para propósitos
administrativos y contables. Ya se han mencionado algunos. El más importante es el root, el
superusuario.
Todos los sistemas UNIX tienen un usuario especial en el archivo/etc/passwd cuyo UID es 0.
Este es realmente el único usuario realmente especial del sistema, los demás son especiales
porque son propietarios de determinados archivos o pertenecen a determinados grupos (que
a su vez tienen archivos importantes).
La cuenta root es la identidad que usa el sistema operativo para llevar a cabo sus funciones
básicas, tales como el inicio y la terminación de sesiones de usuario, el registro de la
información contable y la administración de dispositivos de entrada/salida. Por esta razón, el
superusuario tiene el control de casi todo el sistema operativo: cualquier programa ejecutado
por root puede eludir casi todas las restricciones de seguridad y se desactivan casi todas las
verificaciones y advertencias.
Como se indicó en la sección sobre el identificador de usuario (UID), dos cuentas que tengan
el mismo UID son la misma para el sistema operativo. De esta manera, cualquier cuenta que
tenga el UID 0 tiene los privilegios del superusuario. El nombre de usuario root es
simplemente convencional.
Hay que sospechar inmediatamente de cualquier cuenta que aparezca en el sistema con UID
0 que no haya sido creada por el administrador. Estas cuentas se añaden con frecuencia por
personas que penetran en las computadoras como una manera sencilla de obtener privilegios
de superusuario en el futuro.
La cuenta root no se ha diseñado para que el administrador la use como cuenta personal.
Debido a que se inhabilitan todas las pruebas de seguridad para el superusuario, un error
tipográfico fácilmente puede destruir todo el sistema.
Con frecuencia el administrador de un sistema UNIX tendrá que convertirse en superusuario
para llevar a cabo funciones administrativas. Este cambio de estado se puede lograr mediante
el comando su para crear un intérprete de comandos privilegiado. Cuando se tiene la
15
“Seguridad en Sistemas Operativos y Aplicaciones - DSIV1E1”
capacidad del superusuario se deben tomar precauciones extremas. Cuando cese la necesidad
de tener este tipo de acceso, el administrador debe cerrar el intérprete de comandos
privilegiado.
Cualquier proceso que tiene UID efectivo 0 se ejecuta como si fuera el superusuario, es decir,
cualquier proceso con UID 0 se ejecuta sin verificaciones de seguridad y puede hacer
prácticamente lo que sea. Las verificaciones y controles de seguridad se ignoran en el caso del
superusuario, aunque la mayor parte de los sistemas sí registran en las bitácoras y auditan
algunas de las acciones del superusuario.
El usuario es la principal debilidad de seguridad del sistema operativo UNIX. Dado el privilegio
del superusuario, las personas que penetran en un sistema UNIX tratan de convertirse en el
superusuario.
Para evitar este problema con el superusuario, se ha intentado varias veces diseñar un
sistema UNIX seguro (que cumpla todos los requisitos para un sistema altamente confiable)
adoptando la estrategia de dividir los privilegios del superusuario en muchas categorías.
Lamentablemente estos intentos a menudo fallan. Casi siempre, muchos de los privilegios en
los que se divide el superusuario pueden usarse para obtener los demás. Se cambia un gran
fallo de seguridad por otros más pequeños que llevan al mismo final.
3.1.2.9. El comando su
A veces un usuario debe tomar la identidad de otro. Po ejemplo si se desea acceder a archivos
propios estando sentado delante el terminal de un amigo. En lugar de cerrar la sesión del
amigo e iniciar una propia, UNIX permite cambiar temporalmente el número de identificación
de usuario. El comando que lo permite se llama su, que son las iniciales de “substitute user”
(sustituir usuario).su requiere que se use la contraseña del usuario al que se está cambiando.
Los procesos en sistemas UNIX tienen al menos dos identidades encada momento.
Normalmente estas dos identidades son la misma. La primera identidad es el UID real. El UID
real es la identidad verdadera y coincide, normalmente con el nombre de usuario con el que
se inició la sesión. A veces se quiere asumir la identidad de otro usuario para acceder a algunos
archivos o ejecutar algunos comandos. Esto se puede lograr iniciando una sesión con el otro
16
“Seguridad en Sistemas Operativos y Aplicaciones - DSIV1E1”
nombre y obteniendo de esa forma un intérprete de comandos cuyo proceso subyacente
tenga un UID igual al del usuario.
Como alternativa, si sólo se desea ejecutar algunos comandos con la identidad de otro
usuario, se puede emplear el comando su para crear nuevos procesos. Esto ejecutará otra
copia del intérprete de comandos que tendrá la identidad (UID real) del otro usuario. Para
emplear el comando su es necesario conocer la contraseña del otro usuario o ser en ese
momento el superusuario.
Si se escribe su sin un nombre de usuario, se indica a UNIX que se quiere convertir en
superusuario. Entonces se solicita la contraseña del superusuario. Si la contraseña de root se
escribe correctamente, se ejecuta un intérprete de comandos con UID 0. Al convertirse en
superusuario, el prompt cambiará por defecto al carácter '#', lo que recordará los nuevos
poderes que se han adquirido.
Cuando se usa en comando su para convertirse en superusuario, siempre debe usarse la
trayectoria completa del comando/bin/su. Al hacerlo así, se asegura la ejecución del comando
su auténtico y de que no se ha ejecutado algún otro comando su que se encuentre en la
trayectoria de búsqueda. Esto es una manera importante de protegerse y proteger la
contraseña del superusuario contra algún caballo de Troya.
Es recomendable invocar al comando su con un argumento simple en forma de guion cuando
se quiere convertir en superusuario:
$ /bin/su
De esta forma, su invoca al intérprete de comandos de forma que este lea todos lo a archivos
de configuración necesarios y simule un inicio de sesión. Esto es importante porque así se
evita que la trayectoria de búsqueda (PATH) sea la del usuario que invoco su y no la del
superusuario.
Muchas versiones registran los intentos fallidos del comando su. Las versiones más viejas de
UNIX enviaban explícitamente a la consola los avisos de los intentos fallidos de su y también
los colocaban en el archivo /var/adm/messages. Las versiones más modernas registran los
17
“Seguridad en Sistemas Operativos y Aplicaciones - DSIV1E1”
intentos fallidos de usar su a través del programa syslog, el cual permite enviar los mensajes
que se quieran a un archivo específico o anotarlos en bitácoras que estén en computadoras
remotas a través de la red.
3.2. Sistema de Ficheros de Unix
3.2.1.
Concepto
Mecanismo software que permite crear, almacenar, recuperar, proteger y gestionar ficheros. A
los
ficheros se le asocia información adicional como ser, permisos de acceso, atributos, etc
(metadatos)
Los archivos pueden contener textos, documentos, código fuente, ejecutables, directorios,
páginas web, etc.
UNIX no impone estructura ni interpretación a la información contenida en un fichero. Estas
dependen de la aplicación que la utilizan.
3.2.2.
Directorios y estructura
Son nodos del sistema de archivos y contienen otros nodos del sistema.
18
“Seguridad en Sistemas Operativos y Aplicaciones - DSIV1E1”
Descripción
Elemento
/etc
Contiene archivos de configuración que varían
según la máquina. Estos son algunos ejemplos:
/etc/hosts
/etc/passwd
El directorio /etc contiene los archivos que
generalmente se utilizan en la administración del
sistema. La mayoría de mandatos que residían
previamente en el directorio /etc residen ahora
en el directorio /usr/sbin. Sin embargo, por
compatibilidad, el directorio /usr/sbin contiene
enlaces simbólicos con las ubicaciones de algunos
archivos ejecutables. Estos son algunos ejemplos:
/etc/chown es un enlace simbólico con
/usr/bin/chown.
/etc/exportvg es un enlace simbólico con
/usr/sbin/exportvg.
/bin
El enlace simbólico con el directorio /usr/bin. En
sistemas de archivos UNIX anteriores, el
directorio /bin contenía mandatos del usuario
que ahora residen en el directorio /usr/bin.
/sbin
Contiene los archivos necesarios para arrancar la
máquina y montar el sistema de archivos /usr. La
mayoría de mandatos utilizados durante el
arranque provienen del sistema de archivos de
disco RAM de la imagen de arranque; por tanto,
muy pocos mandatos residen en el directorio
/sbin.
19
“Seguridad en Sistemas Operativos y Aplicaciones - DSIV1E1”
/dev
Contiene nodos de dispositivos para archivos
especiales de dispositivos locales. El directorio
/dev contiene archivos especiales para unidades
de cintas, impresoras, particiones de disco y
terminales.
/tmp
Sirve como punto de montaje para un sistema de
archivos que contiene archivos temporales
generados por el sistema. El sistema de archivos
/tmp es un directorio vacío.
/var
Sirve como punto de montaje para archivos que
varían en cada máquina. El sistema de archivos
/var está configurado como un sistema de
archivos porque los archivos que contiene
tienden a crecer. Consulte el apartado Sistema de
archivos /var para obtener más información.
/u
Enlace simbólico para el directorio /home.
/usr
Contiene archivos que no cambian y que las
máquinas pueden compartir, por ejemplo,
ejecutables y documentación ASCII.
Las máquinas autónomas montan la raíz de un
sistema de archivos local independiente en el
directorio /usr. Las máquinas sin discos y las
máquinas con recursos de disco limitados
montan un directorio desde un servidor remoto
en el sistema de archivos /usr. Consulte el
apartado Sistema de archivos /usr para obtener
información acerca del árbol de archivos
montado en el directorio /usr.
20
“Seguridad en Sistemas Operativos y Aplicaciones - DSIV1E1”
/home
Sirve como punto de montaje para un sistema de
archivos que contiene directorios iniciales de
usuario. El sistema de archivos /home contiene
archivos y directorios organizados por usuario.
En una máquina independiente, el directorio
/home está contenido en un sistema de archivos
independiente cuya raíz está montada en el
sistema de archivos raíz del directorio /home. En
una red, un servidor puede contener archivos de
usuario que se pueden acceder desde varias
máquinas. En este caso, la copia del servidor del
directorio /home se monta remotamente en un
sistema de archivos /home local.
/export
Contiene los directorios y archivos de un servidor
destinados a clientes remotos.
Consulte el apartado Directorio /export para
obtener más información acerca del árbol de
archivos que reside bajo el directorio /export.
/lib
Enlace simbólico con el directorio /usr/lib.
Consulte el apartado Sistema de archivos /usr
para obtener más información.
/tftpboot
Contiene imágenes de arranque e información de
arranque para clientes sin disco.
3.2.3 Niveles de acceso a la información
Todo usuario tiene la posibilidad de crear, modificar y borrar archivos. Cada archivo tiene tres modos de
acceso diferentes:
❖ Acceso para lectura "r". Se permite acceder para consultar el contenido del archivo sin
modificarlo.
❖ Acceso para escritura "w". Se permite modificar el contenido del archivo.
❖ Acceso para ejecución "x". El archivo puede ser ejecutado (por ejemplo, un programa
compilado).
21
“Seguridad en Sistemas Operativos y Aplicaciones - DSIV1E1”
En los sistemas multiusuario se hace necesario controlar el acceso a la información
asegurando su privacidad. Como ya se ha visto anteriormente, cada usuario del sistema tiene
un número identificador (UID) único dentro del sistema y también pertenece a un grupo de
usuarios identificado unívocamente dentro del sistema por un número (GID). A estos números
se les asocia unos nombres lógicos que se denominan login en el caso del UID y nombre de
grupo en el caso del GID. Por lo tanto, una manera de identificar la información perteneciente
a un usuario (el caso que nos ocupa son sus archivos), es que cada archivo lleva asociado el
identificador de usuario propietario de la información y la del grupo a que este usuario
pertenece.
De la combinación de los tres modos de acceso explicados anteriormente rwx y los atributos
propietarios de un archivo y grupo al que pertenece dicho propietario, surgen los
denominados niveles de acceso a la información. Estos son tres:
❖ Nivel de usuario. Son los modos de acceso a la información permitidos para el propietario del
archivo.
❖ Nivel de grupo. Modos de acceso a la información permitidos para cualquier usuario que
pertenezca al mismo grupo que el del propietario del archivo.
❖ Nivel de otros. Modos de acceso a la información permitidos para los usuarios del sistema
que ni son el propietario del archivo ni pertenecen a su mismo grupo.
❖ Permisos: Como se explicó anteriormente, el usuario puede establecer a voluntad que otros
usuarios tengan permiso de lectura (r) escritura (w) y de ejecución (x) de cada archivo y
directorio (modos de acceso a la información). Para ello, cada archivo lleva asociada una
cadena de 10 caracteres de la siguiente forma:
22
“Seguridad en Sistemas Operativos y Aplicaciones - DSIV1E1”
donde el carácter - en el campo del tipo de archivo indica que es un archivo ordinario, y en cualquiera de
los otros campos supone que el permiso (rwx) NO está habilitado.
❖ Número de enlaces (links): un enlace es un mecanismo que permite hacer referencia a un
archivo a través de diferentes nombres. Con ello se logra un aprovechamiento del espacio
en disco.
❖ Nombre del propietario (usuario): Es el código que identifica al usuario propietario del
archivo o directorio en el sistema. Coincide con el login de la cuenta.
❖ Nombre del grupo. Indica el nombre del grupo al que está adscrito el propietario del
archivo.
❖ Tamaño del archivo: Indica el número de bytes que contiene el archivo. En el caso de los
archivos especiales, aquí aparecerán dos valores que se denominan major number y minor
number.
❖ Fecha y hora de la última modificación.
❖ Nombre del archivo.
23
“Seguridad en Sistemas Operativos y Aplicaciones - DSIV1E1”
3.3. Mantenimiento de sistemas confiables
El mantenimiento de sistemas confiables se refiere a las técnicas utilizadas para evitar la pérdida de
datos y para responder a los ataques de los intrusos, así como el trabajo que tendrá que realizar el
administrador para mantener el sistema seguro.
3.3.1. Criptografía
Mantener la información confidencial es uno de los principales objetivos de seguridad en los
sistemas informáticos, pero en la mayoría de los casos no solo se puede confiar en la
seguridad del sistema. Uno de esos casos es al enviar información a través de medios de
comunicación no confiable, esto obliga al usuario a hacer uso de la criptografía.
En la actualidad existen muchos métodos y aplicaciones de criptografía.
Pero no siempre fue así, hasta la década de los 70, todos los sistemas de criptografía
conocidos funcionaban con una clave de cifrado igual a la de descifrado (cifrado simétrico) y
si eran diferentes una podía obtenerse de la otra en un tiempo y con unos recursos
razonables. La seguridad de estos sistemas dependía del mantenimiento en secreto de la
clave. Posteriormente debía transmitirse del emisor al receptor por medio de un canal seguro
diferente del canal del sistema criptográfico.
Sin embargo, en 1976 de desarrollo sistemas de criptografía que no requerían transferir una
clave secreta entre el transmisor y el receptor, esto ayudaba a no estar buscando un canal
seguro para transmitir una clave secreta. En estos nuevos sistemas la clave de denominaba
Publica, sin embargo, la clave de descifrado se denominaba como clave Privada.
Otro sistema de cifrado es el denominado Irreversible, en estos sistemas no es posible
obtener el mensaje en claro, es decir que solo trabajan en un solo sentido, el que lleva el
texto en claro, pero no al contrario. Este tipo de cifrado es utilizado en aplicaciones que no
necesiten descifrar el criptograma.
Por lo anteriormente observado para el almacenamiento de contraseñas de usuario en
aplicaciones se utiliza mucho el cifrado irreversible, cuando el usuario introduce su
contraseña, este se cifra y se compara con la contraseña almacenada.
3.3.1.1. Función de cifrado en UNIX
En UNIX existe la función crypt() que realiza el hashing de contraseñas agregando código
adicional para disuadir los intentos de búsqueda clave (ataque por Fuerza Bruta).
24
“Seguridad en Sistemas Operativos y Aplicaciones - DSIV1E1”
char * crypt(const char *key, const char *salt);
Esta función nos permite utilizar diferentes algoritmos para el cifrado. Actualmente, estos
incluyen el estándar de cifrado de datos NBS (DES), Hash MD5, NT-Hash (compatible con el
esquema NT de Microsoft) y Blowfish. El algoritmo utilizado dependerá del valor en el
parámetro de la función *Salt (siguiendo el estándar de encriptado Modular Crypt Format
(MCF)), si DES y/o Blowfish están instalados o no. El primer argumento para encriptar son los
datos para hash (generalmente una contraseña), en una cadena terminada en NULL. El
segundo es la *salt, en una de tres formas:

Extendido Si comienza con un guion bajo ("_") entonces el DES Extendido se utiliza
para interpretar tanto la clave como el parámetro *salt.

Modular Si comienza con la cadena "$digit$", se utiliza el formato de encriptación
modular.

Tradicional Si nada de lo anterior es cierto, asume el formato tradicional, utilizando
la cadena de texto completo como valor en salt.
Todas las rutinas están diseñadas para consumir mucho tiempo.
I.
Formato extendido DES
La clave se divide en grupos de 8 caracteres (el último grupo es rellenado con NULL) y los
7 bits de orden inferior de cada carácter (56 bits por grupo) se utilizan para formar la clave
DES de la siguiente manera:
El primer grupo de 56 bits se convierte en la clave DES inicial. Para cada grupo adicional,
el XOR del cifrado de la clave DES actual se aplica en los siguientes grupos de bits para sus
claves DES.
El parámetro salt es una matriz de 9 caracteres, esta matriz está formado de un guion
bajo (_) seguido de 4 bytes de recuento de iteraciones y 4 bytes para el parámetro salt.
La función principal de salt es introducir desorden en el algoritmo DES en uno de
16.777.216 o 4096 formas posibles (por ejemplo, con 24 o 12 bits: si el bit i del parámetro
salt es establecido, entonces los bits i e i+24 se intercambian en la salida de DES). La clave
DES se usa para encriptar una constante de 64 bits usando iteraciones de conteo. El valor
devuelto es una cadena terminada en NULL, 20 o 13 bytes (más NULL) de longitud, que
consta de la sal seguida del codificado Cifrado de 64 bits.
25
“Seguridad en Sistemas Operativos y Aplicaciones - DSIV1E1”
II.
Encriptación Modular
Si el parámetro salt comienza con la cadena $dígit$, entonces el formato de Encriptación
Modular es usado, El valor de dígit representa qué algoritmo se usa en el cifrado. El valor
del parámetro salt debe terminar con el carácter de cadena (NULL) o el signo de dólar ($).
Los algoritmos soportados actualmente son:
1. MD5
2. Blowfish (pez globo)
3. NT-Hash
4. (sin usar)
5. SHA-256
6. SHA-512
Se pueden agregar fácilmente otros formatos de encriptado.
III.
Encriptación tradicional
El algoritmo utilizado dependerá si la función crypt_set_format() ha sido llamado y si se
ha especificado un formato predeterminado global.
A menos que se haya especificado un valor predeterminado global o establecido el
formato en crypt_set_format(), se utiliza el formato predeterminado incorporado. La
forma en que el parámetro salt es usado dependerá del algoritmo para el hash.
int crypt_set_format(const char *string);
La función crypt_get_format() devuelve una cadena constante que representa el nombre
del algoritmo utilizado actualmente. Algunos de los valores devueltos son 'des', 'blf',
'md5', 'sha256', 'sha512' y 'nth'.
const char* crypt_get_format(void);
La función crypt_r() se comporta de manera idéntica a crypt(), excepto que el valor
resultante se almacena en datos, lo que la hace segura para subprocesos.
char * crypt_r(const char *key, const char *salt, struct crypt_data *data);
26
“Seguridad en Sistemas Operativos y Aplicaciones - DSIV1E1”
3.3.2. Protección de cuentas
Las cuentas de usuario en una computadora son la parte más importante que tiene un
sistema informático, una de sus funciones es conectar al usuario con el mundo exterior,
algunas cuentas están bien protegidas, pero otras pueden no estarlo. El administrador de
sistemas es el encargado de buscar puntos débiles y corregirlos.
3.3.2.1. Cuentas sin contraseñas
Para las cuentas de usuario, las contraseñas son la primera línea de defensa de un sistema.
En una cuenta sin contraseña cualquiera puede que cualquiera que conozca el nombre de
la cuenta puede ingresar. Muchos de los ataques que han tenido éxito, fue solo porque
las cuentas de sus víctimas no tenían contraseñas o eran fáciles de adivinar.
En la versión SVR4 de UNIX, se pueden rastrear cuentas sin contraseña usando la
instrucción:
# logins -p
También se pueden rastrear las cuentas sin contraseña usando la instrucción:
% cat-passwd | awk -F: 'length($2)<1
{print $1}'
manurod
maripet
3.3.2.2. Cuentas predeterminadas
La mayoría de los sistemas entregan a los usuarios este tipo que cuentas. Estas cuentas
tienen contraseñas estándar, como ser los antiguos sistemas basados en UNIX tenían una
cuenta Root sin contraseña.
En la actualidad para solucionar este problema muchos distribuidores hicieron que el
sistema operativo solicite contraseñas para cuentas especiales como Root cuando se
instala por primera vez.
3.3.2.3. Cuentas que ejecutan servicios
UNIX permite crear cuentas que solo ejecuten un programa o servicio en lugar del
intérprete de comandos. Si el sistema tiene este tipo de cuenta instalada, alguien puede
usarlas para encontrar la hora o determinar quién está conectado a la computadora al
teclear simplemente el nombre de la instrucción en el indicador login. Si el administrador
27
“Seguridad en Sistemas Operativos y Aplicaciones - DSIV1E1”
decide configurar una cuenta de este tipo, se debe asegurar de que la instrucción o
programa que se ejecuta no reciba ninguna entrada desde teclado. Específicamente, estos
programas no deben tener escapes al intérprete de comandos.
3.3.2.4. Cuentas abiertas
En algunos negocios de atención al cliente los sistemas proporcionan cuentas en las cuales
los visitantes acceden a ciertos tipos de servicios (juegos, internet, red). Estas cuentas son
definidas con los nombres de: Play, Open o Guest y no suelen necesitar de contraseña.
El riesgo es que debido a que los nombres de estas cuentas son conocidos o fáciles de
adivinar, representan potencialmente violaciones a la seguridad, ya que un atacante
puede entrar inicialmente a una de estas cuentas para rastrear desde allí fallos de
seguridad de mayor índole.
3.4. Auditoría en UNIX
El sistema de log en UNIX
La localización de ficheros y ciertas ordenes relativas a la auditoría varían de unas máquinas a
otras, por lo que es muy recomendable consultar las páginas del manual antes de ponerse a
configurar el sistema de auditoría en un equipo concreto. La principal diferencia entre los
diferentes sistemas es el denominado process accounting o simplemente accounting, consistente
en registrar todos los programas ejecutados por cada usuario; evidentemente, los informes
generados en este proceso pueden llegar a ocupar muchísimo espacio en disco (dependiendo del
número de usuarios en nuestro sistema) por lo que solo es recomendable en situaciones muy
concretas, por ejemplo para detectar actividades sospechosas en una maquina o para cobrar por
el tiempo de CPU consumido.
En los sistemas System V el process accounting esta desactivado por defecto; se puede iniciar
mediante /usr/lib/acct/startup, y para visualizar los informes se utiliza la orden acctcom. En la
familia BSD los equivalentes a estas órdenes son accton y lastcomm; en este caso el process
accounting esta inicializado por defecto.
El demonio syslogd
El demonio syslogd (Syslog Daemon) se lanza automáticamente al arrancar un sistema UNIX, y es
el encargado de guardar informes sobre el funcionamiento de la máquina. Recibe mensajes de las
diferentes partes del sistema (núcleo, programas) y los envía y/o almacena en diferentes
28
“Seguridad en Sistemas Operativos y Aplicaciones - DSIV1E1”
localizaciones, tanto locales como remotas, siguiendo un criterio definido en el fichero de
configuración /etc/syslog.conf, donde especificamos las reglas a seguir para gestionar el
almacenamiento de mensajes del sistema.
Algunos archivos de log
En función de la configuración del sistema de auditoría de cada equipo UNIX los eventos que
sucedan en la maquina se registraran en determinados ficheros; aunque podemos loggear en
cualquier fichero (incluso a través de la red o en dispositivos, como veremos luego), existen ciertos
archivos de registro habituales en los que se almacena información. A continuación, comentamos
los más comunes y la información que almacenan.
-
syslog
El archivo syslog (guardado en /var/adm/ o /var/log/) es quizás el fichero de log más importante
del sistema; en él se guardan, en texto claro, mensajes relativos a la seguridad de la máquina,
como los accesos o los intentos de acceso a ciertos servicios.
-
messages
En este archivo de texto se almacenan datos informativos de ciertos programas, mensajes de baja
o media prioridad destinados más a informar que a avisar de sucesos importantes, como
información relativa al arranque de la maquina; no obstante, como sucedÍa con el fichero syslog,
en función de /etc/syslog.conf podremos guardar todo tipo de datos.
-
wtmp
Este archivo es un fichero binario (no se puede leer su contenido directamente volcándolo con
cat o similares) que almacena información relativa a cada conexión y desconexión al sistema.
-
utmp
El archivo utmp es un fichero binario con información de cada usuario que está conectado en un
momento dado; el programa /bin/login genera un registro en este fichero cuando un usuario
conecta, mientras que init lo elimina cuando desconecta.
-
lastlog
El archivo lastlog es un fichero binario guardado generalmente en /var/adm/, y que contiene un
registro para cada usuario con la fecha y hora de su última conexión.
-
faillog
Este fichero es equivalente al anterior, pero en lugar de guardar información sobre la fecha y hora
del último acceso al sistema lo hace del último intento de acceso de cada usuario; una conexión
es fallida si el usuario (o alguien en su lugar) teclea incorrectamente su contraseña.
29
“Seguridad en Sistemas Operativos y Aplicaciones - DSIV1E1”
-
loginlog
Si en algunas versiones de UNIX (como Solaris) creamos el archivo /var/adm/loginlog (que
originalmente no existe), se registraran en él los intentos fallidos de login, siempre y cuando se
produzcan cinco o más de ellos seguidos.
-
btmp
En algunas distribuciones de UNIX, como Linux o HP-UX, el fichero btmp se utiliza para registrar
las conexiones fallidas al sistema, con un formato similar al que wtmp utiliza para las conexiones
que han tenido éxito.
-
sulog
Este es un fichero de texto donde se registran las ejecuciones de la orden su, indicando fecha,
hora, usuario que lanza el programa y usuario cuya identidad adopta, terminal asociada y éxito
('+') o fracaso ('-') de la operación.
-
debug
En este archivo de texto se registra información de depuración (de debug) de los programas que
se ejecutan en la maquina; esta información puede ser enviada por las propias aplicaciones o por
el núcleo del sistema operativo.
3.5. Amenazas
Las amenazas y vulnerabilidades son los puntos débiles del sistema, a través de los cuales la
seguridad se puede ver afectada.
Se clasifican principalmente en tres tipos: naturales, no intencionales e intencionales.
3.5.1.
Amenazas naturales
Son las amenazas a las que todo elemento físico está expuesto: incendios, temblores, terremotos,
rayos, fallas de energía eléctrica, ect. Casi nunca es posible prever este tipo de desastre, pero es
posible detectarlos rápidamente (mediante alarmas y detectores, por ejemplo), minimizar los
daños causados (utilizando mecanismos automáticos) y tratar de evitar sus ocurrencias en lo
posible (implementando políticas de uso que reduzcan los riesgos).
30
“Seguridad en Sistemas Operativos y Aplicaciones - DSIV1E1”
3.5.2.
Amenazas no intencionales
Son los peligros causados por la ignorancia. Por ejemplo, un usuario que por error borra sus
propios archivos, o un administrador sin la capacitación necesaria que hace cambios erróneos en
un archivo de configuración del sistema.
Estas amenazas también se presentan por descuido: dejar caer una cinta magnética, poner un
disco cerca de un imán, etc. A pesar de que no tienen nada de atractivo para la opinión pública,
son mayores y mucho más frecuentes los daños causados por acciones no intencionales que por
malicia.
3.5.3.
Amenazas intencionales
Estas son las amenazas que llaman la atención, las que acaparan las primeras planas de los
periódicos cuando se conocen y las que cautivan la imaginación del público. Sin embargo (y
afortunadamente) son las menos frecuentes. Los ataques intencionales pueden ser realizados por
dos tipos de personas: Externos. Pueden ser intrusos ocasionales, que por suerte o por un poco
de habilidad pudieron obtener acceso al sistema. También pueden ser intrusos decididos que
atacan el sistema con un objetivo específico, que puede ser la obtención de dinero, el chantaje a
la empresa, la obtención de información clasificada, etc. También el objetivo puede ser
únicamente la diversión, el reto de vencer los mecanismos de seguridad y la fama que ello puede
crear en el bajo mundo de la computación. Vale la pena en este punto definir a los atacantes
mediante un término. A continuación, se presenta esta definición. Normalmente se utiliza la
palabra hacker para referirse a las personas que hacen uso no autorizado de un sistema de
cómputo. Sin embargo, este término tiene una larga y honorable historia, pues surgió inicialmente
para referirse a una persona con un gran interés en las computadoras, en explorarlas al máximo
y llevarlas hasta sus límites. Esto significa que existen muchas personas que se consideran a sí
mismos como hackers, y a quienes no les agrada su utilización para denotar a un criminal. Es por
ello que se ha acuñado el término cracker para denotar a quienes utilizan los sistemas de cómputo
de forma ilegal. Con este término o con la palabra intruso se hará referencia en este texto a los
“criminales del cómputo”. Internos. A pesar de que normalmente se les tiene más miedo a los
atacantes externos, las estadísticas muestran que alrededor del 80% de los ataques exitosos son
llevados a cabo por personal interno, usuarios legales del sistema, pero que hacen uso del acceso
con el que cuentan para llevar a cabo actividades ilícitas. En algunas ocasiones, se trata de
empleados inconformes o demasiado ambiciosos, que hacen uso de sus privilegios para causar
31
“Seguridad en Sistemas Operativos y Aplicaciones - DSIV1E1”
algún daño. Los ejemplos clásicos son el del encargado de la nómina que hace cambios para que
todos los datos sean borrados en caso de que él sea despedido, o el encargado de los datos
financieros
que
desvía
unos
pocos
centavos
mensuales
a
su
cuenta
personal.
En los más de los casos, sin embargo, se trata tan solo de empleados distraídos, que olvidan
cambiar su clave de acceso, o la anotan en un papel y lo dejan sobre su escritorio, o dejan los
impresos confidenciales en una pila en el suelo. Cualquiera de estos detalles puede ser
aprovechado por gente malintencionada casi siempre también internos a la empresa para hacer
mal uso del sistema o de la información.
3.5.3.1. Tipos de amenazas programadas
Virus. - Un virus es una secuencia de código que se inserta en un fichero ejecutable, denominado
host, de forma que, al ejecutar el programa, también se ejecuta el virus. Generalmente esta
ejecución implica la copia del código del virus, en otros
programas. El virus necesita un programa donde insertarse para ejecutarse, por lo que no puede
ser considerado como un programa o proceso independiente.
Durante años, se ha discutido sobre la existencia de virus en el entorno UNIX. Real mente, existen
virus que infectan tanto binarios ELF como shellscripts. Sin embargo, la existencia de
virus no tiene mucho interés en sistemas UNIX, ya que generalmente sus efectos no suelen ser
muy perjudiciales en los sistemas UNIX de hoy en día.
Gusanos. - Un gusano es un programa capaz de viajar por sí mismo a través de redes de
ordenadores para realizar cualquier actividad una vez alcanzada la máquina. Aunque esta
actividad no tiene porqué entrañar peligro, un gusano puede instalar en el sistema
alcanzado un virus, atacar este sistema como haría un intruso o simplemente consumir excesivas
cantidades de ancho de banda en la red afectada.
Conejos. - Los conejos o bacterias son programas que de forma directa no dañan al sistema, sino
que se limitan a reproducirse, generalmente de forma exponencial, hasta que la cantidad de
recursos consumidos (procesador, memoria, disco) se convierte en una negación de servicio para
el sistema afectado. La mejor forma de prevenir ataques de conejos (o simples errores en los
programas, que hagan que estos consuman excesivos recursos) es utilizar las facilidades de los
núcleos de cualquier UNIX moderno ofrecen para limitar los recursos que un determinado
proceso o usuario puede llegar a consumir.
32
“Seguridad en Sistemas Operativos y Aplicaciones - DSIV1E1”
Caballos de troya. - Un caballo de Troya actual (al igual que el de la mitología griega) es un
programa que aparentemente realiza una función útil para quién lo ejecuta, pero que, en realidad,
o aparte, realiza una función que el usuario desconoce, generalmente dañina.
La forma más fácil de descubrir caballos de Troya (aparte de sufrir sus efectos una vez ejecutado)
es comparar los ficheros bajo sospecha con una copia de los originales. También es
recomendable realizar resúmenes MD5 de nuestros programas y compararlos con los resúmenes
originales.
Applets hostiles. - En los últimos años, con la proliferación de la web, Java y Javascript, han
aparecido los denominados applets hostiles, que al ser descargados intentan monopolizar o
explotar los recursos del sistema de forma inapropiada. Esto incluye desde ataques clásicos como
negación de servicio o ejecución remota de programas en la máquina cliente hasta amenazas
mucho más elaboradas, como difusión de virus, ruptura lógica de cortafuegos o uso de recursos
remotos para grandes cálculos científicos.
La propia Sun Microsystems ha reconocido el problema y está trabajando para minimizar los
potenciales efectos de estos applets. No obstante, aunque se solucionen los problemas de
seguridad del código, es probable que se puedan seguir usando applets como una forma de
ataque a los sistemas: mientras que estos programas puedan realizar conexiones por red, no
habrán desaparecido los problemas.
Bombas lógicas. - Las bombas lógicas funcionan de manera similar a los troyanos, la diferencia
entre ellos es que, así como un troyano se ejecuta cada vez que se ejecuta el programa que lo
contiene (o al que sustituye), una bomba lógica sólo se activa bajo ciertas condiciones, como una
determinada fecha, la existencia de un cierto fichero, o el alcance de cierto número de
ejecuciones. De esta manera, una bomba lógica puede permanecer en el sistema inactiva y sin ser
detectada durante mucho tiempo y sin que nadie note nada anormal hasta que el daño producido
por la bomba ya esté hecho.
33
“Seguridad en Sistemas Operativos y Aplicaciones - DSIV1E1”
Puertas traseras. - Las puertas traseras son trozos de código en un programa que permiten a
quién conoce su funcionamiento saltarse los métodos usuales de autentificación para realizar
cierta tarea. Los programadores suelen usarlas para probar su código durante el
desarrollo, pero pueden mantenerlas en el programa final, ya sea deliberada o involuntariamente.
Pensemos por ejemplo en un programa que solicita cinco claves para realizar cierta tarea, es muy
probable que el programador instale una puerta trasera una vez que ha comprobado el
funcionamiento de dichas claves.
A parte de puertas traseras en los programas, también existen otros tipos de puertas traseras.
Son las que instalan los intrusos para garantizarse el futuro acceso al sistema, como añadir un
usuario con UID 0, añadir un nuevo servicio en un puerto no utilizado o incluso utilizar cron para
reinstalar periódicamente dichas puertas en caso de que hayan sido eliminadas.
3.6. Funcionalidades e Implementaciones de Unix con referencia a la seguridad
Por sus características técnicas existen diversos sistemas operativos que se conocen como
sistemas de la familia Unix. Entre estos están FreeBSD y GNU/Linux; macOS también es un sistema
Unix al igual que Android (derivado de Linux) e iOS (derivado de Mac OS X). así que se puede
encontrar código BSD en sistemas comerciales como macOS de Apple y en las consolas PlayStation
3 y PlayStation 4 de Sony.
(Internetpasoapaso.com, s.f.)
Principales Sistemas Operativos y funcionalidades:
1. FreeBSD

Servicios Internet
FreeBSD es una plataforma ideal para ofrecer servicios de Internet como: www, FTP,
Email. Con la potencia de networking de FreeBSD, los usuarios disfrutan de alta velocidad
y servicios fiables.

Networking Security
Desde filtrado de paquetes hasta rutas o servicios de resolución de nombres, FreeBSD
puede convertir cualquier PC en un excelente Firewall de Internet, servidor de correo,
servidor de impresión y mucho más.
34
“Seguridad en Sistemas Operativos y Aplicaciones - DSIV1E1”

Y otras funcionalidades como Desarrollo de software, Navegación por la red, Educación e
investigación.
(Delgado, 2021)
2. OpenBSD
Se centra principalmente en seguridad y temas relacionados. La estrecha integración de la
seguridad, la auditabilidad, la criptografía y los problemas relacionados son su objetivo principal.
(Fuller, 2022)
3. NetBSD
Tiene como objetivo ejecutarse en tantas plataformas como sea posible. Su objetivo es ser el
sistema operativo más portátil del planeta, y parece hacer un trabajo bastante justo en ello.
(Cid, 2022)
3.6.1. TCP Wrappers
TCP Wrappers (también conocido como tcp_wrappers) es un sistema ACL de red basado en host,
utilizado para filtrar el acceso de red a los servidores de Protocolo de Internet en sistemas
operativos (similares a Unix) como Linux o BSD. Permite que las direcciones IP de host o subred,
nombres y / o respuestas de consulta ident, se utilicen como tokens en los que filtrar para fines
de control de acceso.
Un TCP Wrapper es una biblioteca que provee un control de acceso simple y administración de
logs estandarizada para aplicaciones que lo soporten, y reciban conexiones de red. Las opciones
avanzadas de TCP Wrappers le permiten un mayor control sobre la gestión de conexiones.
El único requisito para usar TCP Wrappers en FreeBSD es que el servidor inetd se inicie desde
rc.conf con la opción -Ww (es la configuración por defecto).
Si soportan TCP Wrappers, vamos a poder realizar algunos controles y logs adicionales con las
conexiones entrantes. Los TCP Wrappers son listas de control de acceso (ACL – access control list)
basadas en hosts, y utilizadas para filtrar accesos de red a los servicios locales.
35
“Seguridad en Sistemas Operativos y Aplicaciones - DSIV1E1”
Figura 7: TCP Wrappers
Es posible lanzar un ataque de denegación de servicio al servidor TCP Wrappers si un atacante o
grupo de atacantes pueden llegar a sobrecargar estos daemons con peticiones de conexión.
los TCP/Wrappers presentan una gran ventaja sobre los firewalls comunes: trabajan en capa 7
(App), por lo que pueden, entre otras cosas, filtrar consultas aun cuando se utilice cifrado.

Logging: las conexiones monitoreadas con TCP wrappers son reportadas por medio del
syslog del sistema

Control de acceso: soportan un control de acceso simple basado en patrones de
comparación.

Verificación del hostname: verifican el nombre del hostname del cliente utilizando los
servicios DNS.

Poseen protección contra spoofing.
(Córdoba, 2017)
3.6.2. Kerberos en Unix
Kerberos es un sistema/protocolo de red agregado que permite a los usuarios
identificarse a través de los servicios de un servidor seguro. Los servicios como login
remoto, copia remota, copias de ficheros de un sistema a otro y otras tantas tareas
arriesgadas pasan a ser considerablemente seguras y más controlables.
36
“Seguridad en Sistemas Operativos y Aplicaciones - DSIV1E1”
3.7. Consejos sobre seguridad en Unix

Inhabilitar todo software potencialmente peligroso

Reparar el software con errores que afecten a la seguridad

Copias de seguridad. Repare su sistema si una violación de la seguridad llegara a
ocurrir.

Instala software pare vigilar el estado del sistema

Educa a la gente que trabaja en el sistema
Si se detecta que la seguridad ha sido comprometida:

Determinar el alcance de la violación de seguridad: ¿Qué privilegios consiguió el
atacante? ¿Consiguió acceso de root? ¿Consiguió acceso sólo en el nivel de usuario?

Determina si se ha alterado el estado del sistema (ámbito del kernel o de usuario):
¿Qué software ha sido alterado? ¿Se instaló un nuevo kernel? ¿Ha sido modificado
alguno de los archivos binarios del sistema (tales como telnetd, login, etc.)? Si
sospechas que un atacante puede haber causado cualquier alteración en un sistema
operativo, podrías considerar conveniente reinstalar el sistema operativo desde un
medio seguro.

Averigua cómo se logró la irrupción: ¿Ocurrió por medio de un error de seguridad
bien conocido? Si este es el caso, asegúrate de instalar los patches correctos. ¿Tuvo
éxito la irrupción debido a una mala configuración? ¿Fue el resultado de un error
desconocido hasta el momento? Si sospechas que la irrupción ocurrió por medio de
un error nuevo, deberías advertir al FreeBSD Security Officer.

Repara el defecto de seguridad: Instala nuevo software o aplica parches al antiguo
para reparar los problemas. Inhabilita las cuentas que ya han sido comprometidas.
(Delgado, 2021)
IV.
DESARROLLO DEL LABORATORIO
Los sistemas UNIX son capaces de ejecutar una gran cantidad de procesos simultáneamente,
muchos de los cuales son servidores, lo que significa que las entidades externas pueden
conectarse y hablar con ellos.
Los problemas de seguridad pueden dividirse en diferentes categorías:
37
“Seguridad en Sistemas Operativos y Aplicaciones - DSIV1E1”

Ataques de denegación de servicios DoS

Comprometer cuentas de usuarios

Comprometer root a través de servidores accesibles

Comprometer root desde cuentas de usuario

Creación de puertas traseras
Las medidas de seguridad se implementan en un modelo multicapa que puede categorizarse:

Asegurar root y cuentas administrativas

Asegurar los servidores que se ejecuten como root los binarios suid/sgid

Asegurar cuentas de usuarios

Asegurar el fichero de password

Asegurar el núcleo del Kernel, los dispositivos en bruto y el sistema de ficheros

Detección rápida de cambios hechos al sistema
Asegurar la cuenta root y las cuentas administrativas
Si utiliza otro tipo de login como sshd asegurar que los accesos al sistema mediante root esten
deshabilitados, editar /etc/ssh/sshd_config asegurarse que “PermitRootLogin” este puesto en
NO.
Servicios como FTP son origen de grietas en la estructura del sistema, el acceso como usuario
root solo debe permitirse a través de consola.
Utilizar vipw para reemplazar cada contraseña cifrada por un solo carácter.
Antes
38
“Seguridad en Sistemas Operativos y Aplicaciones - DSIV1E1”
Después
Políticas de seguridad contraseña
Para crear Políticas de seguridad a la contraseña debemos acceder a /etc/pam.d/passwd y
configuraremos sus políticas
39
“Seguridad en Sistemas Operativos y Aplicaciones - DSIV1E1”
Desactivar Protocolos y servicios
Para poder deshabilitar protocolos innecesarios debemos de acceder a /etc/protocols y
comentamos los protocolos que no usaremos.
Para desactivar un servicio debemos detenerlo con el comando:
Service NombreServicio stop
Ejemplo:
40
“Seguridad en Sistemas Operativos y Aplicaciones - DSIV1E1”
Activar la Auditoria
El sistema operativo de Unix incluye soporte para auditoría de eventos de seguridad. La auditoría
de eventos admite el registro confiable, detallado y configurable de una variedad de eventos del
sistema relevantes para la seguridad, incluidos inicios de sesión, cambios de configuración y
acceso a archivos y redes. Estos registros pueden ser invaluables para el monitoreo del sistema
en vivo, la detección de intrusiones y el análisis post-mortem.
Para poder activarlo debemos configurar el archivo /etc/rc.conf
Añadimos auditd_enable=”YES”
Luego inicializamos la auditoria
41
“Seguridad en Sistemas Operativos y Aplicaciones - DSIV1E1”
V.
CONCLUSIONES Y RECOMENDACIONES
-
Los sistemas operativos de la familia de Unix han sido la base para crear numerosos proyectos.
-
En la actualidad la encriptación informática además de seguir realizando la misma función de que
cuando se lo empezó a utilizar, donde realizaba la encriptación de información que viajaba de un
punto a otro a través de un medio de comunicación, ahora se lo utiliza como una medida de
seguridad en la autenticación de usuario encriptando contraseñas hasta archivos almacenados en
las carpetas de usuario.
-
La importancia de brindar seguridad del login de usuarios y grupos es muy importante al utilizar
UNIX como sistema operativo, por ese motivo se llego a conocer las configuraciones correctas
para brindar seguridad.
-
Es de gran importancia que antes de la instalación de los servidores realizar previas
configuraciones para cambiar configuraciones por defecto además de habilitar las políticas de
contraseña para las contraseñas que se les asignaran a los grupos e usuarios.
-
Gracias a que UNIX intenta monitorizar todo, hace que exista un gran universo de datos
permitiendo la posibilidad de detectar actividades sospechosas, pero trae consigo la desventaja
que, al tener una mayor cantidad de datos, el análisis se hace lento por el gran volumen.
-
Dado lo complejo y peculiar que puede ser la configuración del sistema de auditoria en UNIX es
recomendable consultar el manual.
42
“Seguridad en Sistemas Operativos y Aplicaciones - DSIV1E1”
-
Existen muchos tipos de ataques hacia el ordenador por lo que es recomendado realizar algunas
configuraciones al ordenador con el fin de disminuir o eliminar el riesgo de ser atacado, mas hoy
en día que muchos trabajos se realizan de forma remota.
-
Se identificó las principales funcionalidades e implementaciones de algunos SO con Base de Unix,
como ser FreeBSD.
-
Para poder asegurar nuestros SO con base Unix se debe seguir una serie de pasos o dejar la
configuración por defecto si en todo caso viene con una configuración de seguridad activada como
es en OpenBSD.
43
“Seguridad en Sistemas Operativos y Aplicaciones - DSIV1E1”
(IBM, 2021)
VI.
REFERENCIAS
Castellanos, L. M. (04 de octubre de 2022). https://docplayer.e. Obtenido de https://docplayer.e:
https://docplayer.es/1267668-Problemas-de-seguridad-en-el-mundo-unix-linux.html
Cid, C. G. (Marzo de 2022). La seguridad en UNIX. Recuperado el 29 de Septiembre de 2022, de
http://penta.ufrgs.br/gereseg/node7.htm
Córdoba, D. (24 de enero de 2017). TCP Wrappers: qué son y cómo se utilizan en Linux. Recuperado el 30
de Septiembre de 2022, de https://juncotic.com/tcp-wrappers-se-utilizan-linux/
Delgado, S. C. (26 de enero de 2021). Recuperado el 29 de Septiembre de 2022, de
https://www.freebsd.org/es/applications/
Fuller, M. D. (2022). Who are the characters? Recuperado el 29 de septiembre de 2022, de
http://www.over-yonder.net/~fullermd/rants/bsd4linux/02
IBM. (12 de 04 de 2021). Sistema De Archivos Raiz. Obtenido de
https://www.ibm.com/docs/es/aix/7.2?topic=tree-root-file-system
Internetpasoapaso.com. (s.f.). UNIX: ¿Qué es este sistema operativo y en que se diferencia con Linux?
Recuperado el 30 de septiembre de 2022, de https://internetpasoapaso.com/unix/
Red Iris. (15 de 07 de 2002). Obtenido de Auditoria del sistema :
https://www.rediris.es/cert/doc/unixsec/node12.html
The FreeBSD Project. (29 de Mayo de 2014). Obtenido de The FreeBSD Project:
https://www.freebsd.org/cgi/man.cgi?query=passwd&sektion=5
The FreeBSD Project. (26 de Mayo de 2019). Obtenido de The FreeBSD Project:
https://www.freebsd.org/cgi/man.cgi?query=crypt&sektion=3&apropos=0&manpath=FreeBSD+
13.1-RELEASE+and+Ports
IBM (2021-04-12):
https://www.ibm.com/docs/es/aix/7.2?topic=tree-root-file-system
Universidad de Almeira:
https://w3.ual.es/~jjfdez/SOA/pract2.html
(Castellanos, 2022)
44
Related documents
Download