Desbordamiento del búfer de arranque de Asus
Creo que a menudo verás la palabra "desbordamiento" al leer algunos artículos de seguridad. El "Diccionario Xinhua" explica que el líquido sale cuando está lleno. ¡Sí! Esto es lo que significa desbordamiento. El desbordamiento es una vulnerabilidad recuperable en las computadoras, el nombre completo es: vulnerabilidad de desbordamiento del búfer. En una computadora, hay un lugar llamado "búfer" que se utiliza para almacenar los datos ingresados por el usuario. La longitud del buffer está preestablecida y la capacidad permanece sin cambios. Si los datos ingresados por el usuario exceden la longitud del búfer, se desbordará y los datos desbordados se sobrescribirán con datos legales.
En este momento, también podemos utilizar lagunas para escribir datos maliciosos, lo que a menudo se denomina desbordamiento. También podemos entender a través de analogías. Muchos virus también se propagan mediante contagios. Por ejemplo, virus como "Shockwave" y "Red Team" se propagan mediante desbordamientos del búfer.
Situación
Cada año los piratas informáticos explotan muchas vulnerabilidades de desbordamiento. Por ejemplo, la vulnerabilidad del código de formato WMF en el motor de renderizado de gráficos de Microsoft Windows (ms0601) a principios de este año es una vulnerabilidad de desbordamiento típica, y el método para explotar esta vulnerabilidad también es muy simple. Existen herramientas de intrusión especializadas en Internet, como wmfexploit, que admite conexiones inversas, lo que facilita a los piratas informáticos explotar esta vulnerabilidad. Un pirata informático podría utilizar esta vulnerabilidad para obtener los privilegios más altos mediante un ataque de desbordamiento, o podría utilizarla para crear un caballo de Troya que convierta la computadora de la víctima en su propio "broiler".
Métodos de prevención simples
Las vulnerabilidades de desbordamiento son más difíciles de prevenir que otras vulnerabilidades. Porque existen varias vulnerabilidades de desbordamiento, como el ataque de desbordamiento 1433, el ataque de desbordamiento IDQ, el ataque de desbordamiento remoto del sistema FreeBSD, etc. Incluso QQ puede desbordarse, lo que implica una gran cantidad de software del sistema.
Tome la vulnerabilidad del código en el formato WMF del motor de renderizado de gráficos de Microsoft Windows (ms 0601) mencionada en este artículo como ejemplo para ver la solución. Dado que esta vulnerabilidad se activa al visualizar archivos WMF, se utiliza la imagen de Windows al visualizar archivos WMF. Hacemos clic en "Inicio → Ejecutar" e ingresamos "regsvr 32-u Windir /system32/shimgvw. dll" para cerrar sesión en Windows Picture, lo que puede evitar que se desborde la vulnerabilidad del código de formato WMF del motor de renderizado de gráficos. También existe una forma segura, que consiste en descargar el parche de Microsoft.
Para prevenir vulnerabilidades de desbordamiento, debemos tomar medidas preventivas específicas, y diferentes vulnerabilidades tienen diferentes métodos de prevención. En primer lugar, asegúrese de actualizar los parches de seguridad para su sistema operativo y sus aplicaciones de manera oportuna. En segundo lugar, debe reducir los puertos de servicio abiertos innecesarios, porque cuantos menos puertos abra, más difícil será para los piratas informáticos invadir.
La solución es
/art/238/2002 07 05/18671_1.html
El ataque de desbordamiento de pila (también conocido como desbordamiento de búfer) es uno de Las técnicas de hacking más utilizadas. Dichos ataques pueden deberse a la naturaleza de ciertos lenguajes de programación, empresas, sistemas y programas de código abierto. Sabemos que el propio Unix y muchas de sus aplicaciones están escritas en lenguaje C, que no comprueba los límites del búfer. En algunos casos, si la longitud de los datos ingresados por el usuario excede el búfer proporcionado por la aplicación, sobrescribirá otras áreas de datos, incluida la pila del usuario. Esto se denomina "desbordamiento de pila o desbordamiento de búfer". En términos generales, sobrescribir datos de otras áreas de datos no tiene sentido y, en el mejor de los casos, provocará errores de aplicación. Sin embargo, si los datos de entrada son elaborados por un "hacker" y los datos que sobrescriben la pila son el código del programa de intrusión del hacker, el hacker obtendrá el control del programa. Si el programa se ejecuta como usuario root, el hacker obtendrá privilegios de root y luego podrá compilar el programa del hacker, dejando una puerta trasera de intrusión y realizar más ataques. Los ataques de piratería basados en este principio se denominan "ataques de desbordamiento de pila".
Un atacante logra un ataque de desbordamiento de pila buscando programas que contengan setuids con esta vulnerabilidad. Este programa puede ser ejecutado por cualquier usuario.
Una vez que se ejecuta el programa, se ejecutará en el sistema con privilegios de root. Un atacante necesitaría saber en qué parte del sistema se almacena la información mientras se ejecuta el programa. Con base en esta información, el atacante ejecuta el programa e ingresa más datos de los que el sistema puede aceptar. Por ejemplo, suponiendo que el búfer del sistema es de solo 20 bytes y el atacante ingresa 30 bytes, es como poner demasiada agua en un balde, el agua se desbordará al suelo y los datos restantes ingresarán a un espacio específico del sistema. Con una elaboración cuidadosa, un atacante puede obtener privilegios de usuario root. Una vez que la vulnerabilidad se descubre y se publica en Internet para que otros la utilicen, este método de ataque permanecerá disponible y aplicable a otros sistemas similares hasta que se elimine la vulnerabilidad. Este ataque se basa en una debilidad en el software del sistema, donde los datos deben ingresar en la misma ubicación en la pila después de desbordarse. El famoso virus "gusano" de los años 80 aprovechó las debilidades del programa de inicio de sesión de Unix y lanzó ataques mediante el uso de "desbordamiento de pila".
Como se puede ver en el principio anterior "Ataque de desbordamiento de pila", podemos prevenir este tipo de ataques mediante los siguientes métodos:
1) Verifique cuidadosamente la situación de desbordamiento al abrir el programa. y no permita que los datos se desborden del búfer. Debido a razones de programación y lenguaje de programación, es muy difícil y no es adecuado para una gran cantidad de programas que ya están en uso;
2) Utilice un compilador para comprobar si hay desbordamiento de pila o agregue algunos marcadores a el programa para confirmar que los desbordamientos deliberados causados por piratas informáticos están prohibidos en tiempo de ejecución. El problema es que los programas existentes y los nuevos no se pueden procesar y es necesario modificar el compilador;
3) o continuar parcheando. Los administradores de sistemas deberían dedicar un esfuerzo considerable a rastrear las vulnerabilidades del sistema publicadas en grupos de noticias de Internet e instalar parches para cerrar las vulnerabilidades una vez publicadas. Pero los administradores de sistemas siempre están un paso por detrás de los atacantes y dedican mucho tiempo que no se puede utilizar para mejorar el rendimiento del sistema y responder a las solicitudes de los clientes.
Ninguno de estos métodos se puede utilizar en sistemas empresariales reales. El control de acceso eTrust de Kingsoft proporciona otro método práctico y fácil de implementar para evitar "ataques de desbordamiento de pila". ETrust AccessControl incluye tecnología STOP (Stack Overflow Protection) que previene esta intrusión e impide que los usuarios o programas obtengan privilegios de root. Como se mencionó anteriormente, este ataque debe requerir que los datos se desborden y sobrescriban una ubicación específica conocida. Cuando el programa se está ejecutando, DSX intercepta el código en ejecución y deja de reubicar la pila del sistema para que los datos desbordados del atacante no puedan sobrescribir lo que quiere sobrescribir y el ataque no pueda tener éxito.