SlideShare a Scribd company logo
1 of 40
Методы вставки палок в колеса ботмастерам:
ботнет Kelihos




Мария Гарнаева, Malware analyst, GReAT, Kaspersky Lab
30.05.2012/ Positive Hack Days
Global Research & Analysis Team
О чем будет рассказано


• Типы Sinkhole
• История становления ботнета Kelihos/Hlux
• Реализация, протокол, функционал известных
  версий Kelihos/Hlux
• Kelihos.Sinkhole.A, Kelihos.Sinkhole.B
• Статистика
• ……………
Centralized vs. P2P



                                                                         Botmaster
            Botmaster

                              VS.                            C&C




                                                                                             C&C
                                                                         Bot
             C&C                    Bot
                                                      Bot




                                                                         Bot
                                                            Bot                  Bot
Bot                                       Bot                                                        Bot


                                                                         Bot
      Bot               Bot                     Bot
               Bot              Bot
                                                                   Bot
                                                                                       Bot
                                                                           Bot

                                                                                                   Bot
Sinkhole: определение
Sinkhole: определение



Sinkhole – элемент сети, на который перенаправляется
вредоносный или подозрительный трафик, «как в дыру»
DNS Sinkhole type1
DNS Sinkhole type2
DNS Sinkhole example: Shiz
P2P Sinkhole
Case study: Kelihos/Hlux и товарищи
Waledac/Iksmas
Waledac/Iksmas и Kelihos/Hlux


 • Похожий функционал
 • Одна и та же архитектура
 • Использование fast-flux сети на своих ботах
 • Использование нескольких этапов
   преобразования сообщения (сжатие,
   криптование)
 • Одна и та же тематика спам-писем для
   первоначального распространения
Waledac/Iksmas и Kelihos/Hlux



             Start        End          Disruption


 Waledac     Dec 2008     Feb 2010     Operation b49
                                       (Microsoft,
                                       Shadowserver, VeriSign)
 Kelihos.A   Dec 2010     Sept 2011    Operation b79
                                       (Microsoft, KL, SurfNet,
                                       Kyrus Tech Inc.)
 Kelihos.B   Sept 2011    March 2012   KL, CrowdStrike,
                                       HoneyNet Project,
                                       Dell SecureWorks
 Kelihos.C   March 2012         -             -
Kelihos/Hlux: функционал


• Рассылка спама
• DDoS
• Кража конфигурационный файлов FTP
  клиентов
• Кража Bitcoin кошелька
• Bitcoin miner
• HTTP, SOCKS5 Proxy, HTTP Server
• Сниффер для перехвата паролей от
  электронной почты, FTP и HTTP сессий
• Кража адресов электронной почты
Kelihos/Hlux: архитектура
Kelihos/Hlux: Fast-flux сеть




                               Fall-back
                               channel
Kelihos/Hlux: Fast-flux сеть
Kelihos/Hlux.A: протокол


                          Packet header

        8 байт             8 байт          4 байт          4 байт

       Signature        f1(Timestamp)   f2(DataSize,   f3(f2, DataType,
                                         Timestamp,      TimeStamp,
                                          Signature)      Signature)

        4 байт             4 байт          4 байт

   f4(Payload_offset,        0          Random(time)
       datasize)
Kelihos/Hlux.A: протокол




      Message Type                Description

          1000             Bootstrap + peer exchange

          1001             Push encrypted signed data

          1002        Get job task + Encrypted signed
                            tasks + send reports
          1003                        Ping

          1004                   Request peers
          1005             Get job task + send reports
Kelihos/Hlux.A: протокол



               Blowfish with KEY1


               3DES with KEY2


                Blowfish with KEY3



                 Zlib Unpack
