Пользователь
0,0
рейтинг
5 марта 2009 в 17:55

Разработка → AUTOSTOP — скрипт для защиты флешки от autorun-вирусов

Предлагаю свой вариант борьбы с autorun-вирусами на флешках, т.к. существующие на сегодняшний день решения не устраивают меня по нескольким причинам.

Основные существующие способы можно разделить на 3 категории:
  • Установка на компьютере резидентного монитора, который при подключении флешки проверяет наличие файла autorun.inf, и при наличии такового принимает меры. Минус — привязка к конкретной машине
  • Защита флешки методом прав NTFS — отличный железобетонный способ, но его преимущества являются одновременно и его недостатками — NTFS не всегда применима (скажем в случае Win9x, или конкретной модели автомагнитолы или DVD-плеера, читающих только FAT).
  • Метод создания на флешке одноименного каталога AUTORUN.INF. Из минусов можно отметить то, что новые вирусы научились удалять этот каталог, или переименовывать в случае невозможности удаления

Именно третий метод был взят мной за основу, и доработан. Внешне все выглядит вот так:

Индикация

Принцип работы скрипта заключается в следующем:

На флешке создаются 2 каталога: AUTORUN.INF и AUTOSTOP. Каждый из них защищается от удаления созданием подкаталогов с «некорректными» именами:

mkdir "\\?\%~d0\AUTORUN.INF\LPT3"
mkdir "\\?\%~d0\AUTORUN.INF\LPT3\.."


С попыткой же переименовывания каталога AUTORUN.INF вирусом я борюсь следующим образом: в упомянутом каталоге создается файл desktop.ini следующего содержания:

[.ShellClassInfo]
IconFile="..\AUTOSTOP\disable.ico"
IconIndex=0
InfoTip="Антивирусный скрипт AUTOSTOP"


Пиктограмма disable.ico кладется в каталог AUTOSTOP (в самом же каталоге AUTOSTOP создается desktop.ini аналогичного содержания, со ссылкой на пиктограмму enable.ini, лежащую в каталоге AUTORUN.INF).

Таким образом у двух упомянутых каталогов получается «круговая порука»: при переименовывании папки AUTORUN.INF, пиктограмма-индикатор на папке AUTOSTOP исчезает (см. рисунок), что свидетельствует о заражении флешки autorun-вирусом (т.е. о наличии на флешке файла autorun.inf) и о том, что компьютер, к которому флешка подключена в данный момент, заражен.

Для объективности, из неудобств отмечу необходимость нажатия F5 в проводнике после подключения флешки, и перед ее извлечением (для обновления содержимого флешки, и, следовательно, состояния индикаторов).

Страница скрипта в моем ЖЖ — mechanicuss.livejournal.com/195192.html, ссылка на скачивание там же (прямого линка не даю, т.к. регулярно дорабатываю и обновляю скрипт, добавляя в имя файла номер версии).

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


— — — — — — — — — — — — — — — — — — — — — — — — — —

UPD:


