Создать запись в журнале событий, когда файл открыт или скопирован с CD/DVD
Мне было поручено настроить групповую политику / записать службу.NET Windows, которая будет добавлять записи в журнал событий Windows всякий раз, когда пользователь открывает или копирует файл / файлы с любого оптического носителя (не заинтересованного в съемных USB-накопителях).
Моей первой попыткой было использовать C# и получить список процессов и посмотреть, какие файлы у них были открыты и начался ли путь с буквы оптического привода. Это не работает, в то время как некоторые программы поддерживают открытый файл (например, Acrobat Reader), а другие - нет (Internet Explorer, Notepad). Моя вторая попытка состояла в том, чтобы включить аудит доступа к объектам вместе с настройкой аудита безопасности доступа к файлам на дисководе... что вы не можете сделать, потому что в файловых системах только для чтения нет защиты. Моей последней попыткой было использование аудита групповой политики съемных носителей, но при этом не добавляются записи журнала для оптических носителей (я тестировал USB-накопитель и создавал записи), кроме того, он доступен только в Windows 8+ и Мне нужно поддерживать Windows 7.
Итак, у меня нет идей, и я обращаюсь к экспертам, чтобы посмотреть, есть ли у вас какие-либо идеи о том, как я могу решить эту проблему.
2 ответа
Поскольку в Windows нет хуков файловой системы, как в большинстве UNIX, но авторы вредоносных программ каким-то образом знали, как скрыться, подключаясь к системным вызовам (так называемым руткитам), вы можете посмотреть, как работают руткиты.
Вы можете написать библиотеку, которая подключается к файлу open syscall и генерировать там записи журнала событий. Затем напишите программу для автоматической загрузки этой библиотеки в систему.
Бонус, если вы можете сделать весь этот механизм регистрации скрытым, настоящий стиль руткита.
Я подозреваю, что это должно быть реализовано на более низком уровне драйверов. Я подозреваю, что для этого есть коммерческое программное обеспечение.
Оптические приводы обычно используют FAT(32) в качестве файловой системы, которая, как вы уже заметили, не поддерживает аудит. Конечно, вы могли бы проверить локальную файловую систему, но это не позволило бы вам отличить доступ на запись от оптического привода.
Я бы установил Process Monitor из SysInternals, чтобы увидеть, если он сообщает о передаче файлов с оптического привода - он должен. Я бы дал вам отправную точку.
Лично я не думаю, что это легкая попытка, так как вам нужно установить драйвер и взаимодействовать с ним.
Может быть, у кого-то есть другая идея.