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

En el foco de los hackers: vulnerabilidades de software



     

     

    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 opertaivo 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
    contribuído 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

    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