Pull to refresh
42
Karma
0
Rating
Максим @msuhanov

User

Подчищаем за собой: учимся удалять данные с HDD и SSD

Например CCleaner

В Windows 10 есть Storage Reserve – функция, по умолчанию включенная для системного тома (который обычно диск C:). Эта функция, помимо прочего, сокращает "видимый" объем свободного пространства в файловой системе, чтобы свободное место с точки зрения пользователя "закончилось" раньше, чем это реально происходит (это делается, чтобы операционная система могла поставить обновления, используя зарезервированную область; при этом сама зарезервированная часть свободного пространства заранее как-то не выделяется, все реализовано в банальном уменьшении "видимого" объема свободного пространства).

CCleaner такие области чистить не умеет (даже если подключить очищаемый накопитель как внешний, а не работать на "живой" системе), только cipher. А в этих областях вполне могут быть пользовательские данные.

DLP-система DeviceLock 8.3: прошёл год, Билли, а ты совсем не изменился

Ничего не забыл? Т.е. ни одна из предложенных вами атак в реальной жизни не сработает. Это вовсе не означает, что вы не сможете найти уязвимость.


Тихо и незаметно исправлены две уязвимости в загрузчике ядра Windows (winload.exe/winload.efi), которые позволяют сделать то, что было описано мной (в отношении одного малоизвестного, но все же важного компонента Windows).

Для контроля целостности с использованием TPM загрузчик ядра считает хеш от некоторых данных, затем эти же данные (без изменений) передаются ядру, которое начинает их использовать, но, внезапно, оказывается, что хеш подсчитан не тот, потому что два парсера (в загрузчике ядра и в ядре соответственно) «видят» разные данные в одном и том же буфере. В итоге значения PCR ожидаемые, а используемые данные — другие (не соответствующие хешу).

Исследование целевых атак на российские НИИ

включая ранее не встречавшийся DNS-бэкдор BackDoor.DNSep.1


Вроде бы он уже описан другой компанией.

Мастера перевоплощений: охотимся на буткиты

А то ваша логика выглядит, как будто если ты не можешь написать ИДЕАЛЬНУЮ сигнатуру, не надо писать никакую…


Простите, но конкретно по имени переменной (этой самой) уже достаточно прошлись в соответствующих дискуссиях.

Конечно, на каком-то начальном этапе вполне разумно писать сигнатуры по строкам, которые атакующему легко изменить. Но потом гораздо разумнее сделать что-то более универсальное. Есть много мануалов про написание хороших YARA-правил и Snort/Suricata-сигнатур, где этот принцип так или иначе описан.

А здесь идет 2021 год, а детектирование как будто по состоянию на 2015 год. Тем более, что под него подгоняется какое-то новое техническое решение.

Мастера перевоплощений: охотимся на буткиты

Разумеется, это хорошая причина писать плохие сигнатуры (нет). Или, быть может, кто-то название переменной поменял, но сигнатуры как раз из-за этого у кого-то не сработали?

Мастера перевоплощений: охотимся на буткиты

В данном случае подразумевалось детектирование создания файлов из UEFI-имплантов, а не всех файлов.


Я прекрасно понимаю, о чем шла речь. И потому не понимаю, как можно заявлять то, что было процитировано в моем комментарии выше. Ну и этот Ваш комментарий еще.

Предлагаемая концепция достаточно проста — создаётся некий модуль ядра, который занимается мониторингом определённых директорий (в данном случае — директории Startup).


Мониторинг определенных директорий? Хорошо, будет автозапуск через реестр.
Будет работать какой-то драйвер? Хорошо, будет более ранний запуск вредоносного драйвера. Тогда и мониторинг директорий можно будет обойти.

Хотите перехватить запуск вредоносного драйвера? Если использовать стандартные интерфейсы, то это к ELAM. Но читать данные с тома нельзя, в итоге детектирование все равно будет по урезанным сигнатурам.

Как же сравнить эталонный список с тем, что есть в томе сейчас? А никак.

Мастера перевоплощений: охотимся на буткиты

одним из вариантов детектирования создания файлов видится сохранение информации о состоянии файловой системы перед выключением или гибернацией компьютера и сравнение сохраненного состояния с состоянием после загрузки ОС


Вы это серьезно? Запущенный файл может удалить себя.

Тайны файла подкачки pagefile.sys: полезные артефакты для компьютерного криминалиста

т. е. внутри кластеров из нулевых байтов, скопированных в теневую копию из исходного файла


Fixed.

Тайны файла подкачки pagefile.sys: полезные артефакты для компьютерного криминалиста

Файл подкачки в теневой копии – штука очень опасная.

Этот файл исключается из теневого копирования на уровне драйвера (вместе с файлом гибернации и некоторыми другими файлами), поэтому в теневой копии не должно быть данных из этого файла. Но иногда они есть, в малом количестве, в частности из-за того, что драйвер теневого копирования отслеживает изменения данных в блоках по 16 KiB, а кластер файловой системы обычно имеет меньший размер (например, 4 KiB), то есть изменение одного файла может повлечь сохранение (в теневую копию) кластеров из другого файла в пределах того же блока 16 KiB. По аналогичным причинам в теневой копии может оказаться и часть свободного пространства файловой системы (количественная оценка есть в этом посте).

