domingo, 19 de marzo de 2017

Cyber Threat Intelligence - Una introducción


El pasado 14 de Marzo en Segurinfo, presenté una charla titulada "Usando Cyber Threat Intelligence sobre amenazas" junto a Julio Ardita. Como Cyber Threat Intelligence o abreviado: CTI, no es un término con el cual mucha gente esté familiarizada aún, decidí armar este post para introducirlos en el tema.

Cyber Threat Intelligence se puede definir como el uso del conocimiento basado en evidencias, que nos permiten entender cómo se comporta una amenaza para poder predecir su comportamiento y, de esa forma, tomar decisiones preventivas o reactivas que nos permitan defendernos frente a esta amenaza.

Ese conocimiento tenemos que buscarlo (por ejemplo usando internet o alguna otra fuente como filmaciones) o producirlo (por ejemplo, analizando malware). A las fuentes les tenemos que otorgar cierto grado de confianza, no podemos suponer que son 100% infalibles ya que por lo general son incompletas, es decir, no proveen la totalidad de la información. Además, la persona que escribe no necesariamente entiende lo que está redactando o replicando (puede suceder que un periodista que no tenga ningún conocimiento técnico ni sepa nada sobre amenazas haya sido designado para escribir un artículo) por lo cual puede cometer errores, y esa información puede ser malinterpretada, llevándonos a cometer malas decisiones. Por estas razones, al hacer un trabajo de inteligencia no podemos usar solo una única fuente, tenemos que usar todas las que podamos y cuestionarnos todo lo que leamos para no caer en la desinformación.

La desinformación consiste en publicar información errónea y que su difusión se masifique para que los que la reciben, piensen que es real. Detrás de cada publicación, puede haber un interés oculto, por eso es necesario buscar varias fuentes, para tener una imagen más clara de lo que queremos investigar.

Al investigar una amenaza, se analizan distintos aspectos, por ejemplo, se busca información en internet para ver si ya había sido detectada o no, si forma parte de una campaña o no, si está atacando a una determinada industria o no. También se buscan indicadores y/o se fabrican, analizando los archivos encontrados de forma estática, de forma dinámica y/o aplicando ingeniería inversa. Por otro lado, se puede usar la información recopilada para investigar quién está detrás de la amenaza.

Es muy difícil hacer atribuciones ya que prácticamente todo se puede modificar. No nos podemos basar simplemente en una IP o en un dominio, ni siquiera en la fecha de compilación del binario del malware, porque todo se puede modificar. Antes de atrapar a alguien, los organismos como el FBI esperan años y cruzan un montón de información; esperan tener las cosas resueltas antes de atrapar a cualquier sospechoso y se valen de distintas fuentes, como pasó en el caso Silk Road. Pueden leer sobre dicho caso en los siguientes links:
https://www.wired.com/2015/04/silk-road-1/
https://www.wired.com/2015/05/silk-road-2/

Los indicadores de compromiso (IOCs) nos permiten entender mejor lo que estamos investigando, esto implica, identificar a una amenaza para poder responder ante ella. No todos los indicadores se pueden obtener de la misma manera, algunos son más complejos que otros, pero hay que usar la mayor cantidad de indicadores posibles para poder tener una imagen más clara sobre lo que estamos investigando. Para mostrar los tipos de indicadores que uno puede investigar, usamos la "Pirámide del dolor" ilustrada por David Bianco, quien trató de reflejar la relación entre los tipos de indicadores y el "dolor" que causa conseguir cada uno de ellos.





 Fuente: http://detect-respond.blogspot.com.ar/2013/03/the-pyramid-of-pain.html.


  • Hash Values: Permiten identificar los archivos que estamos analizando. Los más comunes son MD5, SHA1 y SHA2.
  • IP Addresses: Se pueden extraer de los archivos o se pueden observar durante la ejecución de un archivo.
  • Domains: Se extraen de igual manera que las IPs.
  • Network/Host artifacts: Son artefactos que permiten identificar la actividad maliciosa del atacante. Pueden ser mutex con nombres particulares, registros de Windows modificados, archivos o directorios generados por la amenaza, etc.
  • Tools: Software usado por el atacante, que puede incluir backdoors para establecer una comunicación con sus servidores, password crackers o cualquier otro utilitario que utilice el atacante.
  • TTPs: Cómo actúa el atacante para alcanzar su objetivo; a través de una campaña dirigida, en la cual utiliza archivos adjuntos que descargan la amenaza o archivos adjuntos que tienen links a lugares maliciosos.

Les dejo un artículo que está muy bueno, en el cual se hace una analogía entre la investigación de una amenaza y la paleontología. También se mencionan los pasos de una investigación de un APT (Advanced Persistent Threat), los mismos son:

  1.  Adding detection for known modules
  2.  Collecting samples
  3.  Reversing the samples
  4.  Decrypting sophisticated encryption and compression schemes
  5.  Understanding lateral movement
  6.  Outlining multiple attack stages in the correct order
  7.  Mapping C&C infrastructure
  8.  Setting up sinkholes
  9.  Analyzing collected traffic and communication protocols
  10.  Crawling other hosts that understand the same protocol
  11.  Taking down and acquiring images of C&C servers
  12.  Identifying victims, sending out notifications to victims and global CERTs
  13.  Applying forensic analysis and extracting logs, stolen files, other components
  14.  Collecting and analyzing data from KSN, C&C servers, individual victims who are willing to work with us, sinkholes, crawlers, etc.
  15.  Writing a comprehensive report

Fuente: https://securelist.com/blog/opinions/67928/the-art-of-finding-cyber-dinosaur-skeletons/.

Como ven, aplicar CTI para entender una amenaza no es fácil ni rápido, lleva mucha dedicación y paciencia, y puede llevar años. En próximos posts vamos a mencionar algunas herramientas que podemos usar para conseguir información sobre amenazas.

No hay comentarios.:

Publicar un comentario