Поле скрытая заголовка почтового сообщения предназначено. Заголовки электронных писем

12.05.2019

Технические заголовки

Согласно стандартам обмена электронными сообщениями, письма поддерживают некоторые заголовки, каждый из которых должен быть с новой строки. По умолчанию уже прописаны необходимые из них: MIME-Version, Content-Type, From, Reply-To, Subject, To. Записанные в поле заголовков новые, будут добавлены к имеющимся вшеуказанным.

Все почтовые агенты воспринимают эти стандарты по разному. Хотя эти заголовки email и указаны в официальных протоколах RFC, они могут быть ингорированы или неверно интерпретированы, по этому перед email рассылкой их стоит тестировать на себе.

Популярные RFC заголовки письма

Cc: (Carbon Copy) * Cc: [email protected]
Этот заголовок является расширением поля "To:", он указывает дополнительных получателей письма. Различий между "To:" и "Cc:" в сущности нет, если не считать, что некоторые почтовые программы рассматривают их по-разному, генерируя ответ на сообщение.
Bcc: (Blind Carbon Copy) * Bcc: [email protected]
Если вы видите этот заголовок в полученном сообщении - значит, что-то не так. Этот заголовок используется так же, как и "Cc:" (см. ниже), но не появляется в списке заголовков. Основная идея этого заголовка заключается в возможности посылать копии письма людям, которые не хотят получать ответы или появляться в заголовках. Слепые копии очень популярны среди спаммеров, поскольку многие неопытные пользователи оказываются сбитыми с толку, получив письмо, которое вроде бы не было им адресовано.
Comments: * Comments: Люблю книги
Этот заголовок не является стандартным, может содержать любую информацию. Подобные заголовки добавляются некоторыми почтовыми программами (в частности, популярной программой Pegasus) для идентификации отправителя, но часто прописывается и вручную спаммерами, так что относиться к нему следует с осторожностью.
Organization: * Organization: ОАО Костоправ
Абсолютно свободный заголовок, обычно содержащий название организации, через которую отправитель сообщения получает доступ к сети. Отправитель, как правило, контролирует этот заголовок, поэтому там вполне может быть что-то вроде "Королевское Сообщество Постановки Одного Над Другим".
Priority: (X-MSMail-Priority: Importance:) * Priority: 1
Заголовок, устанавливающий приоритет сообщения. Иногда указывается, как X-Priority:, X-MSMail-Priority:, Importance:, принимает значения "Higt", "Normal", "Urgent", "Non-urgent" или дляX-Priority "1", "3", "5". Большинство программ его игнорируют. Часто используется спаммерами с целью привлечения внимания к сообщению установив 1.
Precedence: * Precedence: bulk
Значения: "bulk", "junk", "list". Указывает принадлежность письма к массовой рассылке. Синонимы X-List:*, X-Mirror:*, X-Auto:*, X-Mailing-List:*.
List-Owner: * List-Owner:
Email адрес организатора массовой рассылки.
X-Mailer: * X-Mailer: ePochta Mailer Disposition-Notification-To: * Disposition-Notification-To: [email protected]
На указанные реквизиты будет отправлено уведомление о прочтении. Зачастую игнорируется почтовиками, в целях борьбы со спамом. Синонимы: X-Confirm-Reading-To:, Return-Receipt-To:
List-Unsubscribe: * List-Unsubscribe: или List-Unsubscribe:
По описанному функционалу, поле должно автоматически отписывать пользователя, если он нажал на кнопку "СПАМ", но зачастую под это поле выводится отдельная кнопака "Отписаться". Заголовок воспринимается не всеми почтовыми программами, т.к. это отличная возможнотсь проверить email адреса на используемость.
X-*** * X-List:, X-Mailer:, X-...
Как глосят стандарты RFC, заголовки начинающиеся на X - это собственные заголовки отдельных почтовых программ, носящие информативный характер. Но некоторые принимаются повсеместно, например X-Mailer. Ничего, кроме дополнительной информации в коде письма...

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

