Системе не удалось очистить данные журнала транзакций возможно повреждение данных ntfs

Обновлено: 02.07.2024

Портал BleepingComputer провел серию тестов и убедился, что данная однострочная команда может быть скрыта в файлах ярлыка Windows, архивах ZIP и пакетных файлов. Таким образом, киберпреступники могли использовать различные векторы атаки, чтобы спровоцировать повреждение жесткого диска и индекса файловой системы.

«Критически недооцененная» уязвимость NTFS

В августе 2020 года, октябре 2020 года и, наконец, на этой неделе, исследователь из InfoSec Йонас Л привлек внимание к уязвимости NTFS в Windows 10, которая до сих пор не исправлена.

Эксплуатацию уязвимости можно выполнить с помощью однострочной команды, после чего мгновенно происходит повреждение жесткого диска NTFS. Система предлагает перезагрузить компьютер, чтобы восстановить поврежденные записи на диске.

Уязвимость затрагивает все последние версии операционной системы Windows 10 начиная с версии 1803. Она сохраняется в том числе и в новейшей версии 20H2.

Что еще тревожней, эксплуатация возможно даже в сеансах со стандартными учетными записями, когда пользователи обладают низкими привилегиями.

Диск можно повредить, если определенным образом попытаться получить доступ к атрибуту $i30 NTFS в папке.

Отказ от ответственности

Выполнение приведенной ниже команды на работающей системе приведет к повреждению диска и, возможно, сделает его недоступным.

Проверяйте эту команду ТОЛЬКО на виртуальной машине, которую вы можете восстановить до более раннего снимка, если диск будет поврежден

Приводим пример команды, которая приводит к повреждению диска:



Атрибут индекса NTFS или строка «$i30» представляет собой список файлов и подпапок каталога. В некоторых случаях индекс NTFS может включать удаленные файлы и папки, что удобно при восстановлении объектов во время экспертизы.

Доподлинно неизвестно, почему доступ именно к этому атрибуту с идентификатором 30 повреждает диск. Йонас отметил, что ключ реестра, который помог бы диагностировать проблему, не работает.

Я понятия не имею, почему именно эта команда приводит к повреждению индекса. Очень сложно установить истинную причину, потому что ключ реестра, который вызывает BSOD при повреждении не работает. Пускай в этом разберутся те, кто имеет доступ к исходному коду.

После запуска команды в командной строке и нажатия Enter пользователь Windows 10 получит ошибку «Файл или папка повреждены. Чтение невозможно».

Файл или папка повреждены. Чтение невозможно

Windows немедленно выведет уведомление с предложение перезагрузить компьютер и восстановить поврежденный том диска. При перезагрузке запускается утилита проверки диска Windows, которая начинает восстановление жесткого диска, как показано на видео.

Восстановление жесткого диска

После повреждения дисков Windows 10 начнет генерировать ошибки в журнале событий, указывая, что основная таблица файлов (MFT) для конкретного диска содержит поврежденную запись.


Тесты BleepingComputer показывают, что команду можно применять к любым дискам, а не только к системному диску С. При этом указанный диск будет поврежден.

Способы эксплуатации уязвимости нулевого дня

Злоумышленники могут злонамеренно использовать команду в различных демонстрационных (Proof-of-Concept) эксплойтах.

Один из способов эксплуатации даже не требует открытия файла. Для этого нужно создать файл ярлыка интернет-ссылки Windows (.url) со следующим расположением иконки: C:\:$i30:$bitmap.

Как только этот файл ярлыка загружается на ПК с Windows 10 и пользователь просматривает папку, содержащую ярлык, Проводник Windows попытается отобразить значок файла.

Для этого Проводник Windows попытается получить доступ к указанному пути иконки в фоновом режиме, тем самым повредив жесткий диск NTFS.

Затем на компьютере станут появляться уведомлении о перезагрузке для восстановления жесткого диска. Таким образом, эксплуатация произошла даже без открытия файла или двойного клика по ярлыку.

Эксплуатация через ZIP-архивы, HTML-файлы и другими методами

Злоумышленники могут проявить креативность при доставке полезной нагрузке жертве.

