Hackear al hacker

Text
0
Kritiken
Leseprobe
Als gelesen kennzeichnen
Wie Sie das Buch nach dem Kauf lesen
Schriftart:Kleiner AaGrößer Aa

Para más información sobre Michael Howard

Si deseas más información sobre Michael Howard, consulta estos recursos:

■ Libros de Michael Howard

Blogs de Michael Howard: https://blogs.msdn.microsoft.com/michael_howard/

■ Michael Howard en Twitter: https://twitter.com/michael_howard

8
Perfil: Gary McGraw

Cuando llamé a Gary McGraw para entrevistarlo, me dijo que acababa de hablar con un monje católico que paseaba cerca de su propiedad en el río Shenandoah, en Virginia. En unos segundos, me estaba hablando de las complejidades de la seguridad informática. Este tipo de paradojas sobrenaturales han acompañado a McGraw durante toda su vida. Empezó programando su propio ordenador, un Apple II+, en 1981, cuando tenía 16 años. Terminó yendo a la universidad para obtener la licenciatura en filosofía y, por el camino, se convirtió en un músico de formación clásica. Incluso tocó en dos ocasiones en el Carnegie Hall. Actualmente, continúa siendo uno de los expertos en seguridad informática del mundo y le gusta cocinar, la jardinería y crear nuevos cócteles.

Le pregunté a McGraw cómo pasó de ser un estudiante de filosofía en la Universidad de Virginia a interesarse por la seguridad informática. Me dijo que le interesaba la filosofía de la mente, lo que le permitió realizar un curso denominado «Ordenadores, mente y cerebro» en la Universidad de Virginia, impartido por Paul Humphreys. Pensaba que las ideas que el profesor Humphreys enseñaba eran erróneas, pero empezó a pensar con más profundidad sobre la filosofía de la mente y la inteligencia artificial. Humphreys terminó aportando ideas de la industria y del ganador del Premio Pulitzer americano, el Dr. Douglas Hofstadter, durante la clase, y eso cambió toda su carrera. No realizó ningún curso de informática hasta la universidad, pero se enamoró de la programación en 1981, cuando era niño. Bajo la tutela de Hofstadter, en la Universidad de Indiana, obtuvo un doble doctorado en Ciencias del conocimiento e Informática. Incluso terminó escribiendo el Capítulo 10 del primer libro que se vendió en Amazon: el libro de Hofstadter titulado Fluid Concepts and Creative Analogies: Computer Models of the Fundamental Mechanisms of Thought [Conceptos fluidos y analogías creativas: modelos informáticos de los mecanismos fundamentales del pensamiento].