Любой e-mail в своей основе обладает одинаковым строением. Формат почтового сообщения В Сети определен в документе RFC-822 (Standard for ARPA Internet Text Message, опубликован в 1982 г.). Почтовое сообщение состоит из трех частей: конверта (envelope), заголовков (headers) и тела сообщения (body). Пользователю доступны только заголовоки (headers) и тело (body) сообщения. Конверт используется программами доставки (для передачи сообщения от сервера к серверу). RFC-822 регламентирует содержание заголовка сообщения. Заголовок всегда находится перед телом сообщения, отделен от него пустой строкой и состоит из полей (имя и содержание). Имя поля отделено от содержания символом ":".

Минимально необходимыми являются следующие поля "Date: «, »From: «, »Cc: " и/или "To: ", например:

From: [email protected]

To: [email protected]

From: [email protected]

Cc: [email protected]

From: [email protected]

To: [email protected]

Cc: [email protected]

где "Date: «, »From: «, »Cc: " и "To: " являются именами заголовка, а через пробел напротив каждого имени заголовка указано соответствующее содержание. Определим значение каждого указанного имени заголовка:

Поле "Date:" выставляется компьютером отправителя, на котором может быть неправильно установлены дата и время

Date: — назначение данного заголовка очевидно: он указывает дату и время отправки письма (из примеров "Fri, 6 Dec 2002 23:26:50 +0300 (MSK/MSD)" видно, что письмо было отправлено 6 декабря 2002 года в 23:26:50 по московскому времени). Если этот заголовок не был создан на компьютере отправителя, то, возможно, его добавит почтовый сервер или какой-нибудь другой компьютер, через который пройдет письмо. Его ни в коем случае нельзя принимать за непреложную истину, и дело даже не в возможности подделки — в мире чудовищно большое количество компьютеров с неверно идущими часами;

From: — указывает адрес отправителя (в примере мы видим, что письмо было отправлено с адреса [email protected]);

To: — адрес(а) получателя(ей) (получателем в нашем примере является [email protected]). Отметим, что поле "To: " не обязано содержать адрес получателя, а также может содержать адреса нескольких получателей;

Cc: (Carbon Copy) — адресация копий, этот заголовок является расширением поля «To», он указывает дополнительных получателей письма (получатель «To» видит список всех «Cc»). Различий между заголовками «To» и «Cc», в сущности, нет, если не считать, что некоторые почтовые программы рассматривают их по-разному, генерируя ответ на сообщение. В примере № 1 поля Cc нет, то есть письмо было отправлено единственному получателю [email protected]. Из примера № 2 видно, что данный заголовок принадлежит адресату [email protected], которому отправлена копия письма (он не видит поле To). Пример № 3 показывает, что письмо было отправлено получателю письма [email protected], а также копия письма была отправлена на ящик [email protected].

Но это только самые основные поля заголовка. Обычно заголовок содержит значительно больше полей, чем указано выше. Давайте с ними ознакомимся...

Поле "Received:" — штамп прохождения письма через почтовый сервер

Received: — "штамп" прохождения письма через почтовый сервер. Заголовки "Received:" предоставляют подробную информацию о жизни сообщения и не дадут обмануть получателя сообщения, откуда именно пришло письмо. Если, например, машина turmeric.com, IP-адрес которой 104.128.23.115, посылает сообщение машине mail.bieberdorf.edu, но пытается ее обмануть, сказав HELO galangal.org, заголовок "Received:" получится следующим: Received: from manaraga.org (turmeric.com ) by mail.bieberdorf.edu...(остаток строки опущен для ясности). Здесь подделка сразу выводится на чистую воду. Данная строка говорит: "машина turmeric.com, чей адрес 104.128.23.115, назвалась galangal.org". Мы рассмотрели лишь один пример, наглядно представляющий нужность и полезность данного заголовка письма, в связи с тем, что целью данный статьи не является подробное изучение каждого заголовка, а лишь ознакомление с наиболее часто встречающимися в обычной жизни. Тем более что о заголовке "Received:" можно написать отдельную статью.

