Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Alfonso Muñoz - Reviving Homograph attacks using (deep learning) steroids [rooted2019]

278 views

Published on

Alfonso Muñoz - Reviving Homograph attacks using (deep learning) steroids [rooted2019]

Published in: Technology
  • Be the first to comment

Alfonso Muñoz - Reviving Homograph attacks using (deep learning) steroids [rooted2019]

  1. 1. Reviving Homograph Attacks using (deep learning) steroids Dr. Alfonso Muñoz alfonso@criptored.com Twitter: @mindcrypt Telegram:t.me/criptored RootedCON 2019
  2. 2. about.me Dr. Alfonso Muñoz – Twitter: @mindcrypt Global Technical Security Lead & Head of cybersecurity lab BBVA Next technologies alfonso@criptored.com Linkedin: https://es.linkedin.com/in/alfonsomuñoz - Seniorsecurity researcher(+60 academicpublications,talks, patents, IEEE, ACM, books) - Offensive/defensivesecurity (European Organisms, public bodies and multinational companies -global 500) - Crypto-Stego expert (books, tools, papers, designs, t.me/criptored) - Speaker: STIC CCN-CERT, DeepSec, HackInTheBox, Virus Bulletin, RootedCon, 8.8, No cON Name, GSICKMinds, Cybercamp, Secadmin, JNIC, Ciberseg, X1RedMasSegura, Navaja Negra, T3chfest… - Co-editor CRIPTORED– Red Temática de Criptografía y seguridadde la información – http://www.criptored.com
  3. 3. 10 ediciones - toda una vida… y alguna reflexión @Criptored Enero 2009 Café Comercial Madrid – Glorieta de Bilbao, 7
  4. 4. 10 ediciones - toda una vida… y alguna reflexión
  5. 5. ¿Podemos “simular” el mejor atacante posible? “Perfect attacker” - Threat model - Unlimited resources & time - Unlimited knowledge - Unlimited access
  6. 6. Agenda… Seguridad ofensiva con machine learning uriDeep – Ataques Unicode con ML (spear phishing y otros) Ejemplos – Real World (ataques Unicode)
  7. 7. goo.gl/jBHpqJ ¿Seguridad ofensiva & IA? http://www.ciencia.gob.es/stfls/MICINN/Ciencia/Ficheros/Estrategia_Inteligencia_Artificial-IDI.pdf
  8. 8. Seguridad ofensiva & ML Adversarial Machine Learning Ataques sintético Ataques mixtos basados en ML (Robo de modelos, Backdoors, transfer learning…) ML aplicada a seguridad ofensiva “ataques clásicos” Alfonso Muñoz y Jose Ignacio Escribano Cybercamp 2017 Taller - Seguridad ofensiva y defensiva con machine learning https://github.com/tensorflow/cleverhans
  9. 9. https://arxiv.org/pdf/1705.07386.pdf Adversarial machine learning – “The safe adoption of machine learning techniques in adversial settings like spam filtering, malware detection and biometric recognition”
  10. 10. “Ataques clásicos” usando ML
  11. 11. Criptografía y Deep Learning – Dr. Alfonso Muñoz @mindcrypt
  12. 12. Criptografía y Deep Learning – Dr. Alfonso Muñoz @mindcrypt https://www.darpa.mil/program/computers-and-humans-exploring-software-security Off the Beaten Path: Machine Learning for Offensive Security - https://pdfs.semanticscholar.org/e0d6/af4067d0b51794c3ae91fccfd1909d784a5b.pdf
  13. 13. “Ataques clásicos” usando ML Objetivo principal:Fuzzing& Facilitar/Mejorar/Agilizarherramientasdepentesting Comerciales:Nimis,Wallarm,Pentoma, … Open source & comunidad(herramientas) AFL(algoritmosgenéticos),NMAP(logistic-regressionIPv6 OS classification) Gyoithon(https://github.com/gyoisamurai/GyoiThon) Herramienta de pentesting que analiza la información recogida mediante ML. Cuenta con diferentes opciones para examinar puertos abiertos, servicios cloud, utilizar metasploit, análisis de respuestas HTTP.. SAIVS(SpiderArtificialIntelligenceVulnerabilityScanner)- https://github.com/13o-bbr-bbq/SAIVS Crawling con NaiveBayes para identificar páginas web vía patrones (página de búsquedas, login, formularios,etc.) paraposteriormenteprobar ataquesXSS y SQL. Generator/Recomender(https://github.com/13o-bbrbbq/machine_learning_security) Recomienda mejores inyección de código para detectar fallos web. Se centra en XSS reflejado (multilayer percepton) ExploitMeter (http://www.cs.binghamton.edu/~ghyan/code/ExploitMeter/exploit-meter.py)
  14. 14. DeepExploit (https://github.com/13o-bbr-bbq/machine_learning_security/tree/master/DeepExploit). Herramienta beta para pentesting automático. Identifica puertos abiertos (Nmap) y realiza explotación con técnicas de machine learning. Usa metasploit y servidores vulnerables como Metasploitable2 y Owasp BWA (Broken Wen Applications) para aprender a realizar exploiting.
  15. 15. Ataques clásicos usando ML – Cracking https://arxiv.org/pdf/1709.00440.pdf https://n0where.net/a-deep-learning-approach-for- password-guessing-passgan https://github.com/brannondorsey/PassGAN
  16. 16. uriDeep Unicode encodings attacks con ML
  17. 17. ¿Qué tienen en común estos problemas? http://docs.idsresearch.org/http_ids_evasions.pdf Directory Traversal Attacks https://www.secureworks.com/blog/how-to-hide-malware-in-unicode
  18. 18. ¿Qué tienen en común estos problemas? https://motherboard.vice.com/en_us/article/negmyb/sony-fixed-a-bug-that-allowed-players-to-crash-playstations-by-sending-them- messages https://www.reddit.com/r/PS4/comments/9nselm/warning_set_your_messages_to_private/ https://www.kaspersky.com/blog/ps4-killer-messages/24243/ https://www.reuters.com/article/us-apple-bug/apple-finds-bug-that-causes-iphones-to-crash-idUSKBN0OC28L20150527
  19. 19. ¿Qué tienen en común estos problemas? NO ES LA CLASE SYSTEM VERDADERA!!!!
  20. 20. Unicode para dummies - Conceptos Unicode es un estándar de codificación de caracteres diseñado para facilitar el tratamiento informático, transmisión y visualización de textos de múltiples lenguajes y disciplinas técnicas, además de textos clásicos de lenguas muertas. https://es.wikipedia.org/wiki/Unicode La última versión 11.0 contiene 137.374 caracteres provenientes de alfabetos, sistemas ideográficos y colecciones de símbolos (matemáticos, técnicos, musicales, iconos...) https://jrgraphix.net/r/Unicode/0780-07BF
  21. 21. Unicode para dummies - Conceptos https://bit.ly/2U11XwR http://www.unicode.org/charts/ http://kunststube.net/encoding/
  22. 22. Problemas de seguridad en Unicode - Contramedidas - Unicode encodings attacks - Homograph attacks (confusables) IDN (Internationalized domain name) homograph attack Punycode (RFC3492) is a representation of Unicode with the limited ASCII character subset used for IDNA (internationalized domain names). Unicode characters are transcoded to a subset of ASCII (consisting of letters, digits, and hyphen, which is called the Letter-Digit- Hyphen, LDH subset) favored by DNS 0061 Latin Small Letter a: http://www.bbva.com 0430 Cyrillic Small Letter a: http://www.bbvа.com 0430 Cyrillic Small Letter a: http://www.bbvа.com Navegador con Punycode: http://www.xn--bbv-8cd.com/ Application Security Testing & Fuzzing (unicode.org) https://github.com/cweb/unicode-hax https://github.com/google/oss-fuzz Guías de desarrollo seguro (Ej, OWASP secure coding practices) Seguridad en profundidad (Security in Depth)
  23. 23. Homograph attacks – Reflexionando sobre contramedidas - Navegador web: ¿Políticas IDN y punycode es garantía de protección? (homograph attack) - Los confusables son “críticos”: ¿Podemos modelar el mejor atacante? - Seguridad en profundidad - ¿Cómo se procesan las cadenas de confusables en las apps? - Más allá de spear-phishing: atacar ML, covert channels, evasión de DLP y authorship, troyanizar código fuente, OCR defense… (Application Security Testing & Fuzzing) https://www.chromium.org/developers/design-documents/idn-in-google-chrome
  24. 24. - Objetivo: Crear el mejor dicc de confusables para ataque/defensa - Receta: Comparar “visualmente” de forma automática caracteres Unicode y almacenar los que tienen un % de similitud dado. Release: Diccionario de confusables & Deep learning RootedCON 2019 - PoC: Comparar caracteres alfabeto latino con 38.800 caracteres Unicode. - Deep learning/Transfer Learning (Keras/Tensorflow) & cosine similarity (scikit-learn)
  25. 25. Release: Diccionario de confusables & Deep learning RootedCON 2019 Modelo VGG16 con pesos pre-entrenados de ImageNet https://www.tensorflow.org/guide/keras
  26. 26. Para casa: Transfer Learning – Modelo VGG16 RootedCON 2019 https://arxiv.org/pdf/1409.1556.pdf https://machinelearningmastery.com/transfer-learning-for-deep-learning/
  27. 27. ¿Cuál es la mejora? (cantidad/calidad) - Herramientas actuales - baja calidad (squatm3, evilurl, samesame, …) - Referencia – Unicode consortium (https://unicode.org/cldr/utility/confusables.jsp) - Resultado - DeepDiccConfusables (+50% de confusables por carácter, +10- 15% calidad) - Conclusión: IA como complemento al proceso manual +45 respecto a la referencia +43 respecto a la referencia
  28. 28. Release: deepDiccConfusables v1.0 https://github.com/mindcrypt/uriDeep/blob/master/data/deepDiccConfusables.txt
  29. 29. Release: uriDeep tool https://github.com/mindcrypt/uriDeep
  30. 30. Ejemplos – Real World attacks (URL - Homograph attack Unicode)
  31. 31. Dominios “Unicode” • Detecciónde dominioscon “deepConfusablesDicc”(media54confusables por carácter) - España (Feb 2018) - 34 dominios IBEX35, 25.833 Pymes y 74 empresas de apuestas online - Mundo (Feb 2018) - 10.000 TopDomains • Dominios“vivos”apuestasonline - www.pastón.es  www.xn--pastn-3ta.es - www.loteríasyapuestas.es  www.xn--loterasyapuestas-dsb.es • Dominios“vivos”IBEX35 - http://www.melía.com  http://www.xn--mela-xpa.com/ - http://www.bankía.com  http://www.xn--banka-2sa.es/ - http://www.ınditex.com  http://www.xn--nditex-o9a.com - http://www.meliá.com  http://www.xn--meli-8na.com
  32. 32. Dominios “Unicode” • Detecciónde dominioscon “deepConfusablesDicc”(media54confusables por carácter) - España (Feb 2018) - 34 dominios IBEX35, 25.833 Pymes y 74 empresas de apuestas online - Mundo (Feb 2018) - 10.000 TopDomains • Dominios“vivos”pymes - http://www.cristalerías.com  www.cristalerías.com - http://www.garcíabaquero.com/  www.garcíabaquero.com - www.almadén.es  www.almadén.es - www.solmeliá.com  www.solmeliá.com - www.mazapán.com  www.mazapán.com - www.ruralvía.com  www.ruralvia.com - www.ḅasf.com  www.xn--asf-xxy.com - www.mähle.com  www.mähle.com
  33. 33. Dominios “Unicode” • Detecciónde dominioscon “deepConfusablesDicc”(media54confusables por carácter) - España (Feb 2018) - 34 dominios IBEX35 (4), 25.833 Pymes (8) y 74 empresas de apuestas online (2) - Mundo (Feb 2018) - 10.000 TopDomains • Dominios“vivos”TopDomains( 27.876urls detectadas) - amazón.es  amazon.es - góogle.es  http://xn--gogle-0ta.es/ - skypê.net, skýpe.net, skÿpe.net, skypè.net, skypé.net…, fàcebook.net, fâcebook.net, facêbook.net, facëbook.net… mınecraft.net, expədia.com.ph, twītter.com, t-mobìle.com, alıexpress.com, applē.com, îkea.com, braźzers.com, īnstagram.com, netflìx.com, faceḇook.com, theɢuardian.com, ebáy.com, amerıcanexpress.com - adı̇das.com, sėx.com, whatsàpp.com, sʌmsung.com, àirbnb.com, nytímes.com, baīdu.com, offıce.com, - mìcrosoft.com, wikipédia.com, disneylandpaṛis.com, xviďeos.com, amazoŋ.com, goog⌊e.com.ph, - eᕁpedia.com.ph, microsoƒt.com, dropḅox.com, ýouporn.com, vodafoņe.com, icłoud.com, exρedia.com.ph, - poŕnhub.com, netfľix.com …
  34. 34. Evadir Punycode https://www.chromium.org/developers/design-documents/idn-in-google-chrome http://unicode.org/reports/tr39/
  35. 35. Evadir Punycode Caracteres potenciales ą ę ģ ġ į ķ ļ ņ ŗ ş ţ ų
  36. 36. Ejemplos con UriDeep https://www.cįa.gov https://www.nsą.gov/ https://www.įntelligence.gov
  37. 37. Ejemplos con UriDeep www.gruposąphir.com www.cąstillalamancha.es www.tęnerife.es http://www.dęfensa.gob.es/ http://www.cięncia.gob.es/ www.ącciona.com www.ącerinox.com www.grupoącs.com www.ąena.es www.bąncosantander.es www.bąnkinter.com www.caixąbank.es www.cęllnextelecom.com www.cieąutomotive.com www.enągas.es www.endesą.com www.ferroviąl.com www.grįfols.com www.es.iąirgroup.com www.iberdrolą.es www.inditęx.com www.indrącompany.com www.inmocoloniąl.com www.mapfrę.es www.mediąset.es www.melią.com www.męrlinproperties.com www.nąturgy.es www.ręe.es www.rępsol.es www.siemensgamesą.com http://www.cąsareal.es/ www.cnį.es www.tecnicąsreunidas.es www.telefonicą.es www.viscofąn.com
  38. 38. Contramedidas en navegadores
  39. 39. Security in depth Do you trust your web browser?
  40. 40. Correo web Mensajería instantánea y redes sociales Ofimática y PDFs
  41. 41. (1/3) Correo Web – Outlook & Yahoo
  42. 42. (2/3) Correo Web – Protonmail
  43. 43. (3/3) Correo Web – Gmail
  44. 44. (1/7) Mensajería instantánea (mix) - Skype Desktop
  45. 45. (2/7) Mensajería instantánea & RS: Slack, FB, Hangout, Twitter
  46. 46. (3/7) Mensajería instantánea & RS: Linkedin
  47. 47. (4/7) Mensajería instantánea y RS: Instagram & Twitch
  48. 48. (5/7) Redes sociales libres & mensajería instantánea NcN 2017 - Seguridad en redes sociales libres.Ataques y amenazas. Alfonso Muñoz y Miguel Hernández - https://vimeo.com/249057699
  49. 49. (6/7) Mensajería instantánea: Signal & Telegram
  50. 50. (7/7) Mensajería instantánea: WhatsApp
  51. 51. (1/3) Ofimática - Gsuite
  52. 52. (2/3) Ofimática – Microsoft Office
  53. 53. (3/3) Ofimática - OpenOffice 4.1.6
  54. 54. Lector PDF – Acrobat Reader/Foxit Reader
  55. 55. Resumen – Algunos problemas con confusables
  56. 56. Confusables (más ejemplos) Covert channels
  57. 57. “a” cyrilic
  58. 58. Release: StegUnicode tool (beta) https://github.com/mindcrypt/stegUnicode Numero aleatorio de 40 bits (50% aprox de modificaciones) Non-printable-tags (U+E0000 to U+E007F) Oculto 400 bits (msg): Bienvenidos a la rootedCon coleguitas del pwn2own
  59. 59. Para casa: Matrix embedding https://code.google.com/archive/p/f5-steganography/ - Por defecto stegUnicode (regla 1-2-3) Mensajes en bloques de 2 bits (b1 b2) “Cubierta”en bloques de 3 bits(c1 c2 c3) Algoritmo b1 = c1 xor c2 y b2=c2 xor c3  Oculto 2bits sin modificar (25%) b1 = c1 xor c2 y b2!=c2 xor c3  Oculto 2 bits modificando 1 bit ->c3 (25%) b1 != c1 xor c2 y b2=c2 xor c3  Oculto 2 bits modificando 1 bit ->c1 (25%) b1 != c1 xor c2 y b2!=c2 xor c3  Oculto 2 bits modificando 1 bit ->c2(25%) - Configurable (k bits, 1 modificación en 2k-1 bits)
  60. 60. CONCLUSIONES - Avances limitados en seguridad ofensiva con IA (al menos públicamente)… pero con utilidad en escenarios concretos. - Cuidado con ataques basados en codificación Unicode (hola, ¿siglo XXI?). Application Security Testing & Fuzzing - DeepLearning para mejorar la detección de ataques con confusables - deepDiccConfusablesv1.0 https://github.com/mindcrypt/uriDeep/blob/master/data/deepDiccConfusables.txt - Herramienta uriDeep https://github.com/mindcrypt/uriDeep - “Mejorar” software comercial - confusables - (Skype, Foxit, ProtonMail, Gmail, Linkedin, OpenOffice, Whatsapp, Signal,Telegram, Redes SocialesLibres, …) - Evaluación de impacto de confusables en múltiples escenarios (evasión de propiedad intelectual, covert channels, …) - StegUnicode - https://github.com/mindcrypt/stegUnicode
  61. 61. Agradecimientos @miguelHzBz @omarbv @patowc
  62. 62. Reviving Homograph Attacks using (deep learning) steroids Dr. Alfonso Muñoz alfonso@criptored.com Twitter: @mindcrypt RootedCON 2019 Linkedin: https://es.linkedin.com/in/alfonsomuñoz Telegram: t.me/criptored

×