|

Imagina por un momento que tu antivirus es el guardia de un banco: él decide qué programas pueden pasar y cuáles deben quedarse fuera. Si el guardia es eficaz y el edificio está bien diseñado, no habrá forma alguna de que algo se cuele sin permiso.

Ahora bien, si en el sistema operativo hubiera una puerta trasera, esta podría ser aprovechada para penetrar en el interior y llevar a cabo todo tipo de fechorías. Los malos podrían entrar, robar datos y salir sin levantar las sospechas del guardia-antivirus.

A este tipo de problema se le denomina vulnerabilidad o agujero de seguridad. En este artículo te explicaré qué son los agujeros de seguridad, cuáles sus riesgos más comunes y cómo prevenir su explotación dañina a costa de tu bolsillo y tu privacidad.

¿Qué es una vulnerabilidad? ¿Qué es un agujero de seguridad?

Entre las miles de líneas de código que forman un programa, siempre hay algún fragmento que está mal diseñado o que es tan complejo que prever su comportamiento en todos los escenarios resulta una tarea casi imposible.

Cuando no afecta al funcionamiento de la aplicación, ese fragmento de código puede quedarse sin detectar durante mucho tiempo, lo que obviamente retrasa su corrección. Incluso cuando el defecto se conoce, puede que no sea arreglado por falta de recursos.

En el momento en que alguien malintencionado descubra el fallo, es posible que intente aprovecharlo con fines destructivos, convirtiéndolo en un auténtico agujero de seguridad, uno que pueda ser aprovechado mediante un ataque informático (exploit).

¿Qué puede hacerme a mí un agujero de seguridad?

A ti, directamente, nada. Los agujeros no son más que la vía de entrada para problemas y dolores de cabeza informáticos. Lo que daña a tus datos es lo que puede entrar a través de los agujeros o lo que puede aprovechar esas vulnerabilidades con fines destructivos.

Ese aprovechamiento se denomina “ataque”, y puede ser activo o pasivo. Cuando es activo, el ataque daña el sistema hasta que deja de funcionar. Los ataques activos “fuerzan” las entradas del sistema, y se usan, por ejemplo, para tumbar sitios web o desactivar software de importancia vital.

Los ataques pasivos actúan como un ninja: se introducen en el sistema sin causar daño aparente. Mucho más peligrosos a largo plazo, tienen por objetivo la obtención de privilegios en los sistemas atacados (lo que equivale a tener "superpoderes"), la instalación de programas dañinos (malware) y la sustracción de datos confidenciales.

Y los famosos "ataques de día cero”... ¿qué son?

Si un atacante aprovecha una vulnerabilidad recién descubierta, entonces hablamos de un ataque de día cero. Su potencial dañino es mucho mayor, puesto que inicialmente no hay defensa alguna contra el mismo; es el autor del programa quien debe actuar lo antes posible para evitar el desastre.

Muchas veces, por desgracia, pueden pasar meses o años antes de que el fallo se corrija.

El temido Virus de la Policía aprovecha una vulnerabilidad de la máquina virtual de Java para entrar en los PC

En los casos más graves, que es cuando aparecen en aplicaciones muy populares, los ataques de día cero se convierten en puertas abiertas para virus y ataques de todo tipo, lo que provoca auténticas emergencias a nivel mundial, como la vivida con el Virus de la Policía.

¿Por qué los programas tienen vulnerabilidades?

Ningún programador cuerdo diseña sus aplicaciones para que tengan agujeros de seguridad. Al contrario, la mayoría se esfuerza para que sus programas sean lo más seguros posible. Es una cuestión no solo de seguridad, sino también de estabilidad: el código seguro asegura un buen rendimiento en cualquier situación.

Cheat Engine explota agujeros de seguridad de riesgo muy bajo o nulo: a los autores de juegos no les importan

Lo que sí puede ocurrir es que los programas sean liberados con fallos de seguridad (bugs) no detectados o considerados como poco importantes. O que la aplicación incluya funciones no documentadas, como utilidades de control remoto o actualización de archivos.

Finalmente, muchos agujeros no son detectados sencillamente porque nadie ha intentado encontrarlos ni ha efectuado pruebas de calidad. Pero incluso cuando se pone a prueba un programa, es posible que algunos agujeros de seguridad graves queden sin descubrir.

Esto pasa sobre todo con aplicaciones muy grandes; en el mundo del software, complejidad e inseguridad suelen ir de la mano. La existencia de agujeros de seguridad, en resumen, es inevitable.

¿Cómo consigue alguien encontrar  y explotar vulnerabilidades?

Cuando un atacante comprueba un sistema en busca de vulnerabilidades es mucho más agresivo que el usuario promedio. Por ejemplo, puede intentar abrir una brecha introduciendo ejecutables en un formulario con el que solo deberían cargarse imágenes, o saturar de peticiones un programa hasta que este se reinicie o abandone toda resistencia.