Message-Id: — уникальный идентификатор письма, присваиваемый каждому сообщению, — чаще всего первым почтовым сервером, который встретится у него на пути, либо же почтовым клиентом. Обычно он имеет форму "[email protected], где «abrakadabra» набор произвольных символов, а вторая часть "domain.ru" — имя машины, присвоившей идентификатор. Иногда, но редко, «abrakadabra» включает в себя имя отправителя. Message-Id используется программами доставки почты во избежание "зацикливания" письма;

Поле «Bcc» — скрытая копия

Bcc: (Blind Carbon Copy) — слепая/скрытая копия (получатели не подозревают о других получателях из поля «Bcc»). Скрытые копии очень популярны среди спамеров, поскольку многие неопытные пользователи оказываются сбитыми с толку, получив письмо, которое, вроде бы, не было им адресовано;

Subject: — тема письма (наличие Re: означает ответ; Fwd: — переадресацию). Почтовый стандарт допускает наличие только латинских символов (US-ASCII) в поле «Subject» поэтому, несмотря на то, что многие пользователи заполняют данное поле по-русски, этого делать не рекомендуется. Нормальная ситуация — когда написанная по-русски тема письма при отправке перекодируется почтовой программой отправителя в 7-битную base64 с указанием языковой кодировки, в которой эта тема написана (как это делают программы Pine, Pegasus Mail), а почтовая программа получателя декодирует тему письма в читаемый вид. Однако это возможность почтового стандарта MIME, который программа UUPC не поддерживает;

Reply-To: — адрес для ответов. Несмотря на то, что этот заголовок имеет множество способов цивилизованного применения, он также используется спамерами для отведения удара от себя. Может быть, какой-нибудь наивный спамер и захочет собирать ответы на свои письма и укажет верный заголовок "Reply-to:", но большинство указывает там либо несуществующий адрес, либо адрес невинной жертвы;

In-Reply-To: — показывает, что сообщение относится к типу "ответ на ответ";

Comments: — означает комментарий. Этот заголовок не является стандартным, а потому может содержать любую информацию. Подобные заголовки добавляются некоторыми почтовыми программами (в частности, популярной программой Pegasus) для идентификации отправителя, но часто прописывается вручную спамерами, так что относиться к нему следует с осторожностью;

Status: — статус письма (новое, прочитанное);

Apparently-To: — эти заголовки нетипичны для нормальных сообщений, они обычно являются признаком массовой рассылки. В последнее время для массовых рассылок используется программное обеспечение, достаточно "умное", чтобы не плодить гигантские списки из этих заголовков;

Organization: — абсолютно свободный заголовок, обычно содержащий название организации, через которую отправитель сообщения получает доступ к сети. Отправитель, как правило, контролирует этот заголовок, поэтому там вполне может быть что-то вроде ЗАО "Рога и Копыта";

Priority: — исключительно свободный заголовок, устанавливающий приоритет сообщения. Большинство программ его игнорируют. Часто используется спамерами в форме "Priority: urgent" (или что-нибудь в этом роде) с целью привлечения внимания к сообщению;

Errors-To: — указывает адрес для отсылки автоматически генерируемых сообщений об ошибке, таких как "нет такого пользователя". Это редко используемый заголовок, так как большинство отправителей обычно хотят получать сообщения об ошибках на исходящий адрес, который используется почтовыми серверами по умолчанию.

Спецификация RFC-822 — сильно устарела

Рассмотренные нами выше заголовки регламентируются RFC-822, как было сказано выше. Со времени использования стандарта RFC-822 обнаружился ряд ограничений, заметно урезающих пользовательские потребности. В частности, возможность пересылки нетекстовых данных, например, аудио и графики — данная возможность просто не была упомянута в RFC-822, описывающем лишь формат текстовых сообщений. И даже в случае текстового сообщения, стандарт RFC-822 обошел вниманием нужды пользователей, использующих расширенный набор символов, что характерно для азиатских и большинства европейских языков. Основное ограничение RFC-822 — относительно короткие строки и 7-битная символьная таблица. Пользователям для отправки нетекстовых данных приходилось конвертировать тело своего письма в 7-битную форму с помощью UUENCODE, BINHEX и аналогов. Стало понятно, что требовалась новая, дополнительная спецификация, и она была разработана — MIME — Multipurpose Internet Mail Extension (RFC-1314). Об этой спецификации мы поговорим в отдельной статье.