Kelihos/Hlux.A: протокол

                                              {'33': int8_t(1),
            Serialized Tree                    '48': '',
                                               'll': '',
                                               'si': int32_t(982259673),
                                               'u': {'34': {'r': int8_t(224), 'y':
                                              int64_t(10)},
                                                       '65': {'b': int32_t(3600), 'h':
                                              int64_t(1294351260)},
                                                       'b3': {'65': {'7': [{'d': ['Werken met
                                              betalingen', 'Werken voor een grote
                                              luchtvaartmaatschappij', 'Manager
                                              Klantenservice', 'Manager-beheerder',
                                              'bewindvoerder', 'beheerder', 'Rekenin
                                              g Beheerder',



Types: tree, array of trees, blob, array of
blobs, String, primitive
Kelihos/Hlux.A: протокол

1000_request {
  1 => m_client_id                        Router list
  3 => m_current_time                     m_clients_list {
  4 => m_live_time                          b => m_ip
  5 => m_bootstrap_list                     d => m_listening_port
  y => m_ip                        ....     g => m_last_active_time
  s => m_listenning_port                    p => m_client_id
  v => m_real_target_ip                     x => m_live_time
  vf => m_external_info_packed            }
  jj => m_version
}
1000_response {                              Controller list
  5 => m_success
  y => m_current_time                        job_server {
  r => m_live_time                              2 => m_ip
  h => m_real_initiator_ip       ....           6 => m_listening_port
  f => m_bootstrap_list                      }
  v => m_external_info_packed
}
Kelihos/Hlux.A: протокол


'e5f5620ea0d61400': {'dfa5849a875d3000': [{'27ba884f7079f440': int32_t(74853806),
                          '840a175501af5c00': int64_t(0),
                          '9e1851866c2e0000': int64_t(0),
                          'd76722b4e3469800': int32_t(80),
                          'f74fb6b49e16a900': {00000000-0000-0000-0000-
000000000000}},




'5': {'a': int32_t(1241740),
       'j': [{'b': int32_t(59383998),
               'd': int32_t(80),
               'g': int64_t(0),
               'p': {00000000-0000-0000-0000-000000000000},
               'x': int64_t(0)},
Kelihos/Hlux.A: Sinkhole
Kelihos/Hlux.A: Sinkhole




   Start Sinkhole: 26.09.2011
   Total IP count from 26.09.2011 to 28.09.2011: 49 007
Kelihos/Hlux.A: Geolocation




  Top: Thailand, Vietnam, India, Korea
Kelihos/Hlux.A: Securelist.com Poll
Kelihos/Hlux.B



                 •   Начало Kelihos.A
                     Sinkhole: 26 сентября
                     2011
                 •   Публичное уведомление
                     (блогпост): 28 сентября
                     2011
                 •   Появление Kelihos.B:
                     28 сентября 2011
Kelihos/Hlux.B: протокол


 Blowfish with KEY1                   Blowfish with new KEY1


 3DES with KEY2                        Zlib Unpack


  Blowfish with KEY3                   Blowfish with new KEY3



   Zlib Unpack                         3DES with new KEY2
                          Kelihos.A     Kelihos.B
                          RSA Key 1   New RSA Key 1
        Controllers’ IP

      Update/Exec urls1   RSA Key 1   New RSA Key 1

      Update/Exec urls1   RSA Key 2   New RSA Key 2
Kelihos/Hlux.B: Sinkhole



m_external_info_packed {
  d => m_external_data_blob
  h => m_external_data_signature
  g => m_external_info_id(uint64)  timestamp   m_external_info_id=0xffffffffffffffff
}


   m_external_info {
     2 => []m_job_servers
     7 => m_list_id (uint64)  timestamp         m_list_id=0xffffffffffffffff
   }
Kelihos/Hlux.B: Sinkhole




Start Sinkhole: 21.03.2012
Total GUID count to 27.03.2012: 116 570   Total GUID count to 16.05.2012: 181 579
Total IP count to 27.03.2012: 352 685     Total IP count to 16.05.2012: 2 042 116
Kelihos/Hlux.B: Sinkhole




       Top: Poland, USA, Turkey, Spain
Kelihos/Hlux.B: Sinkhole
Kelihos/Hlux.С

                 •   Начало Kelihos.B Sinkhole:
                     21 марта 2012
                 •   Публичное уведомление
                     (блогпост): 28 марта 2012
                 •   Появление Kelihos.C:
                     21 марта 2012
                 •   Распространение
                     замечено через Facebook
                 •   В течение месяца
                     устанавливал на боты
                     ZeroAccess
Kelihos/Hlux.C: протокол



                             Kelihos.B         Kelihos.C
                             RSA Key1        New RSA Key1
          Controllers’ IP

        Update/Exec urls1    RSA Key1        New RSA Key1

        Update/Exec urls1    RSA Key2        New RSA Key2

        Packet decryption   Blowfish Key3   New Blowfish Key3

        Packet decryption   Blowfish Key4   New Blowfish Key4

        Packet decryption    3DES Key5       New 3DES Key5
Kelihos/Hlux.: fast-flux домены


         Waledac     Kelihos.A    Kelihos.B   Kelihos.C



                                     .eu         .ru
           .com        .com           .in       .com
                                    .com




 • В Waledac и Kelihos.A fast-flux домены были
   отключены Microsoft
 • В Kelihos.B стороннего отключения не было
Кто виноват и что делать?
Выводы


• В случае борьбы с P2P ботнетами
  необязательно привлекать
  правоохранительные органы
• Sinkhole A, Sinkhole B имел смысл
  (статистика заражения, вынуждение
  операторов на трату $$ за pay-per-install)
• С Sinkhole.C уже могут быть проблемы
• Без поимки преступников невозможно
  препятствовать созданию нового ботнета +
  всегда будет его окупаемость
Thank You




Мария Гарнаева, Malware analyst, GReAT, Kaspersky Lab
30.05.20112/ Positive Hack Days

More Related Content

What's hot

Алексей Куканов — Параллелизм в C++: управляйте приложением, а не потоками!
Алексей Куканов — Параллелизм в C++: управляйте приложением, а не потоками!Алексей Куканов — Параллелизм в C++: управляйте приложением, а не потоками!
Алексей Куканов — Параллелизм в C++: управляйте приложением, а не потоками!Yandex
 
Очередной скучный доклад про логгирование
Очередной скучный доклад про логгированиеОчередной скучный доклад про логгирование
Очередной скучный доклад про логгированиеPython Meetup
 
Павел Сушин «Асинхронное программирование на С++: callbacks, futures, fibers»
Павел Сушин «Асинхронное программирование на С++: callbacks, futures, fibers»Павел Сушин «Асинхронное программирование на С++: callbacks, futures, fibers»
Павел Сушин «Асинхронное программирование на С++: callbacks, futures, fibers»Platonov Sergey
 
Об особенностях использования значимых типов в .NET
Об особенностях использования значимых типов в .NETОб особенностях использования значимых типов в .NET
Об особенностях использования значимых типов в .NETAndrey Akinshin
 
Полухин Антон, Как делать не надо: C++ велосипедостроение для профессионалов
Полухин Антон, Как делать не надо: C++ велосипедостроение для профессионаловПолухин Антон, Как делать не надо: C++ велосипедостроение для профессионалов
Полухин Антон, Как делать не надо: C++ велосипедостроение для профессионаловSergey Platonov
 
Лекция 8: Многопоточное программирование: Intel Threading Building Blocks
Лекция 8: Многопоточное программирование: Intel Threading Building BlocksЛекция 8: Многопоточное программирование: Intel Threading Building Blocks
Лекция 8: Многопоточное программирование: Intel Threading Building BlocksMikhail Kurnosov
 
[Defcon Russia #29] Михаил Клементьев - Обнаружение руткитов в GNU/Linux
[Defcon Russia #29] Михаил Клементьев - Обнаружение руткитов в GNU/Linux[Defcon Russia #29] Михаил Клементьев - Обнаружение руткитов в GNU/Linux
[Defcon Russia #29] Михаил Клементьев - Обнаружение руткитов в GNU/LinuxDefconRussia
 
Юрий Ефимочев, Компилируемые в реальном времени DSL для С++
Юрий Ефимочев, Компилируемые в реальном времени DSL для С++ Юрий Ефимочев, Компилируемые в реальном времени DSL для С++
Юрий Ефимочев, Компилируемые в реальном времени DSL для С++ Sergey Platonov
 
C++ CoreHard Autumn 2018. Кодогенерация C++ кроссплатформенно. Продолжение - ...
C++ CoreHard Autumn 2018. Кодогенерация C++ кроссплатформенно. Продолжение - ...C++ CoreHard Autumn 2018. Кодогенерация C++ кроссплатформенно. Продолжение - ...
C++ CoreHard Autumn 2018. Кодогенерация C++ кроссплатформенно. Продолжение - ...corehard_by
 
PVS-Studio в 2021 - Примеры ошибок
PVS-Studio в 2021 - Примеры ошибокPVS-Studio в 2021 - Примеры ошибок
PVS-Studio в 2021 - Примеры ошибокAndrey Karpov
 
Продолжаем говорить про арифметику
Продолжаем говорить про арифметикуПродолжаем говорить про арифметику
Продолжаем говорить про арифметикуAndrey Akinshin
 
Когда в C# не хватает C++ . Часть 3.
Когда в C# не хватает C++. Часть 3. Когда в C# не хватает C++. Часть 3.
Когда в C# не хватает C++ . Часть 3. Mikhail Shcherbakov
 
static - defcon russia 20
static  - defcon russia 20static  - defcon russia 20
static - defcon russia 20DefconRussia
 
Когда в C# не хватает C++
Когда в C# не хватает C++Когда в C# не хватает C++
Когда в C# не хватает C++Mikhail Shcherbakov
 
C++ refelection and cats
C++ refelection and catsC++ refelection and cats
C++ refelection and catscorehard_by
 
Когда в C# не хватает C++ . Часть 2.
Когда в C# не хватает C++. Часть 2.Когда в C# не хватает C++. Часть 2.
Когда в C# не хватает C++ . Часть 2.Mikhail Shcherbakov
 
Некоторые паттерны реализации полиморфного поведения в C++ – Дмитрий Леванов,...
Некоторые паттерны реализации полиморфного поведения в C++ – Дмитрий Леванов,...Некоторые паттерны реализации полиморфного поведения в C++ – Дмитрий Леванов,...
Некоторые паттерны реализации полиморфного поведения в C++ – Дмитрий Леванов,...Yandex
 
Использование шаблонов и RTTI для конфигурации симулятора флеш-накопителя - Г...
Использование шаблонов и RTTI для конфигурации симулятора флеш-накопителя - Г...Использование шаблонов и RTTI для конфигурации симулятора флеш-накопителя - Г...
Использование шаблонов и RTTI для конфигурации симулятора флеш-накопителя - Г...Yandex
 

What's hot (20)

Алексей Куканов — Параллелизм в C++: управляйте приложением, а не потоками!
Алексей Куканов — Параллелизм в C++: управляйте приложением, а не потоками!Алексей Куканов — Параллелизм в C++: управляйте приложением, а не потоками!
Алексей Куканов — Параллелизм в C++: управляйте приложением, а не потоками!
 
Очередной скучный доклад про логгирование
Очередной скучный доклад про логгированиеОчередной скучный доклад про логгирование
Очередной скучный доклад про логгирование
 
Павел Сушин «Асинхронное программирование на С++: callbacks, futures, fibers»
Павел Сушин «Асинхронное программирование на С++: callbacks, futures, fibers»Павел Сушин «Асинхронное программирование на С++: callbacks, futures, fibers»
Павел Сушин «Асинхронное программирование на С++: callbacks, futures, fibers»
 
Об особенностях использования значимых типов в .NET
Об особенностях использования значимых типов в .NETОб особенностях использования значимых типов в .NET
Об особенностях использования значимых типов в .NET
 
Полухин Антон, Как делать не надо: C++ велосипедостроение для профессионалов
Полухин Антон, Как делать не надо: C++ велосипедостроение для профессионаловПолухин Антон, Как делать не надо: C++ велосипедостроение для профессионалов
Полухин Антон, Как делать не надо: C++ велосипедостроение для профессионалов
 
Лекция 8: Многопоточное программирование: Intel Threading Building Blocks
Лекция 8: Многопоточное программирование: Intel Threading Building BlocksЛекция 8: Многопоточное программирование: Intel Threading Building Blocks
Лекция 8: Многопоточное программирование: Intel Threading Building Blocks
 
[Defcon Russia #29] Михаил Клементьев - Обнаружение руткитов в GNU/Linux
[Defcon Russia #29] Михаил Клементьев - Обнаружение руткитов в GNU/Linux[Defcon Russia #29] Михаил Клементьев - Обнаружение руткитов в GNU/Linux
[Defcon Russia #29] Михаил Клементьев - Обнаружение руткитов в GNU/Linux
 
Юрий Ефимочев, Компилируемые в реальном времени DSL для С++
Юрий Ефимочев, Компилируемые в реальном времени DSL для С++ Юрий Ефимочев, Компилируемые в реальном времени DSL для С++
Юрий Ефимочев, Компилируемые в реальном времени DSL для С++
 
C++ CoreHard Autumn 2018. Кодогенерация C++ кроссплатформенно. Продолжение - ...
C++ CoreHard Autumn 2018. Кодогенерация C++ кроссплатформенно. Продолжение - ...C++ CoreHard Autumn 2018. Кодогенерация C++ кроссплатформенно. Продолжение - ...
C++ CoreHard Autumn 2018. Кодогенерация C++ кроссплатформенно. Продолжение - ...
 
PVS-Studio в 2021 - Примеры ошибок
PVS-Studio в 2021 - Примеры ошибокPVS-Studio в 2021 - Примеры ошибок
PVS-Studio в 2021 - Примеры ошибок
 
JRebel
JRebelJRebel
JRebel
 
Продолжаем говорить про арифметику
Продолжаем говорить про арифметикуПродолжаем говорить про арифметику
Продолжаем говорить про арифметику
 
Когда в C# не хватает C++ . Часть 3.
Когда в C# не хватает C++. Часть 3. Когда в C# не хватает C++. Часть 3.
Когда в C# не хватает C++ . Часть 3.
 
static - defcon russia 20
static  - defcon russia 20static  - defcon russia 20
static - defcon russia 20
 
Когда в C# не хватает C++
Когда в C# не хватает C++Когда в C# не хватает C++
Когда в C# не хватает C++
 
Bytecode
BytecodeBytecode
Bytecode
 
C++ refelection and cats
C++ refelection and catsC++ refelection and cats
C++ refelection and cats
 
Когда в C# не хватает C++ . Часть 2.
Когда в C# не хватает C++. Часть 2.Когда в C# не хватает C++. Часть 2.
Когда в C# не хватает C++ . Часть 2.
 
Некоторые паттерны реализации полиморфного поведения в C++ – Дмитрий Леванов,...
Некоторые паттерны реализации полиморфного поведения в C++ – Дмитрий Леванов,...Некоторые паттерны реализации полиморфного поведения в C++ – Дмитрий Леванов,...
Некоторые паттерны реализации полиморфного поведения в C++ – Дмитрий Леванов,...
 
Использование шаблонов и RTTI для конфигурации симулятора флеш-накопителя - Г...
Использование шаблонов и RTTI для конфигурации симулятора флеш-накопителя - Г...Использование шаблонов и RTTI для конфигурации симулятора флеш-накопителя - Г...
Использование шаблонов и RTTI для конфигурации симулятора флеш-накопителя - Г...
 

Similar to Методы вставки палок в колеса ботмастерам: ботнет Kelihos

Как мы храним 75 млн пользователей (Денис Бирюков)
Как мы храним 75 млн пользователей  (Денис Бирюков)Как мы храним 75 млн пользователей  (Денис Бирюков)
Как мы храним 75 млн пользователей (Денис Бирюков)Ontico
 
Apache Storm: от простого приложения до подробностей реализации
Apache Storm: от простого приложения до подробностей реализацииApache Storm: от простого приложения до подробностей реализации
Apache Storm: от простого приложения до подробностей реализацииCEE-SEC(R)
 
Data Wars: The Bloody Enterprise strikes back
Data Wars: The Bloody Enterprise strikes backData Wars: The Bloody Enterprise strikes back
Data Wars: The Bloody Enterprise strikes backVictor_Cr
 
РусКрипто CTF 2010 Full Disclosure (мастер класс)
РусКрипто CTF 2010 Full Disclosure (мастер класс)РусКрипто CTF 2010 Full Disclosure (мастер класс)
РусКрипто CTF 2010 Full Disclosure (мастер класс)Dmitry Evteev
 
200 open source проектов спустя: опыт статического анализа исходного кода
200 open source проектов спустя:опыт статического анализа исходного кода200 open source проектов спустя:опыт статического анализа исходного кода
200 open source проектов спустя: опыт статического анализа исходного кодаPositive Hack Days
 
Cpp0x Introduction
Cpp0x IntroductionCpp0x Introduction
Cpp0x IntroductionFedor Vompe
 
Семь тысяч Rps, один go
Семь тысяч Rps, один goСемь тысяч Rps, один go
Семь тысяч Rps, один goBadoo Development
 
Лекция 8. Intel Threading Building Blocks
Лекция 8. Intel Threading Building BlocksЛекция 8. Intel Threading Building Blocks
Лекция 8. Intel Threading Building BlocksMikhail Kurnosov
 
Ruscrypto CTF 2010 Full Disclosure
Ruscrypto CTF 2010 Full DisclosureRuscrypto CTF 2010 Full Disclosure
Ruscrypto CTF 2010 Full DisclosureDmitry Evteev
 
На что нужно обратить внимание при обзоре кода разрабатываемой библиотеки
На что нужно обратить внимание при обзоре кода разрабатываемой библиотекиНа что нужно обратить внимание при обзоре кода разрабатываемой библиотеки
На что нужно обратить внимание при обзоре кода разрабатываемой библиотекиAndrey Karpov
 
WinDbg в руках .NET разработчика
WinDbg в руках .NET разработчикаWinDbg в руках .NET разработчика
WinDbg в руках .NET разработчикаMikhail Shcherbakov
 
PLC Presenatation
PLC PresenatationPLC Presenatation
PLC PresenatationJTGroup
 
Разработка на блокчейн Голос | Ерлан Шиндаулетов
Разработка на блокчейн Голос | Ерлан ШиндаулетовРазработка на блокчейн Голос | Ерлан Шиндаулетов
Разработка на блокчейн Голос | Ерлан ШиндаулетовCyber Fund
 
WinDbg со товарищи
WinDbg со товарищиWinDbg со товарищи
WinDbg со товарищиCUSTIS
 
Паттерны 64-битных ошибок в играх
Паттерны 64-битных ошибок в играхПаттерны 64-битных ошибок в играх
Паттерны 64-битных ошибок в играхAndrey Karpov
 
Красивая 64-битная ошибка на языке Си
Красивая  64-битная ошибка на языке СиКрасивая  64-битная ошибка на языке Си
Красивая 64-битная ошибка на языке СиTatyanazaxarova
 
Использование C++ для низкоуровневой платформозависимой разработки — Кирилл ...
 Использование C++ для низкоуровневой платформозависимой разработки — Кирилл ... Использование C++ для низкоуровневой платформозависимой разработки — Кирилл ...
Использование C++ для низкоуровневой платформозависимой разработки — Кирилл ...Yandex
 
Исследовательские задачи в области блокчейна
Исследовательские задачи в области блокчейнаИсследовательские задачи в области блокчейна
Исследовательские задачи в области блокчейнаDmitry Meshkov
 
СИ++ УМЕР. ДА ЗДРАВСТВУЕТ СИ++
СИ++ УМЕР. ДА ЗДРАВСТВУЕТ СИ++СИ++ УМЕР. ДА ЗДРАВСТВУЕТ СИ++
СИ++ УМЕР. ДА ЗДРАВСТВУЕТ СИ++Pavel Tsukanov
 

Similar to Методы вставки палок в колеса ботмастерам: ботнет Kelihos (20)

Как мы храним 75 млн пользователей (Денис Бирюков)
Как мы храним 75 млн пользователей  (Денис Бирюков)Как мы храним 75 млн пользователей  (Денис Бирюков)
Как мы храним 75 млн пользователей (Денис Бирюков)
 
Apache Storm: от простого приложения до подробностей реализации
Apache Storm: от простого приложения до подробностей реализацииApache Storm: от простого приложения до подробностей реализации
Apache Storm: от простого приложения до подробностей реализации
 
Data Wars: The Bloody Enterprise strikes back
Data Wars: The Bloody Enterprise strikes backData Wars: The Bloody Enterprise strikes back
Data Wars: The Bloody Enterprise strikes back
 
РусКрипто CTF 2010 Full Disclosure (мастер класс)
РусКрипто CTF 2010 Full Disclosure (мастер класс)РусКрипто CTF 2010 Full Disclosure (мастер класс)
РусКрипто CTF 2010 Full Disclosure (мастер класс)
 
Python и Cython
Python и CythonPython и Cython
Python и Cython
 
200 open source проектов спустя: опыт статического анализа исходного кода
200 open source проектов спустя:опыт статического анализа исходного кода200 open source проектов спустя:опыт статического анализа исходного кода
200 open source проектов спустя: опыт статического анализа исходного кода
 
Cpp0x Introduction
Cpp0x IntroductionCpp0x Introduction
Cpp0x Introduction
 
Семь тысяч Rps, один go
Семь тысяч Rps, один goСемь тысяч Rps, один go
Семь тысяч Rps, один go
 
Лекция 8. Intel Threading Building Blocks
Лекция 8. Intel Threading Building BlocksЛекция 8. Intel Threading Building Blocks
Лекция 8. Intel Threading Building Blocks
 
Ruscrypto CTF 2010 Full Disclosure
Ruscrypto CTF 2010 Full DisclosureRuscrypto CTF 2010 Full Disclosure
Ruscrypto CTF 2010 Full Disclosure
 
На что нужно обратить внимание при обзоре кода разрабатываемой библиотеки
На что нужно обратить внимание при обзоре кода разрабатываемой библиотекиНа что нужно обратить внимание при обзоре кода разрабатываемой библиотеки
На что нужно обратить внимание при обзоре кода разрабатываемой библиотеки
 
WinDbg в руках .NET разработчика
WinDbg в руках .NET разработчикаWinDbg в руках .NET разработчика
WinDbg в руках .NET разработчика
 
PLC Presenatation
PLC PresenatationPLC Presenatation
PLC Presenatation
 
Разработка на блокчейн Голос | Ерлан Шиндаулетов
Разработка на блокчейн Голос | Ерлан ШиндаулетовРазработка на блокчейн Голос | Ерлан Шиндаулетов
Разработка на блокчейн Голос | Ерлан Шиндаулетов
 
WinDbg со товарищи
WinDbg со товарищиWinDbg со товарищи
WinDbg со товарищи
 
Паттерны 64-битных ошибок в играх
Паттерны 64-битных ошибок в играхПаттерны 64-битных ошибок в играх
Паттерны 64-битных ошибок в играх
 
Красивая 64-битная ошибка на языке Си
Красивая  64-битная ошибка на языке СиКрасивая  64-битная ошибка на языке Си
Красивая 64-битная ошибка на языке Си
 
Использование C++ для низкоуровневой платформозависимой разработки — Кирилл ...
 Использование C++ для низкоуровневой платформозависимой разработки — Кирилл ... Использование C++ для низкоуровневой платформозависимой разработки — Кирилл ...
Использование C++ для низкоуровневой платформозависимой разработки — Кирилл ...
 
Исследовательские задачи в области блокчейна
Исследовательские задачи в области блокчейнаИсследовательские задачи в области блокчейна
Исследовательские задачи в области блокчейна
 
СИ++ УМЕР. ДА ЗДРАВСТВУЕТ СИ++
СИ++ УМЕР. ДА ЗДРАВСТВУЕТ СИ++СИ++ УМЕР. ДА ЗДРАВСТВУЕТ СИ++
СИ++ УМЕР. ДА ЗДРАВСТВУЕТ СИ++
 

More from Positive Hack Days

Инструмент ChangelogBuilder для автоматической подготовки Release Notes
Инструмент ChangelogBuilder для автоматической подготовки Release NotesИнструмент ChangelogBuilder для автоматической подготовки Release Notes
Инструмент ChangelogBuilder для автоматической подготовки Release NotesPositive Hack Days
 
Как мы собираем проекты в выделенном окружении в Windows Docker
Как мы собираем проекты в выделенном окружении в Windows DockerКак мы собираем проекты в выделенном окружении в Windows Docker
Как мы собираем проекты в выделенном окружении в Windows DockerPositive Hack Days
 
Типовая сборка и деплой продуктов в Positive Technologies
Типовая сборка и деплой продуктов в Positive TechnologiesТиповая сборка и деплой продуктов в Positive Technologies
Типовая сборка и деплой продуктов в Positive TechnologiesPositive Hack Days
 
Аналитика в проектах: TFS + Qlik
Аналитика в проектах: TFS + QlikАналитика в проектах: TFS + Qlik
Аналитика в проектах: TFS + QlikPositive Hack Days
 
Использование анализатора кода SonarQube
Использование анализатора кода SonarQubeИспользование анализатора кода SonarQube
Использование анализатора кода SonarQubePositive Hack Days
 
Развитие сообщества Open DevOps Community
Развитие сообщества Open DevOps CommunityРазвитие сообщества Open DevOps Community
Развитие сообщества Open DevOps CommunityPositive Hack Days
 
Методика определения неиспользуемых ресурсов виртуальных машин и автоматизаци...
Методика определения неиспользуемых ресурсов виртуальных машин и автоматизаци...Методика определения неиспользуемых ресурсов виртуальных машин и автоматизаци...
Методика определения неиспользуемых ресурсов виртуальных машин и автоматизаци...Positive Hack Days
 
Автоматизация построения правил для Approof
Автоматизация построения правил для ApproofАвтоматизация построения правил для Approof
Автоматизация построения правил для ApproofPositive Hack Days
 
Мастер-класс «Трущобы Application Security»
Мастер-класс «Трущобы Application Security»Мастер-класс «Трущобы Application Security»
Мастер-класс «Трущобы Application Security»Positive Hack Days
 
Формальные методы защиты приложений
Формальные методы защиты приложенийФормальные методы защиты приложений
Формальные методы защиты приложенийPositive Hack Days
 
Эвристические методы защиты приложений
Эвристические методы защиты приложенийЭвристические методы защиты приложений
Эвристические методы защиты приложенийPositive Hack Days
 
Теоретические основы Application Security
Теоретические основы Application SecurityТеоретические основы Application Security
Теоретические основы Application SecurityPositive Hack Days
 
От экспериментального программирования к промышленному: путь длиной в 10 лет
От экспериментального программирования к промышленному: путь длиной в 10 летОт экспериментального программирования к промышленному: путь длиной в 10 лет
От экспериментального программирования к промышленному: путь длиной в 10 летPositive Hack Days
 
Уязвимое Android-приложение: N проверенных способов наступить на грабли
Уязвимое Android-приложение: N проверенных способов наступить на граблиУязвимое Android-приложение: N проверенных способов наступить на грабли
Уязвимое Android-приложение: N проверенных способов наступить на граблиPositive Hack Days
 
Требования по безопасности в архитектуре ПО
Требования по безопасности в архитектуре ПОТребования по безопасности в архитектуре ПО
Требования по безопасности в архитектуре ПОPositive Hack Days
 
Формальная верификация кода на языке Си
Формальная верификация кода на языке СиФормальная верификация кода на языке Си
Формальная верификация кода на языке СиPositive Hack Days
 
Механизмы предотвращения атак в ASP.NET Core
Механизмы предотвращения атак в ASP.NET CoreМеханизмы предотвращения атак в ASP.NET Core
Механизмы предотвращения атак в ASP.NET CorePositive Hack Days
 
SOC для КИИ: израильский опыт
SOC для КИИ: израильский опытSOC для КИИ: израильский опыт
SOC для КИИ: израильский опытPositive Hack Days
 
Honeywell Industrial Cyber Security Lab & Services Center
Honeywell Industrial Cyber Security Lab & Services CenterHoneywell Industrial Cyber Security Lab & Services Center
Honeywell Industrial Cyber Security Lab & Services CenterPositive Hack Days
 
Credential stuffing и брутфорс-атаки
Credential stuffing и брутфорс-атакиCredential stuffing и брутфорс-атаки
Credential stuffing и брутфорс-атакиPositive Hack Days
 

More from Positive Hack Days (20)

Инструмент ChangelogBuilder для автоматической подготовки Release Notes
Инструмент ChangelogBuilder для автоматической подготовки Release NotesИнструмент ChangelogBuilder для автоматической подготовки Release Notes
Инструмент ChangelogBuilder для автоматической подготовки Release Notes
 
Как мы собираем проекты в выделенном окружении в Windows Docker
Как мы собираем проекты в выделенном окружении в Windows DockerКак мы собираем проекты в выделенном окружении в Windows Docker
Как мы собираем проекты в выделенном окружении в Windows Docker
 
Типовая сборка и деплой продуктов в Positive Technologies
Типовая сборка и деплой продуктов в Positive TechnologiesТиповая сборка и деплой продуктов в Positive Technologies
Типовая сборка и деплой продуктов в Positive Technologies
 
Аналитика в проектах: TFS + Qlik
Аналитика в проектах: TFS + QlikАналитика в проектах: TFS + Qlik
Аналитика в проектах: TFS + Qlik
 
Использование анализатора кода SonarQube
Использование анализатора кода SonarQubeИспользование анализатора кода SonarQube
Использование анализатора кода SonarQube
 
Развитие сообщества Open DevOps Community
Развитие сообщества Open DevOps CommunityРазвитие сообщества Open DevOps Community
Развитие сообщества Open DevOps Community
 
Методика определения неиспользуемых ресурсов виртуальных машин и автоматизаци...
Методика определения неиспользуемых ресурсов виртуальных машин и автоматизаци...Методика определения неиспользуемых ресурсов виртуальных машин и автоматизаци...
Методика определения неиспользуемых ресурсов виртуальных машин и автоматизаци...
 
Автоматизация построения правил для Approof
Автоматизация построения правил для ApproofАвтоматизация построения правил для Approof
Автоматизация построения правил для Approof
 
Мастер-класс «Трущобы Application Security»
Мастер-класс «Трущобы Application Security»Мастер-класс «Трущобы Application Security»
Мастер-класс «Трущобы Application Security»
 
Формальные методы защиты приложений
Формальные методы защиты приложенийФормальные методы защиты приложений
Формальные методы защиты приложений
 
Эвристические методы защиты приложений
Эвристические методы защиты приложенийЭвристические методы защиты приложений
Эвристические методы защиты приложений
 
Теоретические основы Application Security
Теоретические основы Application SecurityТеоретические основы Application Security
Теоретические основы Application Security
 
От экспериментального программирования к промышленному: путь длиной в 10 лет
От экспериментального программирования к промышленному: путь длиной в 10 летОт экспериментального программирования к промышленному: путь длиной в 10 лет
От экспериментального программирования к промышленному: путь длиной в 10 лет
 
Уязвимое Android-приложение: N проверенных способов наступить на грабли
Уязвимое Android-приложение: N проверенных способов наступить на граблиУязвимое Android-приложение: N проверенных способов наступить на грабли
Уязвимое Android-приложение: N проверенных способов наступить на грабли
 
Требования по безопасности в архитектуре ПО
Требования по безопасности в архитектуре ПОТребования по безопасности в архитектуре ПО
Требования по безопасности в архитектуре ПО
 
Формальная верификация кода на языке Си
Формальная верификация кода на языке СиФормальная верификация кода на языке Си
Формальная верификация кода на языке Си
 
Механизмы предотвращения атак в ASP.NET Core
Механизмы предотвращения атак в ASP.NET CoreМеханизмы предотвращения атак в ASP.NET Core
Механизмы предотвращения атак в ASP.NET Core
 
SOC для КИИ: израильский опыт
SOC для КИИ: израильский опытSOC для КИИ: израильский опыт
SOC для КИИ: израильский опыт
 
Honeywell Industrial Cyber Security Lab & Services Center
Honeywell Industrial Cyber Security Lab & Services CenterHoneywell Industrial Cyber Security Lab & Services Center
Honeywell Industrial Cyber Security Lab & Services Center
 
Credential stuffing и брутфорс-атаки
Credential stuffing и брутфорс-атакиCredential stuffing и брутфорс-атаки
Credential stuffing и брутфорс-атаки
 

Методы вставки палок в колеса ботмастерам: ботнет Kelihos

  • 1. Методы вставки палок в колеса ботмастерам: ботнет Kelihos Мария Гарнаева, Malware analyst, GReAT, Kaspersky Lab 30.05.2012/ Positive Hack Days
  • 2. Global Research & Analysis Team
  • 3. О чем будет рассказано • Типы Sinkhole • История становления ботнета Kelihos/Hlux • Реализация, протокол, функционал известных версий Kelihos/Hlux • Kelihos.Sinkhole.A, Kelihos.Sinkhole.B • Статистика • ……………
  • 4. Centralized vs. P2P Botmaster Botmaster VS. C&C C&C Bot C&C Bot Bot Bot Bot Bot Bot Bot Bot Bot Bot Bot Bot Bot Bot Bot Bot Bot Bot
  • 6. Sinkhole: определение Sinkhole – элемент сети, на который перенаправляется вредоносный или подозрительный трафик, «как в дыру»
  • 11. Case study: Kelihos/Hlux и товарищи
  • 13. Waledac/Iksmas и Kelihos/Hlux • Похожий функционал • Одна и та же архитектура • Использование fast-flux сети на своих ботах • Использование нескольких этапов преобразования сообщения (сжатие, криптование) • Одна и та же тематика спам-писем для первоначального распространения
  • 14. Waledac/Iksmas и Kelihos/Hlux Start End Disruption Waledac Dec 2008 Feb 2010 Operation b49 (Microsoft, Shadowserver, VeriSign) Kelihos.A Dec 2010 Sept 2011 Operation b79 (Microsoft, KL, SurfNet, Kyrus Tech Inc.) Kelihos.B Sept 2011 March 2012 KL, CrowdStrike, HoneyNet Project, Dell SecureWorks Kelihos.C March 2012 - -
  • 15. Kelihos/Hlux: функционал • Рассылка спама • DDoS • Кража конфигурационный файлов FTP клиентов • Кража Bitcoin кошелька • Bitcoin miner • HTTP, SOCKS5 Proxy, HTTP Server • Сниффер для перехвата паролей от электронной почты, FTP и HTTP сессий • Кража адресов электронной почты
  • 17. Kelihos/Hlux: Fast-flux сеть Fall-back channel
  • 19. Kelihos/Hlux.A: протокол Packet header 8 байт 8 байт 4 байт 4 байт Signature f1(Timestamp) f2(DataSize, f3(f2, DataType, Timestamp, TimeStamp, Signature) Signature) 4 байт 4 байт 4 байт f4(Payload_offset, 0 Random(time) datasize)
  • 20. Kelihos/Hlux.A: протокол Message Type Description 1000 Bootstrap + peer exchange 1001 Push encrypted signed data 1002 Get job task + Encrypted signed tasks + send reports 1003 Ping 1004 Request peers 1005 Get job task + send reports
  • 21. Kelihos/Hlux.A: протокол Blowfish with KEY1 3DES with KEY2 Blowfish with KEY3 Zlib Unpack
  • 22. Kelihos/Hlux.A: протокол {'33': int8_t(1), Serialized Tree '48': '', 'll': '', 'si': int32_t(982259673), 'u': {'34': {'r': int8_t(224), 'y': int64_t(10)}, '65': {'b': int32_t(3600), 'h': int64_t(1294351260)}, 'b3': {'65': {'7': [{'d': ['Werken met betalingen', 'Werken voor een grote luchtvaartmaatschappij', 'Manager Klantenservice', 'Manager-beheerder', 'bewindvoerder', 'beheerder', 'Rekenin g Beheerder', Types: tree, array of trees, blob, array of blobs, String, primitive
  • 23. Kelihos/Hlux.A: протокол 1000_request { 1 => m_client_id Router list 3 => m_current_time m_clients_list { 4 => m_live_time b => m_ip 5 => m_bootstrap_list d => m_listening_port y => m_ip .... g => m_last_active_time s => m_listenning_port p => m_client_id v => m_real_target_ip x => m_live_time vf => m_external_info_packed } jj => m_version } 1000_response { Controller list 5 => m_success y => m_current_time job_server { r => m_live_time 2 => m_ip h => m_real_initiator_ip .... 6 => m_listening_port f => m_bootstrap_list } v => m_external_info_packed }
  • 24. Kelihos/Hlux.A: протокол 'e5f5620ea0d61400': {'dfa5849a875d3000': [{'27ba884f7079f440': int32_t(74853806), '840a175501af5c00': int64_t(0), '9e1851866c2e0000': int64_t(0), 'd76722b4e3469800': int32_t(80), 'f74fb6b49e16a900': {00000000-0000-0000-0000- 000000000000}}, '5': {'a': int32_t(1241740), 'j': [{'b': int32_t(59383998), 'd': int32_t(80), 'g': int64_t(0), 'p': {00000000-0000-0000-0000-000000000000}, 'x': int64_t(0)},
  • 26. Kelihos/Hlux.A: Sinkhole Start Sinkhole: 26.09.2011 Total IP count from 26.09.2011 to 28.09.2011: 49 007
  • 27. Kelihos/Hlux.A: Geolocation Top: Thailand, Vietnam, India, Korea
  • 29. Kelihos/Hlux.B • Начало Kelihos.A Sinkhole: 26 сентября 2011 • Публичное уведомление (блогпост): 28 сентября 2011 • Появление Kelihos.B: 28 сентября 2011
  • 30. Kelihos/Hlux.B: протокол Blowfish with KEY1 Blowfish with new KEY1 3DES with KEY2 Zlib Unpack Blowfish with KEY3 Blowfish with new KEY3 Zlib Unpack 3DES with new KEY2 Kelihos.A Kelihos.B RSA Key 1 New RSA Key 1 Controllers’ IP Update/Exec urls1 RSA Key 1 New RSA Key 1 Update/Exec urls1 RSA Key 2 New RSA Key 2
  • 31. Kelihos/Hlux.B: Sinkhole m_external_info_packed { d => m_external_data_blob h => m_external_data_signature g => m_external_info_id(uint64)  timestamp m_external_info_id=0xffffffffffffffff } m_external_info { 2 => []m_job_servers 7 => m_list_id (uint64)  timestamp m_list_id=0xffffffffffffffff }
  • 32. Kelihos/Hlux.B: Sinkhole Start Sinkhole: 21.03.2012 Total GUID count to 27.03.2012: 116 570 Total GUID count to 16.05.2012: 181 579 Total IP count to 27.03.2012: 352 685 Total IP count to 16.05.2012: 2 042 116
  • 33. Kelihos/Hlux.B: Sinkhole Top: Poland, USA, Turkey, Spain
  • 35. Kelihos/Hlux.С • Начало Kelihos.B Sinkhole: 21 марта 2012 • Публичное уведомление (блогпост): 28 марта 2012 • Появление Kelihos.C: 21 марта 2012 • Распространение замечено через Facebook • В течение месяца устанавливал на боты ZeroAccess
  • 36. Kelihos/Hlux.C: протокол Kelihos.B Kelihos.C RSA Key1 New RSA Key1 Controllers’ IP Update/Exec urls1 RSA Key1 New RSA Key1 Update/Exec urls1 RSA Key2 New RSA Key2 Packet decryption Blowfish Key3 New Blowfish Key3 Packet decryption Blowfish Key4 New Blowfish Key4 Packet decryption 3DES Key5 New 3DES Key5
  • 37. Kelihos/Hlux.: fast-flux домены Waledac Kelihos.A Kelihos.B Kelihos.C .eu .ru .com .com .in .com .com • В Waledac и Kelihos.A fast-flux домены были отключены Microsoft • В Kelihos.B стороннего отключения не было
  • 38. Кто виноват и что делать?
  • 39. Выводы • В случае борьбы с P2P ботнетами необязательно привлекать правоохранительные органы • Sinkhole A, Sinkhole B имел смысл (статистика заражения, вынуждение операторов на трату $$ за pay-per-install) • С Sinkhole.C уже могут быть проблемы • Без поимки преступников невозможно препятствовать созданию нового ботнета + всегда будет его окупаемость
  • 40. Thank You Мария Гарнаева, Malware analyst, GReAT, Kaspersky Lab 30.05.20112/ Positive Hack Days

Editor's Notes

  1. Кто мы, чем занимаемся и зачем мы здесь
  2. До момента облавы на Waledac эта сеть рассылала от 5 до 15% мирового спама.Распространялся в емейлах с праздничной тематикой (в аттачах и через ссылки с эксплоитами)
  3. Kyrus Tech Inc., which served as a declarant in the legal case that enabled this takedown.