Todas las vías de entrada de un programa pueden forzarse o engañarse. Y es que los programas, en el fondo, no son más que filtros por los que pasan los datos que nosotros, los usuarios, les proporcionamos: cuando lo que damos es excesivo, el filtro se atasca y rompe, dejando que pase de todo. Encontrar fallos requiere ingenio, perseverancia y, obviamente, herramientas.

Captura del excelente manual "Introducción a la explotación de software en sistemas Linux" (PDF)

Una vez halladas las vulnerabilidades, el atacante puede crear un exploit o aplicar una técnica ya conocida. Mientras que lo primero exige un profundo conocimiento del programa y grandes habilidades técnicas, lo segundo es una mera cuestión de seguir los pasos de una receta; los atacantes que usan herramientas ya existentes reciben en el mundillo hacker el despectivo apodo de script-kiddies.

¿Cómo se solucionan los agujeros de seguridad?

Se tapan o parchean. Los parches informáticos, llamados así en recuerdo a los parches que se aplicaban a las tarjetas perforadas y a las cintas magnéticas de los primeros ordenadores, modifican trozos de código problemáticos de una aplicación. A veces incluyen también mejoras.

Un ejemplo conocido de parche son los que Microsoft aplica a sus productos cada cierto tiempo, bien a través de Windows Update, bien bajo la forma de un Service Pack, que no es sino un paquete con muchos parches reunidos en un solo instalador. Otros parches vienen directamente en forma de actualización de una aplicación concreta.

Sin embargo, los parches no siempre arreglan los problemas de seguridad detectados. Ha ocurrido, por ejemplo, con Java, una plataforma que sigue padeciendo vulnerabilidades versión tras versión.

El parcheo de las aplicaciones, además, no es visto con buenos ojos por usuarios y administradores cautelosos, quienes anteponen la estabilidad ante todo lo demás.

¿Cómo puedo saber si tengo agujeros de seguridad? ¿Cómo los evito?

Lo primero es mantener navegadores y plugins siempre actualizados. Los parches periódicos de Microsoft, Adobe y Oracle son esenciales para mantener a raya el ataque de malware oportunista. Los antivirus rara vez son eficaces contra los ataques de día cero, pero, si tu software está actualizado, el malware chocará contra una pared.

Luego, te recomiendo usar un detector de vulnerabilidades. El mejor es Secunia PSI, que analiza el equipo en busca de los programas instalados y comprueba si la versión que tienes sufre alguna vulnerabilidad crítica. En caso positivo, Secunia PSI te insta a actualizar el programa a una versión más reciente y segura. ¿Una alternativa? Softonic for Windows.

Secunia PSI es fácil de usar y utiliza los datos de seguridad más recientes. Y tiene un modo automático

Finalmente, debes mantenerte informado. La suscripción a boletines de seguridad y blogs de seguridad permite estar al tanto de los ataques recién descubiertos por la comunidad, lo que permite actuar antes de que sea demasiado tarde.

Otra opción igual muy válida es seguir en Twitter a cuentas que hablen de seguridad y malware, como @InfoSpyware, @ObservaInteco y @OSISeguridad.

¿Qué haces tú para protegerte de las vulnerabilidades?

Sígueme en Twitter: @remoquete

A ti, directamente, nada. Per se, los agujeros no son más que la vía de entrada para problemas y dolores de cabeza informáticos. Lo que daña a tus datos es lo que puede entrar a través de los agujeros o lo que puede aprovechar esas vulnerabilidades con fines destructivos.