Предисловие:

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

Инструментарий:

Итак, что же нам понадобится:

  1. Прога для создания письма.
    Подойдёт любая: TheBat!, АутГлюк и т.д. Если
    нужно отослать более одного письма,
    рекомендую SendIt.
  2. Прога для массовой рассылки
    писем с поддержкой использования прокси (Advanced
    Direct Remailer , G-Loch
    EasyMail , Advanced
    Mass Sender , Group
    Mail Free , Mega-MailerPro ,
    Beijing Express Direct
    Email Blaster и т.
    д.)
  3. Прога для работы других прог
    через прокси: Socks Chain
    и т. д.
  4. Ну, и письмо от чела, чьим "двойником"
    станешь.

Все эти проги я описывать не буду.
Это выходит за рамки моей статьи. Описание
прог под пунктом "2" можно найти в
последнем номере журнала "Хакер" (ver 02.03
(50)).

Принцип работы

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

Формирование письма

Самый первый этап работы
заключается в правильном создании письма.
"А что сложного в создании писем?"
спросишь ты. Под "созданием письма" я
имею ввиду не текст письма, а создание
заголовков. Итак, всем известно, что при передачи письма
почтовому серверу тот вставляет свой
заголовок в начало. Т. е. самый первый
заголовок будет от сервака, где находится
твоё мыло, т.к. он последний получил письмо. Наша задача состоит в том, чтобы отправить
письмо серверу где находится мыло жертвы
напрямую, т.е. минуя другие сервера, и при
этом притворится настоящим отправляющим
сервером.

Вот тут нам понадобятся две проги (или
одна — смотря какими пользуешься): любой
почтовик и одна из прог под пунктом 2.

В почтовике составляем текст
письма. Это уж как-нибудь без меня. После
того, как письмо написано, его нужно
перенаправить к проге ADR (Advanced Direct Remailer). Для
этого в настройках почтовика заполняем
поле SMTP сервера как "localhost" (без кавычек) и отправляем письмо. Теперь
заходим в ADR, кликаем правой кнопкой мыши на
письмо и выбираем "Посмотреть сообщение".
У нас высвечивается Блокнот, в котором
показаны текст письма и заголовки
почтовика. Текст письма не трогаем, а вот
заголовки удаляем и вставляем нужные. Для
этого надо открыть письмо того чела, кем мы
будем прикидываться и настроить почтовик
на показ заголовков (например, в русском TheBat!
это делается так: вид-> показывать
заголовки (RFC-822)).

Нужно вставить все заголовки этого
письма, кроме самого первого (последний
заголовок вставит сервер). Теперь заголовки
необходимо отредактировать: заменить мыло
получателя на то, на которое собираешься
посылать письмо, изменить дату и время на то,
которое будет при отправке. При этом нужно
подсчитать разность времени между
получениями письма серверами, через
которое оно проходит, и ставить время для
каждого сервера своё.

Теперь лезем в настройки ADR.
Заходим в раздел "Доставка" и в поле
"Домен для "HELO"" пишем название
сервака, который отправляет почту (в
заголовках письма оно указано рядом с его IP).
Далее нам понадобится Socks Chain. В настройках
устанавливаем, через сколько проксей нужно
отправить письмо до того, как оно попадёт на
SMTP (хватит и одного). Не закрывая SC снова
лезем в настройки ADR-> "Прокси". Здесь
указываем адрес прокси как 127.0.0.1 и порт,
который стоит в настройках SC (по умолчанию
1081).

Всё, отправляем письмо.

