miércoles, abril 25, 2018

Phis.AI: Una AI para saber si una URL es un sitio de phishing

Las técnicas de phishing evolucionan y lo hacen en forma de diferentes amenazas asociadas a distintas tecnologías. Esto es una realidad, ya hemos visto en este blog ejemplos como el de nuestro querido SAPPO o el funcionamiento del QRLJacking y el caso práctico de WhatsApp. Hoy quería mostrar una nueva herramienta, que se encuentra en fase beta, la cual puede ayudar al descubrimiento de phishing en un sitio web. La herramienta se denomina Phis.AI.

Figura 1: Phis.AI: Una AI para saber si una URL es un sitio de phishing

El proyecto puede verse en su repositorio de GIthub o en su propia web. Según indican aplican inteligencia artificial para detectar incidentes de phishing, aunque si el usuario discrepa con lo que le dice el motor de Intieligencia Artificial, siempre se puede enviar una discusión y analistas de seguridad, es decir, el factor humano lo evaluará.

Figura 2: GitHub de Phish.AI

La herramienta dispone, además, de una API con la que se puede realizar interacciones y comprobaciones. La aplicación web es muy sencilla de utilizar, como vamos a ver a continuación. Al acceder al sitio web, uno se encuentra un Scan URL en el que se puede introducir la URL de la que se sospecha.

Figura 3: Scan URL en Phis.AI

Cuando introducimos un sitio web, el motor IA del sitio web trabaja durante unos segundos o minutos. Un poco de tiempo después se obtiene un resultado en el que se indican las siguientes cosas:
• ID. Este ID identifica de forma unívoca la URL, por lo que si otro usuario la intenta evaluar se podrá acceder a la información conocida. Esto se hace de forma similar al ID de Virus Total en el caso del malware.

• Verdict. Este es el veredicto del motor. Puede indicarnos que es malicioso o que está limpio.
 
• Dispute Verdict. Si el usuario no está de acuerdo con el resultado obtenido se puede enviar para que los analistas puedan observar con mayor detalle. 
• El campo “Targeted Brand” nos indica qué tipo de branding se utiliza en el phishing, es decir, a quién están suplantando. Además, obtenemos en la parte de Details un Screenshot de la pantalla.
Como se puede ver en la siguiente imagen, se ha evaluado una página que no es un sitio de phishing y el motor ha funcionado correctamente. Como es lógico, una automatización puede fallar, por eso tenemos disponible el “Dispute Verdict”, con lo que además estamos ayudando a entrenar la red neuronal.

Figura 4: Sumario de incidente

En el apartado Incidents nos aparecen los últimos incidentes de phishing descubiertos por el motor de AI. Como se puede ver en la siguiente imagen, se tiene una serie de campos en la tabla que nos van proporcionando la información. Además, tenemos las fechas del descubrimiento y el Targeted Brand. El campo URL apunta a la dirección web del sitio de phishing detectado por Phis.AI, por lo que si se quiere comprobar si la URL es detectada o no por las API como Safebrowsing se puede probar.

Figura 5: Lista de incidentes

Cuando entramos en un incidente, a través del identificador del incidente, se puede ver información detallada, tal y como vimos en el ejemplo anterior. Además, la aplicación es capaz de geolocalizar el phishing a través de la dirección IP.

Jugando con la API

La aplicación dispone de una API pública y otra privada. Con la API pública el usuario puede enviar las direcciones URL sospechosas para ser escaneadas. Con la API pública se pueden hacer unas 1000 peticiones por día, incluyendo POST y GET.

Para ver el uso sencillo de la API vamos a generar un script en Ruby que realice la petición POST con el valor de una URL con el objetivo de entregarle al motor de AI la información. Cuando éste la haya procesado, podremos recuperar, también vía API, la información del reporte. En la parte de documentación de la API se puede ver un ejemplo básico con CURL.

Figura 6: Ejemplo de uso con CURL

El primer script lo hemos llamado send.rb. El script, a modo de ejemplo, realiza una petición POST a la API de Phish.AI. En este ejemplo, se ha solicitado informar sobre la URL http://flu-project.com.

Figura 7: Script send.rb

Si ejecutamos el código anterior, se puede observar que la respuesta de la API se sencilla, simplemente nos da la información sobre el ID del scan. Esta información podría ser tratada automáticamente, para procesarla y recoger el reporte.

Figura 8: Ejemplo desde Kali Linux

Por otro lado, se ha escrito un pequeño script denominado getReport.rb. Este script se encarga de realizar una petición por GET a la API de Phish.AI e indicar el ID del scan del que se quiere reporte. Al obtener la respuesta en el JSON se obtiene la información conocida tras el análisis del motor de AI de Phish.AI.

Figura 9: Información completa del incidente en fichero JSON

Como se puede ver en la imagen, se obtiene la información conocida. En este caso, estamos ante un caso negativo, es decir, no es un phishing. Los resultados y parámetros que se obtienen son los mismos que se obtienen a través del sitio web.

Figura 10: Incidente negativo

Es una herramienta a tener en cuenta, la cual se encuentra en fase beta y la cual proporciona una API para automatizar ciertos procesos y para que los equipos de vigilancia digital estén al tanto de los nuevos phishing que se pueden descubrir gracias a este motor que aplica inteligencia artificial a la evaluación. Si quieres conocer más sobre la evolución del phishing y la aparición de los ataques SAPPO no te pierdas mi charla en la CON Pilar 2018, el próximo sábado 28 de abril.

Autor: Pablo González Pérez (@pablogonzalezpe), escritor de los libros "Metasploit para Pentesters", "Hacking con Metasploit: Advance Pentesting" "Hacking Windows", "Ethical Hacking", "Got Root" y “Pentesting con Powershell”, Microsoft MVP en Seguridad y Security Researcher en ElevenPaths

No hay comentarios:

Entrada destacada

Cómo usar Movistar + con Aura: Unos vídeo-tutoriales

Desde que lanzamos Aura en Movistar + para España en el pasado Mobile World Congress , el número de casos de usos ha ido creciendo a la pa...

Entradas populares