Monografias.com > Computación > Internet
Descargar Imprimir Comentar Ver trabajos relacionados

En el foco de los hackers: vulnerabilidades de software



    Monografía destacada

     

    Hay dos posibles situaciones que pueden ser explotadas
    por un hacker(1) que busca tomar el control de un sistema:

    a) programas y sistemas mal configurados por
    error del usuario

    b) programas y sistemas con vulnerabilidades
    conocidas (errores de programación presentes en
    el software)

     

    Según mis propias estadísticas como auditor
    de sistemas, la situación "a" (sistemas mal
    configurados) produce sólo un 14% de los incidentes de
    seguridad, en tanto que la
    situación "b" (vulnerabilidades por errores internos
    del software) produce el 86% restante. (2)

     

    Evolución del panorama
    de
    seguridad informática en los
    últimos años

    Si bien no cuento con cifras sobre este
    fenómeno hace 11 años (cuando me inicié
    profesionalmente en esta actividad), bien recuerdo que los
    incidentes de seguridad informática se debían
    casi exclusivamente a errores de configuración por parte de
    administradores y usuarios. Las vulnerabilidades internas de los
    programas también causaban problemas, pero no con la
    frecuencia que experimentamos en la actualidad.

    De modo que el panorama de (in)seguridad en
    Tecnologías de la Información ha ido
    evolucionando hasta la situación actual, en que los errores
    (o "Bugs") en los programas son los responsables de la inmensa
    mayoría de los incidentes de seguridad
    informática.

    Las causas de estos cambios son:

    Mayor cantidad y calidad en la documentación que indica
    cómo instalar un programa; lo que reduce la
    presencia de sistemas mal instalados, produciendo la baja de la
    situación "a".

    Mayor cuidado de la configuración de seguridad por
    parte de los empaquetadores de software. Por ejemplo: en las
    distribuciones Linux actuales, la
    instalación por defecto resulta relativamente segura, al
    contrario de lo que ocurría hace unos años, cuando un
    Linux recién instalado tenía decenas de servicios y puertos abiertos
    innecesariamente. Este otro fenómeno también produce la
    baja de la situación "a".

    Los programadores siguen cometiendo errores de seguridad
    en sus programas, al igual que hace 10 años.

    Esto es debido a:

    1) Los programadores no necesariamente son
    expertos en seguridad.

    2) No existe ninguna asignatura de
    "programación segura" en los currículos de
    universidades e institutos.

    3) En las compañías de software, los
    "empresaurios" presionan a sus programadores para reducir los
    plazos de desarrollo del software,
    pero no imponen ningún requerimiento en cuanto a la
    seguridad del código que éstos
    producen.

    4) Las auditorías de seguridad
    de código fuente no son para nada populares. Aunque
    existen muy dignas excepciones, como ser el grupo que produce el
    sistema operativo libre
    OpenBSD.

    Debido a estas causas, la enorme producción de software
    que se desarrolla en la actualidad sigue manifestando
    prácticamente los mismos tipos de defectos que se
    encontraban en los softwares de hace algunos
    años.

    En los últimos años se descubrió una
    nueva categoría de vulnerabilidad en programas compilados en
    lenguaje C o creados mediante
    herramientas que enlazan
    código C (casi todas): los ataques por "string format".
    Estos se suman a los anteriormente conocidos "buffer overflows"
    (desbordamientos de búfer). Esta innovación
    prácticamente duplica el horizonte de las posibilidades de
    ataques a programas de software. Este factor produce un alza en
    la situación "b".

    En los últimos años se ha producido un
    fenómeno social (posiblemente impulsado desde Hollywood)
    (3) en que millares de adolescentes quieren ser
    "hackers". A partir de este
    fenómeno, se ha multiplicado la cantidad de personas que
    -aún sin conocer los fundamentos técnicos de lo que
    están haciendo- utilizan programas llamados "exploits" que
    aprovechan los errores conocidos en determinados sistemas para
    generar una forma de acceso que permita al atacante la
    manipulación remota del sistema atacado.

    En los últimos años han proliferado los
    Centros de Incidentes Informáticos: instituciones que se
    especializan en reportar y recopilar información sobre
    problemas de seguridad en Tecnologías de la
    Información.

    Estos datos son usados por los
    "buenos", pero también son usados por los "malos". De
    ahí que el conocimiento de las
    vulnerabilidades en softwares haya adquirido una capacidad de
    propagación sin precedentes. Es un ciclo en que el
    último en enterarse de la existencia de un "bug" suele ser
    el propietario de un sistema recién atacado.

    Se han popularizado un tipo de aplicaciones conocidas
    como "gusanos", que no son otra cosa que programas que escanean
    automáticamente la Internet buscando sistemas que presenten
    alguna vulnerabilidad predeterminada. Una vez que encuentran un
    sistema de estas características, aplican un procedimiento de explotación
    del error (lo mismo que haría un hacker a mano) y penetran en el
    sistema víctima. Una vez dentro, pasan a ejecutarse y desde
    allí comienzan a escanear la Internet, comenzando nuevamente
    el proceso en forma
    propagatoria.

    Se han popularizado los portales "underground" donde es
    posible descargar un número creciente de "exploits" por
    parte de cualquier persona que sepa buscar en
    Internet. Muchos de estos "exploits" ya vienen compilados. A su
    vez estas herramientas vienen cada vez más y mejor
    documentadas (a diferencia de los de antes: para saber cómo
    usarlos había que revisar y entender completamente su
    código fuente).

    He enumerado algunos de los fenómenos que han
    contribuído a la conformación del panorama actual de la
    Seguridad de Sistemas, donde el principal origen de los
    incidentes de seguridad son los errores (o bugs) en los softwares
    y sistemas instalados.

     

    Ciclo de vida de un software,
    su explotación y (deseablemente) su actualización y/o
    parchado

    Posiblemente no exista ningún software en el mundo
    que se encuentre libre de manifestar un error en algún
    momento del futuro. Los errores existen en TODOS los programas.
    Aunque aún no hayan sido descubiertos… pero hay tanta
    gente investigando… hurgando en todos los aspectos del
    funcionamiento… analizando meticulosamente cada pequeño
    detalle… Podemos afirmar que tarde o temprano alguien en
    algún lugar encontrará una forma de aprovechar un error
    hasta entonces no descubierto en el software.

    Cuando instalamos un sistema nuevo (un servidor web, por ejemplo), normalmente
    utilizamos una versión muy reciente de software, tanto en el
    sistema operativo como en las aplicaciones del servidor. Si es
    así, este servidor (suponiendo que esté bien
    configurado) no manifestará problemas de seguridad durante
    algún tiempo.

    Pero SIN DUDA llegará el día en que alguien
    descubra y reporte una vulnerabilidad en alguno de los programas
    (que en el caso de un servidor web podrían ser Apache,
    PHP, ASP, IIS, OpenSSL, cgi, Perl,
    MySQL, SQLserver, o el propio
    Kernel del sistema). Cualquiera de estos programas que manifieste
    un error está exponiendo nuestro servidor al ataque de un
    intruso. Y de estos intrusos hay por millares, dando vueltas por
    las redes… buscando estos errores.
    Casi al mismo tiempo de descubierta la vulnerabilidad, el autor
    del software lanzará una nueva versión, o en su defecto
    un "parche" o actualización (o "service pack") para
    solucionar el problema de seguridad en versiones ya instaladas
    sin necesidad de sustituírlas.

    Entonces es en este punto donde surge la disyuntiva que
    puede salvar los sistemas, o condenarlos a la intrusión de
    hackers: si el administrador de sistemas se
    entera de la existencia del problema -y su solución-
    aplicará el parche. Si no se entera… entonces tarde o
    temprano un intruso hará uso del mismo.

    Lo importante es la certeza de que EN ALGUN MOMENTO
    TODOS LOS PROGRAMAS ESTAN EXPUESTOS A MANIFESTAR ALGUNA
    VULNERABILIDAD DE SEGURIDAD. Y el único secreto para no
    estar expuesto es tomar las medidas a tiempo.

     

    EL camino más corto a la
    explotación de sistemas

    Por un momento pongámonos del lado del atacante. Es
    interesante saber que la mayoría de los atacantes no suelen
    buscar algún objetivo concreto. Es decir: la
    víctima de tuno puede ser absolutamente cualquier servidor o
    sistema que sea pasible de ser atacado: que manifieste una
    vulnerabilidad que el atacante conozca y sea capaz de explotar.
    Para estos hackers lo importante es conquistar el servidor. No
    importa cuál sea. Pasará a ser una de sus hazañas,
    y contribuirá a fundar su prestigio dentro de su comunidad.

    El próximo paso del ataque es reunir su "arsenal"
    (los programas de explotación que les permitirán
    aprovechar cierto conjunto de vulnerabilidades), y acto seguido,
    la búsqueda de servidores y sistemas que
    manifiesten estas vulnerabilidades a ser explotadas. Esta
    búsqueda se logra mediante programas de "escaneo" (muchos de
    los cuales en realidad fueron desarrollados para ayudar a los
    profesionales de seguridad a encontrar errores en sus propios
    sistemas: Satan, Saint, Nmap, Retina o Nessus, por
    ejemplo).

    …Y una vez que el hacker tiene sus herramientas
    preparadas y descubrió un servidor y/o sistema que
    manifiesta la vulnerabilidad que estaba buscando… es hora de su
    más auténtica diversión! Y tendremos un servidor
    más para las estadísticas forenses.

     

    La solución:
    profesionales informados

    Ni la más sólida formación
    científica, ni el más agudo talento como administrador
    de sistemas. Ni la experiencia de años en la
    configuración de servidores. Nada de esto constituye
    atenuante cuando se descubrió una vulnerabilidad en el
    software que usamos en nuestros servidores: estaremos expuestos a
    ser atacados a menos que parchemos los sistemas a
    tiempo.

    A su vez, para tener la capacidad de parchar los
    sistemas a tiempo, es condición imprescindible que el
    administrador del sistema se entere de la vulnerabilidad a la
    mayor brevedad posible.

    Los administradores de sistemas deben frecuentar la web,
    leer sitios especializados, estar suscritos a los e-zines de los
    Centros de Incidencias de Seguridad como CERT (www.cert.org),
    CERIAS (www.cerias.purdue.edu), BugTRAQ (www.securityfocus.com),
    etc.

    Y por sobre todas las cosas deben repasar diariamente
    los aburridos reportes de vulnerabilidades (donde la inmensa
    mayoría de las vulnerabilidades reportadas corresponden a
    softwares y sistemas que no hemos usado ni posiblemente usemos en
    nuestra vida).

     

    Dos atajos para ahorrar tiempo: AlertaHacker.com
    y HackerWarnings.com

    Estos sitios brindan un servicio gratuito de avisos de
    seguridad, que permite al administrador de sistemas configurar
    sus alertas (qué softwares desean monitorizar, con qué
    frecuencia, cómo desean ser avisados, etc.) para recibir
    sólo las alertas de seguridad que cada profesional requiera,
    según el software que esté usando en sus
    instalaciones.

    Estos sistemas los desarrollé personalmente hace
    muchos años para ahorrar tiempo evitándome leer decenas
    de reportes de vulnerabilidades que no me aportaban nada, y
    pudiendo focalizarme en la monitorización de los softwares
    que usaban mis clientes. Con muchas "horas de
    vuelo" al final me decidí a poner estos servicios a
    disposición del público gratuitamente para beneficio de
    todos. A su vez son bienvenidas las ideas para
    mejorarlos.

     

    Conclusión

    Hace algunos años cambiábamos para una nueva
    versión de software porque deseábamos usar las nuevas
    funciones y las mejoras que el
    software nuevo nos proporcionaba. Actualmente la causa más
    común para cambiar (o parchar) un software es para corregir
    algún error que comprometa su seguridad.

    Esta afirmación es válida tanto en el mundo
    del software libre (Apache, MySQL,
    PHP, Linux, etc.) como del software propietario (Windows, Oracle, etc).

    La mejor forma de lograr (y mantener) un nivel de
    seguridad óptima en nuestros sistemas es mantener las
    versiones de software actualizadas. Pero a su vez hay que
    discernir cuál es la causa que motivó el lanzamiento de
    la nueva versión del software en cuestión: si se trata
    de resolver un tema de seguridad (que es lo que nos ocupa) o
    -como antes- la nueva versión sólo agrega
    funcionalidades al programa.

     

    Notas

    (1) El vocablo correcto para referirse
    al atacante es "Cracker". En este artículo se optó por
    usar el vocablo "Hacker" para mantener la compatibilidad con los
    conceptos de un amplio público no involucrado en el tema
    (ver artículo "Hacker:
    la palabra peor utilizada en la historia de la
    informática"
    )

    (2) Datos estadísticos obtenidos
    a partir de los análisis forenses
    realizados en los últimos 214 incidentes de seguridad en que
    el autor participó en calidad de consultor y
    auditor.

    (3) Algunas de las películas que
    han contribuido a masificar el concepto de "hacker": Tron
    (1982); WarGames (1983); Real Genius (1985); Sneakers (1992);
    Goldeneye (1995); Hackers (1995); The Net (1995); The Matrix (1999); Operation
    Swordfish (2001); AntiTrust (2001)

     

    Ing. Eduardo González González
    (*)

    (*) Consultor en Sistemas de Seguridad

    www.eduardo-gonzalez.com

    Nota al lector: es posible que esta página no contenga todos los componentes del trabajo original (pies de página, avanzadas formulas matemáticas, esquemas o tablas complejas, etc.). Recuerde que para ver el trabajo en su versión original completa, puede descargarlo desde el menú superior.

    Todos los documentos disponibles en este sitio expresan los puntos de vista de sus respectivos autores y no de Monografias.com. El objetivo de Monografias.com es poner el conocimiento a disposición de toda su comunidad. Queda bajo la responsabilidad de cada lector el eventual uso que se le de a esta información. Asimismo, es obligatoria la cita del autor del contenido y de Monografias.com como fuentes de información.

    Categorias
    Newsletter