From [email protected] Sun Dec 08 09:04:04 2002
Envelope-to: [email protected]
Delivery-date: Sun, 08 Dec 2002 09:04:04 +0300
Received: from (helo=webserver2.kaspersky-labs.com)
by mx5.mail.ru with smtp (Exim
SMTP.5)
id 18KuXr-000GQc-00
for [email protected]; Sun, 08 Dec 2002
09:04:04 +0300
From:
To: [email protected]
Subject: Тест.
Mime-Version: 1.0
Content-Type: text/plain; charset=windows-1251
Message-Id:
Date: Sun, 08 Dec 2002 09:04:04 +0300

Думаю, не для кого не секрет, кем я
хотел представиться 🙂

Проблемы

Иногда почтовые сервера с высокой
степенью защиты от спама не принимают почту,
если указать в "Домене для "HELO"" не
настоящее имя сервера, с которого пришло
письмо (такое было с mail.ru и hotbox.ru). Вероятно,
сервер сравнивает IP с какого идёт письмо (в
случае с использованием прокси — его адрес)
с IP сервера, на котором находится ящик
отсылающего. В этом случае письмо попадает
в "Плохие" с ошибкой "Почтовый ящик
не существует на этом сервере". Вероятные
решения этой проблемы:

    Заменить имя домена на настоящее
    (в случае использования прокси — указать
    его IP)

    Попытаться использовать IP-спуфинг

    Сделать имя своего компа таким
    же, как и у хоста, который указывается в
    "Домен для "HELO" (на тот случай, если
    твою машину при соединении регистрируют
    в сети прова).

При отправке письма напрямую,
некоторые сервера отказываются работать,
если используется их служба, а в строке "От"
указан ящик, чей аккаунт находится у
другого сервера (такое было у mail.ru).

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

В последнее время многие
сервера отказываются принимать почту, если
определённый IP соответствует прокси. Здесь
также стоит попробовать спуфинг.

Плюсы и минусы данного способа

К достоинствам этого способа можно
отнести возможность рассылки писем без
засветки своих реальных данных (IP, имя компа,
и т.д.) При этом, этот способ вполне может
подействовать не только на ламеров, которые
и о заголовках-то никогда не слышали, но и на
юзеров, если те полезли в заголовки письма (там
всё идентично, кроме IP).

Недостаток: может найтись тот
чувак, который проверит соответствие IP и
имя указанного домена. Но всё равно, уж
лучше так, чем отсылать заведомо
неправильно сформированное письмо.

Заключение

Ну, вот и всё. Желаю тебе побед в
нелёгкой борьбе против ламеров.

Однако мало кто обращает внимание на заголовки сообщений. Некоторые из них пользователи видят при чтении электронной почты постоянно, это строки, начинающихся с To:, From: и Subject:. Однако заголовки содержат не только дружественные подсказки почтовой программы, но и другую, весьма содержательную информацию. Из заголовков можно узнать название и номер версии вашего почтового клиента, а также тип операционной системы, наименование и номер версии почтового сервера, внутренние IP-адреса и тип используемого в вашей организации брандмауэра (если он используется).

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

СТАНДАРТЫ

Заголовки электронной почты, как и все компоненты Internet, должны соответствовать стандартам, в данном случае - стандарту RFC 822. Отдельный стандарт, RFC 821, определяет формат «конверта» и описывает протоколы передачи почтовых сообщений, но это не относится к теме данной статьи. Спецификация RFC 822 была предложена для замены более раннего стандарта (RFC 733), с целью обеспечения передачи сообщений электронной почты между различными сетями. Обсуждаемые в данной статье заголовки необходимы для пересылки любого почтового сообщения через Internet или же между двумя внутренними серверами электронной почты, если они используют для этого стандартные протоколы TCP/IP. Эти понятия пояснены на Рисунке 1.

Возможно, ваша почтовая программа позволяет просматривать заголовки сообщений. Например, в случае Outlook, выбрав в меню View подменю Show Fields, вы увидите диалоговое окно с наименованиями некоторых из возможных полей, которые могут появляться в почтовых сообщениях.

