Endurecimiento

En informática, el endurecimiento suele ser el proceso de asegurar un sistema reduciendo su superficie de vulnerabilidad, que es mayor cuando un sistema realiza más funciones; en principio, un sistema de función única es más seguro que uno polivalente.

La reducción de las formas de ataque disponibles normalmente incluye el cambio de contraseñas predeterminadas, la eliminación de software innecesario, nombres de usuario o inicios de sesión innecesarios y la desactivación o eliminación de servicios innecesarios.

Existen varios métodos para fortalecer los sistemas Unix y Linux.

Esto puede implicar, entre otras medidas: Aplicar un parche al kernel como Exec Shield o PaX, cerrar puertos de red abiertos y la instalación de sistemas de detección de intrusiones, cortafuegos y sistemas de prevención de intrusiones.

Además, hay scripts y herramientas de refuerzo como Lynis, Bastille Linux, JASS para Solaris y Apache / PHP Hardener que pueden, por ejemplo, desactivar funciones innecesarias en archivos de configuración o realizar otras medidas de protección.

Endurecimiento binario

El endurecimiento binario es una técnica de seguridad en la que los archivos binarios se analizan y modifican para protegerlos contra vulnerabilidades comunes.

El endurecimiento binario es independiente de los compiladores e involucra a toda la cadena de herramientas.

Por ejemplo, una técnica de refuerzo binario es detectar posibles desbordamientos de búfer y sustituir el código existente por un código más seguro.

La ventaja de manipular binarios es que las vulnerabilidades en el código heredado se pueden corregir automáticamente sin necesidad de código fuente, que puede no estar disponible u ofuscado.

En segundo lugar, se pueden aplicar las mismas técnicas a binarios de varios compiladores, algunos de los cuales pueden ser menos seguros que otros.

El endurecimiento binario a menudo implica la modificación no determinista del flujo de control y las direcciones de instrucciones para evitar que los atacantes reutilicen con éxito el código del programa para realizar exploits.

Las técnicas de endurecimiento más comunes son:

  • Protección contra desbordamiento del búfer.
  • Protección de sobrescritura de pila.
  • Colocar ejecutables independientes y aleatorización del diseño del espacio de direcciones.
  • Agitación binaria (aleatorizar la dirección de los bloques básicos).
  • Enmascaramiento de puntero (protección contra la inyección de código ).
  • Aleatorización del flujo de control (para proteger contra la desviación del flujo de control).

Categorías

: Procedimientos de Seguridad Informática

INF.: Esta obra contiene una traducción total derivada de Hardening de la Wikipedia en inglés, versión del 24 de Julio de 2020, publicada por sus editores bajo la Licencia Libre de GNU (es) y licencia CC BY 3.0.

Relacionado

ForEach de Javascript: Array para bucles

Como una de las estructuras de control básicas en la programación, los bucles son casi una adición diaria al código que escribimos. El bucle forEach clásico es uno de los primeros fragmentos de código que aprendemos a escribir como programadores. Si fueras un desarrollador de Javascript, sabrías que Javascript no es ajeno a la iteración a través de los elementos de una matriz o un mapa ¡SEGUIR LEYENDO!

10 Mejores alternativas de Sci-hub para descargar artículos de investigación gratis

Como sabemos, Sci-hub es un sitio web increíble con millones de artículos de investigación para todos los estudiantes universitarios y académicos. El sitio web de Sci-Hub se encarga de obtener los artículos de investigación y artículos de pago utilizando las credenciales que se filtran. La fuente de credenciales utilizada por este sitio web no está clara. Sin embargo, se supone que muchas de ellas son donadas, ¡SEGUIR LEYENDO!

10 Características Sorprendentes de Windows que Deberías Conocer en 2024

Aunque haya sido usuario de Windows durante décadas, el sistema operativo es tan amplio y complejo que siempre existen características útiles, pero menos conocidas, que podrían sorprenderte. En este sentido, he identificado diez funciones poco conocidas de Windows que pueden potenciar su eficiencia, comodidad e incluso su experiencia de uso lúdico en su PC.

¡REBAJADO!
Microsoft Surface Go 2 - Portátil 2 en 1 de 10.5 pulgadas Full HD, Wifi, Intel...
  • Procesador Dual-Core Intel Pentium Gold 4425Y (2...
  • Memoria RAM de 8 GB LPDDR3
  • Disco SSD de 128 GB
Todas estas características deberían ser compatibles tanto con Windows 10 ¡SEGUIR LEYENDO!

10 Criptomonedas con Potencial de Crecimiento de Futuro

El rumor en torno a las criptomonedas no se desvanece por mucho que existan grandes pesimistas alrededor de los malos rumores. Entonces, si consideras invertir en el mundo de las criptomonedas, deberías estar atento a las criptomonedas que se espera que tengan un buen desempeño para el resto de 2021. En los últimos tiempos, los tokens DeFi están recibiendo toda la atención y es más que ¡SEGUIR LEYENDO!

10 Empresas de robótica más importantes del mundo

Los cambios de paradigma revolucionarios debido a los desarrollos de la robótica en todo el mundo están generando nuevos puntos de vista en muchos sectores, entre ellos en los de la industria y la tecnología. Con la ayuda de la Inteligencia Artificial, la tecnología produce resultados innovadores cada segundo y el campo de la robótica define y reconfigura su uso a cada instante. Cada día que ¡SEGUIR LEYENDO!

10 Frameworks que los Desarrolladores de Software deberían Aprender 2024

Bienvenidos desarrolladores web y de software, estamos en los inicios de 2023 y es posible que muchos se esten planteado sus objetivos para lo largo del año. Con anterioridad ya he compartidos las rutas de aprendizaje para un desarrollador front-end, un desarrollador full-stack o un desarrollador back-end entre otros muchos contenidos más. En este artículo, me gustaría compartir algunos de los mejores frameworks y bibliotecas para ¡SEGUIR LEYENDO!

10 Repositorio de GitHub que todo Desarrollador Web debería conocer

GitHub es el lugar que debes buscar cuando intentas mejorar como desarrollador, toda la información que necesitas está disponible en algún repositorio que alguien ya se ha molestado en indexar. Sin embargo, la parte complicado es encontrar el repositorio más adecuado. Es fácil sentirse perdido en todos los repositorios disponibles dentro de GitHub. Para ayudarte, he elaborado una lista de 10 repositorios de GitHub que pueden ¡SEGUIR LEYENDO!