Во-первых, ещё раз : мои аплодисменты авторам вируса.
Соединить пару широко известных и уже закрытых дыр, захват контроля над распространением софта, который стоит у множества украинских бухгалтеров, и опасную особенность всех (!) ОС семейства MS Windows - это отличная работа.
Да и (цитируя коллегу) , "качество кода в разы лучше среднего по больнице, это не похоже на <> местные оффшорки".
Часть 1. Применённые техники.
хороший разбор https://blogs.technet.microsoft.com/mmpc/2017/06/27/new-ransomware-old-techniques-petya-adds-worm-capabilities/
Про горе-софт от M.E.doc сказано много.
В общем , не столь важно, специально там человек подготовил распространение вируса в виде апдейтов или контроль над серверами был получен извне. Я бы поставил на 2е - получен извне. Тем более, там почти гарантированно всем на всё было плевать, в тч. на безопасность серверов.
Про заражение через фишинг тоже сказано немало - через 20 лет после начала первых массовых фишинг-атак у нас всё так же фильтрация почты зачастую или отсутствует, или "а, антивирус стоит, а далее нам пофиг".
Обратите внимание , что МС в описании честно акцентирует внимание на самом невыгодном для себя месте - на получении логинов-паролей пользователей через опасную особенность всех (!) ОС семейства MS Windows, но про это ниже.
По умолчанию у МС в старых win7 / vista , включая серверные win2008 ... включено хранение пароля активной сессии в памяти в открытом виде. (!)
Можно получать прямо, а можно элегантнее - снимая минидамп памяти и анализируя в другом месте.
более того, можно "извлечь и из файла гибернации системы и .vmem файлов виртуальных машин (файлы подкачки виртуальных машин и их снапшоты)." (!)
и всё это много лет МС молча не считает проблемой.
Корни понятны - для совместимости с некоторым старым софтом, использующим digest auth.
(win7, win2008r2) - отлично отрабатывает, но только с админ. правами.
Выключаемо через реестр, но запросто включаемо обратно.
win 8.1, win10, win2012serv - хэши да (перебором вскрываются, но время), паролей уже нет по умолчанию.
mimikatz will not get passwords from memory when they are not in memory (default from 8.1)
Starting with 8.x and 10, by default, there is no password in memory.
но !
простым изменением ключика в реестре и ребутом мы снова возвращаем хранение паролей в открытом виде в памяти.
и при след. ребуте - читаем их из памяти.
проверил на win10 - да, работает столь же аккуратно.
фактически всё "улучшение" в w8/w10 - изменили поведение по умолчанию, но не убрали дырищу, которая давно описана в документации и официально называется фичей.
правда, у МС есть утилитка Credential Guard, которая перекрывает эти пути чуть надёжнее, чем параметр в реестре.
https://docs.microsoft.com/en-us/windows/access-protection/credential-guard/credential-guard
Итак, авторы вируса использовали известную утилитку mimikatz для получения паролей юзера текущей сессии, прямо из памяти.
Она требует админ.прав, дампит пароли текущего залогиненного юзверя из памяти ,
причём сразу оба хэша и расшифрованный.
утилитка существует с 11 года.
хорошее описание :
https://www.sans.org/reading-room/whitepapers/forensics/mimikatz-overview-defenses-detection-36780
http://winitpro.ru/index.php/2013/12/24/poluchenie-v-otkrytom-vide-parolej-polzovatelej-avtorizovannyx-v-windows/
тут на русском и в более простом изложении.
Часть 2. Причины успеха.
Собственно, сам по себе трижды взломанный сервер обновлений горе-софта смог нанести огромный ущерб именно потому, что у тысяч бухгалтеров софт стоял или на рабочих машинах, часто с правами админа, или на серверах, нередко сервер одновременно "контроллер домена + 1С + все прочее буховское и ещё немного".
"ну а шо, у нас даже вынь-да лицензионная, обновления, панимаишшь, и антивирус contex"
Это у нас считается очень неплохим уровнем администрирования сеток...
потому что часто нет и этого.
Часто бухгалтер ходит на рабочий комп rdesktop'ом, по проброшенному порту - и порты половины машин офиса торчат наружу. А пароли написаны на стикерах, прилепленных к экранам.
Если бы опасный софт (а софт от горе-конторки, связанной с гос.чиновниками и распилами, опасен по определению. Более того, за последнее время, как пишут, было несколько массовых срабатываний разных антивирусов на него , и официальный ответ саппорта medoc - "Добавляйте наш софт в исключения антивирусов") стоял на отдельной изолированной машине, с отдельными параметрами входа, то взлом этой машины не принёс бы практически ни-че-го, кроме проблем с отправкой отчетов в налоговую.
"Отдельная машинка для каждой подозрительной софтины " было некоторой роскошью 15-20 лет назад, но сегодня, в эру виртуалок ?
Ещё раз : грамотное построение и управление сетью с таким вот софтом исключило бы разрушительный эффект даже от такого, весьма мощного, выстрела.
Далее.
Уязвимость SMB.
"апдейты, закрыто, не закрыто..."
Проблема ж не в апдейтах, а в том, что типичное построение сетей у нас - внутри сети всё всем открыто, любая машина может коннектиться к любой другой по любому порту. В лучшем случае, изредка, прикрывается точка бэкапов.
Получение паролей из памяти машин, увы, апдейтами не закрывается.
Это просто опасная особенность всех Windows, но по-настоящему опасна она лишь там, где можно потом запросто коннектиться ко всем машинам внутри сети.
Получение пароля юзера Джо , если машина Джо уже полностью захвачена - само по себе почти бесполезно.
А вот если есть полный доступ внутри сети, то, в силу того, что вход по тому же логину-паролю часто универсален, как раз и получаем массовое заражение машин "со всеми обновлениями, с антивирусами..."
Все рекомендации по port-isolation разбиваются об "это сложно" , "мы не умеем", "дорого", "директор принёс флешку, про вчерашний корпоратив... как это нельзя расшарить и всем посмотреть ? да нахрен нам такой ИТ, уволим, мой племянник и то умеет расшарить всё и вся !"
Кстати, про "дорого" - я как-то участвовал в разговоре,
когда юноша, старший админ (и друг СТО компании, который сидел рядом) показал мне план закупок мощных управляемых свитчей НР , на 30+ тыс. евро, примерно по 100 евро на порт, тогда это были нормальные цены.
Я спросил - хорошо, а что планируете с ними делать ? "да ничего, просто это круто", ответил немец.
2й админ, несколько более опытный румын, усмехнулся, "понимаю, но рулит он".
Впрочем, на одном очень денежном одесском заводе, помнится, админы вообще не знали, что работающие у них свитчи - управляемые. И на рабочих станциях там тогда стояли карточки с оптикой, по штуке баксов.
Если бы машины были изолированы друг от друга (а контроллеры домена не работали бы одновременно свалкой для бух.софта) - массового заражения просто не могло бы получиться.
Никак.
Было бы точечное поражение машин с софтом через вирус-обновления, и точечное
через фишинг (если нет фильтрации почты).
Часть 3.
"А если бы был Linux, а не эти ваши дырявые win- форточки"
Интерполируя сам подход - держать на 1 сервере кучу всего, и там же опасная софтина работает под правами root и сама себя обновляет черт-те откуда - все эти машины были бы заражены.
Уязвимостей хватает, и если их не закрывать - было бы примерно так же весело.
Правда, в самых разных linux, а также в Solaris мне как-то не встречалось привычки держать (по умолчанию!) cleartext пароли юзера, открывшего сессию в памяти, или чтобы это было столь же просто включаемо (не кейлоггеры).
Часть 4.
"А спорим, что 99% фирм , директоров и админов в итоге ничего не будут менять ?"
------------------
update. ещё один хороший анализ, с указанием , что ранее было как минимум 3 рассылки апдейтов к m.e.doc с вирусами.
TeleBots are back: Supply-chain attacks against Ukraine https://www.welivesecurity.com/2017/06/30/telebots-back-supply-chain-attacks-against-ukraine/
Analysis of TeleBots’ cunning backdoor https://www.welivesecurity.com/2017/07/04/analysis-of-telebots-cunning-backdoor/
Соединить пару широко известных и уже закрытых дыр, захват контроля над распространением софта, который стоит у множества украинских бухгалтеров, и опасную особенность всех (!) ОС семейства MS Windows - это отличная работа.
Да и (цитируя коллегу) , "качество кода в разы лучше среднего по больнице, это не похоже на <> местные оффшорки".
Часть 1. Применённые техники.
хороший разбор https://blogs.technet.microsoft.com/mmpc/2017/06/27/new-ransomware-old-techniques-petya-adds-worm-capabilities/
Про горе-софт от M.E.doc сказано много.
В общем , не столь важно, специально там человек подготовил распространение вируса в виде апдейтов или контроль над серверами был получен извне. Я бы поставил на 2е - получен извне. Тем более, там почти гарантированно всем на всё было плевать, в тч. на безопасность серверов.
Про заражение через фишинг тоже сказано немало - через 20 лет после начала первых массовых фишинг-атак у нас всё так же фильтрация почты зачастую или отсутствует, или "а, антивирус стоит, а далее нам пофиг".
Обратите внимание , что МС в описании честно акцентирует внимание на самом невыгодном для себя месте - на получении логинов-паролей пользователей через опасную особенность всех (!) ОС семейства MS Windows, но про это ниже.
По умолчанию у МС в старых win7 / vista , включая серверные win2008 ... включено хранение пароля активной сессии в памяти в открытом виде. (!)
Можно получать прямо, а можно элегантнее - снимая минидамп памяти и анализируя в другом месте.
более того, можно "извлечь и из файла гибернации системы и .vmem файлов виртуальных машин (файлы подкачки виртуальных машин и их снапшоты)." (!)
и всё это много лет МС молча не считает проблемой.
Корни понятны - для совместимости с некоторым старым софтом, использующим digest auth.
(win7, win2008r2) - отлично отрабатывает, но только с админ. правами.
Выключаемо через реестр, но запросто включаемо обратно.
win 8.1, win10, win2012serv - хэши да (перебором вскрываются, но время), паролей уже нет по умолчанию.
mimikatz will not get passwords from memory when they are not in memory (default from 8.1)
Starting with 8.x and 10, by default, there is no password in memory.
но !
простым изменением ключика в реестре и ребутом мы снова возвращаем хранение паролей в открытом виде в памяти.
и при след. ребуте - читаем их из памяти.
проверил на win10 - да, работает столь же аккуратно.
фактически всё "улучшение" в w8/w10 - изменили поведение по умолчанию, но не убрали дырищу, которая давно описана в документации и официально называется фичей.
правда, у МС есть утилитка Credential Guard, которая перекрывает эти пути чуть надёжнее, чем параметр в реестре.
https://docs.microsoft.com/en-us/windows/access-protection/credential-guard/credential-guard
Итак, авторы вируса использовали известную утилитку mimikatz для получения паролей юзера текущей сессии, прямо из памяти.
Она требует админ.прав, дампит пароли текущего залогиненного юзверя из памяти ,
причём сразу оба хэша и расшифрованный.
утилитка существует с 11 года.
хорошее описание :
https://www.sans.org/reading-room/whitepapers/forensics/mimikatz-overview-defenses-detection-36780
http://winitpro.ru/index.php/2013/12/24/poluchenie-v-otkrytom-vide-parolej-polzovatelej-avtorizovannyx-v-windows/
тут на русском и в более простом изложении.
Часть 2. Причины успеха.
Собственно, сам по себе трижды взломанный сервер обновлений горе-софта смог нанести огромный ущерб именно потому, что у тысяч бухгалтеров софт стоял или на рабочих машинах, часто с правами админа, или на серверах, нередко сервер одновременно "контроллер домена + 1С + все прочее буховское и ещё немного".
"ну а шо, у нас даже вынь-да лицензионная, обновления, панимаишшь, и антивирус contex"
Это у нас считается очень неплохим уровнем администрирования сеток...
потому что часто нет и этого.
Часто бухгалтер ходит на рабочий комп rdesktop'ом, по проброшенному порту - и порты половины машин офиса торчат наружу. А пароли написаны на стикерах, прилепленных к экранам.
Если бы опасный софт (а софт от горе-конторки, связанной с гос.чиновниками и распилами, опасен по определению. Более того, за последнее время, как пишут, было несколько массовых срабатываний разных антивирусов на него , и официальный ответ саппорта medoc - "Добавляйте наш софт в исключения антивирусов") стоял на отдельной изолированной машине, с отдельными параметрами входа, то взлом этой машины не принёс бы практически ни-че-го, кроме проблем с отправкой отчетов в налоговую.
"Отдельная машинка для каждой подозрительной софтины " было некоторой роскошью 15-20 лет назад, но сегодня, в эру виртуалок ?
Ещё раз : грамотное построение и управление сетью с таким вот софтом исключило бы разрушительный эффект даже от такого, весьма мощного, выстрела.
Далее.
Уязвимость SMB.
"апдейты, закрыто, не закрыто..."
Проблема ж не в апдейтах, а в том, что типичное построение сетей у нас - внутри сети всё всем открыто, любая машина может коннектиться к любой другой по любому порту. В лучшем случае, изредка, прикрывается точка бэкапов.
Получение паролей из памяти машин, увы, апдейтами не закрывается.
Это просто опасная особенность всех Windows, но по-настоящему опасна она лишь там, где можно потом запросто коннектиться ко всем машинам внутри сети.
Получение пароля юзера Джо , если машина Джо уже полностью захвачена - само по себе почти бесполезно.
А вот если есть полный доступ внутри сети, то, в силу того, что вход по тому же логину-паролю часто универсален, как раз и получаем массовое заражение машин "со всеми обновлениями, с антивирусами..."
Все рекомендации по port-isolation разбиваются об "это сложно" , "мы не умеем", "дорого", "директор принёс флешку, про вчерашний корпоратив... как это нельзя расшарить и всем посмотреть ? да нахрен нам такой ИТ, уволим, мой племянник и то умеет расшарить всё и вся !"
Кстати, про "дорого" - я как-то участвовал в разговоре,
когда юноша, старший админ (и друг СТО компании, который сидел рядом) показал мне план закупок мощных управляемых свитчей НР , на 30+ тыс. евро, примерно по 100 евро на порт, тогда это были нормальные цены.
Я спросил - хорошо, а что планируете с ними делать ? "да ничего, просто это круто", ответил немец.
2й админ, несколько более опытный румын, усмехнулся, "понимаю, но рулит он".
Впрочем, на одном очень денежном одесском заводе, помнится, админы вообще не знали, что работающие у них свитчи - управляемые. И на рабочих станциях там тогда стояли карточки с оптикой, по штуке баксов.
Если бы машины были изолированы друг от друга (а контроллеры домена не работали бы одновременно свалкой для бух.софта) - массового заражения просто не могло бы получиться.
Никак.
Было бы точечное поражение машин с софтом через вирус-обновления, и точечное
через фишинг (если нет фильтрации почты).
Часть 3.
"А если бы был Linux, а не эти ваши дырявые win- форточки"
Интерполируя сам подход - держать на 1 сервере кучу всего, и там же опасная софтина работает под правами root и сама себя обновляет черт-те откуда - все эти машины были бы заражены.
Уязвимостей хватает, и если их не закрывать - было бы примерно так же весело.
Правда, в самых разных linux, а также в Solaris мне как-то не встречалось привычки держать (по умолчанию!) cleartext пароли юзера, открывшего сессию в памяти, или чтобы это было столь же просто включаемо (не кейлоггеры).
Часть 4.
"А спорим, что 99% фирм , директоров и админов в итоге ничего не будут менять ?"
------------------
update. ещё один хороший анализ, с указанием , что ранее было как минимум 3 рассылки апдейтов к m.e.doc с вирусами.
TeleBots are back: Supply-chain attacks against Ukraine https://www.welivesecurity.com/2017/06/30/telebots-back-supply-chain-attacks-against-ukraine/
Analysis of TeleBots’ cunning backdoor https://www.welivesecurity.com/2017/07/04/analysis-of-telebots-cunning-backdoor/