За прошедшие год-полтора был совершен ряд массовых целенаправленных атак на банки. Важно отметить, что речь идет не о классических атаках на клиентов или какие-то внешние системы (интернет-банкинг, например), – под прицелом злоумышленников оказались именно внутренние банковские ресурсы.
Это, в свою очередь, говорит о том, что атакующие тем или иным способом проникали в корпоративную сеть банка, после чего обнаруживали интересную для них цель, захватывали над ней контроль и пытались вывести деньги. Внутри банковской сети многое может привлечь внимание злоумышленников: и ДБО, и центральная АБС банка, и различные системы для «внешних платежей», типа АРМ КБР или SWIFT. О том, сколько денег удалось вывести преступникам за указанный период, банки, конечно, не сообщают. А ведь мы давно предупреждали банки о реальности проведения таких атак.
Попасть за периметр
Основных причин того, что злоумышленники проникают внутрь банков, несколько. Одна из главных, базовых заключается в доверительном отношении ко всем объектам, пользователям внутри корпоративной сети. Логика здесь проста (особенно для средних и маленьких банков) – «мы доверяем своим сотрудникам», «наших сотрудников проверила наша служба ИБ». А коли есть некий уровень доверия к сотрудникам, значит, и организация безопасности внутри корпоративной сети страдает.
Между тем попасть внутрь корпоративной сети банка не так уж сложно. Атака с помощью социальной инженерии легко открывает доступ к нужным системам. Простой прием, который до сих пор работает: сотруднику банка отправляется exe-файл в архиве с привлекательным текстом письма. Получатель распаковывает архив, запускает файл с вирусом – доступ открыт.
Разумеется, многие компании в последнее время часто работают с сотрудниками на предмет повышения грамотности в сфере ИБ. Однако по опыту можем сказать, что все работы, связанные с социальной инженерией, когда требуется «попасть за периметр», для наших специалистов оказались успешными. В чем же проблема?
Во-первых, есть множество дополнительных трюков и хитростей, которые помогают злоумышленникам запутать/обмануть пользователя. Например, они могут превратить исполняемый файл в документ Word по виду.
Во-вторых, атакующие могут воспользоваться служебным положением работников банка. К примеру, некоторые сотрудники обязаны просматривать PDF-файлы, присылаемые клиентами. Но ведь и такой файл может представлять опасность. Примерно два года назад путем использования встроенного функционала PDF можно было заставить Acrobat Reader выполнять команды в ОС. Конечно, при открытии такого файла всплывало окошко с предупреждением о запуске команды, но на них часто не обращают внимания. Эта атака успешно использовалась против многих компаний.
Кроме того, при некорректной настройке почтового сервера банка злоумышленник может отправлять внутренним сотрудникам письма от других внутренних сотрудников или от каких-то привилегированных клиентов банка. И такая настройка почты встречается систематически. Получая письмо якобы от своего коллеги или, что еще хуже, от руководителя высокого ранга, сотрудник теряет бдительность. Необходимо понимать, что полностью предостеречь пользователей от всех проблем невозможно.
Для большей убедительности можно вспомнить и про уязвимости в пользовательском ПО. Acrobat Reader, Java, Adobe Flash – приложения, которые есть на большинстве компьютеров (включая офисные). И в них содержится множество уязвимостей, для которых существуют общедоступные эксплойты. Таким образом, злоумышленник может отправить сотруднику PDF-файл, который тот откроет и, даже если он действует со всей возможной осторожностью, эксплойт сработает и передаст злоумышленнику удаленный контроль над хостом сотрудника.
Большой канал для проникновения злоумышленников, о котором стоит упомянуть, – Wi-Fi. При том что все понимают, сколько опасностей таит в себе наличие беспроводных сетей, они есть почти в любом банке. Во-первых, они необходимы топ-менеджерам банка, которые ценят мобильность и удобство. Во-вторых, существуют несанкционированные точки доступа, устанавливаемые сотрудниками. Доступ в Интернет изнутри банка часто лимитирован, и чтобы обойти ограничение, сотрудники приносят с собой 3g-модемы. Многие из этих устройств автоматически «поднимают» точку Wi-Fi-доступа. В-третьих, продвинутое офисное оборудование (принтеры или МФУ, например) имеет встроенные Wi-Fi-адаптеры и при включении автоматически «поднимает» точку доступа. Таким образом, злоумышленнику нужно лишь найти такую точку, подключиться к ней, взломать принтер и через него (если он подключен к сети) уже атаковать сеть. Злоумышленники используют тот метод, который быстрее приведет их к результату.
Справедливости ради отметим, что сами по себе беспроводные Wi-Fi-сети могут быть очень хорошо защищены. Главная проблема в том, чтобы корректно и безопасно их настроить, что получается далеко не у всех. Вспоминается здесь типовая ситуация про «гостевой вай-фай», который планируется обычно как просто предоставление выхода в Интернет для клиентов банка, а вследствие некорректной конфигурации дает доступ к части или ко всем внутренним ресурсам корпоративной сети банка.
Думать, как злоумышленник
Так к чему же мы пришли? Во-первых, к необходимости защиты периметра корпоративной сети. И внешних ресурсов, и Wi-Fi, и физической безопасности. Во-вторых, к необходимости просвещения сотрудников (хотя бы десять простых правил пользования Интернетом). В-третьих, к обязательному применению антивирусов. Остановимся подробнее на третьем пункте.
Очень многие сотрудники ИБ банка рассчитывают на антивирус для защиты от атак на пользователей (а иногда и от внешних атак). И он действительно может помочь. Но лишь отчасти.
Все возможные атаки на компанию можно разделить на две категории: таргетированные и случайные. Случайные – это массовые рассылки спама, вирусов, вирусы на сайтах, эпидемии и т. д., когда злоумышленники атакуют всех подряд. Простейший пример – массовые вирусы с троянами-локерами. Именно от таких проблем и должны спасать антивирусы.
Другое дело, когда речь идет об относительно целенаправленных атаках. Если цель злоумышленника – проникнуть внутрь сети, он предполагает, что встретится с антивирусом, а потому применяет различные техники для сокрытия своей активности. Основная методика обнаружения вирусов – по сигнатурам, а потому хоть сколько-то измененный вирус уже будет не детектируем. Более того, существует масса возможностей, чтобы узнать, какой антивирус используется внутри банка. Простейший метод – посмотреть заголовки писем из организации. Многие антивирусы добавляют свою строчку: «проверено антивирусом Х». Если используемый продукт известен, успешную атаку провести значительно проще, протестировав ее в лабораторных условиях.
Таким образом, мы приходим к выводу, что проникнуть в корпоративную сеть достаточно просто – антивирус от этого не защитит, и к более общему – основывать безопасность корпоративной сети на полном доверии к пользователям нерационально. Как же быть?
Давайте представим себе атаку глазами злоумышленника. Его задача – при меньших трудозатратах получить больше прибыли. Естественно, атаки желательно автоматизировать. На первом этапе сделать это возможно. Осуществлять поиск информации, e-mail-адресов сотрудников, данных о самом банке можно с применением технических средств. Атаки для проникновения внутрь систем также могут быть автоматизированы.
Многообразие и многослойность
А вот следующий этап – поиск привлекательных внутренних банковских ресурсов и захват контроля над ними – задача в основном творческая. Существует, конечно, некая типовая методика, инструменты тоже есть. Но они аналогичны тем, которыми пользуются пентестеры. Таким образом, общая последовательность внутренних действий злоумышленников становится понятной.
Хотелось бы отметить еще один момент. То, что злоумышленник может захватить контроль над удаленным хостом в корпоративной сети, дает ему доступ внутрь этой сети, но это не совсем то же самое, когда можно физически подключиться к сети. Это и необходимость поднятия прав в ОС, и ограничения из-за самой ОС (большинство хакерского инструментария работает только под Linux), и, как следствие, потребность проброса данных. Да, все эти задачи решаемы. Но если мы двинемся дальше, то увидим, что в сетях, построенных на «доверии к внутренним пользователям», перечисленные аспекты представляют собой единственную проблему для злоумышленника при внутренней атаке, ведь дальше путь свободен. А должно быть наоборот. Чтобы не пустить чужака в сеть, внутренняя защита должна быть многослойной и многообразной. Поясним на примерах.
В «доверенных» сетях внутренним ресурсам дают понятные имена – dbo1, bankklient, abs, bss. А поскольку злоумышленник изнутри сети может быстро и незаметно получить список всех имен хостов сети, то он сразу понимает, что ему надо атаковать. Если же разработать внутренний подход к названию хостов, например скрыв смысл в аббревиатуре sbs1 или абстрактном названии типа baron, это значительно затруднит поиск цели. Сотрудники быстро привыкнут к нововведению и не будут испытывать дискомфорта (проверено на опыте во многих компаниях).
Далее, часто сети делают «плоскими», когда все пользователи сети и все серверы сети находятся в одном большом сетевом сегменте. А это приводит к полной потере контроля над тем, что происходит в сети. Выявить атакующего очень трудно, так как он может «спрятаться» за любым из хостов в сети. Да и возможностей для различных атак у него становится много. Совет простой – максимально сегментируйте вашу сеть. Разделите пользователей, администраторов, серверы по степени их критичности. Выделите их в различные Vlan’ы и сегменты. Сейчас все оборудование, включая самое дешевое, позволяет провести подобные манипуляции. Безусловно, это создаст дополнительную нагрузку на сетевиков (в основном разовую), но результат – значительное сокращение возможных атак от злоумышленников – стоит этих усилий.
Кроме того, на базе сегментации можно будет достаточно просто внедрить и фильтрацию трафика, ограничить доступ к самым критичным серверам и интерфейсам их управления.
Таким образом мы, во-первых, значительно затрудним злоумышленникам поиск мест для развития атаки, во-вторых, сможем ограничить сам перечень этих мест. Это приведет к тому, что чужак должен будет вести себя более заметно при сканировании сети. Так мы получим шанс его обнаружить, локализовать. Ведь большинство файерволов (аппаратных или программных) могут быть настроены на детектирование сканирования портов. По опыту, захватить контроль над хорошо сегментированной и зафильтрованной сетью в разы сложнее, чем имея дело с «плоской» или околоплоской сетью.
Во-вторых, при создании защищенной сети важен мониторинг (логгирование) событий. Он должен быть централизованным. Необязательно устанавливать какое-то специальное ПО, ведь можно просто настроить оповещение на определенную почту о критичных событиях – это тоже будет централизацией. Кроме детектирования сканирования данная опция поможет бороться с еще одним типовым способом атак – перебором учетных записей на сервисе. Здесь мониторинг имеет решающее значение, поскольку обратит внимание на систематические попытки войти в какую-то систему.
Еще один «кит», на котором должна строиться защита, – инвентаризация ПО. К сожалению, этот процесс реализуется в компаниях очень редко. Но как можно организовывать защиту чего-то, когда нет полной информации о защищаемом объекте?
Инвентаризация может проходить по одному из двух сценариев. Первый: для каждой внедряемой системы должно описываться ПО, на котором она основывается. По идее заниматься этим должен отдел ИT. На основе такого материала служба ИБ сможет, во-первых, контролировать появление информации в Интернете об уязвимостях в имеющемся ПО и, как следствие, оперативно прикрывать «дырки», во-вторых, разрабатывать дополнительные политики безопасности для конкретного ПО. Например, приходит информация о том, что внедрена новая система на основе какой-то нетипичной СУБД (например, mongodb). Далее, служба ИБ смотрит, есть ли какие-то рекомендации по безопасности для нее, проверяет, внедрены ли они в новой системе. Если нет, просит ИТ-отдел внести изменения и записывает их в новую политику по установке такого вида СУБД. Таким образом, в дальнейшем новые системы будут устанавливаться изначально безопасно.
Второй сценарий – «инвентаризация» с точки зрения злоумышленника: необходимо посмотреть, что реально доступно, откуда, куда и как можно атаковать. И здесь как раз помогут пентесты. Итоги работ примерно такие же: уязвимости закрываются, политики безопасности дополняются.
Конечно, у тех, кто «глубоко в системе», последний пункт может вызвать раздражение как невозможный для реализации. Сложно не согласиться. Описанный пример – скорее для идеального мира. Однако потребности знания службой ИБ об объекте это не отменяет. Данный метод желательно применить хотя бы к самым критичным системам, поскольку этот бастион станет последней преградой на пути злоумышленника, если не удалось остановить его на предыдущих этапах.
Напоследок еще раз акцентируем внимание на главном. Первое: службам ИБ банков необходимо исходить из минимального доверия к внутренним пользователям корпоративной сети и строить многоуровневую внутреннюю защиту. Второе: встроенные возможности в ОС и ПО большинства систем таковы, что построить защищенную многослойную сеть можно с минимальными финансовыми затратами. Здесь главный момент – понимание того, зачем и почему все это делается, с созданием пошагового плана реализации. Очень хотелось бы, чтобы настоящая статья помогла в этом.