Sistema de prevención de intrusiones en el host Sistema de firewall contra intrusiones en el host
Este tipo de ataque es bien conocido y aparece con frecuencia en las listas de los tipos de ataque más amenazantes de organizaciones internacionales de seguridad de redes como CERT, SANS y CSI. Según las estadísticas, los ataques mediante desbordamiento de búfer representan más del 80% de todos los ataques al sistema. Esta es una técnica de ataque que penetra en el sistema. El principio básico es que cuando los datos de entrada de un programa exceden la longitud que el búfer del programa puede manejar, se producirá un desbordamiento y el resultado está fuera del control del programador. Cuando un intruso organiza inteligentemente el código, el servidor atacado también puede ejecutar el código del programa especificado por el intruso, lo que permite al atacante incluso obtener privilegios de superusuario en el sistema. Por ejemplo, el incidente del gusano Morris en la década de 1980 provocó la parálisis de 1/3 de las computadoras en Internet en ese momento. Este método de intrusión utilizó una vulnerabilidad de desbordamiento de búfer en el servicio Finger de UNIX por el virus Code Red en 2001; En unas pocas horas, el mensaje se extendió por todo el mundo y provocó pérdidas por miles de millones de dólares. También fue una vulnerabilidad de desbordamiento del búfer en el servicio IIS en la plataforma del servidor Windows. El gusano SQL Slammer en 2003 y Sasser en 2004 también explotaron esta vulnerabilidad. ¿Por qué hay tantos ataques de este tipo? La razón principal es (sin limitarse a) que ciertas funciones del propio lenguaje C, que actualmente se usa ampliamente para la programación de sistemas, tienen algunas lagunas, lo que las hace generalizadas y difíciles de investigar a fondo.
Actualmente, las principales formas de prevenir este ataque son las siguientes: En primer lugar, parchear los programas con vulnerabilidades de desbordamiento. Este es el método de prevención más común y requiere que el fabricante del programa proporcione los parches correspondientes para que surta efecto. Sin embargo, a medida que la frecuencia de los ataques a la red continúa acelerándose, el tiempo desde el descubrimiento de una vulnerabilidad hasta su uso en ataques a gran escala se ha acortado considerablemente. A menudo, el ataque ya se ha producido antes de que el fabricante del programa haya publicado el parche correspondiente. Por tanto, este método es muy pasivo y no puede evitar la intrusión de nuevas vulnerabilidades. En segundo lugar, el búfer se vuelve no ejecutable a través de la configuración del sistema operativo, lo que evita que los atacantes coloquen código de ataque. Los principales problemas de este enfoque son que, en primer lugar, puede entrar en conflicto con las aplicaciones existentes y, en segundo lugar, no protege completamente contra ataques de desbordamiento. Porque algunos ataques no requieren el proceso de implantación del código de ataque. En tercer lugar, utilice un compilador dedicado a la prevención de desbordamiento para compilar y verificar el programa. Se trata de una medida de protección relativamente completa, pero requiere mucho tiempo y dinero.
Todos los métodos anteriores no se pueden utilizar con éxito en sistemas empresariales reales. Los sistemas de prevención de intrusiones en el host proporcionan otro método práctico y fácil de implementar para prevenir ataques de desbordamiento de pila. El sistema de prevención de intrusiones del host tiene una tecnología STOP (STack Overflow Protection, protección contra desbordamiento de pila) que puede prevenir este tipo de intrusiones y evitar que los usuarios o programas obtengan privilegios de superusuario.
Todos los programas de minería de vulnerabilidades del buffer se basan en la siguiente suposición, es decir: el desplazamiento del espacio de direcciones de datos del parámetro problemático insertado en la pila cada vez que se ejecuta el programa es un cierto (o relativamente diferente) Pequeño ). Si el sistema operativo define un desplazamiento aleatorio y lo asigna a la aplicación cuando el programa se está ejecutando, entonces un programa de desbordamiento diseñado específicamente para este programa defectuoso devolverá una dirección ret incorrecta cuando se desborde y no podrá saltar. al código shell construido maliciosamente. Aunque la mayoría de los programas de desbordamiento de búfer también pueden proporcionar una variable de compensación ajustable, dado que el programa defectuoso tendrá una compensación aleatoria cada vez que se ejecuta, la dirección obtenida al adivinar el último desbordamiento fallido. El espacio y el contenido no pueden guiar la corrección del siguiente desplazamiento de ajuste. El sistema de prevención de intrusiones del host proporciona tecnología STOP que funciona al mismo nivel sin cambiar el kernel del sistema operativo. Puede ayudar a definir y asignar un desplazamiento aleatorio para implementar dinámicamente las funciones anteriores sin modificar el kernel del sistema.
A través de esta medida preventiva, los usuarios no sólo pueden proporcionar una defensa de alta resistencia contra todos los ataques de desbordamiento de pila conocidos y desconocidos, sino que tampoco necesitan modificar ningún sistema operativo ni aplicación existente para garantizar que el funcionamiento continuo de el sistema original protege la inversión. La manipulación de la información destruye la integridad de la información y es uno de los objetivos de ataque de los intrusos. Hay dos formas principales de manipulación de información: manipulación durante la transmisión de información y manipulación durante el almacenamiento de información.
La manipulación de la transmisión de información se produce principalmente durante las transacciones en línea, lo que provocará graves pérdidas económicas para ambas partes de la transacción; la manipulación de la información de control del equipo de la red puede provocar un funcionamiento anormal de la red e incluso provocar cambios en la ruta de transmisión de la información. La prevención de este tipo de comportamiento de ataque se basa principalmente en el cifrado y la firma digital de la información y en fuertes métodos de verificación por parte de ambas partes en el intercambio de información. La manipulación del almacenamiento de información es el método de ataque más común. A menudo se manifiesta en cambios en los datos en los servidores comerciales clave, lo que hace que la empresa no funcione normalmente. La alteración de algunos archivos clave, como la manipulación de la página de inicio del sitio web; la imagen del atacante pérdidas y posibles pérdidas económicas. Por ejemplo, si se manipula la página web de una unidad de comercio en línea, las consecuencias pueden conducir a la pérdida de un gran número de clientes, incluso si la intrusión no pone en peligro datos clave de la transacción. Otro método de ataque más peligroso es la manipulación de programas ejecutables. Los intrusos pueden lograr muchos propósitos destructivos manipulando los archivos ejecutables originales del sistema. Por ejemplo, modificar ilegalmente los programas de los sistemas de comercio de valores o los sistemas bancarios para obtener enormes ganancias; alterar ciertas aplicaciones clave para hacer que el sistema no funcione normalmente. Pero el propósito más común de la manipulación es alterar algunas aplicaciones utilizadas frecuentemente por administradores o usuarios, de modo que además de realizar operaciones normales, también ejecuten un programa troyano colocado por el intruso. De esta forma, al administrador o usuario le parece que el sistema funciona con normalidad, pero sin saberlo se ejecuta un programa troyano que provoca que se abra la puerta trasera. Las consecuencias de este tipo de intrusión son muy graves y pueden provocar graves fugas de información.
La solución al sistema de prevención de intrusiones del host es comenzar desde lo fundamental y refinar en gran medida la granularidad del control de recursos. Independientemente de si se trata de un sistema operativo de servidor UNIX o Windows, los permisos de seguridad para archivos y directorios son muy limitados. Sin embargo, a través del sistema de prevención de intrusiones del host, se puede mejorar enormemente el control de permisos de archivos y directorios. Como se muestra en la figura, además de leer, escribir y ejecutar, el tipo de permiso también agrega 8 permisos adicionales, como eliminar, cambiar nombre, cambiar esquema, cambiar propietario, actualizar hora, cambiar ACL, crear y cambiar directorio, proporcionando administradores con Proporciona suficiente espacio de autorización y puede autorizar recursos para cada cuenta de la manera más adecuada para evitar riesgos de seguridad interna causados por una autorización excesiva. Al mismo tiempo, la misma cuenta que utiliza diferentes aplicaciones para acceder a recursos también puede obtener diferentes niveles de permisos de acceso, lo que proporciona una gran comodidad para las necesidades especiales de determinadas industrias.
Un control refinado de los permisos de archivos puede reducir en gran medida los incidentes de manipulación de información por motivos de autorización. Sin embargo, para eliminar por completo la manipulación de información clave, el sistema de prevención de intrusiones del host también proporciona una función de firma digital, que puede apuntar a archivos ordinarios, archivos de datos y archivos ejecutables, especialmente el objetivo principal de los ataques de intrusos: los tipos suid y sgid. en UNIX. El programa realiza una verificación de integridad. Si los archivos ordinarios y de datos se modifican inesperadamente, el sistema de prevención de intrusiones del host emitirá una alarma; si un archivo ejecutable se modifica inesperadamente, el sistema de prevención de intrusiones del host rechazará automáticamente la ejecución del archivo ejecutable y emitirá una alarma al mismo tiempo. De esta manera, incluso si un intruso ilegal manipula el archivo de destino, le resultará difícil lograrlo. Por supuesto, si se utiliza la función de protección de archivos del sistema de prevención de intrusiones del host para proteger estos archivos clave, los intrusos no podrán lograr el propósito de la manipulación ilegal. El caballo de Troya (en lo sucesivo, caballo de Troya) se llama caballo de Troya en inglés. Su nombre proviene de la historia del asedio de los caballos de Troya en la antigua Grecia. Es este antiguo método de asedio el que se ha convertido en el actual método obsceno de intrusión en la red.
En primer lugar, la función de lista de control de acceso al programa (PACL) del sistema de prevención de intrusiones del host permite que el mismo usuario acceda al mismo recurso. Si utiliza diferentes aplicaciones para acceder a él, obtendrá permisos diferentes. En otras palabras, para algunos recursos importantes, podemos utilizar la función del sistema de prevención de intrusiones del host para limitar los permisos de acceso de diferentes aplicaciones y permitir que solo aplicaciones legítimas conocidas accedan a estos recursos. De esta manera, incluso si el intruso ejecuta un programa troyano en el servidor atacado, el programa troyano debe pasar la verificación de seguridad del sistema de prevención de intrusiones del host cuando necesita robar información clave. Dado que los permisos de acceso del programa troyano no están definidos en PACL, el acceso no es posible según los permisos predeterminados, lo que evita el robo de información del troyano.
Además, una vez que un ordenador se conecta a la red, se convierte en un todo y debe ser responsable de la seguridad general. A través del análisis anterior, hemos descubierto que los troyanos no sólo roban información local, sino que, lo que es más grave, los intrusos pueden lanzar intrusiones a través de computadoras locales a otras computadoras en la red, como ataques DDoS. La ley del gobierno de EE. UU. estipula que el propietario de la computadora con problemas de seguridad debe ser considerado responsable de la intrusión en otras computadoras en red causada directamente por los problemas de seguridad de una determinada computadora. En la actualidad, otros países también están introduciendo gradualmente regulaciones pertinentes. Por tanto, no basta con adoptar una sabia estrategia de autoprotección en Internet. Para evitar que los servidores con troyanos implantados se conviertan en trampolines y marionetas de intrusos, el sistema de prevención de intrusiones del host también tiene la función de control de acceso a la red. Las reglas de control de acceso a la red no solo definen quién puede acceder a qué servicios en esta máquina, en qué momento y desde dónde, sino que, lo que es más importante, también pueden definir qué tipos de conexiones de red se pueden emitir desde esta máquina. De esta forma, cualquier enlace que no cumpla las normas no será enviado desde esta máquina. Por ejemplo, cuando el código rojo está muy extendido, muchos servidores que ejecutan servicios IIS realizarán una amplia gama de análisis en la red después de haber sido infectados con el virus y encontrarán atacantes potenciales con el puerto TCP 80 abierto. Pero este comportamiento del servidor web es obviamente un comportamiento muy anormal. Por lo tanto, al definir el tipo de enlaces salientes en el sistema de prevención de intrusiones del host, podemos evitar fundamentalmente ataques externos iniciados por troyanos, especialmente para evitar convertirnos en títeres de los ataques DDoS. En muchos entornos empresariales críticos, debe haber varios servicios importantes en ejecución. Por ejemplo, para un sitio web de transacciones de comercio electrónico, el servicio HTTP o demonio en el servidor es muy crítico. En el servidor de base de datos que se ejecuta en el entorno de soporte en segundo plano, el proceso del demonio de la base de datos es el alma del servidor. De manera similar, para un nuevo proveedor de servicios de correo electrónico pago, si el servicio SMTP en el servidor de correo electrónico backend se detiene repentinamente, inevitablemente será más difícil atraer usuarios. Por tanto, la piedra angular de la sociedad de la información son los distintos servicios que se ejecutan en servidores clave. Una vez que se interrumpe el servicio, la aplicación de la capa superior quedará sin fundamento. En el sistema operativo, estos servicios clave existen como procesos en segundo plano.
Actualmente, los servicios más atacados son HTTP, SMTP y procesos de bases de datos. Por supuesto, también existen otros procesos de servicios clave. Generalmente, los intrusos tienen dos formas de finalizar estos procesos: una es utilizar ciertas vulnerabilidades en estos propios servicios para invadir, y la otra es obtener primero los permisos en el sistema operativo para finalizar los procesos, generalmente del superusuario. antes de abortar el proceso.
La seguridad del proceso depende enteramente del nivel de seguridad proporcionado por el sistema operativo. En términos generales, la principal forma de evitar la suspensión del proceso es utilizar la tecnología Watchdog. El llamado perro guardián significa perro guardián y su función principal es proteger el proceso y evitar que el proceso finalice inesperadamente. Si el proceso se interrumpe de forma anormal debido a algunos factores inesperados, Watchdog puede reiniciar rápidamente el proceso observado en un corto período de tiempo.
El sistema de prevención de intrusiones del host dispone de esta función Watchdog. De hecho, los servicios proporcionados por el propio sistema de prevención de intrusiones del host se basan en tres procesos. Para brindar protección de seguridad al sistema operativo, el sistema de prevención de intrusiones del host debe protegerse primero para evitar la terminación inesperada de su propio proceso. En el funcionamiento real, además de cumplir sus propias funciones, estos tres procesos también tienen una relación de cuidado mutuo. Es decir, el proceso uno es el perro guardián del proceso dos, el proceso dos es el perro guardián del proceso tres y el proceso tres es el perro guardián del proceso uno. De esta forma, si uno de los procesos muere inesperadamente, siempre hay uno para reiniciarlo. Incluso si dos procesos se interrumpen inesperadamente al mismo tiempo en circunstancias extraordinarias, el proceso restante aún puede iniciar el otro proceso y luego iniciar el último proceso. Por lo tanto, el mecanismo de seguridad del sistema de prevención de intrusiones del host es muy estricto y no solo se utiliza para protegerse a sí mismo, sino que también se puede aplicar bien a la protección de seguridad de los procesos de servicio clave. La existencia de superusuarios brinda una gran comodidad a los administradores, después de iniciar sesión una vez, pueden completar todo el trabajo de administración, ejecutar todos los comandos y realizar todo el mantenimiento del sistema. Sin embargo, al mismo tiempo, es precisamente debido a los superpermisos omnipotentes del superusuario que también causa muchos problemas.
En primer lugar, dejando de lado los ataques de intrusos, los superprivilegios traen muchos problemas cuando los administradores realizan operaciones normales. Una vez que haya iniciado sesión como superusuario, el administrador debe tener cuidado al realizar diversas operaciones. Muchas acciones en el sistema son irreversibles. Una vez que el administrador realiza operaciones incorrectas debido a errores humanos, a menudo se producirán pérdidas irreparables. Especialmente en los sistemas de servidores empresariales clave, a menudo se producen errores costosos similares y, a menudo, podemos ver informes relacionados en los medios. Según las estadísticas, el error humano cometido por los administradores es una de las mayores amenazas a la seguridad de todo el sistema de red. De hecho, hay algunas operaciones que se pueden completar sin el permiso de un superusuario, pero la gran mayoría de las personas aún eligen iniciar sesión con una cuenta de superusuario. Probablemente sea un gran error.
En segundo lugar, configurar un superusuario en el sistema operativo tiene su lado irracional. En términos generales, la responsabilidad del administrador es mantener el funcionamiento normal del sistema, establecer y mantener varias cuentas, asignar derechos de acceso a los recursos, etc. Generalmente no deberían tener la capacidad de leer o incluso modificar o eliminar ciertos archivos almacenados en el servidor. Derechos a la Información Confidencial. Pero en realidad, las personas con derechos de superusuario pueden procesar estos datos de forma arbitraria, e incluso los datos cifrados pueden destruirse o incluso eliminarse fácilmente. Esto es incompatible con las políticas de seguridad normales y debe controlarse mediante algunas medidas.
Finalmente, en el mundo de los intrusos, probablemente no haya nada más maravilloso que obtener el estatus de superusuario en un sistema nuevo e importante. El objetivo final de casi todos los métodos de ataque es obtener el control total del sistema atacado, que es básicamente lo mismo que obtener el nombre de cuenta y la contraseña del superusuario del sistema. El descifrado de contraseñas, el desbordamiento de pila, la escucha de redes, etc. tienen como objetivo esto. Una vez que el intruso obtiene privilegios de superusuario, no sólo puede completar la serie de acciones mencionadas anteriormente, sino que también puede cambiar a la identidad de otra persona a voluntad, sin siquiera requerir ninguna verificación de contraseña; puede borrar todos los rastros de sus acciones a voluntad; Los registros de auditoría dejan a los auditores sin nada que verificar. Por supuesto, la existencia de superusuarios también pone al personal de seguridad de la red en una situación embarazosa. No importa cuán irrompible sea el firewall, cuán exigente sea el IDS o cuán avanzado sea el algoritmo de cifrado, siempre que el intruso obtenga privilegios de superusuario, todo esto será en vano.
Para hacer frente a las situaciones anteriores, el sistema de prevención de intrusiones del host redistribuye los privilegios del superusuario a nivel del sistema operativo y trata a todos los usuarios por igual, de modo que ya no hay un superusuario en el sistema. existe. Después de la descentralización, cada administrador puede trabajar dentro de su propio ámbito de responsabilidad sin tener otros privilegios. Por ejemplo, los administradores de seguridad pueden asignar permisos a recursos, pero no pueden eliminar registros a voluntad; los auditores de seguridad son responsables de analizar los registros y descubrir comportamientos sospechosos de todos los usuarios, pero no tienen todos los demás derechos del sistema. Esto es como agregar tres cerraduras a una caja fuerte. No hay forma de acceder al contenido de la caja fuerte con solo obtener una llave. Para que los usuarios puedan descentralizarse según sus propios deseos, el sistema de prevención de intrusiones del host también proporciona una interfaz de asignación de permisos (delegación de tareas) para una configuración más detallada, lo que permite a los usuarios normales tener ciertos derechos que solo los superusuarios pueden ejecutar. Después de la distribución y el refinamiento de la energía, se pueden evitar en gran medida los errores humanos de los administradores y se puede evitar que los intrusos se descontrolen una vez que obtengan la propiedad de una cuenta.
Para un seguimiento más detallado y preciso de la actividad en el sistema, el sistema de prevención de intrusiones en el host ofrece la capacidad de realizar auditorías basadas en el ID de inicio de sesión original. Es decir, no importa a qué ID de inicio de sesión el usuario cambie posteriormente a través de su, las actividades siempre serán rastreadas y registradas en el registro con su ID de inicio de sesión original, e incluso si el intruso obtiene la contraseña de root, no puede destruir el registro. Además, el sistema de prevención de intrusiones del host administra los derechos de uso de ID como un recurso, es decir, si una cuenta necesita ser demandada por otra cuenta, debe ser autorizada por el sistema de prevención de intrusiones del host; de lo contrario, no tendrá éxito. Esto es cierto incluso si el usuario root desea acceder a otras cuentas. Esto reduce en gran medida los ataques de falsificación mediante el cambio de ID.
El sistema de prevención de intrusiones del host se basa en un sistema de seguridad sólido y un nuevo concepto de diseño de seguridad. Tiene características operativas estables y una seguridad potente, lo que proporciona una excelente protección de seguridad para varias plataformas UNIX y plataformas de servidor Windows. es compatible con los mecanismos de seguridad del mainframe. Este sistema es una importante herramienta de seguridad que se centra en proteger los recursos clave del servidor y está recibiendo cada vez más atención por parte de los usuarios.
Por supuesto, las medidas de protección proporcionadas por el sistema de prevención de intrusiones del host se centran principalmente en proteger los recursos y comportamientos del servidor, y no pueden reemplazar todos los productos de seguridad. Los firewalls, antivirus, sistemas de detección de intrusiones en la red, VPN, etc. son complementos útiles del sistema de prevención de intrusiones del host. Sólo combinando razonablemente la protección de los servidores clave con la protección de la arquitectura general de la red podremos brindar la protección más completa para nuestro espacio de red. En respuesta a las actuales amenazas mixtas que plantean virus, gusanos, intrusiones y otras amenazas, el sistema de prevención de intrusiones del host sin duda proporcionará un método de defensa más proactivo para nuestros recursos clave.