Благодаря идее FloppyFormator, заключающейся в использовании одного каталога и абсолютного пути к иконке (IconFile="..\AUTORUN.INF\minus.ico), усовершенствована индикация, и написана версия 2.1 скрипта. Теперь все выглядит вот так — намного проще и удобнее:



Также хочу искренне поблагодарить dreamhelg за инвайт, и посвятить версию 2.1 ей (дата выхода — 8 марта :)

Друзья, спасибо вам за внимание к скрипту и идеи по его доработке — благодаря этому эффект от применения скрипта возрастает.
Сергей @Mechanicus
карма
16,0
рейтинг 0,0
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Реклама

Самое читаемое Разработка

Комментарии (102)

  • +5
    Да уж, в оригинальности вам не откажешь :) Полезность, конечно, сомнительна, но сама идея! :)
    • +5
      В реализации идеи помог принцип «Мы не можем изменить направление ветра, но мы можем подставить ему свои паруса» :)
  • +2
    Прикольно :)
    А еще можно флешки вставлять с зажатым шифтом, чтобы авторан не срабатывал)
    • +4
      А ещё можно отключить авторан в панели управления.
      • +1
        Тоже вариант, но вдруг люди автораном на дисках пользуются :)
        • +4
          Можно отключить авторан выборочно — на дисках оставить. Но здесь тоже «против» больше чем «за»: мне когда-то принесли mp3-шный диск Жань-Мишеля Жарре, autorun.inf которого запускал изрядно нашумевший в свое время Win.CIH.
        • +2
          AVZ отключает авторан на все. Это для тех, кто не может ручками отключить.
          • 0
            Точно — про AVZ я совсем забыл упомянуть, а ведь он замечательно это умеет:
            Файл -> Мастер поиска и устранения проблем -> Все проблемы
        • 0
          Мне как-то принесли диск, говорят, что после этого диска на диске D все исчезает, оказалось, что в autorun.inf была строчка open=format D: /x /q. И что самое главное, они, перед тем как спросить меня, попробовали открыть это диск на 2-х компах из нашего парка компутеров, а на D: лежали бэкапы. Так что теперь я отключаю автозапуск везде, где только могу.
      • 0
        Да, немало способов есть. Из «родных» — панель управления, замечательная майкрософтовская утилита Tweak UI из набора «PowerToys for Windows XP» — www.microsoft.com/windowsxp/Downloads/powertoys/Xppowertoys.mspx, либо напрямую через реестр.
    • +2
      Таким образом (нажимая шифт) можно уберечь компьютер от заражения с флешки. Хотя лучше для этого использовать «пушки побольше»: отключить все виды автозапуска через реестр примерно следующим образом:

      reg add «HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\CancelAutoplay\Files» /v "*.*" /d "" /f
      reg add «HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\IniFileMapping\Autorun.inf» /ve /d "@SYS:DoesNotExist" /f
      reg add «HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\policies\Explorer» /v NoDriveTypeAutoRun /t REG_DWORD /d 255 /f
      reg add «HKLM\SYSTEM\CurrentControlSet\Services\Cdrom» /v AutoRun /t REG_DWORD /d 0 /f

      и версия 2.0.1 моего скрипта именно так и делает. Но это, так сказать, дополнительные удобства.

      Изначально же скрипт призван защить не компьютер, а саму флешку, т.к. решений для защиты компьютера (в часности от autorun-вирусов) придумано немало всего (антивирусы, специализированные программы для отлова autorun.inf и т.п.) — и это является одновременно и преимуществом (если эта защита установлена), так и недостатком (если на компьютере никакой подобной защиты нет).

      А вот защита флешки — это та превентивная мера, с помощью которой можно избежать многих неприятностей.
      • 0
        У меня получилось чуть короче в моём скрипте
        REGEDIT4
        [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\IniFileMapping\Autorun.inf]
        @="@SYS :DoesNotExist"
        • +1
          Это 3-я строка из приведенных мною 4-х. Эта строка, пожалуй, имеет наибольшее значение, но все же применив все 4, Вы более полно закроете дыру. Значения каждого параметра следующие (пронумерую в порядке, соответствующем вышеприведенным 4-м строкам):

          1. В CancelAutoplay\Files находятся текстовые параметры, содержащие имена файлов, отыскав которые на носиеле встроенный AutoRun запускаться не станет и позволит запустить носитель через autorun.inf. Добавляем строковый параметр следующего содержания: *.* (все файлы).

          2. @SYS:DoesNotExist говорит explorer'у чтобы он не читал параметры запуска из файла Autorun.inf, а читал их из ветки реестра HKEY_LOCAL_MACHINE\SOFTWARE\DoesNotExist, которая не существует. В итоге если внешний носитель содержит файл Autorun.inf — то при подключении носителя к компьютеру, Autorun.inf не запускается. Более того — не запускается он и при двойном клике по букве диска этого носителя в проводнике.

          3. С помощью NoDriveAutoRun запрещается загрузка с определенных приводов по их буквенному обозначению, а NoDriveTypeAutoRun запрещает загрузку с определенных приводов по их типу. Поскольку нам авторан вообще не нужен, используем второе.

          4. Cdrom — полное отключение всякой поддержки автозапуска компакт-дисков (даже ручной).
      • 0
        Ой прочитал вашу страницу...)))
        • 0
          Мне не хотелось здесь перегружать пост информацией :)
          Но коль уж Вы спросили — написал.
          Теперь могу добавить что скрипт помимо защиты флешки, защищает также и компьютер путем полного отключения автозапуска.
          • 0
            Теперь буду следить за вашей версией скрипта. )
            • 0
              Спасибо. Как раз на днях буду писать новую версию по рекомендациям FloppyFormator.
    • +1
      клавиатура на столе, кейс под столом задвинут в угол, одновременно вставлять флешку и держать шифт длины рук не хватит :))
      • 0
        Реально бывал несколько раз в ситуациях (давно дело было, когда не знали еще других методов защиты от автозапуска, кроме как нажатие шифта) когда прошу пользователя «крепко нажать шифт и не отпускать до моей команды!», сам же лезу далеко под стол, подключаю флешку на задней панели системного блока, вылезаю из под стола, смотрю на экран, и после того как флешка определилась и авторан не запустился, командую: «отпускай». Затем оба облегченно вздыхаем :)
    • 0
      Шифт ещё не гарантирует безопасность, если флешку потом открыть проводником.
  • 0
    Прикольно, только мне не понятно, в таком случае, почему Вы просто не сделали так:
    Создаёте папку с! абсолютно! любым именем на флэшке, внутрь которой помещаете desktop.ini с ссылкой на пиктограмму в папке autorun.inf. И если вдруг у данной папки изменится вид от заданного пиктограммой — то это уже будет означать что на флэшке поселился зверь. А ещё лучше сделать так — поместить autorun.inf в корень флэшки и Вам даже не придётся открывать флэшку в проводнике для того, чтобы узнать есть ли на ней вирус или нет.
    • +1
      насчет autorun.inf в корне — конечно же я хотел сказать, что и ещё при этом записать туда ссылку на пиктограмму в папке autorun.inf, чтобы у самой флэшки изменился вид на эту пиктограмму.
      • +1
        Да, к сожалению я тут поторопился со вторым выводом… так не получится, но второй вариант в силе :-))
        • +3
          Да что такое!? Прошу прощения :-) первый вариант в силе.
    • 0
      Ваш вариант — это и есть частный случай моего способа: папка с «абсолютно любым» именем AUTOSTOP является индикатором наличия на флешке каталога AUTORUN.INF. А «круговая порука» (индикаторы на обоих папках) введена мною в силу большей юзабилити такого варианта (в свое время перелопатил неало литературы по дизайну интерфейсов). Расположенные один под другим названия каталогов (имя AUTOSTOP выбрано не случайно — при дефоултной сортировке по именам в окне проводника оно будет находиться рядом с каталогом AUTORUN.INF) вместе с индикаторами при одном взгляде визуально скажут пользователю следующее:

      — AUTORUN.INF отключен (красная лампочка) — т.е. автозапуск не произойдет
      — AUTOSTOP функционирует нормально (зеленая лампочка) — т.е. флешка защищена одноименным скриптом.

      Насчет файла autorun.inf со ссылкой на пиктограмму в каталоге AUTORUN.INF — вы уже сами обнаружили невозможность такого способа — на этом и основана защита флешки — невозможно создать одновременно файл и каталог с одним и тем же именем (шаманство с HEX-редактором не рассматриваем).

      А вот если, пиктограмму для файла autorun.inf положить в любое другое место — то теоретически возможен такой вариант индикации наличия на флешке _вашего_ (т.е. заведомо невредоносного) файла autorun.inf. Но, к сожалению, только теоретически — такой способ пришел мне в голову больше года тому назад — и буквально через пару дней с треском провалился: вирус, унюхавший на флешке чистый файл autorun.inf просто дописал туда пару строчек своего кода, сделав файл autorun.inf вредоносным.
      • 0
        Да… судя по иллюстрации, которую Вы подготовили я и даже не имею и капли сомнения в том, что Вы действительно «в свое время перелопатил неало литературы по дизайну интерфейсов»
        :-)
        А способ — хороший, альтернативы — это хорошо.
        • 0
          Да, если занимаешься чем-то увлеченно — то стараешься сделать его максимально хорошо. А тема эта меня очень увлекла: и по работе нужна (пользователи ранее постоянно вирусы на флешках таскали), и гимнастика для ума отличная :)
          • +1
            Да, кстати, пользуясь случаем хочу заметить, что это защита только Вашей флэшки. А если ко мне пришли гости, которые, как Вы понимаете не обязательно IT-сознательные люди и давай втыкать свои флэшки в мой комп с целью… да с любой целью, например фотки слить. И они конечно же не хотят напрягаться и делать «какие-то там папки с какими-то там фйлами внутри...». В итоге вирусы таки проникают на мой комп. В таком случае Активный Монитор был-бы предпочтительней, не буду говорить какой… :-))
            • +1
              Согласен — при серьезном подходе защита должна быть комплексной.
              Кстати, посмотрите вот эту программу — Flash Guard. Программа аналогичного назначения, с очень продуманными функциями. Возможно что-то пригодится для Вашей разработки.
              • 0
                Да кое-какие есть интересные функции.
                оффтоп: Оформление этого сайта — необычное, мне понравилось, Вы не находите?
                • 0
                  Сам ее использую, в частности ф-ция «Информировать пользователя» очень хороша (не зря же говорят — «кто предупрежден — тот вооружен»).

                  По дизайну davisr.com совершенно согласен — отличный образец сугубо технического дизайна: ничего лишнего, отвлекающего внимание, акцент только на контент.
      • 0
        а если вирус не заменяет autorun.inf а дописывает в него строчки?
        т.е. иконка остается но появляются еще строки на запуск вируса?
        • 0
          Именно это я и имел в виду — иконка на файле autorun.inf осталась, а в самом файле добавились «строки на запуск вируса».
          • 0
            Пардон, иконка конечно же не «на файле autorun.inf », а на флешке.
            • 0
              кажется я понял
              У Вас же папки.
              А что мешает вирусу при имеющейся папке autorun.inf создать файл autorun.inf?
              щас еще раз перечитаю ваш пост, может и сам пойму…
              • 0
                и еще вопрос это как нибудь спасает от распростанения вируса или это только сигнализирует о наличии вируса на флешке.
                • +1
                  > что мешает вирусу при имеющейся папке autorun.inf создать файл autorun.inf?

                  Свойства файловой системы мешают — на этом и основывается этот способ защиты.
                  Конечно можно взять HEX-редактор и попробовать создать с его помощью и файл и папку с одинаковым именем — но неизвестно как файловая система на это отреагирует.

                  > спасает от распростанения вируса или это только сигнализирует

                  И то и другое: если вирус не умеет переименовывать каталог AUTORUN.INF — тогда мой способ спасает от записи на флешку вредоносного файла autorun.inf (здесь оговорюсь что другие вирусные файлы на флешку могут быть записаны — но они не так опасны в контексте рассматриваемого вопроса как autorun.inf). Если же попадется новый autorun-вирус, который умеет переименовывать каталог AUTORUN.INF — тогда способ не спасает, но сигнализирует, что тоже само по себе неплохо.

      • +2
        А почему бы не прописать для каталога AUTORUN.INF абсолютный путь к иконке, которая лежит в нём же?
        • +1
          Конгениально!
          Попробовал — работает:

          [.ShellClassInfo]
          IconFile="..\AUTORUN.INF\enable.ico"


          Огромное спасибо за идею! В следующей версии непременно переделаю. Вот уж действительно — на всякого мудреца довольно простоты :)
          • 0
            Две точки в начале пути даже можно убрать :)
            • 0
              Точно! Спасибо еще раз!
              • 0
                У меня теперь вот какой вопрос: очень здорово что есть возможность технически сделать так что для работы скрипта можно оставить только один каталог — AUTORUN.INF (и принцип работы так нагляднее — при переименовывании, или снятии атрибута «скрытый» иконка теперь будет исчезать именно с этого каталога). Но может все же оставить и второй каталог (со строкой IconFile=«icon.ico») — чтобы иконка на нем была всегда?

                Объясню ход мысли: если иконка с каталога AUTORUN.INF исчезла, и все папки отображаются в дефолтном стиле — пользователь может глянуть на них мельком, и просто на автомате не обратить внимания что что-то произошло (видит же он каждый день такие же папки по многу раз). А так бы второй индикатор, оставшийся гореть в одиночестве, показал бы что что-то не в порядке.

                Не зря же, например на системном блоке 2 индикатора (когда не горит индикатор HDD, мы можем взглянуть на системный блок, и увидев горящий индикатор Power, убедиться что ПК включен). Или на тесте для проверки беременности 2 полоски (одна индикаторная, вторая — контрольная, чтобы дать понять что тест вообще работоспособен).

                Или это я слишком зацикливаюсь на своей изначальной идее с 2 индикаторами?

                Как будет нагляднее?
                • 0
                  Поэкспериментировал — похоже что все же зацикливался на 2-х индикаторах :)
                  Следующую версию сделаю с одним.
                  • +2
                    да и тем более что человеку все равно нужно сознательно нажаль ф5 — врядли он при этом не заметит исчезновения маячка… =)
                    • 0
                      Логично! Спасибо — я упускал этот момент в своих рассуждениях.
  • НЛО прилетело и опубликовало эту надпись здесь
    • 0
      Я Вам искренне желаю, чтобы к Вам и в дальнейшем не садилась ни какая зараза.
      Я Вам прямо таки завидую… :-)
    • 0
      Просто не сталкивались с новыми autorun-вирусами.

      Я подозревал что рано или поздно они научатся переименовывать каталог AUTORUN.INF, но, как говорится, пока гром не грянет. Благо у меня в ЖЖ на странице, посвященной скрипту, пользователи отписались что есть уже такие вирусы (например Win32.HLLW.Autoruner.1018). Именно это и побудило меня писать 2-ую версию скрипта (с индикаторами).
    • 0
      Папка AUTORUN.INF создана для того чтобы вирь не смог открыть ее для записи как файл и вылетел с ошибкой «невозможно открыть объект на запись»
      • 0
        О если бы вирусы действительно «вылетали» на такой ошибке — это было бы замечательно.
  • 0
    А что если на флешке сунуть в автозапуск собственную прогу, которая тут же откроет autorun.inf и desktop.ini на запись и не будет отпускать? Ни удалить, ни изменить, ни переименовать эти файлы уже не выйдет. Если кто сомневается — попробуйте что-нибудь сделать с файлом, открытым например в Word или Excel.
    В вирус придется встраивать функционал Unlocker :)
    • 0
      Была и такая мысль. Но думается мне, что это направление бесперспективное.
      Буквально на днях в соответствующей ветке на ru-board (см. сообщения пользователя goodbro) тоже был предложен такой вариант. Но все упирается в то, что на компьютере в обязательном порядке должен быть включен автозапуск — а это, на сегодняшний день, встречается все реже.
      • +3
        С достаточно большой вероятностью компьютеры без автозапуска не заражены Autorun-вирусами :)
  • 0
    Буквально только что заметил одну особенность.

    После подключения флешки к зараженному компьютеру, исчез красный индикатор с каталога AUTORUN.INF. Проверил — содержимое каталога: файлы desktop.ini и enable.ico на месте, каталог AUTORUN.INF не переименован (в противном случае исчез бы зеленый индикатор с каталога AUTOSTOP). Оказалось что снят атрибут «системный» с каталога AUTORUN.INF — а в этом случае файл desktop.ini не задействуется, и своя пиктограмма на папке не показывается.

    Таким образом перечисленным мной на рисунке случаям добавился еще один: каталог AUTORUN.INF не переименован, но индикатор с него исчез — верный признак вируса.
    • 0
      Хм… Согласен с минусом: нельзя так однозначно сказать «верный признак вируса». Грамотнее — «возможно флешка заражена».
  • 0
    предлагаю свой вариант — запретить автозапуск для жёстких дисков. Можно отформатировать NTFS и снять права на запись на autorun.inf (или вообще на корневую папку) для всех (права на изменеие прав оставить!) — тогда ни на одном компьютере ни один вирус не сможет модифицировать ваш autorun.inf.
    • 0
      опередили :)
    • 0
      Такой способ уже описан здесь в посте Защита флэшки от Autorun-вирусов — только там речь идет о флешках, но и для жестких дисков он вполне подходит в качестве превентивной меры.
  • 0
    Ну незнаю, самый лучший способ, который я нашёл здесь, это закрыть доступ к записи в корневой каталог раздела, правда я не знаю насколько это возможно в FAT.

    в любом случае открыв флешку например FARом можно посмотреть содержимое AUTORUN.INF
    хотя такой способ намного проще :)
    • 0
      Кстати, пишут что и в FAT это тоже возможно: Ограничение количества элементов корневого каталога в FAT , см. сообщение пользователя vjunk. Правда эта процедура выполняется с флешкой из под Линукса. Суть процедуры следующая:
      В файловой системе FAT количество элементов корневого каталога ограничено и задаётся в момент форматирования, причём файлы с длинными именами занимают несколько элементов каталога. Создав корневой каталог минимальной длины (16 элементов) и заняв почти все их длинным именем файла (160 символов X) оставшиеся занимаем папкой «Documents». Больше в корневой каталог ничего не поместится.
  • +1
    Заходишь в gpedit.msc и запрещаешь авторан с любых носителей — проблема исчезает сама собой.
    • 0
      И чего ты добъешься, подключив эту флешку к _другому_ компу с вирусом? Темы не об этом.
      • 0
        У моей «гостевой» флешки есть переключатель на RO, вирусы мне не страшны ;)
        • 0
          Почитайте чуть ниже о надежности флешки с таким переключателем.
  • 0
    Кончечно, автор разработал веселый и универсальный способ и нарисовал красивые картинки.

    Аргументы у автора статьи против ntfs я считаю смешными. Поднимите руки, у кого win9.X?

    Есть еще программа anti_autorun весом 100 кб, которую можно запускать прямо с флешки и лечить не только ее но и комп.
    • 0
      Автор правильно написал про ntfs. Вчитайтесь. Я пробовал форматировать флешку в ntfs — в автомагнитоле она поле это не читалась.
      • +1
        Спасибо за подтверждение моих выкладок. Для того и пишется скрипт чтобы быть полезным в том случае, где другие способы по какой-то причине не подходят.
    • +1
      Как сказано выше, способ с правами NTFS на самом деле «непробиваемый». Но как сказано там же, любая альтернатива — это плюс.
      • 0
        а что «непробиваемый»-то?
        если вирус на компе есть, он может и права изменить и себя записать и права обратно выставить
        если бы я писал авторан-вирус, то я бы сперва поизучал все возможные защиты от таких вирусов :)
        • 0
          Все относительно, как Вы понимаете. В данном случае «непробиваемый» = наиболее надежный из существующих.

          Меня в плане оносительности заставил в свое время очень сильно задуматься вот какой случай. Принято считать что самая-пресамая надежная защита для флешки, которая не обходится — это флешка с переключателем, блокирующим запись, или кард-ридер с картой памяти, на которой тоже есть такой перключатель. Как бы не так!

          В фотоаппарате жены (Canon А610) нет возможности показа индикатора заряда батареи. Нашел альтернаивную прошивку, имеющую такую функцию. Записал ее на карту памяти. В инструкции к прошивке говорися, что для того, чтобы она грузилась автоматом (а не руками запускалась после включения фотоаппарата), необходимо переключатель на каре памяти перевести в положение «Заблокировано». Я несколько раз перечитал этот пункт — уж не ошибся ли. Нет — так и написано русским по белому. Ставлю переключаель на «Lock», заряжаю карту в фотоаппарат, предчувствуя что сейчас он выругается о невозможности записи, и… И ничего такого не происходит — все снятые кадры прекрасно сохраняются на карnу памяти, а неудачные кадры без проблем можно удалить. Вот тут-то я прозрел.
          • 0
            Не экономьте на картах памяти — пара лишних долларов погоду не сделают. Пользуйтесь носителями проверенных производителей, купленных у надежных поставщиков — информация бесценна
  • –2
    давно юзаю (и ставлю всем знакомым) версию 1.х, надо попробовать 2.х
    СПАСИБО за скрипт!!! автору зачёт!!!
    • +1
      Друзья, спасибо вам всем за поддержку!
      Благодаря ей (это мой первый пост) мне удалось ознакомить большое количество специалистов со своей разработкой. Буду очень рад если кому-то она покажется полезной. Спасибо еще раз!
  • 0
    Не могу спокойно смотреть на флешку где есть какое-либо упоминание названия «autorun.inf», пусть даже это будет папка, созданная для борьбы с вирусами. Пока моя психика не готова к этому =)
    • +1
      Есть немало других способов — хороших и разных :)
  • 0
    а как выставлять права доступа ntfs, если флэшка используется на разных машинах?
  • 0
    Мне вот интересно, а вирус может взять и изменить путь к иконке в файле desktop.ini, а потом переименовать саму папку? Тогда сигнал не сработает.
    я ни в коем случае не критикую — идея очень нравится!
    • +1
      Полагаю что это вполне возможно — но вирус должен быть специально «заточен» под такую процедуру. Понимаю что опубликовав свой способ здесь я значительно расширяю круг аудитории, которая ознакомится с ним, со всеми вытекающими последствиями. Но я верю в лучшее.

      Предыдущая версия скрипта 1.х, базирующаяся на создании каталога AUTORUN.INF, с последующей защитой каталога от удаления была придумана мной (потом я узнал что не я один придумал такой способ) летом 2008 опубликован в ноябре), и продержалась до февраля 2009 (в феврале мне стало известно что появились новые вирусы, умеющие переименовывать каталог). Не знаю, существует ли «вечная» защита, но то, что версия 1.х скрипта продержалась несколько месяцев — я буду считать это хорошим результатом.

      Более того — в версиях 1.х я делал каталог AUTORUN.INF скрытым (одна из причин — убрать его с глаз пользователя, во избежание попыток удаления). В версии же 2.x я делаю его не просто нескрытым — я делаю его явно видимым, делаю акцент именно на нем. Вполне возможно что кто-то из несведущих пользовалелей, кому попадется чужая флешка, защищенная AUTOSTOP попытается переименовать каталог, отключив тем самым защиту. Но я уверен что в умелых руках скрипт принесет пользу.
      • 0
        Именно известность метода может сыграть злую шутку. Такова уж судьба опенсорса — постоянные обновления)
  • 0
    Сам пользуюсь такой самоделкой: в корне флешки файл __kill_autoruns.bat:

    attrib -s -h -r autorun.*
    del /q /s autorun.*
    attrib -s -h -r folder.htt
    del /q /s folder.htt
    attrib -s -h -r desktop.ini
    del /q /s desktop.ini
    attrib -s -h -r recycler
    rd /s /q recycler
    mkdir %~d0\AUTORUN.INF
    mkdir "\\?\%~d0\AUTORUN.INF\LPT1"
    mkdir "\\?\%~d0\AUTORUN.INF\LPT1\COM1"
    attrib +s +h +r %~d0\AUTORUN.INF
    mkdir %~d0\FOLDER.HTT
    mkdir "\\?\%~d0\FOLDER.HTT\LPT1"
    mkdir "\\?\%~d0\FOLDER.HTT\LPT1\COM1"
    attrib +s +h +r %~d0\FOLDER.HTT
    mkdir %~d0\DESKTOP.INI
    mkdir "\\?\%~d0\DESKTOP.INI\LPT1"
    mkdir "\\?\%~d0\DESKTOP.INI\LPT1\COM1" 
    attrib +s +h +r %~d0\DESKTOP.INI
    

    Директории создаются скрытые. Если на чужой машине после подключения флешки какая-то из директорий перестала быть скрытой, значит надо запустить снова этот батник и не забыть затем на своей машине проверить флешку на вирусы.
    • 0
      По сути — то же самое что и у меня в версиях 1.х, по реализации — у меня есть немало замечаний.
      • 0
        «по реализации — у меня есть немало замечаний»
        Что именно?
        Если реализация исполнения однотипных действий через функции — да, будет короче (добавления folder.htt, desktop.ini и recycler делались уже в процессе использования :), сейчас перепишу).
        • 0
          Как минимум добавить recycleD, не использовать имена LPT1, COM1 и не использоваь вложенность каталогов с такими именами.
          • 0
            А какие проблемі могут быть с lpt1 и com1?

            Оптимизированный вариант (+ recycled и диркториями lpt3 и… вместо вышеупомянутых):
            @echo OFF
            call :DELFMDIR autorun.* 2
            call :DELFMDIR autorun.inf
            call :DELFMDIR folder.htt
            call :DELFMDIR desktop.ini
            call :DELFMDIR RECYCLER 1
            call :DELFMDIR RECYCLED 1
            goto :EOF
            :DELFMDIR
            attrib -s -h -r %1
            if {%2}=={1} (
            	rd /s /q %~d0\%1
            ) else (
            	del /q /s %~d0\%1
            	)
            if {%2}=={2} goto :EOF
            if not {%2}=={1} (
            	mkdir %~d0\%1
            	mkdir "\\?\%~d0\%1\LPT3"
            	mkdir "\\?\%~d0\%1\LPT3\.."
            	attrib +s +h +r %~d0\%1
            	)
            goto :EOF
            • 0
              Offtop:
              Опечатки:… проблемы… директориями…
            • 0
              > А какие проблемі могут быть с lpt1 и com1?

              Принтер может висеть у пользователя на LPT1, а бесперебойник на COM1.
              По этой же причине лучше не играться с LPT2 и COM2.
              • 0
                >Принтер может висеть у пользователя на LPT1, а бесперебойник на COM1.

                А может чем-то серьезным грозить некорректное обращение к ним через соответствующие файлы?

                > По этой же причине лучше не играться с LPT2 и COM2.

                Тогда уже безопаснее всего будет NUL использовать.
                • 0
                  Тут уж на Ваше усмотрение.
  • +1
    Есть неплохая программулина для убиения подобных вирусов, сам пользуюсь.
    • 0
      Спасибо за ссылку! Я слышал об этой программе, но не мог ее найти.
  • 0
    я в своей винде просто отключил на мой взгляд не нужный автозапуск внешних носителей и тем самым решил эту проблему навсегда
    • 0
      Тем самым Вы в какой-то мере обезопасили компьютер — я же веду речь о защите самих флешек.
  • 0
    не пойму, антивирь чтоль не спасает?
    У меня ДрВеб сразу орет что на флешке вирус, если он там есть. За всё время не было ни единого случая заражения компа!
    • 0
      В контексте обсуждаемой темы, «антивирь спасает» в том случае когда он есть, когда он умеет проверять флешки при подключении, когда его вирусная база обновлена, и когда он знает конкретный вирус, содержащийся на флешке. Думаю, я ответил на Ваш вопрос.

  • 0
    Отличный пост. Спасибо и автору, и «комментаторам». Много полезного и нужного почерпнула. Аригато.
    • 0
      И вам спасибо за проявленный интерес.
  • 0
    А как вам идея вышибания клина им же — сделать свой autorun «вирус», который будет отключать на компьютере autorun, если там этот autorun включен?
    • 0
      Оп, а я попался на старой традиции нехождения по ссылкам :-(
      Посыпаю голову пеплом.
  • 0
    как бы в дальнейшем устанавливать свои правила записи файлов типа autorun на компутер и носители… а то отключать его не хочется, а вот заражать другие компы — тем более.
  • 0
    Если так уж нужен файл autorun.inf со своим содержимым на флешке — форматировать флешку в NTFS и оставлять право только на чтение у этого файла.
    • НЛО прилетело и опубликовало эту надпись здесь
  • 0
    Интересный ход =)

    Хотел написать статью на Хабре, но кармы не хватило(

    Если кому интересно: pastebin.com/y9U1GS7r

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