Download Sistemas Operativos 3 Tema: Seguridad Del Sistema Y Usuarios Facil

Document related concepts
Transcript
Nombre:
Wandirys Lappost Díaz
Matrícula:
2013-1534
Materia:
Sistemas Operativos 3
Tema:
Seguridad Del Sistema Y Usuarios
Facilitador:
José Doñé
Índice
1. Introducción
2. Seguridad Del Sistema Y Usuarios
3. Los Usuarios En Sistemas GNU/Linux Y En Ubuntu
3.1 Usuarios En Los Sistemas GNU/Linux
3.2 El Usuario Superadministrador
4. Malware En Linux
4.1 Malware En Linux
4.2 Virus Multiplataforma
5. Usuarios Y Seguridad Del Sistema
6. Tipos De Usuarios
6.1 Usuario root
6.2 Usuario daemon
6.3 Usuario bin
6.4 Usuario adm
6.5 Usuario uucp
6.6 Usuarios cron, mail, news, usenet, lp y lpd
6.7 Usuarios auth, auditor y audit
7. Control De Acceso Al Sistema
8. Control De Acceso Al Sistema
9. Conclusión
10. Bibliografía
Introducción
No existe ningún Sistema que pueda considerarse libre de riesgos, los Sistemas
se pueden calificar de "fiables" pero nunca de "seguros". En este trabajo,
hablaremos de algunas técnicas sencillas de seguridad para el sistema y los
usuarios de Linux. Veremos que la seguridad es un estado que debe ser
mantenido activamente a través de una interacción adecuada y responsable
entre el usuario y el software y/o sistema operativo instalado.
Seguridad Del Sistema Y Usuarios
Los Usuarios En Sistemas GNU/Linux Y En Ubuntu
Actualmente, la mayoría de los sistemas operativos existentes son multiusuario
y multitarea. Y Ubuntu no podía ser menos. Es un sistema operativo multiusuario
porque cuando un usuario va a usar el equipo lo primero que va a necesitar hacer
es identificarse para ser autorizado a abrir una sesión de trabajo. Y es multitarea
porque en el mismo instante varios procesos pueden estar funcionando y cada
uno puede pertenecer a usuarios distintos. Es decir, todo esto implica que más
de un usuario puede trabajar en el sistema de forma simultánea a otros,
ejecutando una o más tareas a la vez. Y además, la información que se guarda
en el equipo también puede pertenecer a distintos usuarios.
Por este motivo, es muy importante que el propio Sistema operativo incorpore
mecanismos que permitan manipular y controlar correctamente a los usuarios:
un sistema de entrada o identificación (login), programas que puedan ser
ejecutados por cada uno, mecanismos de seguridad que protejan el hardware
del ordenador, mecanismos de seguridad que permitan la protección de los
ficheros o archivos de cada usuario, etc. Todo ello para evitar conflictos entre los
usuarios y entre la información relativa a cada uno de ellos. Así existirán ciertos
atributos de usuario que se asociarán a los ficheros, a los directorios, a los
procesos, etc. En función de esto habrá cosas que estarán permitidas a ciertos
usuarios y a otros no.
Veremos, a continuación, como Ubuntu responde a esta filosofía, como los
usuarios del sistema podrán estar organizados en diferentes grupos a fin de
poder manejar permisos no a nivel individual sino a nivel de grupo. Esto se hace
para simplificar la administración del sistema, como comprobarás.
Usuarios En Los Sistemas GNU/Linux
Los Sistemas Operativos GNU/Linux como Ubuntu organizan toda esta
información mediante un sistema de usuarios y grupos. Así al entrar en el
sistema debemos identificarnos con un login y una contraseña (también haremos
lo propio cuando cambiemos de usuario en el equipo). El login será un nombre
que identificará de forma inequívoca al usuario. La contraseña será una
combinación de letras, números y/o caracteres especiales. Y, en este último
caso, es muy recomendable que sigan ciertas recomendaciones: mezclar
caracteres alfanuméricos con caracteres escritos en mayúscula, no debe estar
formada por ninguna palabra que se encuentre en el diccionario o similares, que
no implique cuestiones personales como números de teléfono, números de
carnet de identidad, nombres de familiares, etc. Una contraseña como y5zS39ra
es una buena contraseña mientras que gatito no lo es.
El sistema de contraseñas será siempre del tipo unidireccional. Ello significa que
la contraseña no es almacenada como texto, sino que es cifrada y guardada tal
como es (por eso, la utilización de asteriscos para visualizarlas, por ejemplo).
Cuando el usuario entra en el sistema y escribe su contraseña, ésta es cifrada y
comparada con la que está almacenada en el sistema. Si coinciden, la
identificación será positiva, y si no coinciden, no habrá identificación y el sistema
no permitirá la entrada el usuario. Lo importante de todo este sistema es que a
partir del cifrado no es posible conseguir, de ninguna manera, la clave original.
El Usuario Superadministrador
En todo Sistema Operativo, y por tanto en cada sistema GNU/Linux, existe un
usuario privilegiado que tiene acceso a todos los recursos del ordenador y a los
datos de todos los demás usuarios. Este usuario se conoce como superusuario,
superadministrador, administrador del sistema e incluso (coloquialmente) como
“dios”. Su nombre en el sistema es root (superusuario).
Éste será el usuario que tendrá todos los permisos, el que tendrá los privilegios
máximos que le permitirán efectuar cualquier operación sobre el sistema. Es
absolutamente necesario que este usuario superadministrador exista, ya que
será quien se encargará de toda la administración y gestión de servidores,
grupos, etc. Pero es también absolutamente necesario que esta cuenta no se
utilice para trabajar normalmente en el sistema. Sólo deberíamos entrar como
root cuando sea realmente necesario, utilizando, por tanto, otras cuentas para el
trabajo normal de los usuarios. Así nunca podremos dañar el sistema con
operaciones erróneas o con la prueba de programas maliciosos, por ejemplo.
Como puedes suponer la misión de root es muy importante: es el que instala
nuevos componentes de hardware, nuevos programas para todos los usuarios,
decide qué pueden hacer los demás usuarios, da de alta a los nuevos, mantiene
la política de la seguridad del sistema ante posibles ataques, etc. Y, por lo tanto,
ya que puede acceder a los datos de cualquier otro usuario, debe ser
responsable y no hacer mal uso de este poderoso poder.
Evidentemente, para acceder a la cuenta de root hay que saber su contraseña.
Ya que conocer esta contraseña da control absoluto sobre el sistema, es el
secreto mejor guardado de un sistema UNIX. ¡Y esta contraseña de root es la
que has definido cuando instalaste el sistema operativo, así que... ya sabes...
úsala con precaución y mantenla a buen recaudo!
Malware En Linux
El sistema operativo GNU/Linux, Unix y otros derivados generalmente son
calificados como bien protegidos contra los virus de ordenador.
No se conoce la existencia de ninguna amenaza del denominado software
malicioso, malware, en Linux que se haya expandido a un nivel siquiera similar
a las amenazas existentes en el sistema operativo Microsoft Windows. Esto se
atribuye en gran parte a que el malware carece usualmente de permisos para
realizar actividades nocivas dentro del sistema y a las rápidas actualizaciones
frente a Vulnerabilidades que se eliminan a diario en GNU/Linux, propias del
modelo de software de código abierto. Algunos factores adicionales, para el
refuerzo de la seguridad en GNU/Linux, son la mayor cultura informática
difundida entre los usuarios de sistemas GNU/Linux y la falta de incentivos para
un programador a la hora de escribir malware para GNU/Linux, debido a su
relativamente baja cuota de mercado (~90% Windows vs ~1% Linux).
Además, un sistema con GNU/Linux instalado, por lo general, no se parece a
otro: Diferentes versiones de núcleo Linux, diferente software instalado, opciones
de configuración y características de seguridad estrictas, etcétera. Lo cual
dificulta en gran medida la labor de un atacante.
La cantidad de software malicioso disponible en GNU/Linux, incluyendo virus,
troyanos y otro software escrito específicamente para GNU/Linux, se ha
incrementado en los últimos años, duplicándose durante 2005 debido a la
explosión del sistema operativo en entornos de usuario final e ingreso al mercado
de las computadoras de escritorio.
Vulnerabilidades
Al igual que otros sistemas Unix, GNU/Linux implementa un entorno multiusuario
donde los usuarios reciben una serie de privilegios o permisos específicos y
donde existe un control de acceso dedicado. Para obtener el control de un
sistema GNU/Linux o provocar alguna consecuencia seria al propio sistema, el
malware debería obtener acceso root en dicho sistema.
Una de las vulnerabilidades de GNU/Linux es que multitud de usuarios piensan
que no es vulnerable a los virus. Tom Ferris, un investigador de Security
Protocols en Mission Viejo, California, dijo en 2006: "En la mente de la gente, si
no es Windows, es seguro, y ese no es el caso. Piensan que nadie escribe
malware para GNU/Linux o Mac OS X. Pero eso no es necesariamente cierto...".
Shane Coursen, un consultor técnico senior de Kaspersky Lab señaló que "el
crecimiento del malware en GNU/Linux se debe simplemente a su creciente
popularidad, particularmente como sistema operativo de escritorio... La
utilización de un sistema operativo es directamente relacionada con el interés de
los programadores de malware a la hora de desarrollar software malicioso para
ese sistema operativo".
Los virus y ataques malintencionados presentan una amenaza real a los
sistemas Linux. Si un binario infectado contiene uno de esos virus al ser
ejecutado, el sistema se infectaría. El nivel de infección dependerá de los
privilegios del usuario que ejecutó el programa. Si éste fuese una cuenta de
superusuario podría llegar a infectar el sistema entero. En caso de un usuario
normal, el sistema operativo estaría seguro aunque los datos del usuario no. El
virus podría borrar e incluso enviar esos datos a otro equipo remoto. Por otro
lado, las vulnerabilidades de escalada de privilegios pueden permitir que
malware ejecutándose bajo una cuenta de acceso limitado también se propague
por todo el sistema.
El uso de repositorio de software reduce las amenazas de instalación de software
malicioso, al ser comprobados por los administradores, los cuales intentan
asegurar que no se cuele ningún malware en sus repositorios. Por ello, para
asegurar la distribución segura de software, están disponibles sistemas como los
checksum MD5. El uso adecuado de estas firmas digitales supone una línea
adicional de defensa, que previene la violación de las comunicaciones a través
de ataques man-in-the-middle o ataques de redirección como ARP Spoofing o
DNS Poisoning. Todo esto limita el alcance de los ataques, reduciendo los
potenciales usuarios malignos a los autores originales y a aquellos con acceso
administrativo al propio repositorio.
El número de programas maliciosos, incluidos virus, troyanos y otras amenazas,
escritos específicamente para Linux ha ido en aumento en los últimos años y
más que duplicado durante el año 2005 422 a 863.
Virus Multiplataforma
Existen varias aplicaciones antivirus disponibles para Linux, entre las cuales
destacan:

