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

Антивирусные программные пакеты, исправления для системы защиты и разъяснительная работа среди пользователей могут помочь поставить заслон таким файлам, но, увы, известно, что получившие самые подробные разъяснения пользователи тем не менее исправно запускают на выполнение все вредоносные присоединенные файлы, прорвавшиеся сквозь систему защиты. Итак, задача состоит в том, чтобы не дать пользователям возможности наносить ущерб самим себе, и для этого можно заблокировать потенциально опасные типы файлов, чтобы те не выходили за пределы почтовых серверов и клиентских систем. Дабы помешать пользователям запускать на исполнение потенциально опасные файлы, которые все-таки преодолевают заслоны, можно заблокировать действие систем мгновенного обмена сообщениями (Instant Messaging, IM), автоматическое выполнение файлов или запуск вручную несанкционированных исполняемых модулей, а также сделать явными скрытые расширения файлов, чтобы пользователи знали, с чем они имеют дело.

Какие файлы блокировать?

Как правило, пользователи не имеют права запускать на исполнение большинство файлов, получаемых с электронной почтой (впрочем, может быть, в этом отношении нужно сделать исключение для сетей образовательных и исследовательских учреждений). Между тем будем откровенны: мало кто из пользователей удержится от соблазна прочитать поздравление, т. е. запустить исполняемый файл или файл VBScript. Поэтому администратор должен блокировать (или, по крайней мере, ограничивать) возможность получать потенциально опасные файлы. Если какому-либо пользователю необходимо получать такого рода материалы, следует рассказать ему о методах безопасной работы и предоставить доступ к нужным файлам, но по умолчанию доступ должен быть ограничен. Это позволит остановить свободный поток опасных файлов, большинство из которых не имеет отношения к работе.

Потенциальную угрозу представляет любой файл, способный выполнять операции записи на жесткий диск, но особую бдительность следует проявлять в отношении файлов, о которых известно, что они могут стать орудием в руках злоумышленников. О том, как Windows обрабатывает определенные типы файлов, рассказано во врезке «Зарегистрированные типы файлов». Необходимо взвесить все аргументы «за» и «против» относительно применения каждого типа и, если польза от возможности работы с файлом не компенсирует связанный с этим риск, блокировать доступ к файлам данного типа. Приведу пример. Документы Microsoft Office вполне могут содержать потенциально опасные сценарии или макросы, однако применяемые по умолчанию настройки средств защиты данных комплекта Office предотвращают выполнение большинства таких программ. Почти всем пользователям приходится работать с подобными документами, поэтому администратор, вероятно, сочтет нужным санкционировать доступ к этим типам файлов. В Таблице 1 содержится список наиболее опасных типов файлов (расположенных в соответствии с регистрируемыми расширениями), краткие описания программ, ассоциированных с каждым типов файла, а также потенциальных проблем, с которыми связано использование файлов того или иного типа. Хакеры чаще всего работают с файлами .bat, .chm, .com, .eml, .exe, .hta, .htm, .html, .js, .pif, .reg, .scr, .shb, .sms, .url и .vbs, поэтому я рекомендую, как минимум, ограничить доступ к этим типам файлов по умолчанию.

Итак, список файлов, которые не следует допускать до пользователей, составлен. Что еще может сделать администратор помимо принятия таких традиционных мер, как проверка на вирусы, установка программных исправлений и разъяснительная работа? Прежде всего нужно заблокировать доступ пользователей к источнику проблем: файлам на почтовом сервере или клиенте.

Блокирование файлов на почтовом сервере или клиенте

Первая линия обороны администратора — настройки конфигурации почтового сервера организации. Сервер должен блокировать опасные присоединяемые файлы. В среде Microsoft Exchange Server существует возможность блокировки доступа к файлам на почтовом сервере с предоставлением пользователям Microsoft Outlook различных уровней доступа.

