Download hardering de sistemas operativos (gnu/linux - Docencia FCA-UNAM
Document related concepts
Transcript
UNIVERSIDAD LATINA SEGURIDAD INFORMATICA II X. HARDENING DE SISTEMAS OPERATIVOS (GNU/LINUX, WIN2003). E.I. L.E. Prof. Ramón Castro Liceaga ¿Qué es Hardening? Hardening (palabra en ingles que significa endurecimiento) en seguridad informática es el proceso de asegurar (dar seguridad) un sistema mediante la reducción de vulnerabilidades en el mismo, esto se logra eliminando software, servicios, usuarios, etc. Innecesarios en el sistema así como cerrando puertos que tampoco estén en uso además de muchas otros métodos y técnicas que fortalecen la seguridad en los Sistemas Operativos. Concepto de un sistema operativo. Un sistema operativo (SO) es el programa o conjunto de programas que efectúan la gestión de los procesos básicos de un sistema informático, y permite la normal ejecución del resto de las operaciones. Concepto de un sistema operativo. Capacidad de evolución Archivo de mandatos Obteniendo un buen rendimiento y Simplificando su uso Permite el dialogo del usuario con el sistema a la explotación de una computadora Operaciones sobre archivos. Creación, borrado, renombrado, apertura, escritura y lectura. Ejecución de Mandatos Que ayudan a los usuarios Detección y tratamiento de errores. De E/S, de paridad en memoria o buses, de ejecución en los programas Interactivamente Programas Conjunto de Niveles de SOM Usuarios Programas de usuario Órdenes de E/S. Operaciones de lectura, escritura y modificación del estado de los periféricos. Sistema Operativo Multiusuario (SOM) Ejecutar, parar y abortar programas Shell Servicios Ejecución de Servicios Núcleo Administración Hardware Contabilidad de los recursos que usan los programas. Asignar los recursos a los programas en ejecución. Asegurar que unos trabajos no interfieran con otros. Asegurar la confidencialidad de la información. Estructura de los Sistemas Operativos. Como gestor de recursos, el Sistema Operativo administra: •La CPU (Unidad Central de Proceso, donde está alojado el microprocesador). •Los dispositivos de E/S (entrada y salida) •La memoria principal (o de acceso directo). •Los discos (o memoria secundaria). •Los procesos (o programas en ejecución). y en general todos los recursos del sistema Procesos de un sistema operativo. Un proceso es un programa en ejecución que necesita recursos para realizar su tarea: tiempo de CPU, memoria, archivos y dispositivos de E/S. El SO es el responsable de: •Crear y destruir los procesos. •Parar y reanudar los procesos. •Ofrecer mecanismos para que se comuniquen y sincronicen Procesos de un sistema operativo. Registros Contador de programa conteniendo Variables Es un algoritmo que define claramente el comportamiento de los procesos, con sus estados, colas de espera y pautas de Intercalado pudiendo usar prioridades para la asignación de recursos de 2 estados de 5 estados de 7 estados de n estados el sistema operativo en ejecución gestionada por Unidad de procesamiento de proceso (único) Modelos de Procesos Programa un Subsistema del núcleo del proceso padre del usuario Identificadores de Procesos Procesos Relación entre los procesos Despachador Sus creados (hijos) Jerarquía Función Creando grupos (árboles) Basados en Colas y Lista de Procesos su creador (padre) Esperando un recurso Prioridades Recorrer la cola de procesos y Planificar la ejecución de uno de ellos Importancia asignada a un proceso Se usa para Seleccionar su asignación de recursos Sistemas Operativos (Microsoft Windows) Sistemas Operativos (Linux) En 1991, Linus Torvalds empezó a escribir el núcleo Linux y decidió distribuirlo bajo la licencia GPL (licencia general Pública). Rápidamente, múltiples programadores se unieron a Linux en el desarrollo, colaborando a través de Internet y consiguiendo paulatinamente que Linux llegase a ser un núcleo compatible con UNIX. En 1992, el núcleo Linux fue combinado con el sistema GNU, resultando en un sistema operativo libre y completamente funcional. El Sistema Operativo formado por esta combinación es usualmente conocido como "GNU/Linux" o como una "distribución Linux" y existen diversas variantes. Seguridad en Sistemas Operativos (seguridad vs. Protección) Los sistemas de una computadora manejan información que suele ser valiosa para sus propietarios, por lo que la seguridad en dichos sistemas es un elemento importante en el diseño y funcionamiento de los sistemas operativos. Debemos distinguir entre los términos seguridad y protección. La seguridad de un sistema va desde aspectos tales como la protección ante posibles daños físicos de los datos (incendios, terremotos, etc.) hasta el acceso indebido a los sistemas (intrusos, fallos de confidencialidad, etc.). Los ataques contra la confidencialidad, la integridad o la disponibilidad de recursos de un sistema deben prevenirse y solventarse mediante la política y los mecanismos de seguridad de un sistema. La protección consiste en evitar que se haga un uso indebido de los recursos que están dentro del ámbito del sistema operativo. Para ello deben existir mecanismos y políticas que aseguren que los usuarios solo acceden a sus propios recursos (archivos, zonas de memoria, etc.) Además es necesario comprobar que los recursos solo se usan por aquellos usuarios que tienen derecho de accesos a los mismos. Bases para la Seguridad en Sistemas Operativos •Evitar la pérdida de datos. Puede ser provocada por catástrofes naturales o artificiales (terremotos, guerras, etc.), a errores de hardware (rotura de un disco), a errores humanos (borrado accidental de un archivo). Aquí el sistema operativo no tiene mucho que hacer, casi todo es parte de las políticas de gestión de datos. •Controlar la confidencialidad de los datos. Una simple asignación de bloque de disco libre a un usuario le proporcionara el bloque con el contenido del usuario anterior si el sistema operativo no tiene una política definida para este tipo de situaciones. En estos casos siempre hay que limpiar los recursos de los datos anteriormente existentes. En esta parte participa el sistema operativo y las políticas de seguridad externas al sistema operativo. •Controlar el acceso a los datos y recursos. Esto sí es competencia directa del sistema operativo. Es necesario asegurar que los usuarios no acceden a archivos para los que no tienen permisos, a cuentas de otros usuarios a páginas de memoria o bloques de disco que contienen información de otros usuarios (aunque ya estén en desuso). Hacerle la vida difícil al atacante (Hardening) •Ese es el resumen de la razón de ser del Hardening de sistemas operativos, que se podría decir que es un conjunto de actividades que son llevadas a cabo por el administrador de un sistema operativo para reforzar al máximo posible la seguridad de su equipo. Su propósito, entorpecer la labor del atacante y ganar tiempo para poder minimizar las consecuencias de un inminente incidente de seguridad e incluso, en algunos casos, evitar que éste se concrete en su totalidad. Hardening e invulnerabilidad •Una de las primeras cosas que hay que dejar en claro del Hardening de sistemas operativos es que no necesariamente logrará forjar equipos “invulnerables”. • Según el modelo de defensa en profundidad, el host es sólo una capa de éste. Es un factor más a considerar dentro del gran número de puntos a ser tomados en cuenta para defender “globalmente” un sistema Actividades propias de un proceso de hardening •Configuraciones necesarias para protegerse de posibles ataques físicos o de hardware de la máquina. Entre otras actividades, destacan: • El upgrade de firmware (actualizaciones), • El establecimiento de contraseñas complejas para el arranque del equipo y la configuración de la BIOS, • La deshabilitación de inicio de sistema para cualquier unidad que no sea el disco duro principal, • y en casos de servidores, la deshabilitación de dispositivos ópticos, usb o similares, para evitar cualquier entrada de malware desde un medio de almacenamiento externo. Actividades propias de un proceso de hardening • Instalación segura del sistema operativo. Esto implica, entre otras cosas: • El considerar al menos dos particiones primarias (una para el sistema operativo en sí y otra para carpetas y archivos de importancia), • el uso de un sistema de archivos que tenga prestaciones de seguridad, y el concepto de instalación mínima, es decir, evitando la instalación de cualquier componente de sistema que no sea necesario para el funcionamiento del sistema. Actividades propias de un proceso de hardening • Activación y/o configuración adecuada de servicios de actualizaciones automáticas, para asegurar que el equipo tendrá todos los parches de seguridad que entrega el proveedor al día. En caso de que se encuentre dentro de una corporación, es adecuado instalar un servidor de actualizaciones, que deberá probar en un entorno de laboratorio el impacto de la instalación de actualizaciones antes de instalarlas en producción. Actividades propias de un proceso de hardening •Instalación, configuración y mantención de programas de seguridad tales como Antivirus, Antispyware, y un filtro Antispam según las necesidades del sistema. •Configuración de la política local del sistema, considerando varios puntos relevantes: 1. Política de contraseñas robusta, con claves caducables, almacenamiento histórico de contraseñas (para no usar contraseñas cíclicas), bloqueos de cuentas por intentos erróneos y requisitos de complejidad de contraseñas. 2. Renombramiento y posterior deshabilitación de cuentas estándar del sistema, como administrador e invitado. 3. Asignación correcta de derechos de usuario, de tal manera de reducir las posibilidades de elevación de privilegios, y tratando siempre de limitar al mínimo los privilegios y/o derechos de los usuarios activos. 4. Configuración de opciones de seguridad generales, como aquellas relacionadas con rutas de acceso compartido, apagado de sistema, inicio y cierre de sesión y opciones de seguridad de red. Actividades propias de un proceso de hardening 5. Restricciones de software, basado en lo posible en el uso de listas blancas de software permitido más que en listas negras del mismo. 6. Activación de auditorías de sistema, claves para tener un registro de algunos intentos de ataque característicos como la adivinación de contraseñas. •Configuración de servicios de sistema. En este punto es necesario tratar siempre de deshabilitar todos aquellos servicios que no vayan a prestar una funcionalidad necesaria para el funcionamiento del sistema. Por ejemplo, si su equipo no posee tarjetas de red inalámbrica, el servicio de redes inalámbricas debería estar deshabilitado. •Configuración de los protocolos de Red. En la medida de lo posible, es recomendable usar sistemas de traducción de direcciones (NAT) para direccionar los equipos internos de una organización. Deshabilitar todos aquellos protocolos de red innecesarios en el sistema y limitar el uso de los mismos al mínimo. TCP/IP es un protocolo que no nació pensando en seguridad, por lo que limitar su uso al estrictamente necesario es imperativo. Actividades propias de un proceso de hardening •Configuración adecuada de permisos de seguridad en archivos y carpetas del sistema. En la medida de lo posible, denegar explícitamente cualquier permiso de archivo a las cuentas de acceso anónimos o que no tengan contraseña. Un correcto set de permisos a nivel de carpetas y archivos es clave para evitar acceso no deseado al contenido de los mismos. • Configuración de opciones de seguridad de los distintos programas, como clientes de correo electrónico, navegadores de internet y en general de cualquier tipo de programa que tenga interacción con la red. • Configuración de acceso remoto. En caso de no ser estrictamente necesario, es bueno deshabilitar el acceso remoto. Sin embargo, cuando es necesario tener control remoto de la máquina, es preciso configurarlo de manera adecuada, restringiendo el acceso a un número muy limitado de usuario, restringiendo al mínimo las conexiones concurrentes, tomando cuidado en la desconexión y cierre de sesión y estableciendo un canal cifrado de comunicaciones para tales propósitos, como SSH. Actividades propias de un proceso de hardening • Configuración adecuada de cuentas de usuario, tratando de trabajar la mayor parte del tiempo con cuentas de acceso limitado y deshabilitando las cuentas de administrador. Es absolutamente recomendable usar la impersonificación de usuarios para realizar labores administrativas en vez de iniciar sesión como administradores. • Cifrado de archivos o unidades según las necesidades del sistema, considerando un almacenamiento externo para las llaves de descifrado. Considerar además la opción de trabajar con sistemas de cifrado de mensajería instantánea y correo electrónico. • Realizar y programar un sistema de respaldos frecuente a los archivos y al estado de sistema. En la medida de lo posible, administrar los respaldos vía red o llevar los respaldos a unidades físicas que estén alejadas del equipo que las origina. Actividades de hardening en Linux. 1.Asegurar los procesos de arranque (del bootstrapping del sistema) 2.Asegurar los servicios o demonios que se ejecuten en el inicio y apagado del sistema 3.Aseguramiento de Sistemas de archivos (comúnmente denominados File System en *NIX) 4.Uso de opciones de limites y forzar cuentas de usuario 5.Políticas del sistema, filtrados y Acls (lista de control de acceso) 6.Protección a ataques físicos o de Hardware (Seguridad Física) 7.Actualización de Firmware, BIOS, Softpaq, contraseñas de arranque de los equipos, desactivación de unidades externas en servidores como pen drive o memorias USB, disqueteras, unidades de Cd/DvD, opticas. 8.Protección y renombre de cuentas de Administración y deshabilitar o invalidar cuentas estándares, invitado, uso de cuentas limitadas. 9.Restricción de Instalación de Software y Hardware de acuerdo a las políticas de seguridad. 10.Habilitar los sistemas de Auditorias y Monitoreo de logs. 11.Asegurar consolas de administración, pantallas de logeo, terminales virtuales y accesos remotos. 12.Políticas y procedimientos de administración de cuentas de usuario, grupos, TCBS (Truste Base Computing), módulos de autenticación agregables y relaciones de confianza. 13.Administración de paquetes de instalación, parches (Patchs), upgrades, updates, módulos instalables, integridad de archivos y permisos en el sistema. 14.Aseguramiento de las Herramientas de Desarrollo y compiladores. 15.Aseguramiento de Núcleos (Kernel) del sistema. 16.Instalación y afinación de Firewalls, Kits de Seguridad (Antivirus, antispyware, antimalware, anti hackers, anti banners) Sistemas de Detección de Intrusos y Sensores como IDS,IPS,HIDS, NIDS. 17.Uso de Herramientas para Pen Testing y Monitoreo . 18.Configuración de Protocolos, Puertos y Servicios (Solo los necesarios). 19.Implementación de esquemas de seguridad, DMZ, Front End / Back End, Router apantallados, proxys, Firewalls. 20.Políticas de Procedimientos de Respaldo y de Disaster Recovery. Actividades de hardening en Windows. El propósito de un hardening del sistemas es eliminar el mayor número de riesgos de seguridad como sea posible. Entre las actividades propias de un proceso de hardening se pueden contar las siguientes: 1. Informarse sobre su Sistemas •Información del Sistema Inicio -> Programas -> Accesorios -> Herramientas del Sistemas -> Información del Sistema Actividades de hardening en Windows. •Información de red Inicio -> Programas -> Accesorios -> Símbolo del Sistema -> digitamos ipconfig /all Actividades de hardening en Windows. 2. Usuarios •Eliminar usuarios innecesarios My PC -> Click derecho -> Administrar -> Usuarios y Grupos Locales -> Usuarios -> Click derecho sobre el usuario a eliminar -> Eliminar. •Deshabilitar usuarios como el invitado o guest My PC -> Click derecho -> Administrar -> Usuarios y Grupos Locales -> Usuarios -> Click derecho sobre el usuario a eliminar -> Propiedades -> Activar la casilla Cuenta Deshabilitada. Actividades de hardening en Windows. •Configurar Políticas de Usuario Inicio -> Panel de Control -> Herramientas del Administrativas -> Directivas de Seguridad Local -> cuenta -> Directivas de Contraseña. En este punto se deben revisar lo que dicen las mejores prácticas de seguridad y configurarlas. Directivas de Actividades de hardening en Windows. •3. Configuración de acceso remoto. Mi PC -> Propiedades -> Remoto -> Activar o Desactivar Escritorio Remoto Actividades de hardening en Windows. 4. Directivas de Grupo •Proteger el protector de pantalla con clave Inicio -> Ejecutar -> Gpedit.msc -> Configuración de Usuario -> Plantillas Administrativas -> Panel de Control -> Pantalla Para esto primero se debe habilitar el “Proteger el protector de pantalla mediantes contraseña”, luego definir el protector de pantalla a ejecutar en “Nombre de archivo ejecutable del protector de pantalla” y finalmente el tiempo en que se activara “Tiempo de espera del protector de pantalla” Esta configuración será aplicada para todos los usuarios y ellos no podrán cambiarla. Actividades de hardening en Windows. 5. Activar Firewall Inicio -> Panel de Control -> Firewall Actividades de hardening en Windows. 6. Actualizaciones Automáticas Inicio -> Panel de Control -> Actualizaciones Automáticas Actividades de hardening en Windows. 7. Deshabilitar servicios innecesarios Inicio -> Panel de Control -> Herramientas del Administrativas -> Servicios Conclusión. El Hardening es una ayuda indispensable para habilitar la seguridad y ahorrarse bastantes inconvenientes en la administración del sistema. Entre las ventajas del Hardening tenemos: la disminución de incidentes de seguridad, mejoras en el rendimiento al eliminar cargas inútil en el sistema como programas innecesarios, entre otros.