Эта запись опубликована
09.04.2009 в 14:53. Рубрики: (анти)вирусы, WSUS, управление компьютерами. Вы можете следить
за ответами к этой записи через RSS 2.0.
Вы можете оставить отзыв или трекбек со своего сайта.
Естественный отбор или эпидемия Conficker (W32.Downadup)
Можно сколь угодно ругать и авторов недостаточно защищенных операционных систем и авторов вирусов.
Вирусов с годами не становится меньше от того, что за головы их создателей назначаются крупные суммы, а пойманные преступники получают по заслугам.
А эта самая общеизвестная незащищенность некоторых операционных систем, по большей части, порождена вынужденными компромиссами из-за необходимости обратной совместимости с собственными старыми продуктами и разработками сторонних производителей. Операционные системы, де-факто являющиеся стандартом, не только становятся все защищеннее и надежнее от версии к версии, но и их текущие обнаруженные уязвимости уже много лет решаются производителем достаточно оперативно.
Но Conficker (он же Downup, Kido, или даже Win32.HLLW.shadowbased) в очередной раз показал, что уж от собственной глупости человека невозможно уберечь. Ни навязчивыми предупреждениями, ни напоминаниями о необходимости обеспечения собственной комфортной жизни.
Да, средство автообновления давно и надежно интегрировано в ОС, да, специально для корпоративной среды выпущен совершенно бесплатный инструмент для централизованного обновления клиентов. Но на личных компьютерах автообновление зачастую принудительно отключается для экономии трафика, а потратить два часа времени на чтение документации и еще час на разворачивание сервиса WSUS ленится большинство системных администраторов.
Впрочем, ни для кого не секрет, что в большинстве случаев обновления отключаются не столько для экономии трафика, сколько для предупреждения установки очередной версии WGA сервиса (проверки подлинности ключа). Увы, но подавляющее большинство системных администраторов не задумывается о том, что вся ответственность за использование нелицензионного ПО лежит целиком и полностью лично на них, а не генеральном директоре, который не желает вынимать из оборота существенные средства на покупку товара, который и так у него уже есть.
Ну да ладно, незнание законов не освобождает от ответственности, а каждый человек сам хозяин своей судьбы. Один рискует бизнесом из-за изъятия оборудования с установленными контрафактными программными продуктами, второй рискует собственной свободой из-за нежелания адекватно объяснять риски для бизнеса первого.
Кстати, скажу по большому секрету, цикл установки обновлений с использование WSUS возможен не только в полностью автоматическом режиме. Но человек, не желающий один раз потратить время на изучение простейших сервисов облегчения собственной жизни, тем более не захочет тратить лишние десять минут в неделю на то, чтобы использовать сервис в полном соответствии со своей средой и потребностями. А уж о том, чтобы следить за выходом критических обновлений безопасности и вручную устанавливать только их, я даже боюсь заикаться 😉
За свою практику я несколько раз встречал отчаянных героев, что при поголовном доступе в Интернет и открытых USB портах даже не использовали простейший антивирус. Но, как правило, многочисленные трояны в интернет очень быстро осуществляли функцию естественного отбора и показывали, что профессия системного администратора создана для менее самонадеянных.
Так что же делать, если в девять утра сначала на одном, затем на втором-третьем-двенадцатом компьютере срабатывает уведомление об обнаруженном вирусе. При этом каждый раз антивирус предлагает перезагрузить компьютер для возможности удаления угрозы, а зараженный файл со странным именем каждый раз новый. И если через минуту после перезагрузки антивирус снова срабатывает?
Наиболее логичный ответ в виде выхода в окно из окна этажом повыше, не решит проблему, так как лично я бы сначала вызвал нашему герою лучшую бригаду реанимации, а затем заставил исправлять собственные ошибки.
Вкратце напомню, как может распространяется Conficker:
- Пытается скопировать себя в общие папки на машинах в сети, используя имя локального пользователя с зараженной машины и пароль из своего словаря. Для ежедневного запуска с целью дальнейшего распространения червь создает на заражаемой машине назначенное задание:
rundll32.exe %variable%.dll, %random_string% - Копирует себя на существующие сменные носители, при этом используются имена файлов:
%drive%\RECYCLER\S-%variable1%\%variable2%.%variable3% - Также червь создает следующий файл: %drive%\autorun.inf
Таким образом, вредоносная программа запускается каждый раз при подключении зараженного носителя. Хотя против этого варианта заражения вполне успешно работает любой адекватный антивирус. Если уж по какой-либо причине автозапуск не выключен на уровне политики домена. - Отключает следующие сервисы:
- Windows Security Center Service (wscsvc)
- Windows Automatic Update Service (wuauserv)
- Background Intelligent Transfer Service (BITS)
- Windows Defender Service (WinDefend)
- Windows Error Reporting Service (ERSvc)
- Windows Error Reporting Service (WerSvc)
- Блокирует доступ к сайтам основных антивирусных компаний и к windowsupdate
Итак, предположим мы те самые балбесы, что в крупной сети так и не настроили централизованный сервис обновлений. И только что нам позвонил директор с вопросом, когда возникшая проблема будет ликвидирована, компания перестанет терять деньги из-за вынужденного простоя и отчего так случилось, что рабочие станции оказались незащищенными от угрозы о которой, судя по свежим результатам использования поисковика, уже известно несколько месяцев.
Да, поскольку червь блокирует как раз те сайты и службы, что нам понадобятся, предвосхищаю вопрос тех, кто все еще наивно надеется выжить в естественном отборе.
Итак, скачать все необходимо возможно при помощи:
- Любой рабочей станции с установленным на ней Linux
- Любого дистрибутива Linux с поддержкой работы без установки
- Любого КПК, способного подключиться к сети. Не обязательно, кстати, даже офисной. Благо wifi растет буквально из стен вокруг.
- Чистой рабочей станции, за 20 минут развернутой из образа внутри виртуальной машины. Вирус поражает хост машину на уровне выше, чем драйвер сетевого интерфейса. И вовсе не обязательно вводить эту чистую рабочую станцию внутрь зараженной сети: кто мешает сразу поместить ее изолированную подсеть?
Для упрощения, предполагается, что все рабочие станции принадлежат одному домену и в сети не имеется удаленных сегментов, связь с которыми осуществляется по 56k модему. Также предположим, в нашей сети имеются только Windows XP, 2003, Vista. И языки установленных систем ограничиваются русским и английским.
- Скачиваем необходимые обновления для каждой языковой версии каждой из используемых в сети версий ОС. Рекомендую начать вот с этих трех ссылок:
- http://www.microsoft.com/technet/security/bulletin/MS08-067.mspx
- http://www.microsoft.com/technet/security/Bulletin/MS08-068.mspx
- http://www.microsoft.com/technet/security/bulletin/MS09-001.mspx
- Скачиваем любую бесплатную утилиту для лечения Conficker, которая поддерживает работу из командной строки. Например, вот эту:
http://download.eset.com/special/EConfickerRemover.exe - Вооружаемся надежным антивирусом, который поддерживает работу из командной строки и мы хорошо понимаем, как его правильно настроить. Наиболее верным решением будет использовать антивирус, отличный от того, что уже установлен на рабочих станциях. Ну и, разумеется, антивирус должен быть легально приобретен, потому как за чужую работу по решению наших проблем нужно платить, а не подло воровать.
- Выбираем сервер в нашей сети, гарантированно доступный с каждой из рабочих станций. Отключаем его от сети, запускаем в командной строке EConfickerRemover.exe -autoclean -reboot, дожидаемся окончания перезагрузки, устанавливаем все ранее скачанные обновления, убеждаемся, что обновления установлены.
- Создаем на выбранном нами сервере общую папку superzaplatka$ с полным доступом для группы Everyone на общий ресурс и доступом только на чтение на уровне NTFS, создаем рядом с ней общую папку szReports$, с полным доступом для группы Everyone на общий ресурс и на уровне NTFS, размещаем в корне первой папки следующие файлы:
- Все ранее скачанные обновления.
- Консольный антивирус, пустой файл sz1.txt
- Бесплатную утилиту для удаления Conficker
- Файл настройки антивируса.
Например, для DrWeb, создадим файл drwfall.ini следующего содержания:
[Windows]
ScanFiles = All
ScanSubDirectories = Yes
ExcludeFiles = *.zip, *.rar, *.ar?, *.tar, *.cab, *.lzh, *.7z, *.bz2, *.tgz, *.iso, *.nrg, *.mdf, *.img, *.jar, *.vmdk, *.hlp, *.ini, *.inf, *.chm, *.ht*, *.pnf, *.msi, *.msp, *.xml, *.sql, *.log, *.txt, *.gz
HeuristicAnalysis = Yes
CheckEMailFiles = No
CheckArchives = No
EnableDeleteArchiveAction = No
InfectedFiles = Cure
PromptOnAction = No
PromptFloppy = No
TestMemory = Yes
TestStartup = Yes
TestBootSectors = Yes
LogToFile = Yes
LogStatistics = Yes
LogArchived = No
LogFormat = ANSI
LogFileName = c:\superzaplatka\%computername%.log
UseDiskForSwap = Yes
RestoreAccessDate = No
WaitAfterScan = No
VirusBase=»*.vdb»
EnginePath=»drweb32.dll» - Командный файл runnme.cmd следующего содержания:
- md c:\superzaplatka
copy \\НАШ_ВЫБРАННЫЙ_СЕРВЕР\superzaplatka$\*.* c:\superzaplatka\*.* /y
cd c:\superzaplatkaEConfickerRemover.exe -autoclean -reboot
rem Таким образом, если компьютер был заражен, он будет исцелен и немедленно перезагружен.if exist c:\windows\nap goto :imvista
if exist %systemroot%\nap goto :imvistarem И это, кстати, крайне дурацкий способ определения версии ОС 😉
if exist %systemroot%\$NtUninstallKB958644$ goto no958644
rem Если существует папка деинсталяции обновления, значит, оно уже установлено.
rem Иначе последовательно устанавливаем все возможные версии обновления.
rem Обновление самостоятельно не даст установить себя на некорректную версию или язык системы.
rem Так зачем делать еще одну проверку?call WindowsServer2003.WindowsXP-KB958644-x64-RUS.exe /quiet /norestart
call WindowsServer2003.WindowsXP-KB958644-x64-ENU.exe /quiet /norestart
call WindowsServer2003-KB958644-x86-RUS.exe /quiet /norestart
call WindowsServer2003-KB958644-x86-ENU.exe /quiet /norestart
call WindowsXP-KB958644-x86-RUS.exe /quiet /norestart
call WindowsXP-KB958644-x86-ENU.exe /quiet /norestart
:no958644if exist %systemroot%\$NtUninstallKB958687$ goto no958687
call WindowsServer2003.WindowsXP-KB958687-x64-RUS.exe /quiet /norestart
call WindowsServer2003.WindowsXP-KB958687-x64-ENU.exe /quiet /norestart
call WindowsServer2003-KB958687-x86-RUS.exe /quiet /norestart
call WindowsServer2003-KB958687-x86-ENU.exe /quiet /norestart
call WindowsXP-KB958687-x86-RUS.exe /quiet /norestart
call WindowsXP-KB958687-x86-ENU.exe /quiet /norestart
:no958687if exist %systemroot%\$NtUninstallKB957097$ goto no957097
call WindowsServer2003.WindowsXP-KB957097-x64-RUS.exe /quiet /norestart
call WindowsServer2003.WindowsXP-KB957097-x64-ENU.exe /quiet /norestart
call WindowsServer2003-KB957097-x86-RUS.exe /quiet /norestart
call WindowsServer2003-KB957097-x86-ENU.exe /quiet /norestart
call WindowsXP-KB957097-x86-RUS.exe /quiet /norestart
call WindowsXP-KB957097-x86-ENU.exe /quiet /norestart
:no957097:imvista
call Windows6.0-KB958687-x64.msu /quiet /norestart
call Windows6.0-KB958687-x86.msu /quiet /norestart
call Windows6.0-KB958644-x64.msu /quiet /norestart
call Windows6.0-KB958644-x86.msu /quiet /norestart
call Windows6.0-KB957097-x64.msu /quiet /norestart
call Windows6.0-KB957097-x86.msu /quiet /norestartif exist c:\sz1.txt goto isztxt
copy c:\superzaplatka\sz1.txt c:\sz1.txt
shutdown -r -f -t 0
:isztxtcall drwebwcl.exe %systemroot% /adwd /cud /go /ha /icd /scp:10 /sd /tb /tm /ts /ini:drwebfall.ini
call drwebwcl.exe «c:\Documents and Settings\» /adwd /cud /go /ha /icd /scp:10 /sd /tb- /tm- /ts- /ini:drwebfall.ini
call drwebwcl.exe «c:\users\» /adwd /cud /go /ha /icd /scp:10 /sd /tb- /tm- /ts- /ini:drwebfall.ini
copy c:\superzaplatka\*.log \\НАШ_ВЫБРАННЫЙ_СЕРВЕР\szReports$\*.log /y
cd ..
rd /s/q c:\superzaplatka - Командный файл runnmeondc.cmd следующего содержания:
md c:\superzaplatka
copy \\НАШ_ВЫБРАННЫЙ_СЕРВЕР\superzaplatka$\*.* c:\superzaplatka\*.* /y
cd c:\superzaplatka EConfickerRemover.exe -autoclean
WindowsServer2003.WindowsXP-KB958644-x64-RUS.exe /quiet /norestart
WindowsServer2003.WindowsXP-KB958644-x64-ENU.exe /quiet /norestart
WindowsServer2003-KB958644-x86-RUS.exe /quiet /norestart
WindowsServer2003-KB958644-x86-ENU.exe /quiet /norestart
WindowsServer2003.WindowsXP-KB958687-x64-RUS.exe /quiet /norestart
WindowsServer2003.WindowsXP-KB958687-x64-ENU.exe /quiet /norestart
WindowsServer2003-KB958687-x86-RUS.exe /quiet /norestart
WindowsServer2003-KB958687-x86-ENU.exe /quiet /norestart
WindowsServer2003.WindowsXP-KB957097-x64-RUS.exe /quiet /norestart
WindowsServer2003.WindowsXP-KB957097-x64-ENU.exe /quiet /norestart
WindowsServer2003-KB957097-x86-RUS.exe /quiet /norestart
WindowsServer2003-KB957097-x86-ENU.exe /quiet /norestartcd ..
rd /s/q c:\superzaplatkashutdown -r -f -t 0
- На любом контроллере домена запускаем оснастку «Active Directory Users and Computers», на уровне домена создаем новую групповую политику со следующими настройками:
- В Computer Configuration -> Windows Settings -> Scripts -> Startup добавляем следующий элемент Script Name:
\\НАШ_ВЫБРАННЫЙ_СЕРВЕР\superzaplatka$\runnme.cmd - В Computer Configuration -> Windows Settings -> Security Settings -> File System добавляем следующий элемент %systemroot%\Tasks в открывшемся меню настройки безопасности добавляем группу Everyone и запрещаем ей доступ на запись и выполнение.
- В Computer Configuration -> Administrative Templates -> System -> Scripts включаем параметр Run Startup Scripts Asynchronously и выключаем параметр Run Startup Scripts Visible
- В Computer Configuration -> Windows Settings -> Scripts -> Startup добавляем следующий элемент Script Name:
- Копируем созданную политику в те OU, для которых заблокировано наследование политик.
- Подключаем первый вылеченный сервер обратно в сеть и с каждого из контроллеров домена выполняем
\\НАШ_ВЫБРАННЫЙ_СЕРВЕР\superzaplatka$\runnmeondc.cmd - Просим всех пользователей перезагрузить рабочие станции, перезагружаем все рядовые сервера.
- Из содержимого папки \\НАШ_ВЫБРАННЫЙ_СЕРВЕР\szReports$ узнаем, кто выполнил просьбу о перезагрузке и насколько эффективен наш текущий антивирус в ежедневной защите рабочих станций. Многих ждут неприятные сюрпризы.
- Убеждаемся, что червь более не размножается в нашей сети.
- Отменяем ранее созданную политику, удаляем на рабочих станциях и серверах все созданные червем запланированные задания. Удаляем на всех серверах и рабочих станциях файл c:\sz1.txt