[TulaAnti&ViralClub] PRESENTS ...
MooN_BuG, Issue 5, May 1998                                           file 00b

                         Техническая инфа по Sheriff
                                                              by Jury Fomin

             Принципы построения и функционирования

     Алгоритмически  комплекс  Sheriff  опирается на концепцию, что для защиты
компьютера от вредоносных воздействий необходимо и достаточно:
- е допускать выполнение операций с винчестером в обход
  системной цепочки прерывания 13h.
- Обеспечить невозможность изменений системных областей и
  файлов, а также некоторого количества наиболее часто
  выполняющихся программ, расположенных на винчестере.
- Запретить выполнение операций инициализации винчестера.
- Сделать недоступным винчестер операционной системе,
  загруженной с флоппи диска.

     Sheriff  представляет собой полностью самостоятельную подсистему контроля
за  выполнением операций записи на винчестеры. Она функционирует параллельно и
независимо  от операционной системы. В момент установки (перенастройки) защиты
определяются   области   данных   на   винчестере,   которые   ни   при  каких
обстоятельствах  не  подлежат  изменениям.  При включенной защите все операции
записи   контролируются   и,   если  запрошенная  операция  записи  приведет к
изменениям    контролируемых    областей,   то   функционирование   компьютера
приостанавливается и пользователю выдается соответствующее предупреждение.

     Основной  сложностью  реализации такого алгоритма является предотвращение
возможности  выполнения  операций записи в обход драйвера контроля. Именно для
этой   цели  и  был  разработан  специальный  контроллер  защиты,  который  на
аппаратном  уровне  наблюдает за работой винчестера и гарантирует, что ни одна
программа  не  сможет  выполнить  обращение  к  винчестеру  в  обход  законной
подсистемы   ввода-вывода.   Без  привлечения  аппаратного  уровня  невозможно
воспрепятствовать  вредоносным  программам  обращаться непосредственно к BIOS,
находящейся   в  постоянной  памяти  компьютера,  или  управлять  контроллером
винчестера непосредственно по портам ввода/вывода.

     Второй  задачей,  которую  успешно решает Sheriff, является автоматизация
принятия решений по законности той или иной операции записи.

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

     И  наконец последней задачей является предотвращение доступа к информации
на винчестере путем загрузки операционной системы с системной дискеты.

     При установленной защите запрещается выполнять следующие операции:
- Форматирование винчестера;
- Запись в область системных секторов загрузки на винчестере;
- Запись в область защищенных файлов, включая элементы
  каталогов и цепочки секторов в таблице FAT;
- Любые операции записи на логические диски и физические
  сектора, объявленные доступными только для операций чтения (read-
  only);
- Вызов прерывания 40h из программ пользователя (эту функцию
  можно отключать);
- Обращение к винчестеру в обход системной цепочки прерывания
  13h или супервизора ввода-вывода;
- епосредственное обращение к контроллеру винчестера,
  используя его порты ввода/вывода;

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

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

            Физическая совместимость с оборудованием

     Комплекс  Sheriff  функционирует  только на компьютерах совместимых с IBM
PC/AT  и  имеющих  свободный  8-  или  16- разрядный SLOT на материнской плате
компьютера.  Контроллер  защиты  использует  порт ввода-вывода 300h. Иногда на
этот   порт   претендуют  сетевые  карты,  но  они  легко  перестраиваются  на
использование  другого  значения  порта. К компьютеру может быть подключено до
четырех жестких IDE или SCSI дисков.
     Других ограничений по технической совместимости нет.


            Программная совместимость с DOS и Windows

     Разбиение  жестких  дисков  на  логические  разделы должна быть выполнена