Чтобы указать присоединяемые файлы, которые могут видеть и исполнять пользователи, администраторы Exchange Server 5.0 и более поздних версий могут применять шаблон безопасности Outlook (outlooksecurity.oft). Более подробная информация об этом процессе содержится в статье Microsoft «OL2000: Administrator Information About the Outlook E-mail Security Update,» (Q263297, http://microsoft.support.com). Шаблон безопасности применяется к общедоступной папке Outlook Security Settings. Пакеты Outlook 2002, Outlook 2000 Service Pack 2 (SP2) и Outlook Express поставляются со встроенными средствами блокировки присоединяемых файлов, а корпоративные клиенты Outlook последних версий при взаимодействии с сервером Exchange автоматически начинают поиск папки Outlook Security Settings. Чтобы реализовать средства блокировки файлов в более ранних версиях Outlook 2000, а также Oulook 98, требуется модуль коррекции Microsoft Outlook 98/2000 E-mail Security Update; кроме того, для активизации новых параметров безопасности нужно внести изменения в реестр. Если же требуется универсальное средство с более широким набором функциональных возможностей, стоит обратить внимание на такие изделия, как TFS Secure Messaging-Server фирмы TenFour или одну из версий пакета ScanMail for Exchange компании Trend Micro. Они могут блокировать присоединяемые файлы еще до того, как те попадут на серверы Exchange.

Наряду с этим, присоединенные файлы можно блокировать и на клиентской настольной системе. Такую возможность предоставляет программа Outlook 98 и более поздние версии. Бесплатно распространяемый пакет модернизации Outlook 2000 SR-1 Update (http://office.microsoft.com/downloads/2000/ out2ksec.aspx) для систем Outlook 2000 первоначально блокирует 37 типов файлов из списка, приведенного в Таблице 1, и может блокировать другие типы файлов в зависимости от того, какие именно пакеты обновлений установлены на системах. Программа Outlook 2000 по умолчанию блокирует большее число типов файлов и наделена более широкими функциями в том, что касается спецификации блокируемых типов файлов. Пользователи автономной программы Outlook 2002 могут путем внесения изменений в реестр формировать список блокируемых файлов по своему усмотрению (хотя возможность внесения в заготовленный список новых типов файлов не предусмотрена); более подробно этот подход описан в статье Microsoft «OL2002: You Cannot Open Attachments» (Q290497, http://support.microsoft.com). Разумеется, прежде чем применять модернизированные версии средств безопасности или модификации настроек реестра, ограничивающие стандартный набор функциональных возможностей, нужно проанализировать последствия таких шагов.

В сетях, где Exchange не применяется, большинство почтовых серверов может блокировать файлы определенных типов по их именам, расширениям или содержанию. Многие антивирусные программы, средства сетевой защиты уровня предприятий и Internet-шлюзы тоже обеспечивают блокировку файлов. Можно найти не менее дюжины программ от независимых поставщиков, которые, «разместившись» на стыке между Internet и сервером электронной почты, исследуют и блокируют файлы. Назовем для примера неплохое бесплатно распространяемое средство MIMEDefang производства Penguin Software, ориентированное на имеющих опыт работы с системами UNIX и Linux администраторов Perl; или отличные программы блокировки и исследования файлов MIMEsweeper компании Clearswift и SмогутMail for OpenMail корпорации Trend Micro. Стоит повнимательнее присмотреться к используемому программному обеспечению; возможно, оно наделено средствами блокировки файлов. На самом деле многие администраторы уже располагают нужными инструментами, хотя и не подозревают об этом. Указав в глобальной поисковой системе применяемую в организации платформу электронной почты и введя фразу block file attachments, можно получить полный список имеющихся средств.

Блокирование обмена файлами в IM

Средства мгновенного обмена сообщениями позволяют несущим угрозу файлам прорваться в наши сети, минуя брандмауэры и защищенные почтовые серверы. Если конечные пользователи располагают IM-средствами — а, скорее всего, так оно и есть, — следует обязательно позаботиться о том, чтобы сканирующая программа проверяла файлы, передаваемые по каналам IM. Нужно помнить, что вредоносные программы могут попадать в персональный компьютер самыми разными путями — через средства мгновенного обмена сообщениями, сеть, Internet, съемные накопители, электронную почту или через карманные компьютеры, — поэтому, если разместить антивирусные средства повсюду, кроме самой машины, у лазутчиков будет оставаться масса возможностей делать свое черное дело. Почти все широко распространенные антивирусные сканеры автоматически проверяют файлы, сохраняемые или открываемые пользователями с помощью средств IM, и все больше становится программ, которые непосредственно контролируют обмен данными по IM-каналам. Пакет BitDefender фирмы SOFTWIN был одним из первых сканеров, специально предназначенных для защиты средств мгновенного обмена сообщениями; проверка файлов, присоединяемых к IM-сообщениям, стала одной из важнейших функций пакета Norton AntiVirus 2003 производства компании Symantec. Изделия ScanMail осуществляют мониторинг и защиту средств мгновенного обмена сообщениями серверов Exchange 2000 Server или Lotus Notes.

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

Запрет на автоматическое исполнение файлов

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

Необходимо позаботиться о том, чтобы браузеры и почтовые клиенты перед загрузкой файлов запрашивали у пользователей санкцию на выполнение данной операции. При установке стандартных параметров безопасности Microsoft Internet Explorer (IE), Outlook и Outlook Express перед загрузкой файлов обычно отображают диалоговое окно с предложением принять эти файлы. А браузер IE одновременно может предложить пользователю определиться, следует ли открывать файл по завершении загрузки. При этом поступающие материалы разделяются по такому признаку, как расширение каждого файла, указанное в списке Registered file types программы Windows Explorer. Чтобы настроить подобное диалоговое окно в системах Windows 2000, нужно открыть окно Windows Explorer, в строке меню выбрать пункты Tools и Folder Options, перейти на закладку Файл Types, выбрать тип файла и щелкнуть на значке Advanced. После этого остается только выставить или снять флажок Confirm open after download.

Еще одна мера предосторожности: желательно преобразовывать всю поступающую почту в обычный текст. Предоставлять пользователям доступ к HTML, сценариям и другому активному контенту — все равно что направлять злоумышленникам приглашение посетить вашу сеть. Программа Outlook 2002 оснащается средствами для преобразования такого контента в обычный текст. Требуется установить пакет обновлений Outlook 2002 SP1 или более позднюю версию. Затем следует открыть редактор реестра, перейти в подраздел HKEY_CURRENT_USERSoftwareMicrosoftOffice10.0OutlookOptionsMail, создать запись ReadAsPlain (тип записи REG_DWORD) и задать ей значение, равное 1. Кстати, отключение всего, не относящегося к категории обычного текста контента может привести к тому, что некоторые сообщения электронной почты будут иметь странный вид или вообще покажутся пустыми. В Internet можно найти несколько бесплатно распространяемых средств, таких, как NoHTML Расса Купера, позволяющих осуществлять подобные преобразования в пакетах Outlook 2002 или Outlook 2000.

Необходимо следить за тем, чтобы на всех клиентских системах были установлены самые последние модули коррекции для программ IE и Outlook. Кроме того, следует настраивать клиенты Outlook таким образом, чтобы к сообщениям применялась предусмотренная в IE защитная настройка Restricted sites. В окнах программ Outlook 2002 и Outlook 2000 нужно выбрать в строке меню пункты Tools и Options, затем перейти на закладку Security и просмотреть раздел Secure Contents. Для пункта Zone следует указать значение Restricted sites.

Блокировка запуска файлов на исполнение

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

В сетях Windows 2000 или Windows NT эту задачу можно решить с помощью программ независимых поставщиков, настроек реестра, файлов правил и объектов групповой политики AD (Active Directory Group Policy Objects, GPO). Я часто меняю ассоциации файлов с расширениями cs, .js, .jse, .sct, .vbe, .vbs, .ws, .wsc и .wsf и связываю эти файлы с прикладными программами, не имеющими к ним отношения. В результате такие файлы открываются не в Windows Script Host (WSH), а, например, в Notepad. Конечно, те администраторы, для которых важна возможность выполнения сценарных файлов с указанными расширениями, скорее всего, не станут так изменять привязку файлов. Для автоматизации этого процесса можно использовать файл .reg, содержащий команды, аналогичные представленным в Листинге 1. Я советую сетевым администраторам создавать административные сценарные файлы с искусственными расширениями (например, .jjs), которые затем регистрируются средствами WSH. Такие установки реестра можно применять автоматически с помощью сценариев регистрации или шаблонов групповых правил.

На машинах со средствами защиты стандарта NTFS я блокирую доступ пользователей к потенциально опасным файлам с ассоциациями, перечисленными в разделе реестра HKEY_CLASSES_ROOT, ограничивая разрешения вручную, или использую для этого шаблоны безопасности. Для того чтобы ограничить разрешения вручную, следует открыть редактор regedt32 (regedit для этой цели не годится), выбрать соответствующий раздел реестра, в строке меню указать пункт Security и затем задавать нужные разрешения NTFS. Например, чтобы не допустить запуска файлов VBScript, необходимо изменить содержащиеся в подразделе реестра HKEY_CLASSES_ROOTVBSFileShellOpenCommand разрешения таким образом, чтобы данный подраздел был доступен для чтения только пользователям групп Administrators, Power Users и SYSTEM. Обладателям подобных учетных записей я делегирую полный объем полномочий Full Control (при этом явным образом отказываю в доступе учетным записям всех других пользователей и групп). В результате, если не имеющий соответствующих полномочий пользователь попытается выполнить файл VBScript, он получит сообщение об ошибке. Такие методы более надежны, чем переориентация файлов .vbs на другую программу; дело в том, что создатели пакетов обновлений Microsoft и новых версий изделий имеют досадную привычку заново устанавливать ассоциации файлов, не спрашивая на то разрешения. Отказывая в доступе к подразделу реестра с тем или иным типом файла, можно сохранить целостность системы безопасности сети.

Отображение расширений файлов

Администратор может принимать самые разные меры безопасности, но самое меньшее, что он может сделать, — это дать пользователям возможность увидеть, к каким типам относятся получаемые ими файлы. Поэтому нужно обязательно отменить действие всех введенных корпорацией Microsoft «удобных» функций сокрытия расширений файлов. В Windows 98 и более ранних системах имеются только одна или две подобные функции, но в поздних версиях реализовано несколько дополнительных возможностей.

Если сеть работает под управлением Windows 2000, процесс «извлечения на свет» скрытых расширений файлов нужно начать с запуска программы Windows Explorer; затем в строке меню выбрать пункты Tools, Options и перейти на закладку View. В окне Advanced settings следует сбросить флажок Hide файл extensions for known file types. Или же можно модифицировать реестр с помощью файла .reg, подобного представленному в Листинге 2. Некоторые из приведенных в листинге значений реестра подходят не для всех версий Windows, но вреда от включения их в файл не будет.

Даже после удаления настроек Windows, скрывающих от пользователя расширения файлов, операционная система не станет автоматически отображать некоторые расширения, например .lnk, .pif, .scf, .sct, .shb, .shs, .url, а также несколько расширений, используемых в пакете Microsoft Access. Так, файл с именем readme.txt.shs, что может указывать на представляющий угрозу исполняемый модуль, предстанет в виде обычного файла readme.txt. («червь» Life_stages с помощью этого трюка заразил миллионы настольных компьютеров). Дело в том, что Windows всегда отображает или скрывает расширение в зависимости от наличия в посвященном данному типу файла подразделе реестра записи AlwaysShowExt или NeverShowExt. Значение записи роли не играет; главное, чтобы запись существовала и чтобы в ее написании не было ошибок. В тех случаях, когда имеются обе записи, запись NeverShowExt отменяет запись AlwaysShowExt. Поэтому необходимо с помощью функции меню Edit, Find редактора regedit найти и удалить все записи NeverShowExt и добавить записи AlwaysShowExt в подразделы реестра, связанные с потенциально опасными типами файлов. Можно пойти по другому пути и решить эту задачу посредством шаблонов безопасности, но описание процесса создания и реализации файлов шаблона безопасности .inf выходит за рамки данной статьи. Удаляя значения с помощью файлов .reg, нельзя рассчитывать на то, что подобные операции будут всегда завершаться успешно, однако файлы .reg, такие, как файл, представленный в Листинге 3, можно использовать для добавления записи AlwaysShowExt к существующим типам файлов. Надо отметить, что после добавления записи AlwaysShowExt к подразделу реестра, посвященному файлам типа .link, отображаются скрытые расширения экранных ярлыков рабочего стола, что может сбивать с толку пользователей.

Как сетевые администраторы, мы должны ограждать пользователей от файлов потенциально опасных типов. Минимальное требование состоит в том, чтобы блокировать файлы, не имеющие большого значения для работы и представляющие угрозу безопасности данных, — скажем, исполняемые файлы (.exe), файлы хранителей экранов (.scr) и сценарные файлы (.hta, .js и .vbs). Распространение таких файлов должно быть заблокировано на уровне серверов электронной почты и клиентских систем. Затем следует принять дополнительные меры для предотвращения запуска на исполнение подобных файлов — на случай, если они преодолеют линию обороны. Безупречных схем защиты компьютеров не существует (об этом рассказано во врезке «Идеальных планов не бывает»), но, следуя приведенным выше рекомендациям, можно обеспечить уровень защиты значительно более высокий, чем в большинстве других сетей, не ограничивая при этом функциональных возможностей систем.

Роджер А. Граймз — консультант по антивирусной защите. Имеет сертификаты CPA, MCSE, CNE, A+ и является автором книги «Malicious Mobile Code: Virus Protection for Windows» (изд-во O?Reilly & Associates). Его адрес: roger@rogeragrimes.com.

Листинг 1. Программа для изменения ассоциаций расширений файлов.
REGEDIT4
[HKEY_CLASSES_ROOTVBSFileShellOpenCommand]
@=»notepad.exe %1»
[HKEY_CLASSES_ROOTVBSFileShellOpen2Command]
@=»notepad.exe %1»
[HKEY_CLASSES_ROOTJSFileShellOpenCommand]
@=»notepad.exe %1»
[HKEY_CLASSES_ROOTJSFileShellOpen2Command]
@=»notepad.exe %1»
[HKEY_CLASSES_ROOTJSEFileShellOpenCommand]
@=»notepad.exe %1»
[HKEY_CLASSES_ROOTJSEFileShellOpen2Command]
@=»notepad.exe %1»
[HKEY_CLASSES_ROOTWSHFileShellOpenCommand]
@=»notepad.exe %1»
[HKEY_CLASSES_ROOTWSHFileShellOpen2Command]
@=»notepad.exe %1»
[HKEY_CLASSES_ROOTWSFFileShellOpenCommand]
@=»notepad.exe %1»
[HKEY_CLASSES_ROOTWSFFileShellOpen2Command]
@=»notepad.exe %1»
Листинг 2. Программа для отображения расширений файлов.
REGEDIT4
[HKEY_CURRENT_USERSoftwareMicrosoftWindows
     CurrentVersionExplorerAdvanced]
«Hidden»=dword:00000001
«HideFileExt»=dword:00000000
«SuperHidden»=dword:00000001
«ShowSuperHidden»=dword:00000001
Листинг 3. Программа, обеспечивающая постоянное отображение расширений файлов.
REGEDIT4
[HKEY_CLASSES_ROOTShellScrap]
«AlwaysShowExt»=»»
 [HKEY_CLASSES_ROOTVBSFile]
«AlwaysShowExt»=»»
 [HKEY_CLASSES_ROOTJSFile]
«AlwaysShowExt»=»»

Идеальных планов не бывает
Даже самые лучшие схемы блокирования файлов и лучшие средства, предназначенные для этой цели, могут оказаться бессильны хотя бы перед одним методом атаки. Понятно, что блокировать доступ ко всем присоединенным файлам, не вызвав протеста со стороны пользователей, невозможно; с другой стороны, любой файл, который необходимо сделать доступным для пользователей, может нести в себе скрытую угрозу. Можно заблокировать файлы с 40 различными расширениями, но, если файл того типа, которому администратор «дал добро», содержит опасный код, обязательно возникнут проблемы. Впрочем, от самых вероятных противников все-таки можно защититься.

Количество программ и объемы данных, передаваемых по каналам Internet, постоянно растут, и надо сказать, что на поиски механизмов блокирования файлов для использования с Web-браузерами уходит больше сил, чем на организацию блокады присоединенных файлов, поступающих с электронной почтой. Хакерским сценариям на языках JavaScript и VBScript трудно поставить заслон, а между тем каждый встраиваемый модуль браузера (например, Shockwave Flash, Adobe Acrobat, Nullsoft Winamp) предоставляет непрошеным гостям дополнительную возможность проникновения в систему. К тому же блокирование файлов редко позволяет предотвратить атаки, вызывающие переполнение буферов, поэтому хакеры нередко используют именно этот тип атак. Упомянем и о других пользующихся популярностью у злоумышленников механизмах проникновения — искажение заголовков (header malformation) или подмена MIME-типов (MIME-type mismatches). Первый метод состоит в том, что хакер создает заголовок файла с целью вызвать сбой, скажем переполнение буфера или «отказ в обслуживании» (Denial of Service, DoS). Подмена MIME-типов происходит, когда злоумышленник намеренно вводит в заблуждение клиентский браузер или оснастку, подготавливая упомянутый браузер или оснастку к работе с одним типом программы (скажем, с текстовым файлом), а затем предлагая программу другого типа (например, файл HTML). Такие махинации с MIME-типами часто позволяют обойти механизмы блокирования файлов, которые при выяснении принадлежности файла к допустимым типам ограничивают проверку сообщениями электронной почты или MIME-заголовками и не выполняют перепроверки после получения самого файла.

Еще один способ сокрытия подлинной природы представляющего угрозу файла — манипуляции с содержащимся в имени файла идентификатором класса данного файла (class ID, или CLSID). Практически каждый программный файл ассоциирован с уникальным идентификатором CLSID, с помощью которого файл регистрируется обработчиком COM-объектов Windows. Когда имя файла заканчивается заключенным в скобки ({}) идентификатором CLSID, обрамленная скобками часть нередко остается скрытой (хотя существует несколько способов верифицировать истинный тип файла, например открыть диалоговое окно Properties данного файла). Скажем, идентификатор CLSID для файла HTML выглядит так: 25336920-03F9-11CF-8FD0-00AA00686F13. И если дать файлу HTML имя readme.txt.{25336920-03F9-11CF-8FD0-00AA00686F13}, во многих приложениях он будет отображаться как readme.txt, хотя на самом деле является полноценным HTML-документом и будет выполняться как таковой. Подобный трюк выполнял вирус VBS.Postcard, выдавая файл post-card.tif.vbs за файл post-card.tif.

Заголовки некоторых файлов имеют внутренние механизмы идентификации файла как принадлежащего определенному типу, поэтому в зависимости от того, какую операцию выполняет пользователь — запуск файла из клиента электронной почты или запись его на диск, — подходы к обработке и выполнению файла могут быть различными. Возьмем следующий пример: если документ Microsoft Word записывается на диск и открывается с помощью программы Windows Explorer, он обрабатывается таким образом, что будет загружаться в программе Word вне зависимости от расширения файла. Но если документ Word поступает в Microsoft Outlook в качестве присоединенного файла, в программе Word его можно запустить непосредственно из сообщения лишь в том случае, если он имеет расширение .doc. Иначе говоря, злоумышленник может с легкостью усыпить бдительность пользователя, который сохранит документ Word с именем readme.txt на жестком диске, полагая, что файл можно открывать безо всяких опасений, тогда как на самом деле он содержит разрушительный сценарий.

Наконец, отметим, что с появлением макросов и сценариев, способных выполнять внешние команды, процедура блокировки файлов заметно осложнилась. Скажем, макрос Microsoft Excel может выполнять такие внешние команды, как format.com. Безобидный по всем признакам файл .rtf может содержать ссылку, выполняющую «подрывную» программу. А нередко загружаемые пользователями элементы оформления графических сценариев (skins) могут содержать сценарии, представляющие угрозу для системы.

Зарегистрированные типы файлов
Когда клиент электронной почты получает сообщение с присоединенным файлом, пользователь имеет возможность запустить этот файл на исполнение непосредственно в почтовом приложении или же сохранить файл на диске и выполнить его вне клиентского приложения. В среде Windows методы обработки файла могут видоизменяться в зависимости от места его выполнения, но суть в том, что операционная система или загружает и выполняет файл (если последний представляет собой программный файл, как, например, файлы .bat, .com, .exe или .pif), или загружает файл в программу, которая зарегистрирована в системе в качестве приложения, обрабатывающего файлы указанного типа (такая связь известна как ассоциация файлов). В системах Windows еще в процессе предпродажной установки создаются десятки, а то и сотни ассоциаций файлов, и программы могут регистрировать расширения файлов при установке. Так, Microsoft Excel регистрирует расширение .xls, а WinZip — расширения .zip и .xxe (среди прочих). Все ассоциации файлов должны быть уникальными для каждой машины, но обычно они универсальны для всех систем Windows.

Заведенный создателями Windows обычай «приписывать» файлы с определенными расширениями к тем или иным приложениям создает бесконечные проблемы для программистов и администраторов, ответственных за обеспечение защиты данных. В программе WordPerfect пришлось даже изменить принимаемое по умолчанию в среде DOS расширение .doc; в Windows-совместимых версиях вместо него используется расширение .wpd, ибо в Windows это расширение по умолчанию зарезервировано за Microsoft Word. Большинство других современных операционных систем обладает более развитыми средствами ассоциации файлов с установленными приложениями. Скажем, предпочтительнее такой метод, когда для извещения операционной системы о том, в какое приложение загружать тот или иной файл, используется хранящаяся в заголовке последнего информация о его типе. Этот метод позволяет многим приложениям работать с одними и теми же расширениями файлов или при переименовании файла присваивать ему любое расширение, не заботясь о том, сможет ли соответствующая программа автоматически распознать данный файл. Internet меняет ситуацию к лучшему, поскольку расширения уже не имеют большого значения: ассоциация загружаемого контента с той или иной программой часто осуществляется с помощью уникального программного идентификатора, например глобального уникального идентификатора GUID (globally unique identifier) или идентификатора класса CLSID (class ID).

Можно приписать любое зарегистрированное расширение файла к любой программе, но эта операция требует дополнительных усилий и, если не позаботиться о том, чтобы другие установленные программы могли нормально функционировать без использования файлов с данным расширением, может обернуться неожиданными проблемами. Программы регистрируют типы файлов в разделе реестра HKEY_CLASSES_ROOT (эта информация дублируется в подразделе HKEY_LOCAL_MACHINESOFTWAREClasses).

Зарегистрированные типы файлов можно просматривать с помощью редактора реестра, как показано на Экране A.

Экран А. Просмотр зарегистрированных типов файлов через редактор реестра.
Кроме того, их можно определять из окна Windows Explorer. Необходимо открыть меню Folder Options или Options (разные версии Windows отличаются некоторыми вариациями в пути доступа), затем выбрать закладку Файл Types, и появится список, подобный тому, что изображен на Экране Б. В окне редактора реестра можно увидеть большее число зарегистрированных файлов, нежели в окне Windows Explorer, но манипулировать зарегистрированными типами файлов все же легче из Windows Explorer.
Экран Б. Просмотр зарегистрированных типов файлов через Windows Explorer.