stringtranslate.com

Algoritmo de generación de dominio

Los algoritmos de generación de dominios (DGA) son algoritmos que se ven en varias familias de malware y que se utilizan para generar periódicamente una gran cantidad de nombres de dominio que pueden usarse como puntos de encuentro con sus servidores de comando y control . La gran cantidad de posibles puntos de encuentro dificulta que las fuerzas del orden apaguen eficazmente las botnets , ya que las computadoras infectadas intentarán comunicarse con algunos de estos nombres de dominio todos los días para recibir actualizaciones o comandos. El uso de criptografía de clave pública en el código de malware hace que sea inviable para las fuerzas del orden y otros actores imitar comandos de los controladores de malware, ya que algunos gusanos rechazarán automáticamente cualquier actualización que no esté firmada por los controladores de malware.

Por ejemplo, una computadora infectada podría crear miles de nombres de dominio como: www.<galimatías>.com e intentaría contactar con una parte de ellos con el fin de recibir una actualización o comandos.

Incrustar el DGA en lugar de una lista de dominios generados previamente (por los servidores de comando y control) en el binario no ofuscado del malware protege contra un volcado de cadenas que podría introducirse en un dispositivo de lista negra de red de manera preventiva para intentar restringir la comunicación saliente de los infectados. hosts dentro de una empresa.

La técnica fue popularizada por la familia de gusanos Conficker .a y .b que, al principio, generaban 250 nombres de dominio por día. Comenzando con Conficker.C, el malware generaría 50.000 nombres de dominio cada día, de los cuales intentaría contactar con 500, dando a una máquina infectada una posibilidad del 1% de ser actualizada cada día si los controladores de malware registraran sólo un dominio por día. Para evitar que las computadoras infectadas actualicen su malware, las autoridades habrían necesitado registrar previamente 50.000 nuevos nombres de dominio cada día. Desde el punto de vista del propietario de la botnet, sólo tiene que registrar uno o unos pocos dominios de los varios dominios que cada bot consultaría todos los días.

Recientemente, la técnica ha sido adoptada por otros autores de malware. Según la firma de seguridad de redes Damballa , las cinco familias de crimeware basadas en DGA más frecuentes son Conficker, Murofet, BankPatch, Bonnana y Bobax en 2011. [1]

DGA también puede combinar palabras de un diccionario para generar dominios. Estos diccionarios pueden estar codificados en malware o tomados de una fuente de acceso público. [2] Los dominios generados por el diccionario DGA tienden a ser más difíciles de detectar debido a su similitud con los dominios legítimos.

Ejemplo

def  generar_dominio ( año :  int ,  mes :  int ,  día :  int )  ->  str : """Generar un nombre de dominio para la fecha dada.""" dominio = ""     para  i  en  el rango ( 16 ):  año  =  (( año  ^  8  *  año )  >>  11 )  ^  (( año  &  0xFFFFFFF0 )  <<  17 )  mes  =  (( mes  ^  4  *  mes )  >>  25 )  ^  16  *  ( mes  &  0xFFFFFFFF8 )  día  =  (( día  ^  ( día  <<  13 ))  >>  19 )  ^  (( día  &  0xFFFFFFFE )  <<  12 )  dominio  +=  chr ((( año  ^  mes  ^  día )  %  25 )  +  97 ) devolver  dominio  +  ".com"

Por ejemplo, el 7 de enero de 2014, este método generaría el nombre de dominio intgmxdeadnxuyla.com, mientras que al día siguiente devolvería axwscwsslmiagfah.com. De hecho, este sencillo ejemplo fue utilizado por malware como CryptoLocker , antes de cambiar a una variante más sofisticada.

Detección

Los nombres de dominio DGA [3] se pueden bloquear mediante listas negras, pero la cobertura de estas listas negras es pobre (listas negras públicas) o tremendamente inconsistente (listas negras de proveedores comerciales). [4] Las técnicas de detección pertenecen a dos clases principales: reaccionarias y en tiempo real. La detección reaccionaria se basa en técnicas de agrupamiento no supervisadas e información contextual como respuestas de red NXDOMAIN, [5] información de WHOIS , [6] y DNS pasivo [7] para realizar una evaluación de la legitimidad del nombre de dominio. Los intentos recientes de detectar nombres de dominio DGA con técnicas de aprendizaje profundo han tenido mucho éxito, con puntuaciones F1 superiores al 99 %. [8] Estos métodos de aprendizaje profundo suelen utilizar arquitecturas LSTM y CNN , [9] aunque las incrustaciones profundas de palabras se han mostrado muy prometedoras para detectar DGA de diccionario. [10] Sin embargo, estos enfoques de aprendizaje profundo pueden ser vulnerables a técnicas adversas . [11] [12]

