Download Sistemas operativos Windows/Windows server, Solaris, UNIX, Linux
Document related concepts
Transcript
Sistemas operativos Windows/Windows server, Solaris, UNIX, Linux, Mac Os X SEBASTIAN CUARTAS ARISTIZABAL 907014 AUDITORIA DE SISTEMAS 2 CARLOS HERNAN GOMEZ GOMEZ 20 DE NOVIEMBRE DE 2010 MANIZALES Introduccion La auditoría a sistemas operativos es una herramienta muy importante para poder hacer un buen seguimiento a nuestro sistema de información implementado en nuestro negocio, ya que los sistemas operativos son los que administran todos mis archivos y mi funcionamiento en las terminales usadas por nuestros usuarios, como lo pueden ser un computador de escritorio, un computador portátil, un dispositivo móvil o todo aparato que tenga que tener una administración de recursos de hardware y software. De este programa tan importante y crítico depende todo, nuestra seguridad, nuestra agilidad para modificar, almacenar, crear archivos, nos administra la seguridad y acceso a la información, asi también hace que se administren los recursos como son la memoria principal, el acceso al procesador, el orden de tareas y la agilidad con la que los procesos de mayor criticidad se administran y se ejecutan. De esta manera vemos que un sistema operativos es crucial para el funcionamiento de nuestro sistema de información, si este falla existe una gran posibilidad de que puedan haber brechas de inseguridad y vulnerabilidad para que puedan acceder a documentos e información clasificada, o que simplemente haga que el sistema esté tan insostenible y poco integro que me genere problemas de consistencia. En este orden de ideas, una auditoria de sistemas no puede dejar a un lado el control de estos programas, los cuales son utilizados en diferentes arquitecturas y son desarrollados por diferentes casas de software. En este trabajo se abordaran algunos sistemas operativos importantes y los posibles tratos y procedimientos que se deben llevar para hacer una auditoria de sistemas bien hecha. Auditoria en sistemas operativos SOLARIS Una auditoria profunda requiere de la utilización de herramientas automáticas, manuales, revisión de políticas, y pruebas de penetración de seguridad para asegurar la mayor cantidad de posibles vulnerabilidades, no solo desde afuera del sistema, sino también desde el interior de este. Una vista desde el interior: Para poder hacer la auditoria desde adentro es recomendable utilizar herramientas que se encuentran en el CIS (Center of Internet Security). Cuando se hace una revisión de la vulnerabilidad hecha desde el host que no se ha hecho previamente puede arrojar una gran cantidad de problemas y puertos abiertos disponibles para que cualquier persona que sepa de sistemas pueda entrar y hacer cosas no permitidas. Todas estas vulnerabilidades pueden ser explotadas por alguien pero también se hace inmanejable por los profesionales de la información hacer esto de una forma muy manual, por ellos existen varias herramientas informáticas que harán el trabajo mucho más rápido y con una eficacia y con resultados bastantes altos. Hay muchas herramientas de esta índole para hacer auditoria y revisión a sistemas Solaris. Existen herramientas basadas en el host al igual que herramientas basadas en la red, pero las herramientas basadas en host pueden mostrar una vista mucho más amplia que la de red. Puede arrojar datos como permisos de acceso a archivos, desenmascarados, directorios, permisos, parámetros de la red, configuración de auditoria, configuración de relojes, servicios y muchos más elementos importantes en estos sistemas. Todas estas herramientas pueden ser un buen componente para estrategias de defensa profunda en caso de ataques ayudando a hacer una buena auditoria en profundidad. Una de estas herramientas es Titan (sigla abreviada) y es disponible a los usuarios gratuitamente en el link www.fish.com/titan/ . Sun Microsistems también ofrece su herramienta, denominada Automated Security Enhancement Tool (ASET) como parte de la distribución del paquete Sunwast para distribuciones Solaris. Sun también provee JumpStart Arquitecture and Security Scripts toolkit (JASS), la cual también está disponible sin ningún costo en la página http://wwws.sun.com/software/security/jass. Sistem Scanner es otra herramienta comercial disponible para informarnos de problemas potenciales disponible en http://www.iss.net/products_services/enterprise_protection/rsserver/index.php que trabaja en diferentes plataformas. Como en las herramientas CIS, el usuario asume la responsabilidad de mejorar su sistema con el System Scanner. Pero a pesar de que existen tantas herramientas disponibles, la que mas sobresale es la herramienta CIS, ya que es muy compatible con el sistema operativo Solaris. La herramienta CIS verifica la configuración del sistema en relación con las benchmarks desarrollado por un consenso de profesionales en el área y en la industria de las TICS. El nivel CIS 1 Benchmarck es definido como: el nivel prudente mínimo para un buen cuidado. Este puede ser utilizado para como el sistema esta medido con relación a la industria y a los estándares de buenas prácticas. La herramienta CIS Benchmarck and Scoring son gratis desde el sitio: http://www.cisecurity.org/bench_solaris.html. Para utilizar esta herramienta su compañía debe estar inscrita a CIS, ser miembro. A través de Security Consensus Operational Readiness Evaluation (SCORE), los profesionales SANS1 son capaces de contribuir al desarrollo de las herramientas y benchmarks de CIS, y CIS es el distribuidor de las benchmarks y las herramientas. SANS describe a SCORE de la siguiente manera: “SCORE es el esfuerzo cooperativo entre SANS y CIA. SCORE es la comunidad de profesionales en la seguridad de una amplia gama de organizaciones y backgrounds trabajando para desarrollar consensos con respecto a los estándares mínimos y las mejores prácticas de la información, esencialmente actuando como el motor de investigación de CIS. Usando las herramientas CIS Se debe descargar el archivo cis.tar.Z. También está la opción de descargarse un PGP o un MD5. Los siguientes pasos son para instalar la herramienta: 1. 2. 3. 4. 5. 6. Escriba cp cis.tar.Z /tmp Escriba cd /tmp Escriba uncompress cis.tar.Z Escriba tar xvf cis.tar Escriba cd cis Escriba ls. Los siguientes son 3 archivos presentes: CISscan, README, y SolarisBenchmark.pdf. Note que SolarisBenchmark.pdf explica todas las verificaciones hechas por la herramienta, y contiene pasos para mejorar su sistema con cada paso. 7. Escriba pkgadd –d ./CISscan 8. Escriba 1 para seleccionar el paquete e instalarlo. La instalación continuara y el paquete será instalado. 9. El paquete deberá estar instalado en /opt/CIS. Correr la herramienta es tan fácil como cambiar de directorio a /opt/CIS y escribir ./cis-scan. La herramienta califica el sistema de uno a diez siendo 10 el mayor nivel de seguridad. Un sistema con una calificación de 10 no debe tener mucha funcionalidad, y un sistema alcanzando una calificación de 1 seria horriblemente inseguro. Las validaciones entre 7 y más pueden ser alcanzadas en sistemas de producción sin funcionalidad de impacto adverso. Desafortunadamente muchos sistemas de producción se encuentran entre 1,60 y 3,20 cuando son escaneados la primera vez. 1 http://www.sans.org/ es una organización para el entrenamiento de la seguridad computacional y de la información, es una posibilidad para que un profesional aprenda a hacer buenas estrategias para su implementación de seguridad. El nuevo Solaris 8 instalado en un Sun Blade 100 ha sido seleccionado para proveer un mayor ejemplo de la herramienta CIS y el uso de benchmark. La única cosa hecha para aumentar la seguridad de esta caja para correr la herramienta fue la instalación de la última versión recomendada y parches de seguridad de http://au.sunsolve.sun.com/pubcgi/show.pl?target=patchpage. Una vista desde el exterior: De esta manera se pueden vislumbrar la importancia de auditar la seguridad usando los escáneres de vulnerabilidad. Las recomendaciones generales para el escaneo de la vulnerabilidad son proveídos por estas herramientas. Es importante auditar la postura de la seguridad del sistema utilizando escáneres de vulnerabilidad basados en la red. La red es donde los atacantes externos están. Los escáneres de vulnerabilidad escanean su red para identificar servicios disponibles, y luego compararlos con la base de datos de las vulnerabilidades bien conocidas para determinar si podrían ser explotadas. Examinando el sistema desde la red puede proveer muchas perspectivas de su postura frente a la seguridad incluyendo la vista de la LAN corporativa, una vista del DMZ, y una vista del perímetro externo del firewall. Los escáneres basados en la red so como detectar algunas cosas que los escáneres basados en el host olvidan. SANS ofrece las siguientes recomendaciones para escanear sistemas y redes: Obtener permiso del nivel más alto posible. Solo escanee sistemas o redes que sean de su propiedad. Escanee una subred o un grupo de trabajo a la vez. Este disponible en la oficina en caso de que algo salga mal. Manifiéstese antes del tiempo de hacer el escaneo. No permita exámenes de Negación del servicio en el primer escaneo. Arregle los problemas de mayor prioridad primero. Considerando el estado del objetivo es otra importante consideración durante el escaneo de vulnerabilidades, el cual es usualmente pasado por alto. Escaneando un sistema Solaris en modo usuario simple es de poco uso, porque la mayoría de los servicios no están ni siquiera corriendo. El sistema objetivo deberá ser booteado al nivel apropiado de ejecución para una operación normal. Un administrador del sistema inescrupuloso puede hacer que su sistema se vea seguro mediante booteo arrancando a modo de usuario único antes de que le permita ser escaneado el sistema. Escaneando un sistema sin ningún usuario logeado puede también proveer resultados incompletos. Suponga que una aplicación tipo servidor del sistema inicia algunas aplicaciones cuando los usuarios están logeados. Algunos servicios deben iniciar sobre el usuario logeado, o por la acción del usuario. Si este sistema es escaneado sin ningún usuario logeado los resultados podrían estar sesgados por como máximo el 100%. El cuidado debe ser tomado para asegurar que el objetivo este en su estado de operación normal antes del escaneo de vulnerabilidad. Los escaneos de vulnerabilidad e inclusive los escaneos de los puertos pueden hacer caer el sistema. Asegúrese de anticiparse al peor escenario posible antes de conducir cualquier examen de vulnerabilidad. Una de las peores cosas que puede hacer es colapsar el sistema en un punto donde los backups son necesarios para recuperarse. La persona que conduzca los exámenes puede verse en problemas si el examen es hecho sin los permisos necesarios. “La diferencia entre una persona que quiere penetrar y la que quiere atacar es el permiso” (COLE, 725). Muchas opciones para exámenes de vulnerabilidad basados en red existen. Algunos de los productos comerciales disponibles están en Security Systems Internet Scanner (disponible en http://www.iss.net/products_services/enterprise_protection/vulnerability_assessment/scanner_i nternet.php), Vigilante Secure ScanNX (disponible en http://www.vigilante.com/securescan/index.htm), Network Associates CyberCop ASaP (disponible en http://www.networkassociates.com/us/products/mcafee/managed_services/cybercop_asap.htm) , y Eeye Retina (disponible en http://www.eeye.com/html/Products/Retina/index.html). Un escáner gratis efectivo es Security Auditors Research Assistant (SARA) (disponible en http://wwwarc.com/sara/sara.html). Hay muchas razones por las que Nessus está cubierto en detalle sobre sus contrapartes. Nessus es gratis y viene con todos los beneficios de un open-source. Nessus es actualizado frecuentemente, y tiene una gran base de datos de vulnerabilidades. Nessus es flexible, y no hay problemas con licencias de restricciones de IP para preocuparse. Referencie a los siguientes links para estudios y comparaciones de escáneres de vulnerabilidades: http://www.networkcomputing.com/1201/1201f1b1.html. http://www.infosecuritymag.com/2003/mar/comparisonchart.shtml http://www.infosecuritymag.com/2003/mar/cover.shtml Algunas de las características que Nessus incluye en su arquitectura cliente/servidor, soporte SSL, soporte Nmap, compatibilidad CVE, soporte Whisker, soporte Nikto, soporte Hydra, escaneo inteligente, Nessus Attack Scripting Language (NASL), y arquitectura plug-in con habilidad inherente para escribir plug-ins comunes (Nessus, Datasheet). Si necesita más características de Nessus se encuentran en el siguiente enlace: http://www.nessus.org/documentation.html Auditoria en sistemas operativos UNIX A continuación voy a poner un checklist en donde se busca hacer auditoria en un sistema operativo Unix. Para poder hacer una buena auditoria y hacer este checklist de la mejor manera es necesario que se consideren estos elementos antes de proceder a la revisión de los puntos definidos por el checklist: Otros sistemas operativos realizando algunas funciones: este checklist necesita ser medido con las diferentes circunstancias del ambiente de la red especialmente cuando no hay sistemas operativos en la red dentro de la arquitectura realizando actividades especificas. Ejemplo: cuando un sistema operativo NT realiza la autenticación de usuarios y la aplicación está residiendo en la Solaris Box. Resultados y sensibilidad de los datos: cuando reportan cualquier resultado el auditor debería tomar en cuenta el elemento de riesgo, eje: es el resultado tan sustancial para directamente afectar la disponibilidad, confidencialidad e integridad de información sensible. Por lo tanto, antes de realizar la auditoria es importante determinar qué datos/aplicaciones son almacenados en el Solaris Box. El departamento/comité en riesgo puede darle al auditor indicaciones del riesgo perteneciente a ciertos datos. En algunas instancias los resultados pueden ser significativos, sin embargo podría no afectar a la organización gracias al riesgo asociado con los datos. Eje: Asegurar las extensiones de teléfono de la organización. Controles de mitigación: la revisión de Solaris no puede ser hecha en el vacío sin considerar los controles de bases de datos y de aplicaciones. Por ejemplo si una aplicación llama al servidor de Solaris usando el identificador raíz. Este parece ser un resultado significativo. Sin embargo, los controles de acceso lógico para la aplicación pueden ser tan granulares que este riesgo es mitigado y por lo tanto no es un resultado significativo. Este es un control de mitigación. Dispositivos periféricos: este checklist no ha hecho provisión para ambientes donde otros dispositivos como módems hayan sido conectados a la Solaris Box. Viabilidad del checklist: el checklist destaca una lista de configuraciones de seguridad para alcanzar la configuración mas segura disponible. Sin embargo estas son buenas para los que tienen no podrían ser factible en el mundo real. La administración puede considerar ciertas configuraciones de seguridad para no costear efectivamente y por lo tanto omitirlas a propósito. El costo puede no relacionarse a términos monetarios pero si a ineficiencias creadas por pobres tiempos de respuesta a una configuración en particular. El auditor debe sin embargo estar seguro que las omisiones de ciertas configuraciones de seguridad son conmensuradas con el propósito y el riesgo asociado con el servidor Solaris en cuestión. No. Control 1. Determinar si los últimos parches del sistema operativo están instalados. Determinar procedimientos para actualizar los parches: 2. Si fue descargado determinar si fue de un sitio seguro. Determinar si los parches fueron actualizados aun cuando hay una nueva vulnerabilidad Determinar si el parche fue probado en ambientes de prueba antes de ser puesto en marcha en un ambiente real. Determinar si el software mínimo está instalado para disminuir los exploits. Determinar la cantidad de espacio asignado a las diferentes particiones. La cantidad de espacio asignado depende del propósito del servidor e.g. un servidor de logeo tendrá mas especio alojado en /var. /opt and /usr – application installation / - root partition No. Control 3. Removiendo servicios innecesarios: Revisar el archivo inetd.conf para revisar que servicios estan activos. Los servicios son estan desactivados por el signo (#) en frente de la linea. Otra vez el auditor necesita determinar si es necesario que los servicios tengan de hecho ser comentados. Dependiendo de la function del servidor comentar los siguientes servicios: ftp 4. tftp systat rexd ypupdated netstat rstatd rusersd sprayd walld exec talk comsat rquotad name uucp Scripts de inicio telnet imap pop3 dtspc fs kcms all rpc services sadmind login finger chargen echo time daytime discard Revisar los archivos /etc/rc2.d y /etc/rc3.d para asegurar que los scripts innecesarios al inicio han sido finalizados de su ejecucion (las minusculas k o s detienen el script). Again depending on the role of the server the following should be stopped: automounter /etc/rc2.d/S74autofs Sendmail /etc/rc2.d/S88sendmail and /etc/rc1.d/K57sendamil RPC /etc/rc2.d/ S71rpc SNMP /etc/rc2.d/S76snmpdx NFS server /etc/rc3.d/S15nfs.server NFS client /etc/rc2/S73nfs.client No. Control 5. Logeo En ambientes con multiples Solaris Boxes, asegurar que hay un servidor central de logeo. Revisar el archivo /etc/hosts en ambos para ser logeado y el servidor syslog para asegurar que contiene las entradas correctas de servidor syslog/host. Si usando un servidor centras syslog para logear remotamente los incidentes de máquina, asegurar que el trafico enviado al servidor syslog esta encriptado usando ppp rpm Asegurar que suficiente espacio ha sido asignado al archivo /var si el servidor es syslog o inclusive si no hay un servidor en el ambiente en el caso de logear a usuarios de forma local. Asegurar que los siguientes items han sido logeados: SU attempts Failed login attempts Last command – who logged in, when and from where System events Revisar el archive /etc/syslog.conf para asegurar que un mínimo de errores de prioridad y los demás son logeados con todas las facilidades. Asegurar que el permiso al archivo /var/adm/loginlog son de 600 y son adquiridos por la raiz y el groupsys. Asegurar que un monitoreo apropiado estan en lugar para notificar a los administradores del sistema de actividades no autorizadas. Herramientas tales como Swatch y Logcheck pueden ser usadas para este propósito y puede mandar alertas anticipadas via e-mail. Asegurar que los permisos a utmp son puestos como –rw-r- - r- - . Verificar la existencia del archivo wtmp usando el commando ls - la. Asegurar que los permisos en wtmp son puestos como 644. Asegurar que el archivo btmp exista. 6. SSH: Revisar los archivos /etc/hosts.allow y /etc/hosts.deny para asegurar que las relaciones autorizadas son establecidas. Asegurar que el archivo .ssh/identity tiene permiso de 600 y adquirido por root. Asegurar que todos los programas r han sido removidos y que ssh han sido configurados para reemplazar programas r. Revisar procedimientos de seguridad para mantener la seguridad de las frases clave en el servidor y en las estaciones de trabajo. 7. TCPWrapper Revisar el archivo /etc/hosts.allow para asegurar que está configurado para no permitir a todos y luego permitir a los usuarios autorizados. Determinar el proceso para cambiar las reglas en TCP Wrapper y si las herrameintas como tcpdchk (confirmer configuracion y reporte de problemas) y tcpdmatch (lo que pasa cuando las reglas son desplegadas) estén usandose. Asegurar que el mensaje de baner de TCP Wrapperhaya sido creado con las palabras legalmente apropiadas. Asegurar que la opcion –DPARANOID esta activada. Asegurar que el TCP Wrapper ha sido configurado para consultar el servidor IDENT de cliente. Asegurar que el Makefile ha sido editado para incluir -DKILL_IP_OPTIONS. Asegurar que los permisos para todos los archivos TCP Wrapper son leer, leer y ejecutar con solo acceso (modos 755 &555). Auditoria para el sistema operativo Mac OS X Una de las áreas más importantes para fortalecer de este sistema operativo, que a pesar que es uno de los más seguros con respecto a otros sistemas operativos, son las siguientes: 1. Parches y mantenimiento: estrategias para realizar chequeos regulares para actualizaciones de seguridad y parches para mitigar riesgos en el sistema operativo y del software en el momento oportuno. 2. Controles de acceso físico: pasos para hacer el sistema operativo huésped X resistente a un atacante con un acceso de consola físico. 3. Keychain: asegurando el repositorio central de autenticación, o keychain, para reducir el riesgo de acceso no autorizado. 4. Encriptación de datos: uso de usuario y encriptación basada en disco para prevenir acceso no autorizado a datos sensibles, y para proveer garantía organizacional a los datos. 5. Soluciones de antivirus: soluciones para mitigar el riesgo de virus u otros malware afectando a los OS X 10uésped. 6. Controlar el acceso administrativo: una explicación de privilegio administrativo sobre el OS X y como mejorar el acceso de la mejor manera. 7. Firewall: detalles del servidor de seguridad prevista y cómo utilizar su funcionalidad. 8. Servicios de red: información sobre los servicios disponibles y como desplegarlos de una forma más segura. 9. Compartir archivos: como compartir archivos de forma segura. 10. Sistema de detección de intrusiones (IDS): soluciones IDS disponibles basados en red y en host. 1. Parches y mantenimiento: a. GUI: Mac OS utiliza un software para descargar e instalar las aplicaciones y los parches. Es recomendado que este configurado para revisar por nuevas actualizaciones diariamente y puede ser configurado para realizar descargas en segundo plano y avisar al usuario cuando la actualización esta lista para instalación. b. Línea de comando: las actualizaciones también pueden ser listadas y aplicadas a través de la herramienta de línea de comando: /usr/sbin/softwareupdate. Esta hace posible instalar actualizaciones en los scripts de la Shell, o invocarlos a través del SSH. Por ejemplo el siguiente comando debería ser ejecutado para que automáticamente instale todos las actualizaciones requeridas y lo ponga en el archivo: sudo /usr/sbin/softwareupdate –i –r 2>&1 >> /Library/Logs/auto-softwareupdate.log 2. Controles de acceso físico: en ambientes donde los atacantes pueden ganar acceso físico al sistema, es importante que la seguridad adicional están ubicados para proteger a los sistemas de acceso no autorizado. Si el atacante gana acceso físico al sistema, puede hacerle booteo al sistema operativo y leer datos almacenados en el disco duro del sistema, o activar una contraseña de firmware que puede convertir al sistema en inoperable. La mejor solución es controlar el acceso físico al sistema poniéndoles seguros y llaves pero a veces es imposible, especialmente para dispositivos móviles o usuarios de escritorio con ambientes compartidos. a. Seguridad de Firmware abierta: el firmware abierto es la BIOS usada por la mayoría de los sistemas Apple, y es usada para proveer bajo nivel de control a algunas partes del harware. El firmware abierto usa una línea de comando manejada por interface similar a lo que uso Sun microsystems que al BIOS grafico usado por las pcs x86. Para el propósito de la seguridad del sistema, dos operaciones necesitan ser realizadas en el Firmware abierto: poner una contraseña, y cambiar el nivel de seguridad. Estas características están solamente disponibles en el Firmware abierto de la versión 4.1.7 o posterior. i. Advertencias: la seguridad del firmware abierto puede ser solucionada de varias maneras por lo tanto no provee completa protección de un atacante con acceso físico. Si lo tiene, sin embargo, provee mayor protección que las configuraciones por defecto y lo hará más difícil para que el atacante gane acceso a datos. ii. Estableciendo la contraseña del firmware: desde la línea de comando de Open Firmare escriba: password, cuando se le solicite, ingrese y reingrese la clave elegida. La contraseña deberá cumplir con las políticas de seguridad de la organización. Una vez este configurada, es necesario configurar un modo de seguridad con uno de los tres valores: ninguno, comando o completo. Una vez este seleccionado el modo de seguridad, se puede establecer ingresando el comando: setenv security-mode full. Para guardar y reiniciar se debe ingresar: reset-all. b. Login i. Banner: un banner de login informa a los usuarios que acceden al sistema sobre la funcionalidad del sistema, propiedad y consecuencias de acceso no autorizado. Esta información deberá ser desplegada en todos los puntos de entrada del sistema, usualmente cuando se solicita login en el escritorio, login de la Shell y las solicitudes de acceso ftp. Un banner apropiado de logeo deberá ser definido, después de la consulta con el equipo legal de la organización si aplica. ii. Login automático: el login automático deberá ser desactivado para todos los usuarios del sistema; asegurando que cada usuario tenga que ingresar si usuario y contraseña antes de concederle el acceso. Esto podrá ser activado desde la parte de Seguridad localizado en el las preferencias del sistema. iii. Usuarios desplegados: por defecto, OS X despliega una lista de usuarios con acompañamiento grafico en la consola cuando se solicita logeo. Este provee mucha información para los atacantes entrantes así que debe ser desactivado, solicitando a los usuarios a ingresar sus cuentas y contraseñas. Para desactivar esto vaya a: preferencias del sistema, opciones de logeo, desplegar ventana de logeo: nombre y contraseña. iv. Sugerencias de contraseña: las sugerencias de contraseña permite a los usuarios poner sugerencias o recordatorios si olvidaron sus contraseñas. Mientas esto es una herramienta muy útil para algunos usuarios caseros quienes no se logean muy a menudo, esto es típicamente no apropiado para ambientes corporativos, porque aumenta el riesgo de que un atacante tenga más probabilidad de adivinar la contraseña. No hay una configuración global para asegurar que todos los usuarios hayan desactivado estas sugerencias de contraseña, de este modo cada usuario tendrá que ser verificado. Desde preferencias del sistema, cuentas, seleccione cada usuario y asegúrese que el text box de sugerencias de contraseña está en blanco. v. Protector de pantallas: un salvapantallas debe ser activado después de cierta inactividad del sistema, y debería requerir una contraseña para desactivar la estación de trabajo. Este previene acceso no autorizado de quienes acceden a una estación de trabajo que estaba anteriormente logeada. Un periodo de 10 min de inactividad antes de que el protector de pantallas se active debe ser implementado en la mayoría de las organizaciones. El protector de pantallas puede ser activado desde preferencias del sistema, escritorio y protector de pantalla. Para activar la protección por contraseña sobre el protector de pantalla deberá ser seleccionada en la pestaña de seguridad de las preferencias del sistema. vi. Encriptación de datos: OS X provee encriptación de datos usando el algoritmo AES con encriptación de 128 bits. Esto permite a los usuarios a encriptar datos con fortaleza militar. Entre otras: Cabe resaltar que se debe hacer un control muy intensivo sobre las soluciones que se le da al manejo de antivirus, los controles administrativos al sistema, el manejo de excepciones del firewall de modo que se puedan permitir algunos servicios, los servicios de red ya que por este medio es donde se presenta la mayoría de los ataques a nuestro sistema, controles de acceso al usuario, la administración del protocolo de transferencia de archivos(ftp) y la administración de archivos compartidos como podría ser con el Apache o los diferentes programas ofrecidos en el mercado. Auditoria para el sistema operativo Windows Como los anteriores sistemas operativos hay que garantizar que todas las puertas posibles dejadas abiertas por defecto, o que son menospreciadas por los administradores del sistema, tengan la mayor cobertura de modo que se minimice la probabilidad de que algún atacante externo o una vulnerabilidad interna origine inconsistencias y problemas en el sistema. De esta manera los siguientes puntos deberán ser revisados en su sistema de modo que la vulnerabilidad sea disminuida: 1. Banneres de login: Para implementar un banner en Windows 2000/xp, realice los siguientes pasos: a) Abra el panel de control y doble click a herramientas administrativas b) Seleccione políticas de seguridad local, opciones de seguridad y siga los pasos para aplicar en la versión que tenga: Paso 1 : para Windows xp, click en logo interactivo: título de mensaje para usuarios intentando logearse y luego introduzca el encabezado deseado. Paso 2: para Windows xp, click en logo interactivo: texto de mensaje para usuarios intentando logearse, y luego introduzca el texto especificado en el paso 1. 2. Restringir el booteo por acceso de dispositivos y desactivar el acceso (requiriendo autenticación) al BIOS/PROM del sistema a. Para prevenir el intento de acceso no autorizado de dispositivos alternativos de booteo en el sistema, tenemos que configurar el BIOS del sistema (o PROM) para prevenir el booteo de todos los dispositivos (otros de los discos aprobados del sistema). El booteo desde una interfaz de red debe desactivarse también. Una contraseña a la BIOS debe ser configurada y activada para prevenir que un usuario cambie las configuraciones. 3. Configurar los permisos de archivos del sistema: a. Verifique que el sistema de archivos sea NTFS (convierta si es necesario). En el ambiente del sistema operativo Windows, un archivo del sistema debe estar en formato NTFS para auditar efectivamente el acceso a archivos del sistema e instalar la seguridad. b. Asegure los archivos del sistema operativo Windows y habilite la auditoria: i. Abra Windows explorer y dele doble click en el directorio que contiene el sistema operativo Windows (usualmente en C:/Windows). ii. Seleccione propiedades y click en la pestaña de seguridad iii. Verifique que los permisos concuerden con los siguiente: Administrators (Group) SYSTEM (Group) Administrator (User) Authenticated Users (Group) - Full Control - Full Control - Full Control - Read/Execute (ONLY) iv. Click en la pestaña de avanzados, click sobre Permisos v. Asegurese que la casilla de verificación “Reestablecer permisos en todos los objetos hijos y activar la propagación de permisos heredados” este chuleada. vi. Aplique los cambios cliqueando ok seguido de si. vii. Para prevenir dificultades para imprimir en usuarios no administrativos, edite los permisos en “C:\windows\system32\spool” y “C:\windows\temp directories”. viii. Active la auditoria para el directorio del sistema operativo Windows c. Active la seguridad y la auditoria para la base de datos SAM i. Navegue a la base de datos SAM vía Windows Explorer (la base de datos SAM reside en dos directorios c:\winnt\repair and c:\winnt\system32\config. ii. Click derecho en el archivo sam y luego click en propiedades iii. Click en la pestaña seguridad iv. Asegurese de que que las configuraciones desplegadas cuando los dos archivos son examinados concuerden con que la última casilla no este chuleada, el resto debe estar chuleada. d. Seguridad de la carpeta auditar archivo. La carpeta “auditar archivo” debería ser creada en el escritorio de la persona elegida para hacer la auditoria del sistema. Logeese como el usuario auditor, click derecho en su escritorio y seleccione nuevo, carpeta, nombre de la carpeta “auditar archivo”. Limite los permisos en esta carpeta al auditor y las cuentas del sistema. Click derecho en la carpeta “auditar archivo”, click en propiedades y seleccione la pestaña de seguridad. Remueva todo el acceso para el grupo administrativo. El único permiso garantizado para la carpeta “auditar archivo” debe ser el usuario auditor y el sistema. Auditoria para el sistema operativo Linux La facilidad con la que Linux puede ser implementado a menudo causa un postpensamiento. A continuación se pretende mostrar un checklist que ofrezca una guía en el sistema Linux a los administradores del sistema para crear una maquina segura con Linux. La seguridad es compleja y constantemente debe cambiar. Adicional a esto se debe mirar la documentación que provee la página de Linux, ya que allí hacen actualizaciones constantemente. Cuando se implementa un sistema de seguridad, hay conceptos fundamentales que pueden ir con su sistema para mantenerlo seguro. Administracion de Parches (mantener el software con las actualizaciones del dia), y endurecimiento del sistema (desactivando servicios innecesarios) es vital, pero también es necesario las políticas de seguridad, administración del cambio, y auditoria de logeo a archivos. Un buen acercamiento para la seguridad en Linux es establecer una línea de puntos base para una instalación segura y el endurecimiento del sistema, seguido de políticas y procedimientos para asegurar que sus sistema se mantenga seguro. La seguridad es sobre reducir el riesgo. A continuación estarán los puntos clave para que su sistema pueda tener unos buenos servicios y procedimientos para que el riesgo de sufrir dolores de cabeza con su sistema sean los minimos posibles: Hacer una buena unidad de backup y de booteo. Mantener su sistema al dia. Desactivar servicios innecesarios. Verificar seguridad en archivos claves Política de contraseña por defecto. Modificar archivos “problema” al punto /dev/null Autorizar solo a root acceso a cron Banners de aviso Configuraciones básicas SSH Iptables Xinetd y inetd.config Tcpwrappers Logeo al sistema Backups Integridad en revisar software Apache Herramientas de vulnerabilidad. 1. Hacer una buena unidad de backup y de booteo. Normalmente se descargan CDS de una distribución libre de Linux, que incluye un CD booteable. Si usted instalo Linux de una descarga o sobre una red, puede hacer un disco booteable manualmente. El comando ‘mkbootdisk’ está incluido en la mayoría de los sistemas. Este es el mismo comando que es utilizado durante la instalación para crear un disco booteable. Una completa instrucción sobre este comando se encuentra en la página: http://www.linuxgeek.net/beginners/node55.html Los siguientes comandos pueden ayudarle a hacer esto: #~ dd if=/boot/vmlinuz-2.0.36-0.7 of=/dev/fd0 #~ rdev /dev/fd0 /dev/hda2 # usa su imagen de kernel # su particion raiz de Linux También, haga varios discos de backup listos. 2. Mantener su sistema al dia. La mayoría de los sistemas Linux trabajan con rpm (RedHat Package Manager, también usados por Mandrake y Suse) o apt/dpkg (Debian Package Manager). Puede actualizar software especifico individualmente usando estos comandos. RedHat tiene una opción de soporte administrada a través de la red RedHat que puede ayudarle a administrar los servidores de RedHat. La opción de soporte administrado usa el comando up2date, el cual automáticamente resolverá las dependencias. 3. Desactivar servicios innecesarios. Fortaleciendo su sistema mediante la eliminación innecesaria de servicios puede mejorar la seguridad y aumentar todo el rendimiento en conjunto de su sistema. Para empezar, necesita saber cual de los servicios están en ejecución en su sistema. Desde que varios servicios vayan en diferentes caminos, hay muchos lugares a donde revisar: # ps –ax listará todos los procesos actualmente ejecutándose # ls –l /etc/rc.d/rc3.d/S* mostrará todos los scripts de inicio (sis u boot esta en modo grafico, reemplace rc3.d con rc5.d) # netstat –a listará todos los puertos abiertos Para desactivar los servicios, puede remover los scripts de inicio, o usar un comando como chkconfig: Para detener el servicio: # service stop nfs Para detener el servicio a la hora de inicio, use el comando chkconfig o remueva el script de inicio. Para usar chkconfig: # /sbin/chkconfig –levels 2345 netfs off Para remover el script de inicio: # /bin/mv /etc/rc.d/rc5.d/S25netfs /etc/rc.d/rc5.d/K25netfs Algunos servicios necesitaran ser removidos desde /etc/inetd.conf o /etc/xinetd.d. 4. Verificar seguridad en archivos claves o o o o /etc/fstab: aseguran que el propietario & grupo son establecidos en root.root y los permisos son establecidos en 0644 (-rw-r--r--) Verificar que /etc/passwd, /etc/shadow & /etc/group son todos adquiridos por 'root' Verificar que los permisos sobre /etc/passwd & /etc/group son rw-r--r-- (644) Verificar que los permisos en /etc/shadow son r-------- (400) 5. Política de contraseña por defecto. /etc/login.defs debera contener minimamente configuraciones par alas siguientes (conjunto de valores que deberan ajustarse a la politica de contraseñas de su organizacion). Para una mayor completa lista de detalles: http://www.tin.org/bin/man.cgi?section=5&topic=login.defs PASS_MAX_DAYS 90 PASS_MIN_DAYS 6 PASS_MIN_LEN 14 PASS_WARN_AGE 7 6. Modificar archivos “problema” al punto /dev/null Acá hay un script rápido que reemplazara varios archivos rsh con null. Cuando este configurado, estos archivos establecerán relaciones “seguras” entre sistemas y pueden permitir shell remotas con logeo sin requerir contraseña – un acercamiento que es generalmente mal visto hoy día. for file in /root/.rhosts /root/.shosts /etc/hosts.equiv /etc/shosts.equiv ; do /bin/rm -f $file ln -s /dev/null $file done BIBLIOGRAFIA http://exa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/SO14.htm auditingindepthforsolaris.pdf Securing Solaris, Angela Orebaugh, October 2000 Secure Backups on Solaris Internet Servers, Richard Cove, November 2000 http://www.microsoft.com/technet/security/prodtech/win2000/secwin2k/09detect.mspx http://www.sans.org/rr/ http://www.sans.org/score/ http://www.redhat.com/docs/manuals/linux/RHL-9-Manual/security-guide/. Auditingunix.doc Linuxchecklist.pdf Securing_MAC_OS_X.pdf Unix_os.doc Win2k_XP_checklist.doc