Хотя политика Same-origin в браузерах ограничивает атаки, обслуживаемые с удаленного сервера (например, расположенные на сервере HTML-документ, ссылающийся на file:///C:/:$i30:$bitmap), существуют нестандартные средства для обхода таких защит.

Исследователь заявляет, что для удаленного запуска этого эксплойта можно использовать другие векторы атаки, например, HTML-страницы, которые встраивают ресурсы из общих сетевых ресурсов или общих дисков со ссылками на индекс $i30. В некоторых возможно повреждение главной таблицы файлов NTFS (MFT).

В некоторых тестах BleepingComputer после того, как утилита Windows 10 chkdsk «исправила» ошибки жесткого диска при перезагрузке, содержимое файла эксплойта, в данном случае созданный ярлык Windows с путем иконки C:\:$i30:$bitmap был очищен и заменен пустыми байтами. Это значит, что файла ярлыка Windows достаточно, чтобы провести разовую атаку.

Кроме того, жертва вряд ли загрузит ярлык Windows (.url) из Интернета.

Чтобы сделать атаку более реалистичной и надежной, злоумышленники могут обменными методами заставить пользователей загрузить ZIP-архив для доставки созданного файла.

Например, злоумышленник включить вредоносный файл ярлыка в архив с большим количеством легитимных файлов. В этом случае велика вероятность не только загрузки архива, но и эксплуатации уязвимости после распаковки архива и просмотра файлов.


Если же архив не будет извлечен, то эксплойт не будет запущен.

Даже при извлечении в ходе восстановления жесткого диска будет очищен распакованный файл ярлыка Windows, но копия внутри архива сохранится. Если пользователь попытается повторно извлечь ZIP, диск будет снова поврежден.

Согласно источникам в сообществе InfoSec подобные уязвимости известны много лет, но Microsoft до сих пор их не исправила.

В ответ на запрос BleepingComputer по поводу данной уязвимости, представитель Microsoft сообщил:

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

Здравствуйте! Прошу заранее простить меня, если что не так написал - ибо новичок здесь.

Имеется 2 жёстких диска:
ST3120022A ATA Device (120 ГБ, 7200 RPM, Ultra-ATA/100) (диск C)
ST3750630AS ATA Device (698 ГБ, IDE) (диск D)
ОС - Windows 7 Максимальная
Две планки ОЗУ - одна на 2 ГБ, другая на 512 МБ

А проблема вот в чём:

С неделю назад начался железный катаклизм в системном блоке - борохлит жёсткий диск. Сначала явилось великое множество ошибок с источником atapi, код события 11, описание - Драйвер обнаружил ошибку контроллера \Device\Ide\IdePort1. Они следовали друг за другом со скоростью от несколько раз в СЕКУНДУ до раз в минуту. Затем через некоторое время (3-10 часов) в журнале событий поялялись ошибки с источником disk, код 15, описание: Доступ к устройству \Device\Harddisk1\DR1 пока невозможен. А затем появлялись предупреждения с тем же источником (disk) и кодом 51, описание: Обнаружена ошибка на устройстве \Device\Harddisk1\DR1 во время выполнения операции страничного обмена. Потом появлялся вал предупреждений с источником ntfs, код либо 50, либо 57, описание:

Не удается найти описание для идентификатора события 50 из источника Ntfs. Вызывающий данное событие компонент не установлен на этом локальном компьютере или поврежден. Установите или восстановите компонент на локальном компьютере.

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

К событию были добавлены следующие сведения:

или такое описание:

Системе не удалось очистить данные журнала транзакций. Возможно повреждение данных.

Я, естественно обращался за помощью на несколько форумов в Интернете и по советам, данным мне на них, сделал следующее:

Втыкал кабель SATA в другие разъёмы на материнской плате (всего их 4; плата: MSI 945P Neo3) - толку ноль - жёсткий диск (далее Ж/Д) вообще в системе отсутствовал.
Чтобы избавиться от зависания вытащил планку ОЗУ на 512МБ - помогло, система загрузилась нормально, ошибка atapi пропала, сделал CHKDSK на диске D, сделал дефрагментацию этого же диска. На время ошибка пропала, но потом снова вернулась вместе с ошибкой с источником ntfs. С
целью решения проблемы выключил компьютер, прочистил всё от пыли (включая слоты для ОЗУ), вставил обратно планку на 512 МБ - всё работало хорошо, даже ошибка исчезла.

Но опять на время. После первого же выключения/включения компьютера - atapi снова появлялась. Вот и сейчас так же - стоило мне что-либо поставить на скачивание, прослушать музыку, посмотреть видео (сделать любую операцию с диском D) - как ошибка снова появлялась, но её количество в журнале событий стало уже гораздо меньше.

Также я делал проверку на битые сектора при помощи HD Tune - ни на одном из Ж/Д нет битых секторов.
Проверял на вирусы - вирусов нет.

Есть предположение, что виновны следующие факторы:

Слабый БП - он всего-лишь на 240 Ватт.
Неисправность материнской платы.
Неисправность жёсткого диска ST3750630AS ATA Device (698 ГБ, IDE) (диск D)
Неисправность шлейфа.
Ошибка Windows.

Так что же это всё-таки, скажите мне? Как решить данную проблему и почему ошибки исчезают на некоторое время, а после выключения снова появляются?

Что бы это значило ?

HDD, его контроллер или дрова контроллера сбоят.

Что менялось в системе?
HDD не стучит, не подтормаживает?
RAID используется?

Исправлено: h.i.a., 28.03.08 11:36

Ежели конфигурация не менялась и дрова не обновлялись,
то скорее всего проблема непосредственно с винтом.
Но в 9 случаях из 10 это лечится
выниманием в втыканием шлейфов обратно.

Место на винте закончилось? Битый винт?


------------------
Совершенство - это не тогда, когда нельзя
ничего прибавить, а тогда, когда нечего убавить.

Исправлено: Влад Колосов, 31.03.08 15:35

Похоже, начал умирать второй жесткий диск.
В данных Smart постоянно накручиваются Raw Read Error Rate,Seek Error Rate,Hardware ECC Recovered. Такие симптомы могут быть при испорченном шлейфе, но замена ситуацию не изменила.
Данные с диска читаются, Reallocated Sector Count равен 0, то есть поверхность пока целая.
Решил не рисковать - диску уже 5 лет, сегодня пойду покупать новый.

Исправлено: h.i.a., 31.03.08 17:10

Есть еще вариант - поискать утилиту производителя, которой можно отформатировать на "низком уровне". Я так один винт вылечил. Было в паре два винта Raid 0, но не выдержали дефрагментации
Один из них перестал форматироваться: находить сектора, ошибки в разных местах вылазили. Попробовал формат - помогло, до сих пор работает.
Но лучше новый, конечно Да и быстрее они сейчас.


------------------
Совершенство - это не тогда, когда нельзя
ничего прибавить, а тогда, когда нечего убавить.

Взял второй WD 320 Raid edition. Быстро и надежно.

А в чем заключается его RAIDэдишность?
Или это очередной рекламный ход? А в чем заключается его RAIDэдишность?
Или это очередной рекламный ход?

Повышенная отказоустойчивость - пятилетняя гарантия производителя + какие-то "фичи" для RAID'а

Тип события: Ошибка
Источник события: PlugPlayManager
Категория события: Отсутствует
Код события: 12
Дата: 24.07.2014
Время: 13:03:52
Пользователь: Н/Д
Компьютер: Имя сервера
Описание:
Устройство Имя устройства было отключено из системы без предварительной подготовки.

Тип события: Уведомление
Источник события: Application Popup
Категория события: Отсутствует
Код события: 26
Дата: 24.07.2014
Время: 13:03:49
Пользователь: Н/Д
Компьютер: Имя сервера
Описание:
Всплывающее окно приложения: Windows - Ошибка отложенной записи : Не удалось сохранить все данные файла D:\$Mft. Часть данных потеряна. Эта ошибка может быть вызвана отказом оборудования компьютера или сетевого подключения. Попытайтесь сохранить этот файл в другом месте.

Тип события: Предупреждение
Источник события: Ntfs
Категория события: Отсутствует
Код события: 50
Дата: 24.07.2014
Время: 13:03:49
Пользователь: Н/Д
Компьютер: Имя сервера
Описание:
Не удалось сохранить все данные файла . Часть данных потеряна. Эта ошибка может быть вызвана отказом оборудования компьютера или сетевого подключения. Попытайтесь сохранить этот файл в другом месте.

Тип события: Предупреждение
Источник события: Disk
Категория события: Отсутствует
Код события: 51
Дата: 24.07.2014
Время: 13:03:51
Пользователь: Н/Д
Компьютер: Имя сервера
Описание:
Обнаружена ошибка на устройстве \Device\Harddisk1 во время выполнения операции страничного обмена.

Тип события: Ошибка
Источник события: Ntfs
Категория события: Диск
Код события: 55
Дата: 24.07.2014
Время: 13:03:49
Пользователь: Н/Д
Компьютер: Имя сервера
Описание:
Структура файловой системы на диск повреждена и не может использоваться. Запустите программу CHKDSK на томе D:.

Тип события: Предупреждение
Источник события: Ftdisk
Категория события: Диск
Код события: 57
Дата: 24.07.2014
Время: 13:03:53
Пользователь: Н/Д
Компьютер: Имя сервера
Описание:
Системе не удалось очистить данные журнала транзакций. Возможны повреждения данных.

Тип события: Предупреждение
Источник события: Server
Категория события: Отсутствует
Код события: 2511
Дата: 24.07.2014
Время: 13:38:41
Пользователь: Н/Д
Компьютер: Имя сервера
Описание:
Служба сервера не смогла воссоздать общий ресурс "Имя шары", так как каталог "Имя папки" более не существует. Запустите команду "net share Имя шары /delete" для удаления этого общего ресурса или восстановите каталог "Имя папки".

Причем ошибки 26, 50 и 51 возникают постоянно, буквально замусоривая журнал. Понятно, что возникли проблемы с отложенной записью. Проще всего отключить отложенную запись, хотя это скажется на проблемах с производительностью, в случае высоконагруженного сервера. Как хорошо, что это не мой случай! В диспечере устройств нахожу указанный диск, вызываю его свойства, перехожу на вкладку "Политика" и снимаю галку "Разрешить кеширование записи на диск". Все, готово. Но потом как-нибудь на досуге переустановлю драйвера контроллера диска.

И еще - реализовался тут закон парных случаев. На другой машине случилась такая же проблема, в журнале событий те же ошибки, но отключение кэширования записи не помогло. Выяснилось, что на жестком диске есть битые блоки. Очень битые, такие что при попытки прочитать их отключался винчестер. Понятно, что проблемы исчезли после замены винчестера.

Читайте также: