fffffff
Показать сообщение отдельно
Старый 22.06.2008, 02:12   #11
Товарищ
 
Аватар для CRAZY
 
Регистрация: 30.04.2007
Пол: M
Провайдер: ВолгаТелеком
Сообщений: 268
Поблагодарил: 110
Поблагодарили 147 раз в 62 сообщениях
Открыли хайд :
0 в этом сообщении
2 Всего


По умолчанию

Создание своего зеркала сервера обновления антивируса Касперского:

Основной задачей при использовании любого антивируса является его своевременное обновление. Существует несколько способов для AK:
Автоматическое обновление. Программа сама обновляется по команде или автоматически.
Обновление через архивы антивирусных баз, скачанных с [Для просмотра данной ссылки нужно зарегистрироваться]
Для локальных сетей предприятий существует агент для администрирования антивируса ( [Для просмотра данной ссылки нужно зарегистрироваться] ) , одной из задач которого является обновления всех
версий программ АК (или всевозможных анти-спамов от Касперского).
еще один не официальный способ - копирование баз с компьютера с установленным АК на другой. Подробнее можно узнать [Для просмотра данной ссылки нужно зарегистрироваться].

Т.е. ставится задача - создать зеркало сервера обновлений, которое работает как при расшареной папке так и без неё, экономия трафика ( т.е. скачивание только изменившихся файлов). Как быть?

Попробуем решить эту задачу.
Если нельзя использовать "Клиент для сетей Microsoft" для обновления, то нам нужно чтобы АК обновлялся как с собственным сервером по HTTP. Т.е. нам нужен веб-сервер который дает на просмотр папку с обновлениями. Но нам нужно заставить АК ходить на наш сервер, а не на официальный. Стандартными настройками этого не сделать. АК может обновляться либо с официального сервера, либо из локальной папки или сетевой. Эту проблему можно решить старым дедовским способом - в файле ваш_диск:\WINDOWS\system32\drivers\etc\hosts сделать записи вида
Код:
ваш_сервер_обновлений dnl-ru1.kaspersky-labs.com
Но где нам взять весь список официальных серверов? Поковырявшись в антивирусных базах мы их легко найдем. Но так как мы их еще не скачали то вот ссылка на xml файл на сервере обновлений, где как раз и хранятся все возможные адреса. Ну а
если вам лень от туда выковыривать то вот уже готовый [Для просмотра данной ссылки нужно зарегистрироваться]. Стоит учесть, что если у вас установлен AK 7 версии со всевозможными проактивными
защитами, или KIS, то периодически они будут ругаться, что файл
ваш_диск:\WINDOWS\system32\drivers\etc\hosts содержит подозрительные записи.
Будем считать, что веб-сервер вы настроите сами. Осталось определиться где брать сами антивирусные базы.

Структура антивирусных баз.

Теперь стоит поговорить о структуре антивирусных баз.

Все, что будет описано, справедливо для 6 и 7 версии АК ( и KIS). Для более ранних версий не рассматривал.

Главная папка сервера обновления это index/6/ . В ней должен находиться файл
u0607g.xml. Это первый файл, к которому обращается антивирус при обновлении. Таких xml файлов в обновлениях много. Их можно назвать файлами-указателями на обновления. Вся информация о том, откуда брать
обновления хранится в них.
Рассмотрим файл u0607g.xml . Он состоит из структур FileDescription ( в терминах xml не селён, извините)
Цитата:

<FileDescription
ComponentID="AVS"
UpdateType="desc"
ServerFolder="../../bases/av/avc/i386"
Filename="av-i386-0607g.xml"
FileDate="17022008 0704" />
ComponentID содержит имя компонента антивируса, указатель на обновление Filename которого находится на сервере в папке ServerFolder (относительно текущей папки). Т.е. каждый компонент АК имеет свои базы. Вот небольшой список компонент,
что доступен на сервере обновления в файле retr.dat
Цитата:

AVS - Cигнатуры угроз;Описание вирусов и других вредоносных программ
AH - Сигнатуры атак Анти-Хакера для сборок 402, 411;Описание типичных сетевых атак
AHI386 - Сигнатуры атак Анти-Хакера для 32-разрядных операционных систем;Описание типичных сетевых атак
AHX64 - Сигнатуры атак Анти-Хакера для 64- разрядных операционных систем;Описание типичных сетевых атак
RT - Список компонентов для загрузки;Список компонентов для загрузки
Updater -Данные для балансировки нагрузки на инфраструктуру обновления;Данные для балансировки нагрузки на инфраструктуру обновления
Таким образом, антивирус, загрузив файл index/6/u0607g.xml, просматривает его и создает список файлов-указателей обновлений для установленных компонентов. Затем он загружает эти файлы-указатели и просматривает их. В них та же структура FileDescription, но зачастую она не содержит поле ServerFolder. Это значит, что файл обновления лежит в той же папке что и файл-указатель . Просмотрев все указатели, формируется список для закачки новых файлов.