Каждый заголовок начинается с наименования поля, за которым всегда следует двоеточие и пробел, например To: или Received:. Длинные строки заголовков «свернуты», или представлены несколькими строками, причем каждая дополнительная строка начинается как минимум с одного пробела. На Рисунке 1 первым полем заголовка является Received:, которое в действительности распространяется на три строки, за ним следует другое трехстрочное поле Received:.

Некоторые из названий полей, такие, как Date:, To:, Subject: и From:, сами говорят о своем назначении. Например, после имени поля From: расположен обратный адрес, а после To: - адрес получателя. Протокол SMTP (RFC 821) не требует, чтобы помещенный в поле From: адрес точно представлял отправителя. SMTP не располагает реальными средствами проверки того, что отправитель использует свой собственный адрес, хотя большинство почтовых серверов проверяет, как минимум, факт существования домена отправителя. Отсутствие контроля облегчает фальсификацию адресов отправителей сообщений, характерную, в частности, для спама.

ПОЛУЧАТЕЛИ

С точки зрения получения реальной информации об отправителе почтового сообщения заголовки Received: представляют существенно больший интерес, чем заголовки From:, которые легко фальсифицируются. Вообще говоря, любая строка заголовка может быть в какой-то мере подделана, так как заголовки представляют собой лишь текстовые данные, и только те из них, которые формируются вызывающими доверие серверами, могут считаться достоверными. Заголовки Received: добавляются каждым почтовым сервером, ретранслирующим данное сообщение, причем самый последний в цепочке почтовый сервер находится на первой позиции, а первый сервер, ретранслировавший сообщение, - на последней. На Рисунке 1 первый заголовок Received: показывает, что сервер bear.spirit.com получил сообщение для адресата [email protected] от узла 0nus.l0pht.com.

Первый заголовок предоставляет и другую интересную информацию. Данные в скобках, например (0nus.l0pht. com ), воспринимаются в качестве комментариев совместимыми почтовыми серверами. В данном случае программа sendmail на узле bear.spirit. com проверила, что система отправителя на самом деле имеет имя 0nus.l0pht.com и IP-адрес 199.201.145.3. Просмотр параметров соединения TCP/IP дал sendmail возможность определить IP-адрес, а затем поиск в системе DNS позволил узнать доменное имя сервера.

Второй заголовок Received: более интересен. Заметьте, что сообщение получено от , т. е. указан абсолютный IP-адрес системы 0nus, причем он одновременно показан как 199.201.145.3. В соответствии со стандартом RFC 1918 адреса IP, начинающиеся с 172.16, зарезервированы для частных сетей, поэтому они не предназначены для передачи через Internet и могут повторяться. В нашем примере заголовок Received: говорит о том, что 0nus функционирует в качестве брандмауэра домена l0pht (или его части) и осуществляет преобразование сетевых адресов (Network Address Translation, NAT). Вместе с тем, этот заголовок Received: информирует о том, что в домене 0nus работает Postfix - новый почтовый сервер, который компания Wietse Venema разработала для обеспечения максимально возможного уровня безопасности.

В примере на Рисунке 1 сообщение содержит только два заголовка Received:. Иногда их бывает намного больше, и эти заголовки могут показать другие внутренние сетевые адреса и имена почтовых серверов, а также внутренние имена серверов. Важность строк Received: проявляется также в том, что они позволяют выявить случаи зацикливания, когда один почтовый сервер пересылает сообщение другому, а тот в свою очередь снова отправляет его обратно, создавая цикл. С другой стороны, строки поля Received: содержат также множество данных, которые могут заинтересовать внешнего злоумышленника.

К настоящему моменту по информации заголовков Received: мы определили два почтовых сервера: sendmail и Postfix. Другие почтовые серверы Unix, а также Microsoft Exchange и Lotus Notes тоже оставляют свои отметки в заголовках Received:.

