В данной статье мы анализируем подобные хакерские техники, построенные, в основном, на излишней открытости сетевых сервисов, а также представим рекомендации по защите от таких атак.
Шаг 1. Определение целей
В офлайновом мире бывает нелегко выяснить, какие сервисы и сети принадлежат конкретной организации. Однако в Интернете существует множество специальных инструментов, позволяющих без особого труда определить сети, подконтрольные интересующим нас компаниям, и при этом никак не засветиться перед ними. Для пассивной разведки в рамках сбора статистики по сетевым периметрам финансовых организаций мы использовали:
В данном исследовании не рассматривались такие методы, как активное сканирование, определение версий межсетевого экрана и наличие IPS, определение используемых антивирусов и других средств защиты, а также социальная инженерия. Есть еще несколько техник, которые мы не использовали по этическим и другим соображениям, но их нередко используют хакеры:
Итак, для начала определяем список организаций, которые мы собрались «поставить на контроль». Для этого можно воспользоваться поисковыми системами, профильными сайтами и другими агрегаторами профильной информации. Например, если мы хотим собрать статистику по финансовым организациям, идём на banki.ru и забираем готовый топ банков и страховых компаний. Сбор списка практически не требует времени. Мы выделили следующие категории организаций:
Теперь определяем сети, которыми владеют организации. Находим в поисковой системе сайты организаций, для определения их адресов используем веб-сервис whois. Этот ресурс позволяет узнать по доменному имени сайта IP-адрес, а также другие важные данные для поиска сетей. В этой работе к важным данным относятся:
Всю эту информацию можно получить и через unix-команду whois. Что использовать – дело вкуса. Чтобы не компрометировать конкретные банки, мы покажем этот поиск на примере нашей компании:
Используя собранную информацию об организациях, мы осуществили поиск их адресных диапазонов в базе данных регистратора Ripe. Сервис Ripe предоставляет возможность свободного поиска по всем зарегистрированным в нем сетям. Также стоит обращать внимание на поле Country – мы выбирали исключительно российский сетевой сегмент.
Как уже было сказано, определение нужных сетей менее всего автоматизируется, поскольку требует ручного отбора релевантных результатов. Впрочем, сбор информации о сетях финансового сектора занял у нас всего 2 дня. После завершения этого этапа мы получили список вида «организации-сети».
Шаг 2. Выявление доступных сервисов
Для этого можно использовать один из двух наиболее известных инструментов, призванных сделать интернет безопаснее: Shodan или Censys. Они имеют схожие возможности, поддерживают работу с API, а также могут дополнять друг друга. Для полноценного поиска оба сервиса требуют регистрации. Censys более требователен: чтобы снять в нем ограничения на выдачу результатов поиска, придется написать разработчикам, убедить их в этичности исследования и ответственном использовании полученных данных. Аргументом в этом будет сертификат CEH или подробная информация о исследовании.
Мы использовали сервис Shodan, поскольку он более удобен для получения данных. Также Shodan сканирует аналогично сканированию Nmap с флагом «-sV», что является плюсом в нашем исследовании – так привычнее обрабатывать результаты. Наверное, наиболее интересен процесс автоматизации, однако подробно расписывать его нет смысла, потому что всё, включая примеры кода на Python, уже описано его создателем Джоном Матерли (John Matherly), также известному как @achillean, в весьма удобной форме. Более того, есть репозиторий на GitHub, где можно познакомиться с официальной библиотекой Shodan для Python.
Подробная информация о запросах к Shodan может быть получена по ссылке. Пример запроса через веб-интерфейс выглядит вот так:
На примере видно, что на адресе 8.8.8.8 доступен 53 UDP порт, сервис DNS, находящийся в США и принадлежащий Google, а также видна версия операционной системы, используемая на этом IP-адресе. Запросами к Shodan можно выявить гораздо более специфичные сервисы, к которым забывают ограничить доступ из интернета, хотя это следовало бы сделать. Поскольку можно получить различные баннеры и версии этих сервисов, то можно и сопоставить полученные данные с различными базами уязвимостей.
Однако получается, что нам нужно прогнать через Shodan каждый обнаруженный IP-адрес, а их у нас получилось, на секундочку, около 100000 – многовато для ручной проверки… Что там про API?
Мы написали собственный сборщик информации. Запустили и спустя неделю работы программы получили картину распределения доступных сервисов в финансовом секторе, абсолютно никак не взаимодействуя с ними! Отслеживать таким способом изменения в инфраструктурах вполне реально. Вот что мы нашли:
Сервисы
Потенциально безопасные сервисы
Сервисы, которые могут нести риски
Потенциально опасные сервисы
Database
0
0
28
Directory Service
0
21
0
DNS Service
183
0
0
File System
0
0
135
Mail Service
548
0
0
Multimedia Service
0
34
0
Network Service
1
133
0
Other
18
184
17
Printing Service
0
1
0
Remote Control
223
8
86
RPC Service
0
0
10
SNMP Service
0
1
33
Time Sync
0
13
88
Virtualization System
0
6
0
VoIP
23
0
0
VPN
1641
6
0
Website
1932
402
2
XMPP Service
0
32
0
Из самого «ужасного» на периметрах финансовых организаций найдены:
Эти сервисы распределились по организациям следующим образом:
Компании
Доступно адресов
Потенциально безопасные сервисы
Сервисы, которые могут нести риски
Потенциально опасные сервисы
Банки (Toп 25)
1305
1486
348
185
Банки (с 26 по 50)
704
857
268
53
Банки (с 51 по 75)
463
570
75
70
Банки (с 76 по 100)
309
458
36
18
Микрокредитные Организации
30
51
1
1
Платежные Системы
543
644
49
41
Страховые (Toп 50)
272
339
43
24
Страховые (с 51 по 100)
138
164
21
7
Полученные результаты нас не удивили: чем больше размер организации, тем больше сервисов размещено на сетевом периметре, а с ростом числа сервисов увеличивается вероятность ошибки конфигурации.
Шаг 3. Определение уязвимых сервисов
После нахождения доступных сервисов можно определить степень их защищённости. Уязвимы ли они и, если да, то какие уязвимости в них есть? Для этого необходимо проанализировать признаковое пространство, которое отдает Shodan по каждому отдельному хосту. Эта информация имеет следующий вид:
Далеко не для всех открытых портов Shodan может отдать полный набор информации, но если это удается, то данные (в примере выбраны результаты, уже обработанные в нашей системе) выглядят следующим образом:
Из всего признакового пространства были выделены поля, по которым может быть найдена информация об уязвимости данного хоста. Для этого отлично может подойти связка Product + Product_version, либо CPE. В нашем случае, мы решили воспользоваться связкой Product + Product_version, а поиск осуществлялся по внутренней базе уязвимостей Positive Technologies.
В сети существует немалое количество общедоступных источников для поиска уязвимостей, вот некоторые из них:
Все вышеприведенные ресурсы позволяют осуществлять быстрый поиск уязвимостей по различным признакам, в том числе и по CPE. Также эти ресурсы позволяют в той или иной мере автоматизировать процесс поиска. В результате можно обнаружить очень много полезной информации: подробные описания уязвимостей, информацию о наличии PоC’ов или зафиксированных фактах эксплуатации уязвимости, а порой и ссылки на эксплойты:
Набор сервисов и их баннеров у нас уже есть, осталось только прогнать эту информацию через базу уязвимостей. Конечно, вручную этим заниматься совсем не хотелось, да и времени это заняло бы много. Поэтому, написав простенький скрипт, мы довольно быстро обработали все полученные сервисы, сопоставили их с нашей базой уязвимостей (тоже самое легко делается и через вышеописанные сервисы) и получили следующую статистику распределения уязвимостей по сервисам:
Компании
Всего сервисов
Из них уязвимых
Банки (Toп 25)
2019
97
Банки (с 26 по 50)
1178
53
Банки (с 51 по 75)
715
39
Банки (с 76 по 100)
512
22
Микрокредитные Организации
53
3
Платежные Системы
734
60
Страховые (Toп 50)
406
22
Страховые (с 51 по 100)
192
24
Результаты получились следующие: из общего количества сервисов, найденных Shodan, уязвимости были обнаружены в 5% сервисов. Эта цифра мала: для сравнения, по статистике наших собственных автоматизированных сканирований периметров, обычно уязвимости встречаются в 20-50% сервисов. Но теоретически процент обнаружения уязвимостей можно увеличить. Рассмотрим, как это можно сделать.
К примеру, для ROSSSH (на скриншоте 4-ая строка снизу) можно предположить доступность уязвимости ROSSSH Remote Preauth Heap Corruption. Не смотря на то, что уязвимость совсем не новая, вероятность встретить ее в этом сервисе значительно выше нуля. Напомним про наши предыдущие исследования, в которых мы говорили, что порядка 30% систем, доступных из интернета, содержат уязвимости старше 5 лет. Похожие цифры в своих исследованиях приводит Cisco, по данным которой средний срок присутствия известных уязвимостей составляет 5,64 года. Эти результаты сопоставимы с нашими, а небольшая разница в цифрах обусловлена разными выборками и методами исследований.
По примеру, приведенному выше, можно предположить наличие в RDP-сервисе уязвимостей CVE-2015-0079, CVE-2015-2373, CVE-2015-2472, CVE-2016-0019. Это неполный список возможных уязвимостей, во всех открытых источниках эти уязвимости привязываются по CPE к версии ОС, игнорируя привязку к RDP. Наиболее ярким примером являются громкие эксплуатабельные уязвимости, к которым мы вернемся чуть позже. По многим другим сервисам тоже можно построить подобные предположения о возможном наличии уязвимостей.
Шаг 4. Поиск эксплойтов
Следующим шагом является поиск эксплойтов на определенные уязвимости. В вышеописанных поисковиках уязвимостей удается найти эксплойты в малом количестве, но никто не мешает использовать для этого специальные утилиты, ведь ящик Пандоры уже открыт. Например, существует свободно распространяемая утилита PTEE. О ней очень подробно написано в другой статье. А еще существует Metasploit, который хоть ничего и не собирает, но…
Поскольку в нашей компании есть собственная база знаний, где уязвимости уже сопоставлены с эксплойтами, никаких дополнительных действий в данном шаге от нас не потребовалось. По результатам обработки мы получили:
Одна из старых догм информационной безопасности гласит: уровень защищенности системы равен уровню защищенности самого слабого звена. Действительно, при планировании атаки, как показывает практика, потенциальный злоумышленник выберет наиболее незащищенную систему. Если внимательно рассмотреть результаты, видно, что вероятность найти такие системы высока для всех категорий организаций:
Компании
Низкий уровень без эксплойта
Низкий уровень с эксплойтом
Средний уровень без эксплойта
Средний уровень с эксплойтом
Высокий уровень без эксплойта
Высокий уровень с эксплойтом
Макс. CVSS
Банки (Toп 25)
91
7
205
61
142
40
10
Банки (с 26 по 50)
61
0
105
36
89
12
10
Банки (с 51 по 75)
34
1
64
15
47
9
10
Банки (с 76 по 100)
18
0
31
13
31
6
10
Микрокредитные Организации
4
0
4
1
4
0
7,5
Платежные Системы
54
0
108
22
89
20
10
Страховые (Toп 50)
17
0
26
11
27
1
10
Страховые (с 51 по 100)
22
0
12
19
42
0
9,3
Имеется простое объяснение полученным результатам: с ростом инфраструктуры следить за ней всё сложнее. Больше хостов – больше старого софта и больше уязвимостей, в том числе эксплуатабельных. В крупных компаниях периметр крайне динамичный – даже в пределах одной недели на границе сети может появиться до нескольких десятков новых хостов, столько же может уйти, мы показывали это в своих предыдущих исследованиях. Если эти изменения - лишь результат ошибки, то вероятность того, что на одном из таких узлов будет «открытая дверь в сеть», очень велика. Именно по этой причине периодический контроль состояния периметра в режиме, максимально приближенному к реальному времени, очень важен для обеспечения безопасности.
Сколько времени займет поиск уязвимых сервисов, если информация об уязвимости только что появилась на просторах интернета? В нашей системе поиск по заданным уязвимостям занимает менее секунды. Больше времени уходит на анализ полученных результатов, но это тоже довольно быстро: в рамках этого исследования, проведение анализа по одной уязвимости занимало не более 15 минут.
Шаг 5. Собственно атака
Итак, злоумышленник собирает данные о целевой инфраструктуре и выявляет уязвимые сервисы; ищет информацию об уязвимостях и выбирает из них эксплуатабельные; затем, сопоставляя знания о целевой инфраструктуре с данными об уязвимостях, строит предположения о наличии этих уязвимостей в системе. На последнем шаге злоумышленник проводит атаку на уязвимые системы с помощью доступных инструментов.
В нашем исследовании, конечно же, не проводились реальные атаки. Но оценить возможности хакеров на последнем этапе мы можем. Рассмотрим для примера последнюю часть известного эксплойт-пака, слитого группой The Shadow Brokers. В этом паке присутствовало множество интересных эксплойтов, к примеру, набор для взлома SMB, ставший общеизвестным после вирусной эпидемии WannaCry. В нашей выборке этот эксплойт подошел для 36 систем (данные об исследуемом периметре были собраны до публикации архива с эксплойтами). На тот момент содержащиеся в паке эксплойты были применимы ко всем версиям Windows. Следовательно, их с большой вероятностью можно было взломать. Именно это и показал WannaCry. И это только вершина айсберга, в паке были и другие интересные эксплойты:
В итоге, из всех 3764 доступных адресов были определены 111 с потенциально уязвимыми сервисами. И с большой вероятностью их можно было взломать с помощью этого эксплойт-пака.
В начале проведения исследования уровень опасности нам казался ниже полученного, но потом пришел WannaCry и не согласился с нами. Причиной высокого уровня опасности стал недостаточный контроль внешнего периметра в организациях. При этом даже после публикации предупреждений и рекомендаций ИБ-экспертов не произошло значительного повышения уровня защищенности. Это наглядно показала эпидемия следующего криптолокера Petya/NotPetya, который использовал ту же самую уязвимость (хотя его вектор распространения и не относится к сетевому периметру). Для заражения инфраструктуры достаточно одной уязвимой системы, а для преодоления периметра злоумышленнику достаточно одного уязвимого сервиса.
Выводы и рекомендации по защите
Подведем итоги. Если использовать обычный сетевой сканер, который ищет уязвимости, у организации организации могут возникнуть подозрения, что их кто-то «смотрит». Факты таких сканирований легко выявить с помощью IDS-систем и блокировать. Но кто будет отслеживать работу массового поисковика? В этой статье мы продемонстрировали, что:
Безопасность периметра – один из базовых векторов защиты. Но защищать, не зная, что именно защищаешь – занятие сложное и, откровенно говоря, бессмысленное. Если вы не знаете границы защищаемого вами периметра, вы можете воспользоваться методами анализа сетей, описанными в этой статье. А если внешних подсетей много (к примеру, распределенная по всей стране инфраструктура с множественными выходами в интернет) и периметр сложно инвентаризировать, то можно обратиться за помощью к специалистам. Например, к экспертам Positive Technologies (abc@ptsecurity.com). От вас потребуется лишь список выделенных сетей от оператора и согласие на сканирование.
Получив представление о том, из чего состоит периметр, займемся его защитой. Достижение максимально безопасных конфигураций информационных систем - трудная задача, так как именно люди отвечают за программное обеспечение, его настройку и сопровождение, а где-то приходится делать допущения в угоду бизнесу. Информационная безопасность всегда балансирует между функциональностью системы и ее защищенностью. Ошибки конфигурации присутствуют и в сетевых периметрах: как показывает наше исследование, в интернет выставляется много лишних, в том числе уязвимых сервисов, что облегчает злоумышленнику возможность проникновения в сеть организации. Рекомендуемый план по защите периметра может выглядеть следующим образом:
Конечно же, следует помнить, что для противодействия угрозам необходимо использовать комплексный подход к обеспечению ИБ, а начинать стоит со своих «сетевых границ».
Лучшие новости сегодня
Вы искали сегодня
Другие новости сегодня
Право на такую дифференциацию предусмотрено НК, но не установлено деталей. Так что Минфин не против различных ставок по месяцам. Минфин напомнил, что законом 176-ФЗ был введен туристический налог. Налоговые...
Быстрее всего в 2024 году зарплаты росли у водителей, сварщиков и промоутеров. За уходящий год предлагаемые в РФ зарплаты увеличились на четверть — с 58 тыс. в 2023 году до 71,8 тыс. рублей в текущем году,...
Центральный Банк готов рассмотреть вопрос введения тестирования на предмет финансовой грамотности для тех, кто хочет взять ипотеку. Такая информация содержится в ответе регулятора на письмо замруководителя думской...
Московская биржа запустит фьючерс на ключевую ставку Центробанка, cообщил управляющий директор по продажам и развитию бизнеса площадки Владимир Крекотень, пишет интернет-издание РБК. По его словам, торговая...
ЦБ повысит ключевую ставку до 23% на заседании 20 декабря — в этом уверена половина из 28 опрошенных «Известиями» аналитиков. При этом еще семь экспертов в равной степени ожидают ее рост как на 2 п.п.,...
В условиях конкуренции за кадры бизнес вынужден в дополнение к росту зарплат компенсировать ипотеку, выдавать беспроцентные займы, оплачивать отдых детей сотрудников, перечислил ЦБ. Но есть и те, кто перешел...
«Наши задачи» - предоставлять самую оперативную, достоверную и подробную информацию по банковскому рынку; - помогать клиентам в выборе самых выгодных банковских продуктов; - способствовать банкам в поиске качественных клиентов; - налаживать общение между банками и их клиентами.
ЦБ установил официальные курсы валют на 18 декабря. Рубль прекратил рост к
Подробнее Система гарантирования вводится в сегменте страхования жизни. Механизм защиты
Подробнее Российская валюта укрепилась к доллару и евро. Официальный курс доллара,
ПодробнееПраво на такую дифференциацию предусмотрено НК, но не установлено деталей. Так
ПодробнееБыстрее всего в 2024 году зарплаты росли у водителей, сварщиков и промоутеров.
ПодробнееЦентральный Банк готов рассмотреть вопрос введения тестирования на предмет
ПодробнееЭкономика сегодня
ЦБ установил официальные курсы валют на 18 декабря. Рубль прекратил рост к американской валюте, однако продолжил укрепляться к евро. Курс доллара вырос на 0,0854 рубля, составив 102,9979 рубля (102,9125...
Подробнее Система гарантирования вводится в сегменте страхования жизни. Механизм защиты будет аналогичен действующим системам страхования вкладов в банках и накоплений в негосударственных пенсионных фондах и начнет действовать...
Подробнее Российская валюта укрепилась к доллару и евро. Официальный курс доллара, установленный Центробанком на 18 декабря 2024 года, составляет 102,9979 рубля (прежнее значение ...
Подробнее Аналитики повысили прогноз по средней ключевой ставке Банка России на 2024 год с 17,3% до 17,5%, показал макроэкономический опрос ЦБ...
Подробнее На торгах 11 декабря доллар, евро и юань стремительно взлетели к рублю. Китайская валюта по итогам сессии прибавила около 4,5%, превысив отметку 14,7 рубля. На внебиржевых торгах доллар укрепился более чем на 4 рубля, поднявшись почти до 107 рублей. Евро вырос на сопоставимую величину, пробив
Подробнее Центробанк установил официальные курсы доллара и евро на 12 декабря. Рубль ускорил падение к американской и европейской валютам.
Подробнее
Комментарии (0)