Сто и один способ взлома электронной почты
Перед тем как углубиться в обсуждение конкретных видов атак, важно понять, как можно отправить электронное сообщение со злым умыслом. На самом деле сделать это сложнее, чем может показаться на первый взгляд. Большинство современных графических клиентских приложений электронной почты не позволяет выполнять операции непосредственно с блоком заголовка сообщений SMTP. Ирония состоит в том. что, несмотря на недовольство, которое вызывают изъяны программных продуктов компании Microsoft, которые проявляются во время приема сообщений, отправить созданный взломщиком код HTML с помощью таких программ, как Outlook или Outlook Express, крайне трудно. Конечно же, пользователи UNIX для подобных манипуляций могут воспользоваться традиционными почтовыми клиентами, которые можно использовать из командной строки.
В системе Windows авторам нравится отправлять сообщения вручную из командной строки прямо на сервер SMTP. Лучше всего для этого воспользоваться конвейером, в котором текстовый файл с соответствующими командами SMTP и данными передается через утилиту netcat. Вот как это делается.
Во-первых, необходимо создать файл с нужными командами SMTP и данными сообщения (назовем его malicia.txt). При этом, чтобы электронное письмо было правильно отформатировано, важно придерживаться правильного синтаксиса MIME (Multipurpose Internet Mail Extensions). Обычно такие сообщения отправляют в формате HTML, так что само тело сообщения представляет собой часть реализации коварного замысла. В следующем примере главной частью, в которой важно соблюдать синтаксис, являются три строки, начинающиеся со строки MlME-Version: 1,. 0.
helo
mail from: <mallory@malweary.com>
rcpt to: <hapless@victim.net>
data
subject: Read this!
Importance: high
MIME-Versicn: 1.0
Content-Type: text/html; charset=us-ascii
Content-Transfer-Encoding: 7bit
<HTML>
<h2>Hello' World!</h2>
</HTML>
quit
Затем в командной строке нужно ввести имя этого файла и передать его через конвейер утилите netcat, для которой следует указать подходящий почтовый сервер с прослушиваемым SMTP-портом 25. type malicious.txt | nc -w mail.openrelay.net 25
Наверное, понятно и без слов, что хакеры, скорее всего, выберут неприметный почтовый сервер, который допускает неограниченную передачу сообщений SMTP, и постараются скрыть свой собственный IP-адрес, чтобы его нельзя было выследить с помощью журналов почтовых серверов.
Такие "открытые каналы пересылки SMTP" часто используются "спэмерами". Их можно легко отыскать в новостях Usenet или найти на Web-узле http://mail-abuse.org.
Если вместе с сообщением в формате HTML нужно отправить атожение, то сделать это несколько сложнее. Для этого в сообщение необходимо добавить другую часть в формате MIME и закодировать это вложение с помощью спецификации MIME в формат Base64 (см. RFC 2045-49). Лучше всего воспользоваться для этой цели утилитой Джона Майерса (John G. Myers) mpack. Программа mpack изящно добавляет соответствующие заголовки MIME, так что получившийся результат можно сразу отравлять прямо на сервер SMTP. Ниже приведен пример того, как с помощью утилиты mpack зашифровать файл plant.txt и записать полученные данные в файл plant.mim. Параметр -s задает содержимое поля с темой сообщения и не является обязательным.
mpack -s Nasty-gram -о plant.mim plant.txt
Теперь начинается более сложная часть. Этот фрагмент в формате MIME нужно вставить в уже существующее сообщение HTML. Воспользуемся уже знакомым примером, malicia.txt и разделим это сообщение с помощью обычных разделителей MIME в соответствии с тем, как определено в строках Content-type:. Перед разделителями MIME ставится два символа -, а в закрывающих разделителях два этих символа вводится еще и после разделителей. Кроме того, постарайтесь не забыть поместить часть сообщения MIME multipart/alternative (boundary,:), чтобы адресаты смогли расшифровать тело сообщения HTML с помошью программы Outlook. Следует обращать внимание на размещение символов перевода каретки, так как от этого зависит интерпретация сообщения. Заметим, что параметру этого сообщения importance присвоено значение high. Это еще один прием, направленный на заманивание жертвы.
helo somedomain.com
mail from: <mallory@malweary.com>
rcpt to: <hapless@victim.net>
data
subject: Read this!
Importance: high
MIME-Version: 1.0
Content-Type: multipart/mixed;
boundary="_boundaryl_"
--_boundaryl_--
Content-Type: multipart/alternative;
boundary="_boundary2_"
--_boundary2_--
Content-Type: text/html; charset=us-ascii
<HTML>
<h2>Hello World!</h2>
</HTML>
~-_boundary2_--
--_boundaryl_--
Content-Type: application/octet-stream;
name="plant.txt"
Content-ID: <5551212>
Content-Transfer-Encoding: base64
Content-Disposition: inline;
filename="plant.txt"
Content-MD5: Psn+mcJEvOfPwoEc40XYTA==
SSBjb3VsZGEgaGFja2VkIHlhIGJhZCANCg==
--_boundaryl_--
quit
После передачи этого файла с помощью утилиты netcat на доступный сервер SMTP сообщение в формате HTML и с вложенным файлом plant.txt будет доставлено по адресу hapless@victim.net. Чтобы лучше понять применение разделителей MIME в сообщениях, состоящих из нескольких частей, см. раздел 5.1.1 документа RFC 2046. Кроме того, в качестве полезного упражнения можно отправить тестовое сообщение на свой адрес, и просмотреть его с помощью приложения Outlook Express. Затем нужно щелкнуть правой кнопкой на данном сообщении и в контекстном меню выбрать команду Properties>Details>Message Source и просмотреть сообщение в необработанном виде.
В данной главе авторы будут ссылаться на этот метод как на "капсулу для взлома почты". Теперь, чтобы представить себе степень риска, которую на самом деле представляет собой атака через электронную почту, посмотрим, как этот общий метод применяется в некоторых реальных атаках.
Контрмеры против взлома электронной почты
Очевидной мерой является отключение возможности получения почтовым клиентом сообщений в формате HTML. К сожалению, для современных почтовых программ сделать это либо сложно, либо невозможно. Кроме того, следует отключить и возможность использование технологий мобильного кода. В разделе, посвященном описанию зон безопасности, уже упоминалось, как это сделать, но для надежности авторы решили еще раз повторить этот совет. В приложениях Outlook и Outlook Express выберите команду Tools>Options, перейдите во вкладку Security и в раскрывающемся списке группы Secure content выберите зону Restricted Sites, как это показано на рис. 16.2. (Не забывайте, что этот параметр не будет применяться при просмотре Web-страниц в броузере Internet Explorer, в котором используются свои собственные параметры.) Один только этот прием поможет избежать многих перечисленных ниже проблем, поэтому настоятельно рекомендуем воспользоваться этой возможностью.
Безусловно, важно также соблюдать осторожность при работе с вложениями электронных сообщений. Первой инстинктивной реакцией большинства людей на возникновение проблем, подобных появлению вируса 1LOVEYOU (см. ниже), — обвинить во всем разработчика программного обеспечения. Однако на самом деле почтовые программы требуют определенных навыков и со стороны пользователя. Модуль обновления Outlook, который можно получить по адресу http://officeupdate.microsoft.com/
2000/downloadDetails/Out2ksec.htm, усложняет пользователям процесс запуска вложений, заставляя их перед этим по крайней мере два раза щелкать в появляющихся диалоговых окнах (кстати, этот модуль устанавливает еше и зону безопасности Restricted Sites). Как вы увидите немного ниже, это не просто зашита от дураков. Такая мера значительно поднимает барьерную планку для возможных взломщиков. Обычный здравый смысл тоже поможет в этом: не открывайте сообщения и не загружайте вложения, которые пришли от незнакомых людей!