Добро пожаловать в серию статей о взломе и безопасности SCADA!
Безопасность SCADA/ICS критически важна по многим причинам. Одна из самых важных заключается в том, что любая кибервойна в будущем, вероятно, будет включать в себя взлом SCADA/ICS для вывода из строя критически важной инфраструктуры противника, такой как электроснабжение, водоснабжение, нефтепереработка и транспорт. Пока мы на Западе готовимся к такой потенциальной атаке, мы можем наблюдать и изучать происходящее на Украине, чтобы извлечь уроки о том, как такая атака может быть осуществлена. Украина — это настоящая «лаборатория», в которой мы можем учиться.
Учитывая это, давайте рассмотрим атаку на украинскую электросеть, совершённую высококвалифицированной хакерской группой из России, известной как «Песчаный червь». Наша цель — изучить эту атаку — извлечь уроки и защитить наши объекты от подобных атак.
Атака на энергосистему Украины стала результатом использования вредоносного ПО, известного как BlackEnergy 3. Давайте более подробно рассмотрим эту атаку и вредоносное ПО, чтобы понять, как подобные атаки могут происходить в будущем.
Blackenergy — это троян, бороздящий просторы мира уже более десяти лет, и за это время он претерпел ряд существенных изменений. Изначально он был разработан для создания зомби-ботнетов для DDoS-атак и распределённых атак с подбором паролей (BlackEnergy 1), но его модульная структура позволила ему трансформироваться во вредоносное ПО для систем SCADA/ICS (BlackEnergy 3).
Контекст
Как вам известно, Российская Федерация и Украина ведут борьбу за восточную часть этой страны. Россия аннексировала Крым у Украины в 2014 году (для исторического контекста: Екатерина Великая сначала присоединила Крым к Российской империи в апреле 1783 года, а затем передала его Украине в 1954 году), и с тех пор обе страны ведут как кибервойну, так и боевые действия. Чтобы узнать больше об этом конфликте и кибервойне, связанной с системой SCADA, прочтите эту замечательную статью .
Вечером 23 декабря 2014 года в западноукраинском городе Ивано-Франковске отключилось электричество.
Примерно в то же время другая украинская энергокомпания, «Киевэнерго», объявила о взломе. В данном случае хакеры отключили выключатели на 30 подстанциях, оставив без электроэнергии 80 000 потребителей. В общей сложности без электроэнергии остались более 225 000 человек.
С конца 2015 года российские противники выборочно отключают электроэнергию в отдельных регионах Украины, ведя агрессивную и психологическую войну против украинского населения. Это первый случай в истории, когда субъект международного конфликта использует отключения электроэнергии в качестве средства ведения войны. Похоже, что BlackEnergy 3, по крайней мере, частично ответственна за эту атаку, и поэтому мы проявляем к ней интерес.
Что такое BlackEnergy?
Изначально разработанный для DDoS-атак, BlackEnergy претерпел три (3) трансформации за последнее десятилетие. Именно BlackEnergy 3 использовался в атаке на Украину и является объектом нашего анализа.
BlackEnergy 2 появился в 2010 году и с его новым появлением получил новую архитектуру плагинов, позволяющую разработчикам легко добавлять новые функции. Когда BlackEnergy 3 был использован в 2014 году, он обладал новыми возможностями, значительно превосходящими возможности оригинального инструмента BlackEnergy 1 DDoS. Среди этих новых возможностей были плагины для кражи данных и мониторинга сети. Эти новые плагины были настолько сложными, что, вероятно, являлись результатом усилий по их разработке на уровне государства.
В то время на Украине появился BlackEnergy 3, использовавший уязвимость CVE-2014-4114 в OLE-упаковщике 2 (packager.dll) в Microsoft Office 2013. Эта же уязвимость была обозначена Microsoft как MS14-060. В бюллетене Technet эта уязвимость была описана следующим образом:
Это обновление безопасности устраняет обнаруженную в частном порядке уязвимость в Microsoft Windows. Уязвимость делает возможным удалённое выполнение кода, если пользователь открывает файл Microsoft Office, содержащий специально созданный OLE-объект. Злоумышленник, успешно воспользовавшийся этой уязвимостью, может выполнить произвольный код в контексте текущего пользователя. Если текущий пользователь вошел в систему с правами администратора, злоумышленник может устанавливать программы, просматривать, изменять или удалять данные, а также создавать новые учётные записи с полными правами. Пользователи, чьи учётные записи имеют ограниченные права в системе, могут быть затронуты в меньшей степени, чем пользователи с правами администратора.
Реверс-инжиниринговый эксплойт для этой уязвимости доступен в Metasploit как:
exploit/windows/fileformat/ms14_060_sandworm
В этой атаке хакер должен отправить специально созданный документ Office, обычно Excel или Word. Пользователь должен доверять отправителю и нажать кнопку, чтобы разрешить запуск макроса.
Украинские пользователи получили сообщение, похожее на приведенное ниже.
Чтобы понять, как работает этот эксплойт, давайте немного углубимся в принципы работы Microsoft OLE. Как вы знаете, Microsoft Office поддерживает выполнение макросов (благодаря формату OLE), что позволяет автору документа легко внедрять макросы и код Visual Basic, которые затем может выполнить любой, кто откроет документ.
Злоумышленники начали злоупотреблять этой функцией много лет назад и стали чаще внедрять этот вектор атаки, поскольку этот подход становился всё более успешным. Затем Microsoft добавила защиту, такую как возможность по умолчанию отключать макросы и любой внешний контент, а также предупреждать пользователя о предстоящем выполнении такого контента, как макрос.
На снимке экрана ниже показан код Visual Basic в BlackEnergy 3 в виде макроса.
Первым этапом атаки стала кампания по поиску и анализу прикреплённых документов Office. Письма, по всей видимости, были отправлены чиновниками украинского правительства. Когда пользователь открывал прикреплённый документ и активировал макрос, вредоносная программа немедленно подключалась к командному серверу (C&C) злоумышленников (Sandworm). Это позволяло злоумышленникам начать сбор информации о системах и сети, включая локализацию и раскладку клавиатуры.
Затем они, по-видимому, собрали учётные данные других систем и VPN, используя mimikatz . Затем они повысили привилегии и начали латеральное проникновение по всей сети.
Используя украденные учетные данные, злоумышленники Sandworm смогли беспрепятственно перемещаться по сети. Благодаря такому доступу они получили возможность составить карту всей сети, а с помощью учетных данных VPN смогли продолжить незамеченным доступ к ней.
Этап 2
На втором этапе они, вероятно, взломали HMI (человеко-машинный интерфейс), чтобы получить доступ к сети SCADA/ICS. Попав в сеть SCADA, они могли перехватить TCP-соединение с последовательным портом и выполнить обратную разработку прошивки ИБП.
Этап 3
На третьем этапе они загрузили новую прошивку ИБП, чтобы операторы остались без питания, программу KillDisk, которая удалила системные файлы и главную загрузочную запись (MBR) ключевых систем, сделав их невосстановимыми. Затем они отключили 30 автоматических выключателей подстанции (очевидно, просто используя HMI).
На снимке экрана ниже показан статический анализ импорта API KillDisk в IDA Pro.
Этап 4
На заключительном этапе они провели голосовую DDoS-атаку на горячую линию электроснабжающей компании, тем самым задержав первоначальное оповещение и реагирование на отключения электроэнергии.
Заключение и уроки
Вредоносное ПО BlackEnergy 3 стало первым в истории случаем, когда злоумышленник использовал отключения электроэнергии как форму кибервойны. Самый важный урок, который следует извлечь из этой атаки, заключается в том, что вредоносное ПО было разработано НЕ для эксплуатации уязвимостей сети или систем SCADA, а для корпоративной сети, подключенной к сети SCADA (что типично для многих атак на SCADA). Это лишь подчёркивает необходимость изоляции и разделения сети SCADA от корпоративной сети.
После того как злоумышленники взломали системы внутри корпоративной сети, они повысили свои привилегии, перешли на другие системы и в конечном итоге взяли под контроль системы с доступом к сети SCADA, такие как HMI, тем самым отключив выключатели подстанции и вызвав отключения электроэнергии.
Безопасность SCADA/ICS критически важна по многим причинам. Одна из самых важных заключается в том, что любая кибервойна в будущем, вероятно, будет включать в себя взлом SCADA/ICS для вывода из строя критически важной инфраструктуры противника, такой как электроснабжение, водоснабжение, нефтепереработка и транспорт. Пока мы на Западе готовимся к такой потенциальной атаке, мы можем наблюдать и изучать происходящее на Украине, чтобы извлечь уроки о том, как такая атака может быть осуществлена. Украина — это настоящая «лаборатория», в которой мы можем учиться.
Учитывая это, давайте рассмотрим атаку на украинскую электросеть, совершённую высококвалифицированной хакерской группой из России, известной как «Песчаный червь». Наша цель — изучить эту атаку — извлечь уроки и защитить наши объекты от подобных атак.
Атака на энергосистему Украины стала результатом использования вредоносного ПО, известного как BlackEnergy 3. Давайте более подробно рассмотрим эту атаку и вредоносное ПО, чтобы понять, как подобные атаки могут происходить в будущем.
Blackenergy — это троян, бороздящий просторы мира уже более десяти лет, и за это время он претерпел ряд существенных изменений. Изначально он был разработан для создания зомби-ботнетов для DDoS-атак и распределённых атак с подбором паролей (BlackEnergy 1), но его модульная структура позволила ему трансформироваться во вредоносное ПО для систем SCADA/ICS (BlackEnergy 3).
Контекст
Как вам известно, Российская Федерация и Украина ведут борьбу за восточную часть этой страны. Россия аннексировала Крым у Украины в 2014 году (для исторического контекста: Екатерина Великая сначала присоединила Крым к Российской империи в апреле 1783 года, а затем передала его Украине в 1954 году), и с тех пор обе страны ведут как кибервойну, так и боевые действия. Чтобы узнать больше об этом конфликте и кибервойне, связанной с системой SCADA, прочтите эту замечательную статью .
Вечером 23 декабря 2014 года в западноукраинском городе Ивано-Франковске отключилось электричество.
Примерно в то же время другая украинская энергокомпания, «Киевэнерго», объявила о взломе. В данном случае хакеры отключили выключатели на 30 подстанциях, оставив без электроэнергии 80 000 потребителей. В общей сложности без электроэнергии остались более 225 000 человек.
С конца 2015 года российские противники выборочно отключают электроэнергию в отдельных регионах Украины, ведя агрессивную и психологическую войну против украинского населения. Это первый случай в истории, когда субъект международного конфликта использует отключения электроэнергии в качестве средства ведения войны. Похоже, что BlackEnergy 3, по крайней мере, частично ответственна за эту атаку, и поэтому мы проявляем к ней интерес.
Что такое BlackEnergy?
Изначально разработанный для DDoS-атак, BlackEnergy претерпел три (3) трансформации за последнее десятилетие. Именно BlackEnergy 3 использовался в атаке на Украину и является объектом нашего анализа.
BlackEnergy 2 появился в 2010 году и с его новым появлением получил новую архитектуру плагинов, позволяющую разработчикам легко добавлять новые функции. Когда BlackEnergy 3 был использован в 2014 году, он обладал новыми возможностями, значительно превосходящими возможности оригинального инструмента BlackEnergy 1 DDoS. Среди этих новых возможностей были плагины для кражи данных и мониторинга сети. Эти новые плагины были настолько сложными, что, вероятно, являлись результатом усилий по их разработке на уровне государства.
В то время на Украине появился BlackEnergy 3, использовавший уязвимость CVE-2014-4114 в OLE-упаковщике 2 (packager.dll) в Microsoft Office 2013. Эта же уязвимость была обозначена Microsoft как MS14-060. В бюллетене Technet эта уязвимость была описана следующим образом:
Это обновление безопасности устраняет обнаруженную в частном порядке уязвимость в Microsoft Windows. Уязвимость делает возможным удалённое выполнение кода, если пользователь открывает файл Microsoft Office, содержащий специально созданный OLE-объект. Злоумышленник, успешно воспользовавшийся этой уязвимостью, может выполнить произвольный код в контексте текущего пользователя. Если текущий пользователь вошел в систему с правами администратора, злоумышленник может устанавливать программы, просматривать, изменять или удалять данные, а также создавать новые учётные записи с полными правами. Пользователи, чьи учётные записи имеют ограниченные права в системе, могут быть затронуты в меньшей степени, чем пользователи с правами администратора.
Реверс-инжиниринговый эксплойт для этой уязвимости доступен в Metasploit как:
exploit/windows/fileformat/ms14_060_sandworm
В этой атаке хакер должен отправить специально созданный документ Office, обычно Excel или Word. Пользователь должен доверять отправителю и нажать кнопку, чтобы разрешить запуск макроса.
Украинские пользователи получили сообщение, похожее на приведенное ниже.
Чтобы понять, как работает этот эксплойт, давайте немного углубимся в принципы работы Microsoft OLE. Как вы знаете, Microsoft Office поддерживает выполнение макросов (благодаря формату OLE), что позволяет автору документа легко внедрять макросы и код Visual Basic, которые затем может выполнить любой, кто откроет документ.
Злоумышленники начали злоупотреблять этой функцией много лет назад и стали чаще внедрять этот вектор атаки, поскольку этот подход становился всё более успешным. Затем Microsoft добавила защиту, такую как возможность по умолчанию отключать макросы и любой внешний контент, а также предупреждать пользователя о предстоящем выполнении такого контента, как макрос.
На снимке экрана ниже показан код Visual Basic в BlackEnergy 3 в виде макроса.
Последовательность атаки команды SandWorm
Этап 1Первым этапом атаки стала кампания по поиску и анализу прикреплённых документов Office. Письма, по всей видимости, были отправлены чиновниками украинского правительства. Когда пользователь открывал прикреплённый документ и активировал макрос, вредоносная программа немедленно подключалась к командному серверу (C&C) злоумышленников (Sandworm). Это позволяло злоумышленникам начать сбор информации о системах и сети, включая локализацию и раскладку клавиатуры.
Затем они, по-видимому, собрали учётные данные других систем и VPN, используя mimikatz . Затем они повысили привилегии и начали латеральное проникновение по всей сети.
Используя украденные учетные данные, злоумышленники Sandworm смогли беспрепятственно перемещаться по сети. Благодаря такому доступу они получили возможность составить карту всей сети, а с помощью учетных данных VPN смогли продолжить незамеченным доступ к ней.
Этап 2
На втором этапе они, вероятно, взломали HMI (человеко-машинный интерфейс), чтобы получить доступ к сети SCADA/ICS. Попав в сеть SCADA, они могли перехватить TCP-соединение с последовательным портом и выполнить обратную разработку прошивки ИБП.
Этап 3
На третьем этапе они загрузили новую прошивку ИБП, чтобы операторы остались без питания, программу KillDisk, которая удалила системные файлы и главную загрузочную запись (MBR) ключевых систем, сделав их невосстановимыми. Затем они отключили 30 автоматических выключателей подстанции (очевидно, просто используя HMI).
На снимке экрана ниже показан статический анализ импорта API KillDisk в IDA Pro.
Этап 4
На заключительном этапе они провели голосовую DDoS-атаку на горячую линию электроснабжающей компании, тем самым задержав первоначальное оповещение и реагирование на отключения электроэнергии.
Заключение и уроки
Вредоносное ПО BlackEnergy 3 стало первым в истории случаем, когда злоумышленник использовал отключения электроэнергии как форму кибервойны. Самый важный урок, который следует извлечь из этой атаки, заключается в том, что вредоносное ПО было разработано НЕ для эксплуатации уязвимостей сети или систем SCADA, а для корпоративной сети, подключенной к сети SCADA (что типично для многих атак на SCADA). Это лишь подчёркивает необходимость изоляции и разделения сети SCADA от корпоративной сети.
После того как злоумышленники взломали системы внутри корпоративной сети, они повысили свои привилегии, перешли на другие системы и в конечном итоге взяли под контроль системы с доступом к сети SCADA, такие как HMI, тем самым отключив выключатели подстанции и вызвав отключения электроэнергии.