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