С определенной долей вероятности 0nus.l0pht.com представляет собой брандмауэр домена l0pht. В некоторых случаях можно не только догадываться, но и точно определить факт присутствия брандмауэра. Иногда он будет называться «firewall», «eagle», «fw1» или каким-либо другим легко распознаваемым именем, что найдет отражение в заголовках Received:. Некоторые брандмауэры, например компании Interlock, явно заявляют о своем присутствии, добавляя комментарий к строке Received:. Брандмауэр другого производителя помещает в это поле гораздо менее информативную строку, указывая, что «частная информация была удалена». Тем не менее, так как только этот производитель использует данный специфический комментарий, присутствие его брандмауэра становится почти таким же очевидным, как и брандмауэра Interlock.

ИСЧЕЗАЮЩИЕ ЗАГОЛОВКИ

Заголовки Received: предназначены для анализа проблем доставки электронной почты. Удаление этих заголовков не считается в Сети признаком хорошего тона, но некоторыми брандмауэрами они все же удаляются по желанию администратора. Я считаю удаление таких заголовков в сообщениях, покидающих вашу организацию, обоснованным действием: если вы несете ответственность за проблемы с электронной почтой в пределах вашей организации, то у вас вряд ли появится желание предоставить посторонним лицам возможность анализировать структуру вашей почтовой системы (и сети). Пока еще не все брандмауэры позволяют это сделать. (Как правило, только межсетевые экраны со шлюзами приложений настолько «умны», чтобы корректно осуществлять подобные операции.)

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

ЭТО ЕЩЕ НЕ ВСЕ

Некоторые из известных атак оказались возможны благодаря использованию ошибок синтаксического разбора заголовков. Совсем недавно Microsoft выпустила «заплатку» для модуля inetcomm.dll, к которому программы Outlook и Outlook Express обращаются для анализа, помимо прочего, заголовок Date:. При переполнении поля Date: в этих почтовых программах наблюдались сбои или даже выполнение произвольного кода (если переданные данные использовали переполнение буфера).

Как можно узнать, с какой программой работает данный пользователь: Outlook, Outlook Express или какой-либо другой? Посмотрите на заголовок x-mailer:. В случае, изображенном на Рисунке 1, отправитель Джолли пользовался почтовым клиентом Claris Emailer, что говорит также о том, что он работает на компьютере Macintosh (пакет прикладных программ Claris доступен только для Macintosh).

Почта Internet, как и большая часть его элементов, не разрабатывалась для отражения внутренних атак. Многие годы Internet был средством общения энтузиастов, объединяя компьютеры на основе общих протоколов, определенных стандартами RFC. Безопасность же и исходная цель Internet - обеспечение межсоединения - находятся в противоречии друг с другом.

Средства шифрования и цифровой подписи для электронной почты, такие, как, например, PGP (Pretty Good Privacy), не решают проблемы, так как они только обеспечивают конфиденциальность почтовых сообщений и аутентифицируют отправителя. Для предотвращения злоупотреблений, с которыми мы сталкиваемся сегодня, стандарты почтовых сообщений должны быть изменены радикально. Но уже сейчас заголовки исходящей электронной корреспонденции вашей организации можно фильтровать, удаляя из них внутреннюю информацию, которой может воспользоваться внешний злоумышленник.

Рик Фэрроу - независимый консультант по вопросам безопасности. С ним можно связаться по адресу: [email protected] .

Ресурсы Internet

Стандарт Internet на заголовки почтовых сообщений опубликован по адресу: http://www.faqs.org/rfcs/rfc822.html .

Почтовый сервер Postfix компании Wietse Venema расположен на странице http://www.porcupine.org/postfixmirror/start.html .

Рекомендации Microsoft относительно ошибок в модуле inetcomm.dll для разбора ряда заголовков почтового сообщения можно найти по адресу: http://www.microsoft.com/technet/security/bulletin/ms00-043.asp .

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

Сообщение электронной почты обычно состоит из двух частей:

    заголовка (header), содержащего служебную информацию, управляющую доставкой и обработкой сообщения;

    тела (body), содержащего непосредственно пользовательское сообщение: текст и прикрепленные данные (графические, звуковые файлы и т.п.).

Заголовок сообщения