Comentarios

  • CrazyParanoid |
    17/01/13
    CrazyParanoid

    En Internet ante todo dos cosas: un buen antivirus y, lo más, importante: sentido común.

    La idea de navegar protegidos en una burbuja con cristales tintados, me explico. Hay que navegar de forma que podamos ver pero no nos puedan ver, o al menos en cierta medida. Vendría a ser un poco una ramificación del arte de la guerra de Sun Tzu: si no pueden ver tus puntos vulnerables será difícil que tengas que lamentarte por algo.

    Principalmente esos son los pasos que sigo, instalar software seguro, tener un link-scanner eficiente. Curiosamente el hecho de contar poco sobre ti en la red puede ser beneficioso ¿quien no recuerda el "jugar a adivinar la pregunta secreta del msn de alguien?"

    Software fiable, páginas de confianza, un buen antivirus y sobre todo mucho sentido común ^_^

  • LINUXYT01 |
    17/01/13
    LINUXYT01

    No me había previsto de eso, el sistema siempre va a tener debilidades, pero por mi parte lo único que hacia actualizar los programas esenciales pero como veo tendré que defender mas el sistema

    Buena Publicacion

  • TecnologicAdict |
    17/01/13
    TecnologicAdict

    Cualquier sistema bien administrado es seguro hasta windows 98 Si tienes todos los parches de seguridad al dia etc etc no hay nada que temer y como bien dice mi compañero de el primer comentario el usuario juega un papel imprtante de nada te sirve tener un mac si no sabes administrarlo

    Buen informe sosftonic mucgas gracias

  • victor manuel de franco erusalimsky |
    17/01/13
    victor manuel de franco erusalimsky

    exelente material , condolencias ...

  • Sarg BnC |
    18/01/13
    Sarg BnC

    ta buenoo la informacion graciaaas!!!..... hay ke matar a los malditos virus... cuando nos pongan unos chips dentro de nuestros cuerpos ya era la vidaa...

  • Gerardo Prado |
    18/01/13
    Gerardo Prado

    Los Hackers, son Programadores extremadamente habilidosos pueden manejarse dentro de cualquier sistema a su antojo, no hay salvación posible si un verdadero Hacker pone el ojo sobre el funcionamiento de un programa o un sistema, la protección está en que nosotros como seres mortales no estaremos nunca bajo el ataque de un verdadero Hacker, ahora si somos una empresa o corporación conocida, la único solución es plantear un buen control de detección para después de que pase el ataque (que es imposible de evitar), saber rastrearlo con el fin de que esto limite al Hacker a realizar el delito, sabiendo de antemano que puede ser detectado. Sino me creen observen la historia que no miente hasta la seguridad del Departamento de "Seguridad" de Estados Unidos ha sido sido vulnerado por Hackers...

  • jesus |
    18/01/13
    jesus

    Incluso la nasa fue atacada algunas veces yo me pregunto si la nasa a sido atacada mi ordenador domestico seria un juguete para los hackers jajaja

  • Juan Diego |
    18/01/13
    Juan Diego

    Como dice Gerardo hasta el Departamento de Seguridad de los Estados Unidos fue hackeado más de una ves... así que... hay que tener sentido común y... COMPRAR UN ANTIVIRUS, NO CRACKEARLO =S

  • Scott321 |
    19/01/13
    Scott321

    el problema es que Secunia PSI no es compatible con windows 8 asi que muchos usuario estamos indefensos

  • joalram |
    21/01/13
    joalram

    El problema no es del todo los agujeros, sino de la sensibilidad y el sentido intuitivo y común, que todos como usuarios deberíamos poseer, me gustó mucho el artículo... buen trabajo como siempre señores de OnSoftware.

  • @KYYUBY# |
    22/01/13
    @KYYUBY#

    Muy buena la info, desafortunadamente es lo que obtenemos al utilizar Windows, incluso las amenzas llegan por otros programas, como acrobat reader por decir, en cuanto a java, el JVM nos da una increible herramienta que a la vez es amenaza. Como todo en esta vida, nada puede ser perfecto.

  • maritza valencia |
    26/01/13
    maritza valencia

    este texto tiene muy buena informacion, que nos previene para evitar los agujeros de seguridad o vulnerabilidad, ademas tambien nos da unas soluciones para cuando ya los tenemos

  • Newlog |
    20/02/13
    Newlog

    Desde Overflowed Minds, gracias por enlazar las fuentes. Un artículo muy bien documentado. Hacen falta artículos así.

    Saludos.

  • Fabrizio Ferri |
    21/02/13
    Fabrizio Ferri

    A ti por el comentario, Newlog. :-)

  • ramirito15 |
    06/03/13
    ramirito15

    utilzo advenced systemcare 6.1 y seleciono limpiar agugeros de seguridad

  • znestor |
    07/03/13
    znestor

    muy bueno ..... estas informaciones actualiza los usuarios

  • Juan Diego |
    09/03/13
    Juan Diego

    lml Windows 8 9200 y Norton 360 20 lml

  • distorsion |
    13/03/13
    distorsion

    esta bien esto es lo minimo que se deberia de saber pero como el sentidoo comun no hay parche de seguridad que la supere ssalud

  • fernando.gutierrezpelayo |
    17/03/13
    fernando.gutierrezpelayo

    Mi comentario, es muy simple, tan simple, que me pierdo en la jerga de tantisimos nombres que casi todos me suenan a chino, pues una persona como yó, que de una forma imprudente y temeraria, me he metido en todo este embrollo, y que me asombro al leer los comentarios tan sabios, eruditos, llenos de formulismos y ademas indefenso por todas partes, que espero que losfamosos hadquers que no sé ni como se escribe, me descubran y me hagan una trastada, se supone que el que escribe este párrafo es una persona mayor, y muy reciente en este cometido, pero siempre hay buenas personas para aconsejarte que es lo que debes y no debes hacer. Si alguien me quiere aconsejar en algo, que nó dude en hacerlo pues yo se lo agradecería de corazón, pero que me hable en español puro, para entender y comprender lo que pretende decirme. De antemano, gracias.

  • Jose |
    19/03/13
    Jose

    excelente aporte gracias a softonic :-)

23/10/14
Tu imagen de usuario