Cuando terminó la universidad, entró en una empresa de 7 personas que más tarde se convirtió en Cigital (https://www.cigital.com/). Cigital ganó una importante beca DARPA para investigación en seguridad informática y lo contrataron para trabajar en este proyecto. Cigital fue creciendo hasta los 500 empleados hasta que fue vendida a Synopsis en 2016. Actualmente, son 1.000 personas en la división de seguridad de software de la empresa más grande dedicada a mejorar software de un modo significativo.

Mi primer gran recuerdo del trabajo y el nombre de McGraw es cuando él y Ed Felten asumieron la seguridad del lenguaje de programación Java, escribieron un libro y detectaron decenas de vulnerabilidades de seguridad. En aquel momento, fue algo increíble, porque Sun Microsystems había hecho de Java supuestamente un lenguaje de programación muy seguro, pues sabían que estaría muy basado en la web y sería constantemente atacado por hackers. Java surgió en 1995 y Sun presumió desde sus inicios de que era un lenguaje de programación muy seguro. Lo habían construido algunos de los grandes magos de los lenguajes de programación, entre ellos, Guy Steele y Bill Joy. La mayoría de los expertos en seguridad informática se preguntaban si realmente era tan seguro como pensaban en Sun o si resultaría ser otra de las promesas de seguridad sobrevaloradas. Y resultó ser esto último. Tras algunas promesas iniciales, Java produjo algunas de las piezas de software más plagadas de errores del mundo, McGraw fue uno de los mejores en detectar vulnerabilidades de Java y él y Felten fueron el origen del análisis de Java para detectar errores de seguridad. En una conferencia, McGraw coincidió con el coautor de sus libros, Ed felten, y esta conferencia apareció en el primero de muchos otros libros. Muchos de los libros de McGraw se convirtieron en éxitos de ventas (uno de ellos, Exploiting Software, incluso llegó a ocupar el puesto 16 del ranking de ventas de Amazon, que es una gran cifra para cualquier libro de informática, y mucho más para uno de seguridad informática).

McGraw continuó pensando en seguridad del software y en dónde acudir para aprender a construir algo más seguro. Se preguntaba cómo el resto de nosotros, programadores «normales», íbamos a crear software seguro si los mejores magos (como Bill Joy y Guy Steele) no lo habían podido hacer adecuadamente. Se preguntaba qué iba mal en el proceso y por qué iba mal. Se dio cuenta de que todo el software y todos los programas tenían que ser diseñados y escritos desde cero con la seguridad en mente. Casi al mismo tiempo, se le ocurrió su Trinity of Trouble, que hablaba sobre por qué la seguridad informática seguía siendo interesante y complicada. Basicamente, si está en red, es compleja y extensible, siempre va a interesar desde un punto de vista de la seguridad y será difícil de proteger. Desafortunadamente, Java tenía estas tres características, y de qué manera, aunque su complejidad era probablemente el aspecto más difícil contra el cual luchar.

Después de escribir como coautor el libro Building Secure Software [Creando software seguro], en 1999, acabó visitando varias empresas, como Microsoft, donde Michael Howard, tratado en el Capítulo 7, trabajaba con Jason Garms en la muy reciente Secure Windows Initiative. Recuerda que todos los gestores de proyectos de Microsoft asistieron a su charla y que Microsoft estaba realmente preparada para la seguridad del software.

Después de otros muchos años trabajando en la seguridad del software en este sector (tanto mediante el desarrollo de servicios como de tecnología), McGraw terminó participando en la creación del Building Security in Maturity Model (BSIMM). Más de 100 grandes firmas utilizan hoy en día el BSIMM para medir, seguir y entender sus progresos en seguridad del software.

Le pregunté en qué se diferenciaban los modelos del SDL de Michael Howard y su BSIMM, si ambos intentan conseguir que el software sea más seguro. Me dijo: «El SDL es una metodología concreta, mientras que el BSIMM es una herramienta de medida que puede ser utilizada para medir, comparar y contrastar distintas metodologías como el SDL. El SDL de Microsoft es simplemente una metodología, pero es tan buena que decidieron redactarla y compartirla. Lo que hizo Michael Howard, a quien aprecio mucho, fue institucionalizar un enfoque para una organización muy grande con miles y miles de programadores. Él demostró que el software seguro puede realizarse a una escala extremadamente grande, lo cual era muy importante».

Como hago siempre con todas las personas tratadas con detalle en este libro, le pregunté a McGraw que cuál pensaba que era el mayor problema en seguridad informática. Su respuesta fue idéntica a la de Michael Howard, a quien había entrevistado previamente. Me dijo: «A pesar de tener una gran cantidad de recursos para crear y diseñar sistemas más seguros, la gente que crea y diseña sistemas todavía no sabe lo suficiente sobre seguridad. Aunque las universidades y las empresas comerciales de formación están haciendo un gran trabajo, el trabajo de muchas otras es insuficiente, y eso si es que están haciendo algo».

Él cree que la disciplina de seguridad informática está todavía bastante descuidada. Su libro favorito sobre seguridad y cómo construir cosas adecuadamente es el de Ross Anderson Security Engineering [Ingeniería de la seguridad]. Dice que le encanta, incluso más que sus 12 libros, «creo que es el mejor libro sobre seguridad del planeta».

McGraw tiene su podcast semanal denominado Silver Bullet Security (https://www.garymcgraw.com/technology/silver-bullet-podcast/), en el cual entrevista a expertos y personas que aportan ideas a la industria. Acaba de celebrar 10 años con 120 podcasts. Cuando revisé su lista de entrevistas, vi que muchos de los entrevistados eran los mismos que yo he tratado en este libro. Ama realmente la historia de la seguridad informática como yo y quiere seguir aprendiendo y compartiéndola. Una vez terminada nuestra entrevista, me imaginé a McGraw volviendo a pasear con su perro por el sendero junto al río que bordea su granja pensando en nuevos tipos de defectos de diseño de seguridad del software. Es un hombre del Renacimiento que será recordado en años venideros.

Para más información sobre Gary McGraw

Si deseas más información sobre Gary McGraw, consulta estos recursos:

■ Libros de Gary McGraw

■ Sitio web de Gary McGraw: https://www.garymcgraw.com/

Podcast Silver Bullet Security, de Gary McGraw: https://www.garymcgraw.com/technology/silver-bullet-podcast/

9
Malware

Cuando empecé a trabajar en seguridad informática, sobre 1987, lo primero que me llamó la atención fueron los programas maliciosos (malware). Acababan de aparecer los primeros virus informáticos (como el Elk Cloner, de Apple, y el Pakistani Brain), aunque troyanos y gusanos surgieron mucho antes. Los virus informáticos eran tan desconocidos y tan extraños que los principales medios de comunicación dijeron que eran falsos. Y esto fue hasta que fueron atacadas empresas enteras, antes de que Internet fuera Internet. Anteriormente, el malware informático se propagaba a través de los foros de noticias de acceso telefónico y de mano en mano, pues la gente copiaba el software de otros (tanto legal como ilegalmente). El malware todavía es uno de los métodos de hackeo más populares.

 

NOTA El primer fragmento de malware con el que fui «atacado» fue una bomba ansi. La víctima tenía que tener un archivo controlador llamado ansi.sys cargado en su ordenador (mediante el config.sys), configuración muy utilizada en los primeros días del PC de IBM compatible y el Disk Operating System (DOS).

Tipos de malware

Los tipos tradicionales de malware son los virus, los gusanos y los troyanos. Un virus informático es un programa autorreplicable que cuando se ejecuta busca otros programas (o, a veces, como en el caso de los virus de macro, datos) para infectarlos. Un gusano informático es un programa autorreplicable que normalmente no modifica otros programas o datos. Simplemente se pasea por dispositivos y redes utilizando sus propias instrucciones de codificación, muchas veces explotando una o más vulnerabilidades de software. Un troyano se disfraza de otro programa legítimo para engañar al usuario o al dispositivo para que lo ejecute. El malware actual suele ser una combinación de dos o más de estos tipos. Por ejemplo, puede empezar a propagarse como troyano para conseguir el punto de apoyo inicial y, después, utilizar su propio código para replicarse y seguir propagándose.

El malware puede ser bastante eficiente. Miles de distintos programas maliciosos han infectado con éxito redes enteras de todo el mundo en cuestión de horas. Cientos de programas maliciosos han infectado una parte importante de ordenadores conectados a Internet en un día. El récord de velocidad todavía pertenece al gusano SQL Slammer (https://es.wikipedia.org/wiki/SQL_Slammer), en 2003, que infectó a los servidores SQL más vulnerables conectados a Internet en unos 10 minutos. Se había lanzado un parche para ello 5 meses antes, pero nadie estuvo a tiempo de aplicarlo. Actualmente, la mayoría del malware son troyanos y requieren que un usuario inicie una acción (como seguir un vínculo web o abrir un archivo adjunto) para poner en marcha el programa malicioso, aunque puede ser que el dispositivo o usuario implicado no haya tenido nada que ver (accidentalmente) con la ejecución del programa. Esto depende de la situación del malware y de cómo se haya propagado.

Número de programas maliciosos

Hoy en día, existen literalmente miles de millones de programas maliciosos distintos en el mundo y cada año aparece un número inconmensurable de otros nuevos. La mayoría de malware son variantes ligeras y personalizadas derivadas de unos cuantos miles de programas básicos. Aún así, cada una de estas variantes puede ser detectada por programas antimalware, los cuales suelen utilizar una combinación de firmas digitales (un conjunto único de bytes para cada malware o familia de programas) y detección de comportamiento. Un programa antimalware debe ser capaz de escanear rápidamente miles de millones de archivos contra miles de millones de programas maliciosos y sin ralentizar de forma significativa el dispositivo en el cual se encuentra instalado. Resulta muy complicado e, incluso si se hace con el máximo grado de precisión, puede ser derrotado por un nuevo programa de malware con un solo byte modificado.

NOTA Los programas antimalware se denominan con mucha frecuencia programas antivirus, aunque detecten y eliminen múltiples tipos de malware, puesto que la mayoría de malware eran virus informáticos cuando este tipo de programas de escaneo se hizo tan popular.

Mayoritariamente criminal en su origen

Una de las mayores y más inquietantes tendencias del malware es su uso con propósitos criminales en nuestros días. Aproximadamente hasta 2005, la mayoría del malware estaba escrito por adolescentes y jóvenes para demostrar que podían escribir malware informático. Bastaba con que funcionara y se replicara. Indudablemente, había unos cuantos programas maliciosos que causaban daños de forma intencionada, pero la mayoría eran más molestos que peligrosos.

En la actualidad, casi todo el malware se crea con fines criminales directos. La mayor parte de los usuarios de malware intentan robar dinero de una manera o de otra, ya sea accediendo directamente a cuentas bancarias, o robando identidades y contraseñas. En nuestros días, el ransomware, que es un malware que cifra los datos y pide dinero para descifrarlos, es muy popular. Otro tipo de malware roba recursos de juegos o divisa electrónica o realiza intercambios de acciones no autorizados. El adware o software publicitario se infiltra en tu ordenador y te obliga a ver publicidad (o publicidad concreta) que a ti te gustaría no ver, o bien obliga a tu ordenador, de manera encubierta, a visitar otros sitios web específicos para aumentar las entradas por visitante y, así, generar ingresos por publicidad ilícitamente adquiridos. Hay malware que se utiliza para provocar ataques masivos de denegación de servicio distribuido (tratados en el Capítulo 28, «Ataques DDoS»). Lejos están los días en que los autores de la mayoría del malware eran chicos traviesos que imprimían bonitas frases en tu pantalla, reproducían Yankee Doodle Dandy por los altavoces o pedían ayudan para la «legalización de la marihuana» (como el virus Stoned boot). ¡Actualmente, el malware es profesional!

El creador de malware suele ser una persona, y otras lo compran y lo venden. A menudo, miles de ordenadores que son atacados por un determinado programa de malware son agrupados en lo que se conoce como botnets. Dichos botnets pueden ser comprados o alquilados con el fin de ser instruidos para atacar sitios determinados o realizar una acción a través de múltiples ubicaciones. Muchas veces, el malware que en un primer momento accede a un ordenador concreto se conoce como downloader. Este consigue el acceso inicial y modifica el sistema para asegurar el éxito de otro malware o de la participación de un hacker en un futuro. Seguidamente, descarga un nuevo programa de malware con nuevas instrucciones. Este proceso puede repetirse decenas de veces hasta que los eventuales programas y las instrucciones se descargan y ejecutan. De este modo, la mayoría de malware se mantiene actualizado e invisible para los productos antimalware. Los programas de malware se venden con soporte técnico 24/7 y garantías contra la detección, y sus desarrolladores reciben puntuaciones de satisfacción del cliente por parte de los compradores.

El malware es responsable de robos o daños por razón de miles de millones de dólares cada año. Todas las personas que se dedican a la seguridad informática que han estado luchando contra malware durante más de una década desearían que el único problema que tuviéramos fuera luchar contra las travesuras de unos chicos.

Defensas contra el malware

Existen varias defensas contra la explotación de malware, la mayoría de las cuales también son válidas para muchas otras formas de hackeo.

Software completamente parcheado

Un sistema parcheado por completo es mucho más difícil de explotar por parte del malware que los que no lo están. En la actualidad, hay sitios web atacados que tienen hospedados «kits de explotación» y, cuando un usuario los visita, el kit de explotación buscará una o más vulnerabilidades no parcheadas antes de que se intente engañar al usuario para que ejecute algún troyano. Si el sistema no está parcheado, normalmente el programa malicioso puede ser ejecutado en secreto sin que el usuario se entere de nada.

Formación

Es difícil que un programa malicioso ataque a un sistema completamente parcheado sin implicar al usuario. En los casos en que el malware o el kit de explotación no encuentren una vulnerabilidad no parcheada, tendrá que recurrir a algún tipo de truco de ingeniería social. Normalmente esto implica indicar al usuario que debe ejecutar o abrir algo para satisfacer algún elemento beneficioso. Formar a los usuarios acerca de las técnicas de ingeniería social más comunes es una excelente manera de reducir el éxito del malware.

Software antimalware

El software antimalware (con frecuencia denominado antivirus) es necesario en casi todos los sistemas informáticos. Incluso el mejor programa antimalware puede dejar pasar un programa malicioso, así como ningún programa es 100 % perfecto bloqueando todo el malware, pero ejecutar un sistema informático sin un programa de este tipo es como conducir con los frenos desgastados. Puedes salvarte por un tiempo, pero tarde o temprano el desastre acabará llegando. Al mismo tiempo, no te creas nunca a un proveedor de antivirus que presume de una detección del 100 % porque siempre miente.

Programas de control de aplicaciones

Los programas de control de aplicaciones (también conocidos como whitelisting o blacklisting) son perfectos para detener software malicioso, siempre que se utilice en modo de lista blanca, en el cual solo los programas predefinidos y autorizados pueden ejecutarse. Esto detiene la mayoría de antivirus, gusanos y troyanos. Los programas de control de aplicaciones pueden ser operativamente difíciles de implementar porque, por su propia naturaleza, cada programa y cada archivo ejecutable debe ser aprobado previamente para poder ejecutarse. Y no todos los tipos de malware o hackers pueden ser prevenidos, especialmente aquellos que utilizan programas legítimos integrados y herramientas de programación. Dicho esto, los programas de control de aplicaciones son una herramienta efectiva y están mejorando constantemente. Personalmente, creo que, para que un sistema pueda considerarse «muy seguro», este debe tener un programa de lista blanca definido y activo.

Barreras de seguridad

Los cortafuegos y otros tipos de barreras de seguridad locales y de red (como VLAN, routers y otros) son perfectos para evitar que el malware pueda explotar un dispositivo informático. La mayoría de los sistemas operativos vienen con cortafuegos locales integrados, pero gran parte de ellos no están configurados ni habilitados por defecto. Implementar un cortafuegos puede reducir considerablemente los riesgos maliciosos, especialmente si existen vulnerabilidades sin parchear. Los cortafuegos se tratarán con más detalle en el Capítulo 17, «Cortafuegos».

Sie haben die kostenlose Leseprobe beendet. Möchten Sie mehr lesen?