ClamAV (software libre)

Avast! (versiones gratuita y comercial)

AVG (versiones gratuita y comercial)

Avira Antivir (propietario)

BitDefender (propietario)

F-PROT (propietario)

ESET (versiones comerciales)

Kaspersky Linux Security (versiones comerciales)

Sophos (propietario)
Usuarios Y Seguridad Del Sistema
Tipos De Usuarios
Desde el punto de vista del Sistema, un usuario es una entidad que hace uso de
los recursos. La mayor parte de los sistemas UNIX poseen una serie de usuarios
predefinidos, de los cuales los más típicos son los que se describen a
continuación:
Ø Usuario root:
La cuenta root es la más privilegiada de un Sistema Unix. Esta cuenta permite
llevar a cabo todas las facetas de la Administración de sistemas, como por
ejemplo la creación de nuevas cuentas, cambiar "passwords" de usuario,
examinar los ficheros de "log", instalar software, etc...
Cuando se usa esta cuenta hay que ser extremadamente cuidadoso. La cuenta
de root no suele tener restricciones de seguridad, lo cual facilita la posibilidad de
ejecutar algún proceso por error. El Sistema supone que el Administrador del
Sistema sabe lo que está haciendo, y hará exactamente lo que se le pida, sin
preguntas. Esto te puede llevar a situaciones como por ejemplo la de borrar un
Sistema de Ficheros crucial por culpa de un comando mal tecleado.
La característica que define a la cuenta de superusuario es el UID 0(User
IDentificator), no el nombre de usuario root, cualquier usuario cuyo UID sea 0 es
una cuenta de superusuario. No es recomendable crear cuentas superfluas con
el UID a 0, sin embargo en determinados escenarios puede resultar útil disponer
de un segundo superusuario.
Ø Usuario daemon:
Se utiliza para ejecutar los procesos de servidor del Sistema. Este usuario sólo
existe para ser propietario de estos procesos (y ficheros asociados), y para
garantizar que se ejecutan con los permisos apropiados.
Ø Usuario bin:
Es el propietario de los ficheros ejecutables de la mayoría de los comandos de
usuario.
Ø Usuario adm:
Es el propietario de los ficheros de contabilidad del Sistema; el directorio "home"
del usuario adm también suele contener varios ficheros log y otros ficheros de
datos.
Ø Usuario uucp:
Uucp quiere decir "Unix to Unix copy", que es un subsistema de la mayoría de
los sistemas UNIX. Este usuario es el propietario de las herramientas y ficheros
del subsistema UUCP. Pueden existir otras cuentas relacionadas con este
subsistema, por convención todas ellas deben comenzar por "uu".
Ø Usuarios cron, mail, news, usenet, lp y lpd:
Son pseudo usuarios diseñados para ejecutar los procesos necesarios de cada
uno de los subsistemas relacionados con cada uno de ellos.
Ø Usuarios auth, auditor y audit:
Son los pseudo usuarios asociados al subsistema de auditoría.
A excepción de la cuenta de root, estos usuarios rara vez hacen login en el
Sistema, es por ello que el fichero /etc/passwd normalmente tiene estas cuentas
deshabilitadas. Sin embargo asegúrate de examinar este fichero en tu Sistema.
Las cuentas estándar sin password son graves fallos de seguridad en un
Sistema.
Además de los usuarios descritos anteriormente, muchos sistemas Unix incluyen
otros usuarios como "guest", "install", "demo", etc... Estas cuentas suelen venir
sin password, incluso a veces se les asigna un password estándar conocido que
es el mismo para todos los sistemas de esa distribución. En cualquier caso, lo
mejor es deshabitar esas cuentas o asignarles un nuevo password.
Control De Acceso Al Sistema
Cuando encendemos el ordenador se ejecuta un software, llamado BIOS (Basic
Input/Output System) cuya función es determinar la configuración de la máquina
y proporcionar un sistema básico de control sobre los dispositivos. Este software
se suele almacenar en memoria ROM (Read only Memory) o FLASH que permite
la actualización de la BIOS sin cambiar el chip.
En el momento del arranque se puede acceder a la BIOS de la máquina mediante
la pulsación de una tecla o combinación de ellas. Desde la interfaz de dicho
software es posible modificar parámetros del sistema, como la fecha y hora del
sistema, secuencia de arranque, etc. Lógicamente el acceso a la BIOS puede
estar protegida con contraseña, si se habilita. Por lo tanto, una primera medida
de seguridad será habilitar la contraseña de la BIOS, y que no coincida con otras
contraseñas utilizadas.
Frente a esta medida de seguridad hay que decir que la contraseña BIOS se
puede anular provocando un cortocircuito en la batería de la CMOS. Incluso hay
fabricantes que, en la placa base, incluyen un jumper que permite borrar la BIOS.
Además, existen también utilidades de captura de contraseñas BIOS como son:
!BIOS de Bluefish(conjunto de herramientas de propósito general para atacar
a la BIOS que incluye utilidades de captura y herramientas de descifrado y que
normalmente tiene éxito con la mayoría de las BIOS), CMOS PASSWORDS
RECOVERY TOOLS , KILLCMOS, etc.
Una vez arrancada la máquina se ejecuta el gestor de arranque, que puede ser
LILO (Linux Loader) o GRUB GNU (Grand Unified Boot Loader) y que es el
responsable de la carga del sistema operativo seleccionado.
LILO acepta una serie de opciones en línea cuando se ejecuta. En concreto, el
argumento single es el más peligroso, ya que arranca Linux en modo
monousuario y por defecto, la mayoría de las distribuciones vuelcan a un prompt
de root en una shell de comandos sin pedir ningún tipo de contraseña. Es una
puerta de entrada al sistema que se debe de cerrar.
Contraseñas Y Encriptación
Las contraseñas de Linux utilizan el algoritmo de cifrado de IBM Data Encryption
Standard (DES). Estas contraseñas son de longitud fija de 8 caracteres. Pero,
siempre que sea posible es preferible utilizar contraseñas MD5. MD5 es un
algoritmo hash que mejora a DES en los siguientes aspectos: las contraseñas
son de longitud infinita, permiten al inclusión de signos de puntuación y otros
caracteres, y además, es exportable fuera de Estados Unidos, ya que no ha sido
desarrollado por su gobierno.
Se almacenan, en principio, en el archivo /etc/passwd que debe tener
permisos 644. Por seguridad y, dado que es necesario mantener la lectura sobre
este archivo, se utilizan las shadows passwords y, en este caso, las contraseñas
se almacenan en el archivo /etc/shadow con permisos 600, es decir sin lectura
para el grupo y los otros. De esta forma se impide que los usuarios normales
puedan ver las contraseñas cifradas. El propietario de ambos archivos debe ser
root.
Es conveniente cambiar periódicamente las contraseñas, tanto los usuarios
como el administrador root. La utilidad chage cambia la fecha de caducidad de
las contraseñas. La orden:
# chage -M 30 usuario
obliga a usuario cambiar su contraseña cada 30 días. Y la orden:
# chage -W 5 usuario
avisa a usuario que su contraseña va a expirar en 5 días.
También es conveniente periódicamente ejecutar la orden pwconv para
asegurarnos de que todas las contraseñas tienen shadow. En ocasiones, y
debido a manipulaciones anómalas, hay contraseñas que se quedan
en /etc/passwd en vez de en /etc/shadow. Con pwconv sincronizamos ambos
archivos.
La integridad del archivo /etc/passwd se realiza con la orden pwck, que
comprueba que el formato del archivo es correcto y los datos de cada uno de
sus campos son válidos.
Aunque más adelante se habla del sistema de logs, hay que indicar que las
modificaciones o intentos de modificaciones de las contraseñas quedan
registradas en el archivo /var/log/messages. Utilizando el comando less y los
filtros adecuados se pueden controlar los mensajes correspondientes a estos
cambios (intentos) de contraseña.
Conclusión
Al concluir este tema, aprendimos que En un Sistema multiusuario es muy difícil
controlar si las contraseñas que están eligiendo los usuarios son fuertes o no.
Para estar seguro de que los usuarios no están utilizando contraseñas débiles,
lo mejor es utilizar herramientas parecidas a las que usan los "cracker" e intentar
"reventar" las contraseñas de tu Sistema. La mejor herramienta para ello es una
utilidad llamada "Crack".
Bibliografía

http://www.lasticenelaula.es/portal/index.php/seguridad/administraciondel-sistema/593-los-usuarios-en-sistemas-gnulinux-y-en-ubuntu

http://es.wikipedia.org/wiki/Malware_en_Linux

http://blog.desdelinux.net/por-que-linux-es-mas-seguro-que-windows/

http://labsopa.dis.ulpgc.es/adminso/material-didacticopractico/tutorial/CONTENIDOS/TEMA3/tema3.htm

http://recursostic.educacion.es/observatorio/web/en/software/softwaregeneral/562-elvira-misfud-