Возьмем образ из 2018 Lone Wolf Scenario и извлечем файл подкачки из самой старой теневой копии. В итоге видим, что размер файла – 3087007744 байта, из них в теневой копии нулевых байтов – 8192 (т. е. блоков из нулевых байтов, скопированных в теневую копию из исходного файла), байтов полезных данных (т. е. отличных от кластеров, содержащих только нулевые байты) – 8192, остальное – «отброшенные» блоки (их драйвер теневого копирования не скопировал в теневую копию, такие блоки могут возвращаться как нулевые байты или данные по исходным смещениям в текущей файловой системе, но для нас это пустое место, так сказать, потому что исходный файл подкачки мы все равно смотрим отдельно; в нашем случае, исходя из флагов в дескрипторе теневой копии, идут не исходные данные, а нулевые байты).

Как видно, в файле подкачки из теневой копии у нас даже 1% данных не набирается.

Аналогичный тест с файлом подкачки из единственной теневой копии в образе из NIST Data Leakage Case. Размер файла – 2146951168 байт, нулевых байтов – 4096, полезных данных – 4096, все остальное – данные по исходным смещениям, т. е. из текущего файла подкачки (а вот их уже можно перепутать с полезными данными). И количественно ситуация с полезными данными такая же.

Вывод: в файле подкачки из теневой копии очень мало данных. А то, что есть, можно перепутать с данными из текущего тома.

Вот, например, очень старый комментарий по поводу аналогичной ситуации со свободным пространством:
The Encase Recover Folders feature parses unallocated clusters looking for folder metadata. It seems that it found data in unallocated clusters relating to the current volume. Therefore I believe that any deleted but recoverable data within the shadow copies needs to be treated with caution.

Но это еще не конец!

Вот снимок экрана, сделанный для файла подкачки из теневой копии внутри образа NIST Data Leakage Case:

Снимок экрана
Снимок экрана

Теневая копия, как показано на снимке, создана в 2015 году. В файле подкачки внутри этой теневой копии обнаружена строка «Arsenal Image Mounter v3.0.64 Alpha», такая версия не могла существовать в 2015 году и ранее. Вопрос: откуда эта строка в файле подкачки?

Ответ
В некоторых случаях при чтении файла подкачки из теневой копии, если она подключена стандартными средствами Windows, возвращаются данные из оперативной памяти компьютера. То есть в качестве данных «с диска» внезапно выступают данные из оперативной памяти стендового компьютера.

И в этом случае на исследуемом накопителе можно найти именно то, что ищешь, хотя этого там нет.

В «Яндекс.Такси» начали вычислять социальный рейтинг пассажиров

В Яшке схема другая, после поездки пишешь жалобу на водителя, и тебе потом дают купон на 100-200 рублей. Зумеры юзают данный лайф-хак в полный рост.


Вот я жалуюсь на реальные нарушения (которые, естественно, не в каждую поездку происходят), купон на скидку приходит где-то в одном случае из пяти-шести жалоб. В остальных случаях либо шаблонный ответ с извинениями, либо ничего вообще (даже курящий во время поездки водитель «не дает» купон).

У других людей, кто намного меньше пользуется такси, купон на скидку приходит после каждой жалобы.

Реверс USB-SATA-адаптера (история одного стажера)

Аналогичный вопрос, кстати, про ATA PASS-THROUGH. Команда «hdparm --write-sector <...>» вполне может и заработать, если бит WP установлен (характерный пример: переходник AgeStar 3FBCP, который, кстати, в МВД используется как блокиратор записи в составе чемодана эксперта).

Реверс USB-SATA-адаптера (история одного стажера)

Воздействием на 45-ю ножку ASM1051 можно включать и выключать защиту от записи на HDD.


Я правильно понимаю, что меняется только бит WP, а в самом «свитче» обработки команд все остается как было?

Потому что некоторые операционные системы (например, на базе Linux) могут игнорировать бит WP при отправке команд записи в некоторых случаях. Попробуйте, например, смонтировать вот этот образ: github.com/msuhanov/articles/blob/master/misc/ext4.raw

Несколько историй из жизни JSOC CERT, или Небанальная форензика

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


Раздел «Windows Time Rules» устарел. В разделе «Program Execution» нет информации о Syscache и CIT. Кроме того, в Windows куст Amcache может включать информацию о программах, которые не исполнялись вообще.

Несколько историй из жизни JSOC CERT, или Небанальная форензика

а за основу взяли уже ставшую классической методику SANS — в оригинальной версии она достаточно высокоуровневая


И ссылка на постер от 2012 года. С тех пор, например, были найдены новые следы исполнения файлов (в Windows 7, Windows 8.1, Windows 10). Кстати, я не видел еще постеров от SANS, где были бы указаны и Syscache, и CIT.

собирать реестры со всех хостов, на которых работали эти пользователи (просто так этого не сделаешь, нужна специальная утилита для работы с диском напрямую, например, github.com/jschicht/RawCopy);


Еще важно не оставлять такие утилиты в системе, чтобы не делать подарок злоумышленникам в будущем. Также можно использовать RegSaveKeyEx (и не забыть про REG_NO_COMPRESSION). Все-таки простое открытие логического диска уже может привести к большому числу изменений в файловой системе.

Инженер ядра Microsoft обвинил проект ReactOS в копировании кода

Поскольку в оригинале было перечисление (а не набор из define) и это значение убрали, то в последующих версиях Windows (речь про XP и выше) этой константы не было даже в виде [пропущенного] числа где-то в коде.


Прошу прощения, процитированная фраза ошибочна: в оригинале не было перечислений, там все такие же наборы из define (и с выходом новой версии они были «сдвинуты», чтобы учесть убранную константу).

В остальном же все верно.

Information

Rating
Does not participate
Location
Москва и Московская обл., Россия
Works in
Registered
Activity