программой FDISK стандартным для MS/PC-DOS способом:
- Логические диски должны иметь FAT-16 (размер не более 2 GB для
  одного логического диска;
- Каждый из четырех жестких дисков может быть разбит не более чем на
  10 логических разделов DOS;
- Каждом винчестер долен содержать одну область Primary.

     Драйверу  защиты  требуется  8 Кбайт для ядра и около 50 байт для каждого
защищаемого  участка  винчестера.  Драйвер  можно разместить в области верхней
памяти  (блоки  UMB),  при этом потребность в адресном пространстве в пределах
первых 640 Кбайт сокращается до 1 Кбайта.
     Максимальное количество защищаемых файлов (участков винчестера)равно 930.
а жестком диске драйвер защиты занимает около 100 Кбайт.
     Если   прерывание   IRQ-5   не  занято  другими  контроллерами  или  есть
возможности   его  освободить,  то  можно  снять  наклейку  с  ламели  B23  на
контроллере защиты. При этом несколько повысится потенциальная мощность защиты
за счет включения дополнительного контура контроля.

Комплекс Sheriff имеет следующие особенности по защите информации:
-  если в конфигурации компьютера определен жесткий диск, то при
   включенной защите загрузка операционной системы с дискеты может быть
   заблокирована.
-  идеология защиты, положенная в основу алгоритмов работы Sheriff
   допускает беспрепятственное функционирование вирусов, если они не
   попадаются на попытках изменения контролируемых файлов.
-  производить операцию сжатия жестких дисков можно только при отключенной
   защите, так как программы сжатия (SD, COMPRESS и т.п.) перемещают
   элементы в каталогах, а этого комплекс Sheriff не допускает.
-  комплекс Sheriff не препятствует загрузке операционной системы с дискет,
   но при этом жесткие диски для нее становятся недоступными.

      Ограничения на использование программ при установленной защите

     Функционирование большинства антивирусных программ, за исключением DrWeb,
Aidstest  и  ADinf,  которые  могут  работать  при установленной защите, будет
пресекаться,  так  как  они используют процедуры обхода "законного" прерывания
13h, заимствованные у своих антиподов.
     Применение средств разграничения доступа типа ADM не допускается, так как
это  может  приводить  к срабатыванию защиты из-за интерференционных процессов
между драйверами.
     Пресекается   работа   некоторых  программ,  которые  пытаются  выполнить
действия,   запрещенные   при   установленной   защите.  В  общем  случае  при
установленной защите программам запрещается выполнять следующие операции:
- Форматирование винчестера;
- Запись в область системных секторов загрузки на винчестере;
- Запись в область защищенных файлов, включая элементы каталогов и цепочки
  секторов в таблице FAT;
- Любые операции записи на логические диски, объявленные доступными только
  по чтению (READ-ONLY);
- Вызов прерывания 40h из программ пользователя;
- Обращение к винчестеру в обход "законного" прерывания 13h;
- епосредственное обращение к контроллеру винчестера, используя его порты
  ввода/вывода.

           Результаты тестирования и нажедность защиты

     Испытания  проводились  с  целью  проверки  надежности  защиты  комплекса
Sheriff.  Описанная  ниже  процедура  проверки  может  быть выполнена на любом
компьютере  типа  PC/AT,  и  может  быть  использования как базовая технология
приемо-сдаточных    испытаний    комплексов    Sheriff,    подтверждающая   их
работоспособность на месте ввода в эксплуатацию.

                    Форматирование винчестера

     Данная проверка производилась путем запуска системных программных средств
форматирования  винчестеров:  FORMAT.COM  или  HDFORMAT.COM После их запуска и
положительного  ответа  на  запрос  о  продолжении  работы программы, комплекс
Sheriff  останавливает  работу  компьютера  с  выдачей  сообщения о пресечении
операции инициализации винчестера.

   Запись в область системных секторов загрузки на винчестере

     Проверка   осуществлялась  запуском  программы  корректировки  данных  на
винчестере  на  уровне  секторов - DISKEIDT.EXE. В диалоговом режиме выбирался
любой сектор нулевой дорожки нулевого цилиндра или соответствующий сектор BOOT
логического  диска.  Попытка  внести  любых изменения в эти сектора приводит к
остановке  работы  компьютера  и выдвче сообщения о попытке записи в системную
область.

     Запись в область защищенных файлов, включая элементы
     оглавления и цепочки секторов в таблице FAT

     Эта  операция  выполнялась  при помощи программы корректировки информации
DISKEDIT.EXE.   Путем  выбора  соответствующих  областей  (цепочку  кластеров,
элемент    оглавления   или   сектора   данных)   любого   защищенного   файла
предпринималась   попытка   их  изменения.  В  этом  случае  комплекс  Sheriff
останавливал операцию записи и выдавал на экран дисплея сообщение о пресечении
записи в область защищенного файла с указанием имени корректируемого файла.
     Запуск инфицированных программ и загрузка и инфицированных дискет Так как
перечень  вирусов,  на  которых  можно  провести  испытания  комплекса Sheriff
изначально не может быть исчерпывающим и полным, то для испытаний были выбраны
представители  всех классов вирусов и технологий, которые применяют вирусы для
своего  внедрения  в  инфицируемые  объекты.  Общее  число вирусов, на которых
осуществлялось тестирование, превышало тысячу.
     Запуск  ни  одного  вируса  не  смог  привести  к  преодолению  защитного
механизма комплекса Sheriff.

             Результаты испытаний надежности защиты

     Испытание    комплекса    проводились    путем   применения   системных и
специализированных   программных   средств   корректировки  информации,  также
практически на вирусах известных полифагу DrWeb.
Результаты испытания подтвердили высокую эффективность защиты:
- при помощи системных и специальных программ, выполняемых под
  управлением операционной системы, загруженной с винчестера, не
  удалось внести изменения в защищаемые системные области и файлы;
- в коллекции вирусов DrWeb не нашлось ни одного файлового вируса,
  способного внести какие-либо изменения в контролируемые файлы и
  системные области;
- атаки загрузочных вирусов, не нарушающих работоспособность компьютера,
  автоматически нейтрализуются сразу после загрузки с винчестера;
- атаки загрузочных вирусов ABS-1 и ABS-3 FLAME приводили к разрушению
  структуры загрузочных секторов и содержимого CMOS, но работоспособность
  компьютера полностью восстанавливалась путем загрузки с установочной
  дискеты комплекса Sheriff.

     Высокая надежность защитного механизма подтверждена испытаниями комплекса
Sheriff  в  лаборатории  Е.Касперского.  Лаборатория  Е.Касперскго  не  смогла
выявить ни одного вируса, способного преодолеть защитный механизм Sheriff.

                     Установка и настройка

     Установка   комплекса  на  компьютер  не  требует  специальных  навыков и
производится пользователем.
     Hа  дистрибутивных дискетах находятся самораспаковывающиеся архивный файл
с   документацией  SHERDOC.EXE  и  файл  S-YYYYY.EXE,  содержащий  упакованную
программу записи установочной дискеты SHERIFF.EXE. Где YYYYY - первые 5 знаков
серийного номера комплекса.

 Установка и настройка комплекса Sheriff должна проводиться на
заведомо здоровом компьютере.

     Установка   защиты   производится  с  установочной  дискеты,  создаваемой
дистрибутивной  программой  SHERIFF.EXE. Для формирования установочной дискеты
необходимо  вызвать  на  выполнение программу из любого доступного для запуска
каталога  и  дисковода.  После  запуска  программы  на экран дисплея выводится
запрос  на  установку  в  дисковод  дискеты,  на  которой  будет  сформирована
установочная  дискета.  После  установки  дискеты  и  нажатия любой клавиши на
клавиатуре   дистрибутивная  программа  осуществит  формирование  установочной
дискеты.

 Установка контроллера защиты производится техническим персоналом
ПОЛЬЗОВАТЕЛЯ в любое свободное гнездо (SLOT) на материнской плате
компьютера.

     Hастройка   и  отключение  защиты,  а  также  выполнение  вспомогательных
операций   комплекса   Sheriff   производится   под  управлением  программного
обеспечения, помещенного на установочной дискете. Эта дискета зашифрована и не
читается обычными средствами DOS.
     Для  работы  с  комплексом Sheriff надо выполнить загрузку с установочной
дискеты.  В  начале  загрузки  с  установочной дискеты запрашивается системный
пароль  доступа  к  установочной  дискете. Этот пароль состоит из 5 символов и
указан  в  Гарантийном  талоне,  который имеется в Паспорте на соответствующий
комплекс  Sheriff. Каждый экземпляр комплекса Sheriff имеет собственный пароль
доступа.
     При  первой  загрузке  с установочной дискеты комплекс Sheriff предлагает
закрепить  установочную  дискету  за  компьютером  с  которого  была выполнена
загрузка.  После  получения  положительного  ответа  на  установочной  дискете
запоминается   содержание   загрузочных   секторов  и  энергонезависимо  CMOS-
памяти, а также значение в BIOS точки входа в обработчик дисковых операций Int
13h.  Для продолжения работы пользователь должен защитить установочную дискету
от  записи  и нажать любую клавишу. После этой операции установочная программа
выполнит перезагрузку компьютера, при этом снова будет запрошен пароль доступа
к установочной дискете.
     После загрузке и показа заставки, на экран выводится функциональное меню,
оперируя с которым пользователь выполняет нужные ему операции. Все операции по
настойке  драйвера защиты производятся на основе служебного файла SHERIFF.DAT,
который  содержит  перечень  путей доступа и имен файлов защищаемых от записи.
Этот  файл  создается  комплексом  Sheriff  путем  просмотра всех имен файлов,
находящихся  в  момент включения защиты на жестких дисках, и выбора из каждого
каталога (подкаталога) по два файла с расширением .COM и .EXE, расположенных в
нем  физически  самыми  первыми.  При  формировании  списка  защищаемых файлов
используются    глобальные    и    пользовательские    перечни    <АПРИОРЫХ> и
<АТИАПРИОРЫХ>имен  файлов  для  безусловного включения или исключения файлов с
этими  именами  в/из  списка  защищаемых файлов независимо на каком логическом
диске и в какой директории они расположены. Если пользователь желает вмешаться
в процесс формирования списка защищаемых файлов и включить/исключить в/из него
имена  собственных  файлов,  то перед включением защиты нужно создать на диске
<С>Пользовательские    списки:   <АПРИОРЫХ>-   C:/SHERIFF.APR   <АТИАПРИОРЫХ>-
C:/SHERIFF.ANT  имен  файлов или воспользоваться содержимым файла SHERIFF.DAT,
который  был  ранее  сохранен,  с  последующей  корректировкой любым текстовым
редактором  и  помещением  его  в  корневой  каталог  диска  <С>. Более гибким
способом   управлением   формирования   списка   защищаемых   файлов  является
использование  списков  <АПРИОРЫХ>и <АТИАПРИОРЫХ>имен файлов. Файл SHERIFF.DAT
должен   содержать  перечень  путей  доступа  и  имен  контролируемых  файлов,
подлежащих   защите   от   записи.   Или  идентификаторы  логического  дисков,
объявленных    доступными    только   по   чтению.   Максимальное   количество
контролируемых  участков  файлов  в текущей версии установлено равным 830. Под
участком  подразумевается  непрерывная последовательность кластеров. Если файл
фрагментирован,  то  максимальное количество защищаемых файлов уменьшается. Их
максимальное  количество  достигается  в  случае  проведения  операции  сжатия
дисков.  а установочной дискете запоминается содержимое загрузочных секторов и
энергонезависимой CMOS-памяти. После очередной загрузки с установочной дискеты
их  содержимое проверяется на соответствие ожидаемому значению и, если оно ему
не  равно,  пользователю  предоставляется  возможность восстановления прежнего
значения.