Почтовое сообщение – это простой текст в формате ASCII. Поэтому заголовок сообщения представляет собой последовательность текстовых строк вида:

Стандартом почтовых сообщений предусмотрено большое количество полей. Часть из них являются обязательными, т.е. без них невозможно осуществить правильную доставку сообщений, а часть - необязательными. Ниже перечислены наиболее часто используемые поля.

Message-ID – уникальный идентификатор сообщения. Уникальность значения этого поля гарантируется программным обеспечением узла-отправителя, поэтому оно генерируется автоматически.

Date – поле "Дата". Содержит дату отправки сообщения. Значение поля устанавливается автоматически почтовым клиентом при отправке сообщения.

From – поле "От". Содержит адрес, который отправитель сообщения указывает в качестве исходящего адреса.

Sender – поле "Отправитель". Содержит адрес, с которого было реально отправлено сообщение. Это поле может отсутствовать в заголовке, если поле "From" содержит адрес реального отправителя.

To – поле "Кому". Содержит адрес основного получателя сообщения.

Cc – поле "Копия". Содержит адреса дополнительных получателей сообщения.

Bcc – поле "Скрытая копия". Содержит адреса дополнительных получателей сообщения. Получатели, перечисленные в полях "To" и "Cc", не будут знать, что абоненты из списка "Bcc" получили копию сообщения.

Reply-to – поле "Ответить". Содержит адрес, по которому получатель должен направлять ответ. Это поле является необязательным: в случае его отсутствия ответы направляются по адресу, указанному в поле "From".

Subject – поле "Тема сообщения". В этом поле обычно указывается краткое описание (тема) сообщения.

Тело сообщения

Изначально предполагалось, что почтовые сообщения могут содержать только текст в формате ASCII. А поскольку возможность передачи нетекстовой информации не предусматривалась, то протоколы передачи электронной почты могут некорректно обрабатывать такие сообщения. В связи с этим в свое время был разработан специальный стандарт, определяющий принципы преобразования нетекстовых данных к текстовому виду. Этот стандарт получил название MIME (Multipurpose Internet Mail Extension, многоцелевое расширение почты Интернет).

MIME предполагает, что в теле сообщения могут передаваться следующие виды информации:

    текст – простой текст в формате ASCII, а также текст в формате RTF или HTML;

    графические изображения – файлы в формате JPEG и GIF;

    аудио и видео данные;

    данные в форматах различных приложений, например, документы Microsoft Office, а также данные произвольного формата (в том числе, различные исполняемые файлы).

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

Это широко используется при отправке сообщений с вложениями (attachments) – дополнительными "прикрепленными" файлами, которые могут содержать разнородную информацию. Например, к текстовому сообщению можно прикрепить графический файл c фотографией отправителя.

Кроме того, это может оказаться полезным, когда текст сообщения необходимо передать в разных форматах. Например, отправленное сообщение в формате HTML, содержащее какое-либо оформление, может некорректно восприниматься клиентской программой получателя. Чтобы избежать подобных проблем почтовый клиент отправителя может сформировать альтернативное представление сообщения в виде простого текста.

Для обеспечения корректной передачи сообщений c нетекстовыми данными в MIME предусмотрены два алгоритма перекодировки, осуществляющие преобразование таких данных к тестовому виду:

    алгоритм "Quoted-printable", предназначенный для замены байтов, не являющихся ASCII-символами, на группу из трех байт, представляющих собой только стандартные символы;

    алгоритм "Base64", осуществляющий преобразование трех произвольных байт в четыре ASCII-символа.

Для обеспечения корректной интерпретации данных стандартом MIME в заголовок сообщения вводятся дополнительные специальные поля.

Content-type – поле "Тип содержимого". Отвечает за корректное определение типа данных, содержащихся в сообщении заголовка сообщения. Значение поля указывает на конкретный тип данных, или информирует о том, что тело содержит несколько разнотипных блоков.

Content-Transfer-Encoding – поле "Тип кодирования содержимого". Определяет способ преобразования (перекодировки) исходных данных в текстовый вид.