Ver también

Referencias

  1. ^ "Las cinco familias de crimeware basadas en DGA más frecuentes" (PDF) . Damballa . pag. 4. Archivado desde el original (PDF) el 3 de abril de 2016.
  2. ^ Plohmann, Daniel; Yakdan, Khaled; Klatt, Michael; Bader, Johannes; Gerhards-Padilla, Elmar (2016). "Un estudio de medición integral del malware que genera dominios" (PDF) . 25º Simposio de seguridad de USENIX : 263–278.
  3. ^ Shateel A. Chowdhury, "ALGORITMO DE GENERACIÓN DE DOMINIO - DGA EN MALWARE", 30 de agosto de 2019.
  4. ^ Kührer, Marc; Rossow, cristiano; Holz, Thorsten (2014), Stavrou, Angelos; Bos, Herbert; Portokalidis, Georgios (eds.), "Paint It Black: Evaluación de la eficacia de las listas negras de malware" (PDF) , Investigación sobre ataques, intrusiones y defensas , Springer International Publishing, vol. 8688, págs. 1–21, doi :10.1007/978-3-319-11379-1_1, ISBN 9783319113784, recuperado el 15 de marzo de 2019
  5. ^ Antonakakis, Manos; et al. (2012). "Del tráfico desechable a los bots: detección del aumento del malware basado en DGA". 21º Simposio de seguridad de USENIX : 491–506.
  6. ^ Curtin, Ryan; Gardner, Andrés; Grzonkowski, Slawomir; Kleymenov, Alexey; Mosquera, Alejandro (2018). "Detección de dominios DGA con redes neuronales recurrentes e información secundaria". arXiv : 1810.02023 [cs.CR].
  7. ^ Pereira, Mayana; Coleman, Shaun; Yu, Bin; De Cock, Martine; Nascimento, Anderson (2018), "Extracción del diccionario y detección de nombres de dominio generados algorítmicamente en tráfico DNS pasivo" (PDF) , Investigación en ataques, intrusiones y defensas , Apuntes de conferencias en informática, vol. 11050, Springer International Publishing, págs. 295–314, doi :10.1007/978-3-030-00470-5_14, ISBN 978-3-030-00469-9, recuperado el 15 de marzo de 2019
  8. ^ Woodbridge, Jonathan; Anderson, Hyrum; Ahuja, Anjum; Conceder, Daniel (2016). "Predicción de algoritmos de generación de dominios con redes de memoria a corto plazo". arXiv : 1611.00791 [cs.CR].
  9. ^ Yu, contenedor; Pan, Jie; Hu, Jiaming; Nascimento, Anderson; De Cock, Martine (2018). "Detección basada en niveles de caracteres de nombres de dominio DGA" (PDF) . Conferencia conjunta internacional sobre redes neuronales (IJCNN) de 2018 . Río de Janeiro: IEEE. págs. 1–8. doi :10.1109/IJCNN.2018.8489147. ISBN 978-1-5090-6014-6. S2CID  52398612.
  10. ^ Koh, Joewie J.; Rodas, Barton (2018). "Detección en línea de algoritmos de generación de dominios con incrustaciones de palabras sensibles al contexto". 2018 Conferencia Internacional IEEE sobre Big Data (Big Data) . Seattle, WA, EE.UU.: IEEE. págs. 2966–2971. arXiv : 1811.08705 . doi :10.1109/BigData.2018.8622066. ISBN 978-1-5386-5035-6. S2CID  53793204.
  11. ^ Anderson, Hyrum; Woodbridge, Jonathan; Bobby, Filar (2016). "DeepDGA: generación y detección de dominios optimizados por adversarios". arXiv : 1610.01969 [cs.CR].
  12. ^ Sidi, Lior; Nadler, Asaf; Shabtai, Asaf (2019). "MaskDGA: una técnica de evasión de caja negra contra clasificadores DGA y defensas adversas". arXiv : 1902.08909 [cs.CR].

Otras lecturas