Так примерно выглядит процедура обновления АК. Стоит отметить такие вещи:
Список компонент, которые установлены на данном компьютере можно найти в реестре в разделе HKEY_LOCAL_MACHINE\SOFTWARE\KasperskyLab\protected \AVP7\environment в ключах с именем похожим на Components
для некоторых компонент не существует обновлений. Например NEWS.
даже если вы отключили какой-то компонент (например проактивную защиту), антивирус будет искать для него обновление. Не найдя, он выдаст сообщение об ошибке. Единственный компонент, загрузку которого можно отключить, это KAV2006EXEC и подобные. Это обновление программных файлов.
Для того чтобы точно узнать (не из реестра) какие компоненты нужны, на будущем нашем зеркале оставляем только файл index/6/u0607g.xml . Запустив обновление антивируса в окошке мы увидим ошибки и ссылки на недостающие файлы. Потом мы ищем имя этого файла в index/6/u0607g.xml, определяем имя компонента.
Опытным путем можно найти, что для AK 7 версии нужны следующие компоненты - AVS;AHI386;BLST;RM,BB,BB2;Updater;INFO;EMUI386;WAI 386;KAV2006EXEC;RT

Теперь разберемся с задачей создания зеркала обновлений.

Минимум нам нужны две папки. Это папка Index и папка Bases. А если мы хотим, чтобы АК мог обновлять программные файлы, то потребуется папка AutoPatches. Т.е. если мы "тупо" скачаем эти папки со всем содержимым то получим зеркало сервера обновления. Если эту операцию проделывать каждые 2 часа, то у нас будут всегда свежие базы. Но мы люди не богатые, экономные, и , что самое главное, умные. В этих папках содержится множество не нужных нам обновлений, а если мы будем заново каждые 2 часа закачивать все папки вообще на трафике разоримся. Тогда нам нужно думать как АК при обновлении. А именно:
скачать index/6/u0607g.xml
скачать файлы-указатели для нужных нам компонентов
скачать только изменившиеся файлы обновлений для этих компонентов

Для этих целей нам надо уметь качать, и уметь определять какие файлы нам нужны.
С первой задачей мы справимся с помощью консольной программы [Для просмотра данной ссылки нужно зарегистрироваться] А вот со второй задачей сложнее. Для её решения я написал небольшую консольную программу [http://www.dobrih.net/files/avp/kav_upd.zip]kav_upd[/url].

Kav_upd

Консольная программа, для формирования списка файлов обновления для загрузки. Для работы требуется файл conf.ini, в котором содержаться настройки работы программы.
Цитата:

components=KAV2006Exec;RT;AVS;AHI386;Updater;WM;RM ,BB,BB2
local=ru
path=D:\avp\test3\avp\
components - список компонентов через точку с запятой, которые мы хотим загрузить. Названия должны быть такие же как в файле u0607g.xml (RM,BB,BB2 - это один компонент)
local - язык, может быть en,ru,de,fr. Указываете какой язык нужен для файла retr.dat .
path - путь, где хранятся базы

Программа имеет 2 ключа для запуска. Первый "-main". Программа смотрит файл
%path%\index\6\u0607g.xml и создает файл main.txt с писком файлов указателей для загрузки. Второй "-othes". Он читает файл main.txt и файлы указатели, создавая файл othes.txt со списком файлов обновления для загрузки.

Скрипт для создания зеркала обновлений.

Теперь приступим к созданию самого скрипта. Будем использовать обычные командные
файлы Windows. Вот пример такого скрипта
Цитата:

Set avp_path=D:\avp\test3\avp
Set log=log.txt

wget -P %avp_path% --timestamping -x -nH [Для просмотра данной ссылки нужно зарегистрироваться] -o %log%
call kav_up.exe -main
wget -P %avp_path% --timestamping -B [Для просмотра данной ссылки нужно зарегистрироваться] -i main.txt -x -nH -o %log%
call kav_up.exe -othes
wget -P %avp_path% --timestamping -B [Для просмотра данной ссылки нужно зарегистрироваться] -i othes.txt -x -nH -o %log%
После выполнения, в папке D:\avp\test3\avp лежат нудные нам файлы. Ключ --timestamping программы wget говорит программе скачивать только обновленные файлы. После первого запуска скачается порядка 19 мб (в зависимости от компонент). В дальнейшем гораздо меньше. Изучив ключи wget можно сделать, чтобы работа шла через прокси-сервер.

Теперь мы можем выложить содержимое папки avp_path на веб-сервер. И АК настроенный на этот сервер , будет обновляться с него нормально. Так же папку avp_path можно расшарить в сети, и настроить АК на обновление из этой папки.

Заключение.

И еще , не забывайте менять адрес сервера, с которого берете базы. Иначе можно создать большую нагрузку на него. Ведь АК балансирует нагрузку на сервера, выбирая определенный. Выбор основывается на этом файле .

Ссылки.

[Для просмотра данной ссылки нужно зарегистрироваться] - (57 кб.) программа kav_upd
[Для просмотра данной ссылки нужно зарегистрироваться] - (4 кб.) исходники kav_upd на Delphi 2007
[Для просмотра данной ссылки нужно зарегистрироваться] - (219 кб.) набор файлов для создания зеркала обновлений
[Для просмотра данной ссылки нужно зарегистрироваться] - страница порта wget под windows
[Для просмотра данной ссылки нужно зарегистрироваться] по Wget

CRAZY вне форума  
Ответить с цитированием