Холодный расчет! — Атаки методом холодной перезагрузки
Опубликован эксплоит, который может перезагрузить iPhone; украдены данные платежных карт пользователей с сайта Newegg; новый вариант атаки методом холодной перезагрузки (cold boot attack); удаленное выполнение кода на macOS с использованием обработчиков нестандартных адресов ресурсов (URL).
Вспомогательные темы
Я сегодня решил немного изменить формат и останавливаться на терминах по ходу подкаста, а не в самом начале.
Новости
Опубликован эксплоит, который может перезагрузить iPhone
Исследователь Сабри Хадуш (Sabri Haddouche) опубликовал в своем твиттере ссылку на страницу, при посещении которой устройства на базе iOS и в некоторых случаях macOS уходят в перезагрузку. Проблеме точно подвержены браузеры Safari. Сабри также опубликовал видео, в котором показан пример атаки.
На вредоносной странице расположены 3485 вложенных друг в друга элементов div. Стилями каждому элементу задается размер 10 тысяч на 10 тысяч пикселей, повторяющееся фоновое изображение и фильтр размытия. Судя по всему некоторая часть операций при отображении веб страниц выполняется в недрах операционной системы. На рендер такой страницы ресурсов уходит много, их не хватает самой системе и она аварийно завершает выполнение.
Украдены данные платежных карт пользователей с сайта Newegg
В 14 выпуске у нас была новость про кражу данных платежных карт на сайте Ticketmaster. В 23 выпуске была освещена такая же проблема на большом количестве сайтов, работающих на платформе Magento. В обоих случаях злоумышленники получали доступ к сайту и внедряли на страницу с платежными реквизитами свой скрипт. Когда пользователь вводил данные своей карты, скрипт имел возможность их считывать и отправлял злоумышленникам.
Абсолютно такая же схеме была использована на сайте крупного североамериканского магазина электроники Newegg. 14 августа злоумышленники внесли изменения на сайт и почти месяц собирали данные.
В 24 выпуске я рассказывал про кражу данных карт с сайта Британских Авиалиний. Так вот, по новым сведениям и авиаперевозчик, и магазин электроники пострадали от действий одной группы злоумышленников.
Новый вариант ColdBoot атаки
Исследователи показали атаку, которая позволяет позволяет украсть пароли, ключи шифрования и другую важную информацию с современных компьютеров, даже если их диск зашифрован. Эта атака — разновидность давно известной атаки методом холодной перезагрузки. На английском — Cold Boot Attack.
Давайте сначала разберемся, что такое cold boot attack, есть ли warm boot attack и в чем особенности нового подхода. Наверняка все когда-либо перезагружали компьютер. Например, когда он зависает, мы нажимаем кнопку сброса и загрузка начинается с начала. Такая перезагрузка называется холодной. Выполняется она аппаратно, процессору посылается сигнал сброса.
Есть также перезагрузка теплая — это когда мы говорим операционной системе выполнить перезагрузку. Он сама подготавливает все процессы и оборудование.
Атака методом холодной перезагрузки завязана на особенность работы оперативной памяти. Как вы наверняка знаете оперативная память компьютера энергозависимая. Это значит, что данные из оперативной памяти теряются, если отключить питание компьютера. Так происходит потому, что оперативная память состоит из множества конденсаторов — элементов, которые накапливают электрический заряд. В зависимости от уровня заряда определяется, что записано — 0 и 1.
В любом устройстве есть небольшие токи утечки, поэтому конденсаторы в оперативной памяти со временем теряют заряд и таким образом данные пропадают. Причем чем ниже температура оперативной памяти, тем медленнее будет терятся заряд. Во время работы компьютера ячейки данных периодически обновляются. Если этого не делать, данные из оперативной памяти также пропадут.
В оперативной памяти система хранит всю нужную для работы информацию. Например, если диск зашифрован, то для его чтения нужен будет ключ, который хранится в оперативной памяти. Как показали исследования, проведенные еще в 2008 году, если перезагрузить систему, то данные в оперативной памяти не потеряются. И если сразу после этого на компьютере удастся загрузить систему с малым потреблением памяти, то перепишется лишь небольшая часть данных, остальные же можно будет читать, и среди сохранившихся данных вполне может быть важная информация.
Производители стали защищаться от подобных атак просто переписывая содержимое памяти при холодной перезагрузке. В новом исследовании эту защиту обошли. Исследователи просто подменяют настройки системы защиты обычной перепрошивкой памяти биос. На youtube опубликовано видео (https://youtu.be/E6gzVVjW4yY), показывающее весь процесс.
Один из возможных методов защиты от новой атаки — пытаться определить целостность прошивок и настроек. Но если злоумышленник имеет физический доступ к устройству и знает, что делать, это немного проблематично.
Другой способ защиты — не использовать режим сна, выключать компьютер или переводить в режим глубокого сна, когда все данные сбрасываются на диск. Также можно пытаться усложнить поиск важных данных в оперативной памяти после перезагрузки.
Удаленное выполнение кода на macOS с использованием нестандартных URL
На прошедшей 30 августа конференции Hack In The Box GSEC глава отдела исследований малвари Таха Карим (Taha Karim) из компании Dark Matter LLC представил доклад, в котором в частности были раскрыты некоторые подробности о новом векторе атаки на пользователей операционной системы macOS. Этот вектор использовался одной из организованных групп (APT — advanced persistent threat) для атаки на конкретных пользователей. Известный исследователь безопасности Apple систем Патрик Вардл (Patrick Wardle) в своем блоге рассмотрел проблему подробнее и описал разработанный им концепт.
Атака представляет из себя удаленное выполнение кода. Не смотря на то, что эта атака не может быть выполнена полностью в автоматическом режиме и требует взаимодействия с пользователем-жертвой, на практике она успешно применялась.
В основе схемы заражения — обработка программами нестандартных адресов ресурсов, которые в англоязычной терминологии называются Uniform Resource Locator (URL). URL описывает местонахождение конкретного ресурса и состоит из нескольких элементов. Один из них указывает протокол, по которому нужно обращаться за ресурсом. Разные программы могут работать с разными протоколами. Например, веб браузер может обрабатывать протоколы HTTP и HTTPS. В операционной системе хранится информация о том, какая программа отвечает за обработку определенного протокола.
Каждое приложение может сообщить системе, какие протоколы оно поддерживает. Это могут быть как стандартные протоколы, так и совершенно новые, которые понимает только это приложение. В разных операционных системах регистрация обработчиков сделана по-разному. В macOS процедура, наверное, самая простая. Для регистрации нужно всего лишь разместить в файле Info.plist, который располагается в папке приложения, информацию о поддерживаемых протоколах. Как только приложение будет скопировано на компьютер пользователя, операционная система сама прочитает данные из этого файла и зарегистрирует обработчик. Например, если у вас установлен Skype и вы наберете в адресной строке браузера skype:/ и нажмете enter, то система предложит открыть приложение Skype для обработки этого ресурса.
Теперь рассмотрим процесс заражения. Сначала атакующий формирует zip архив с приложением, в котором заявлена поддержка какого-нибудь уникального протокола. Название может быть выбрано практически любое. Потом жертву каким-либо образом заманивают на сайт и убеждают скачать архив. Если при этом используется браузер Safari, то архив будет автоматически распакован. Как следствие, приложение попадет на файловую систему и тут же будет зарегистрировано как обработчик нового протокола. После этого сайт перенаправляет пользователя на ресурс, который располагается по заложенному во вредоносном приложении протоколу.
В последних версиях Safari и других браузеров приложение-обработчик не будет запущено сразу, а предварительно будет запрошено разрешение на запуск. Но пользователи могут быть введены в заблуждение названием приложения. Например, оно может называться вложение.txt, но вместо английской x будет использована русская х. Визуально покажется, что предлагается открыть файл, а на деле это будет приложение.
В macOS есть еще один рубеж защиты. Все файлы, скачанные из интернета помечаются специальным атрибутом карантина (quarantine). Если попытаться запустить скачанное приложение, то система выдаст еще одно предупреждение. Мол, “приложение такое-то было скачано из интернета. Точно хотите его запустить?”. Надеюсь, что большинство пользователей, которые намеренно не скачивали приложение, кликнут на отмену.
На сегодня все. Будьте внимательны, не кликайте бездумно по кнопкам 🙂 До следующей недели.
Создание флешки для дампа RAM (атака Cold Boot)
Если вы немного шарите в форензике и информационной безопасности, то вероятно знаете, что содержимое памяти RAM можно легко сдампить с помощью простой флешки. В этой статье я покажу, как создать флешку для дампа памяти и реализации атаки Cold Boot.
Атака Cold Boot
Представим сценарий, вы выходите поговорить по телефону, пообедать или курнуть и оставляете ваш ПК без присмотра на несколько минут. При этом вы, как осторожный пользователь, заблокировали ваш комп. У вас даже зашифрованный SSD, надежный пароль для входа и обновлена Windows. Вы думаете все норм и ваши данные в безопасности?
Нет, ваш компьютер не защищен от атаки Cold Boot.
Cold boot attack (холодная загрузка) — тип атак, при которых злоумышленник, при наличии физического доступа к ПК может извлечь из него ключи шифрования и прочие важные данные. Атака Cold boot требует полной перезагрузки компьютера без использования ПО или, грубо говоря, аппаратной перезагрузкой..
Почему не программной? При программном рестарте завершаются все процессы и файлы, смаппленные в оперативной памяти, и может быть, она даже будет принудительно очищена. Вот почему необходимо сделать перезагрузку самостоятельно, без привлечения ОС, сохранив все важные данные в RAM.
Реализовать холодную перезагрузку можно, например, такими способами:
- Очень быстро аппаратно отключить‑включить питание.
- Выполнить аппаратный reset.
- Вызвать BSOD (Синий экран смерти).
Если говорить о ноутбуках, то у их малой части сейчас есть отдельная кнопка аппаратного рестарта. Кроме этого, сегодняшние ноутбуки редко комлектуются съемными аккумуляторами, так что вытащит аккум на короткое не получится.
Eсть решение, которое может помочь в реализации атаки Cold Boot. Можно попробовать вызвать холодную перезагрузку, вставив USB-флешку с намерено поврежденной файловой системой (ФС), которая и вызовет BSOD.
Далее рассммотрим создание флешки для дампа оперативной памяти.
Флешка для дампа RAM и атаки Cold Boot
Подготовим атакующую загрузочную флешку, которая будет дампить RAM в неразмеченную область. Так файловая система флешки не пострадает.
Установка bios_memimage64:
wget https : //github.com/baselsayeh/coldboot-tools/releases/download/2/bios_memimage64.zip
Установка загрузчика GRUB4DOS в MBR:
sudo dd if = grldr . mbr of =/ dev / sdb conv = notrunc
Создание одного раздела, не до конца области диска, оставив 4–8 Гбайт:
sudo fdisk / dev / sdb
Использование самой простой файловой системы:
sudo mkfs . fat / dev / sdb1
sudo mount / dev / sdb1 / media / usb
Установка dump RAM:
cp grldr menu_sec_part . lst scraper* . bin / media / usb /
Содержимое конфигурационного файла загрузчика menu_sec_part.lst:
title Dump the ram ( 64bit Halt )
map ( hd0 ) ( hd1 )
map ( hd0 , 1 ) + 1 ( hd0 ) # Раздел флешки, на который будет сохранен дамп RAM
rootnoverify ( hd0 , 0 )
chainloader — force — boot — cs = 0x7c0 — boot — ip = 0x200 ( hd1 , 0 ) / boot / grub4dos / scraper / scraper64_haltonly . bin # Используем длинный режим, чтобы скопировать больше 4 Гбайт RAM
Эта конфигурация предусматривает, что содержимое RAM будет сохраняться непосредственно в дополнительный раздел на флешке, минуя файловую систему. На самом деле с помощью загрузчика GRUB мы можем создать виртуальный диск из файла. Это дало бы нам в дальнейшем удобный доступ к дампу в виде файла на флешке.
Несомненно, это было бы более правильно, но на современных файловых системах не так просто создать нефрагментированный сплошной файл большого размера. На FAT32 файл больше 4 Гбайт вообще не создать, а, например, на NTFS ровно посередине раздела будет расположен служебный MFT, описывающий файлы, и при записи на такой виртуальный диск ты попросту затрешь свою ФС.
Так что рекомендую классический вариант с дампом RAM в раздел, а не в файл.
Использование флешки для дампа RAM
Совсем необязательно, чтобы на целевом компе была включена автоматическая загрузка с USB-флешки. Многие версии BIOS поддерживают выбор носителя для загрузки через нажатие клавиши F8 (или аналогичной). Но даже если нет, это по‑прежнему можно сделать через вход в BIOS и изменение настроек в нем.
Сама атака занимает некоторое время и выглядит как простое подключение USB-флешки. И пока пользователь отсутствует, данные из его RAM постепенно утекают на съемный носитель злоумышленника. Демонстрация этой атаки представлена на следующем рисунке.

Как только атака будет завершена, точная копия оперативной памяти сохранится во втором разделе нашей флешки (/dev/sdb2). Преобразуем ее в привычный файл для удобства:
sudo dd if =/ dev / sdb2 of = ram . img bs = 512 status = progress
У меня получившийся дамп был немного сдвинут — на 0x53000 байт, но это легко исправить:
truncate — s $ [ 0x53000 ] pad . img
cat pad . img ram . img > _ram . img
Теперь перед нами та самая оперативная память, что была на момент аппаратного сброса, со всеми лежащими в ней секретами, которые можно легко обнаружить:
radare2 — n ram . img
/ wi cookie : # Ищем все cookie
/ wi passw # Ищем пароли
Используя сигнатурный подход, то есть зная определенные ключевые слова, такие как Password , Secret или Cookie , мы можем простым поиском по содержимому найти те или иные чувствительные данные. Например, по сигнатурам, которые есть у большинства файлов, можно искать RSA-ключи, возможно — какие‑то фотографии, PDF-документы, архивы и прочее.
На следующем рисунке представлен пример того, что было запущено в системе перед блокировкой компьютера и началом атаки.

А после — на машине атакующего в памяти содержится введенная строка.

Но извлекать данные из RAM по сигнатурам — это далеко не все, что мы можем. В дампе памяти присутствуют еще те самые структуры ОС, которые позволят восстановить хронологию событий в системе перед аппаратным сбросом.
Внимательный читатель заметит, что для реализации такой атаки требуется запустить на целевом компьютере код загрузочной флешки, а это перезапишет некоторые области в памяти. Экспериментально, с помощью побайтового сравнения содержимого RAM виртуальных машин на соответствующих этапах, было выявлено, что разнообразные загрузчики затирают собой не так уж и много памяти.
Вот количество перезаписываемых байтов в RAM на разных этапах загрузки:
- bootmgr (загрузчик Windows 7, 10) — 5 157 389 байт;
- GRUB 2 (загрузчик Linux) — 8 219 883 байт;
- burg (альтернативный загрузчик Linux) — 9 599 333 байт;
- liveOS для форензики — 171 944 965 байт.
Загрузочный код из Coldboot-Tools для дампа памяти на диск расходует порядка 95 Кбайт памяти. Суммарно вся цепочка GRUB4DOS + scraper64_haltonly.bin перезапишет 820 Кбайт оперативной памяти. В то время как полный объем RAM современных компьютеров измеряется десятками гигабайт.
Тем не менее перезапись даже нескольких мегабайт в неудачном месте может нарушить важные структуры и сделать невозможным восстановление картины состояния ОС. Опытным путем на примере Windows 7 было установлено, что в первых 100 Мбайт RAM содержится не так много данных и только перезапись области 5–15 Мбайт и 105–110 Мбайт разрушает важные структуры данных, нужные для анализа состояния ОС.
На практике же выполняемый дамп памяти посредством GRUB4DOS + scraper64_haltonly.bin все же окажется пригоден для анализа. Все изменения в RAM будут происходить в самом начале, тогда как сама ОС будет размещена после первых 100 Мбайт, что практически исключит вероятность перезаписи. Энтропия дампа показывает общую картину расположения в ней данных и пустот.

Таким образом, мы расширим простой сигнатурный подход к извлечению секретов из дампа памяти до продвинутого с использованием форензики, который сможет нам многое рассказать о жертве нашей атаки.
Извлечение секретов
И здесь мы плавно переходим к форензике. Используя известные инструменты, такие как Volatility (см. Анализ дампа памяти в Volatility) или Rekall, мы можем получить большой объем данных о состоянии ОС на момент нашего вмешательства. Список процессов — это отличная демонстрация того, что мы на верном пути.

Например, мы можем найти расположение файлов реестра в RAM и извлечь оттуда хеши паролей локальных учетных записей.

Подобное можно сделать и для доменных учеток, получая пароли уже открытым текстом:
Как перезагрузить MC9000/MC9090 (warm boot, cold boot)
Горячая перезагрузка (простая)
Горячей перезагрузкой (warm boot) называется обычная перезагрузка компьютера, когда операционная система загружается заново. Для выполнения горячей перезагрузки MC9000 необходимо:
вдавить маленькую красную кнопку питания и держать примерно 5-10 сек..
как только перезагрузка начнется, кнопку следует отпустить.
дополнительные советы: вдавливайте не стесняясь, по-мужски. если вдавили плохо, то просто выключится экран — нужно будет нажать питание еще раз, чтобы включить, — и на этот раз вжать смелее.
Холодная перезагрузка (полный сброс)
Холодной перезагрузкой (cold boot) называется «совсем полная» перезагрузка компьютера, когда восстанавливаются заводские настройки терминала, а все самостоятельно установленные сверху программы стираются. Примерно равносильно переустановке операционной системы с форматированием винчестера.
1. нажать держатели батареи (железные снизу по бокам) и выдвинуть немного батарею;
2. при выдвинутой батарее:
2а. для терминалов с ручкой: одновременно вдавить (на пару секунд) и отпустить маленькую красную кнопку питания на терминале и желтую кнопку сканирования на ручке;
2б. для терминалов без ручки: одновременно вдавить (на пару секунд) и отпустить маленькую красную кнопку питания на терминале и желтую кнопку сканирования слева на корпусе.
3. защелкнуть батарейку обратно.
дополнительные советы: 1) одновременное нажатие требует ловкости, с первого раза может и не получиться. 2) холодная перезагрузка бывает полезна, чтобы заставить терминал наконец-то подключиться к ActiveSync или Центру мобильных устройств, который до этого отказывался «видеть» терминал.
Cold boot


Alternatively called a cold start, hard boot, and hard start, cold boot is the process of powering on a computer from a powered-off state. For example, when you first turn your computer on after being off for the night you are cold booting the computer.
A cold boot is never called a cool boot.
How to cold boot a computer that is running?
When a computer freezes or gets into a deadlock, it cannot be restarted (warm boot); it needs to be cold booted. However, today’s computers are designed to prevent the computer from being mistakenly turned off while it is running.
To perform a cold boot on a computer that is running, press and hold down the power button. After continuing to hold the power button down, the computer turns off after a few seconds. Once the computer is off, wait a few seconds before turning the computer back on.
Cold boot vs. warm boot
The opposite of cold booting is warm booting, which is restarting the computer that is on (is warm) without turning it off.
Related information
- How to turn on a computer.
- How does a computer work?
- Why won’t my computer turn on?
- Power supply help and support.