определение момента подключения съемного носителя . Delphi
Меня достали вирусы на флеш-носителях на работе.
Т.е. стоит задача - в момнт подключения съемного носителя определить наличие на нем в корне autorun.inf. Периодический опрос существующих дисков (раз в полсекунды) смотриться мне как-то не очень корректным. Видел комопоненты JEDI позволяющие определить список устройств, но это тоже не совсем то. Можете посоветовать к-л способ без периодического опроса сужествующих дисков в системе? (Delphi)
Спасибо.
Надоело быть жертвой? Стань профи по информационной безопасности, получай самую свежую информацию об угрозах и средствах защиты от ведущего российского аналитического центра Anti-Malware.ru:
procedure DisableAutorun;
begin
// Блокировка автозапуска (0x1 + 0x4 + 0x8 + 0x10 + 0x40 + 0x80 - отключили все типы, кроме CD)
RegKeyIntParamWrite('HKLM','SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer','NoDriveTypeAutoRun', 221);
// Блокировка автозапуска (0x4) - заблокировали автозапуск на C:
RegKeyIntParamWrite('HKLM','SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer','NoDriveAutoRun', 4);
end;
begin
DisableAutorun;
end.
Как легко заметить, это несложно реализовать в своей программе ... и подогнать под свои задачи.
А блокировку в динамике на Delphi сделать можно, но коряво - придется написать DLL, внедрить ее во все процессы и хукнуть функции для работы с файлами - и блокировать доступ к autorun.inf... Или прицельное внедрение хуков в процесс, отвечающий за отработку автозапуска. Но хук в UserMode коряв ... в ядре на C это делается за десяток минут перехватом скажем NtCreateFile.
Однако фокус с политиками проще всего и ограничение реализуется самой системой.
Насчет отключения автозапуска - конечно это правильно, но автоубиение виря на флешках вместе с autorun.inf - не плохая идея, т.к. флешки сотрудники потом несут домой, в другие организации и т.д. - некоторые не нажимают в антивирусе действие удалить вирус и т.д. Знакомый фотограф мне рассказывал, что у них на работе все домой утаскивают фотоаппараты с вирями на картах памяти.
Если у меня автозапуск отключен, то у другого человека когда к нему придут с флешкой он может быть включен или на компьютере не будет стоять антивируса с актуальным состоянием вирусных баз.
Спасибо, буду разбираться сам, если уже совсем ничего не получиться - обращусь еще раз.
Добавлено через 20 минут
Сообщение от maXmo
и что? Может, он уже запустился, пока ты там с автораном кувыркаешься?
В случае с флешкой для запуска того что прописано в autorun.inf надо кликнуть по соответствующему диску в "Мой компьютер", помоем для сменных носителей мнгновенный автозапуск приложения, прописанного в autorun.inf при подключении как для CD-дисков невозможен.
Последний раз редактировалось Mad Scientist; 15.11.2007 в 16:54.
Причина: Добавлено
В случае с флешкой для запуска того что прописано в autorun.inf надо кликнуть по соответствующему диску в "Мой компьютер", помоем для сменных носителей мнгновенный автозапуск приложения, прописанного в autorun.inf при подключении как для CD-дисков невозможен.
Если решать задачу перехватом функций, то перехватчик ограничит доступ к файлу в любом случае ... И сможет в свою очередь принять меры
Меня достали вирусы на флеш-носителях на работе.
Т.е. стоит задача - в момнт подключения съемного носителя определить наличие на нем в корне autorun.inf. Периодический опрос существующих дисков (раз в полсекунды) смотриться мне как-то не очень корректным. Видел комопоненты JEDI позволяющие определить список устройств, но это тоже не совсем то. Можете посоветовать к-л способ без периодического опроса сужествующих дисков в системе? (Delphi)
Спасибо.
А почему бы не поручить эту работу антивирусу, который бы при попытке запуска чего-либо с флеши проверял бы стартующее и убивал бы зловреда? Тогда и опрос дисков не понадобится.
Хорошо-бы поручить эту работу антивирусу, но иногда для решения некоторых вопросов приходится или приостанавливать работу антивируса или вовсе отключать его. Тут, по закону подлости, кто-то из сотрудников подходит и просит, что-либо сбросить на флешку или посмотреть документ на своём компе. И ты, как непонятно кто, вставляешь флешку и, по закону подлости ха-ха, к тебе проникает вирус. Поэтому вопрос остановки автозагрузки весьма актуален.
Хорошо-бы поручить эту работу антивирусу, но иногда для решения некоторых вопросов приходится или приостанавливать работу антивируса или вовсе отключать его. Тут, по закону подлости, кто-то из сотрудников подходит и просит, что-либо сбросить на флешку или посмотреть документ на своём компе. И ты, как непонятно кто, вставляешь флешку и, по закону подлости ха-ха, к тебе проникает вирус. Поэтому вопрос остановки автозагрузки весьма актуален.
Извините но не нужно нести бред... относительно того что нужно работу антивируса останавливать...ради того чтоб чтото скинуть с флешки или на нее! Вы уж определитесь что вам необходимо! Или чтоб был расадник или пару секунд подождать! Если жестковато то прошу прощение обидеть не хотел!
При клике по диску с сменным носителем в проводнике все равно запускается то приложение, что прописано в autorun.inf
Насколько я понимаю, запреты в реестре действуют только для автозапуска, т.е. запуска какого-либо приложения при подключени флеши. А действие Автозапуск из контекстного меню остается действием по умолчанию, о чем сказал pig. Следовательно, для полного отключения нужно изменить действие по умолчанию для флеши на Открыть.
Последний раз редактировалось borka; 07.12.2007 в 18:39.
По-умолчанию стоит открыть.
Так как в autorun.inf написано
shell\open=Открыть
shell\open\Command= Autorun.exe
то при клике по этому съемному диску ползователь запустит Autorun.exe.
Это можно как-либо убрать используя средства администрации Windows?
Народ все равно с тоталкоммандером работать не будет, т.к. привыкли к проводнику.