Навигация
Главная
Поиск
Форум
FAQ's
Ссылки
Карта сайта
Чат программистов

Статьи
-Delphi
-C/C++
-Turbo Pascal
-Assembler
-Java/JS
-PHP
-Perl
-DHTML
-Prolog
-GPSS
-Сайтостроительство
-CMS: PHP Fusion
-Инвестирование

Файлы
-Для программистов
-Компонеты для Delphi
-Исходники на Delphi
-Исходники на C/C++
-Книги по Delphi
-Книги по С/С++
-Книги по JAVA/JS
-Книги по Basic/VB/.NET
-Книги по PHP/MySQL
-Книги по Assembler
-PHP Fusion MOD'ы
-by Kest
Professional Download System
Реклама
Услуги

Автоматическое добавление статей на сайты на Wordpress, Joomla, DLE
Заказать продвижение сайта
Программа для рисования блок-схем
Инженерный калькулятор онлайн
Таблица сложения онлайн
Популярные статьи
OpenGL и Delphi... 65535
Форум на вашем ... 65535
HACK F.A.Q 65535
Бип из системно... 65535
Гостевая книга ... 65535
Invision Power ... 65535
Содержание сайт... 65535
Организация зап... 65535
Вызов хранимых ... 65535
Программируемая... 65535
Эмулятор микроп... 65535
Подключение Mic... 65535
Создание потоко... 65535
Приложение «Про... 65535
Оператор выбора... 65535
Создание отчето... 65420
Модуль Forms 65184
Пример работы с... 64332
ТЕХНОЛОГИИ ДОСТ... 61830
Имитационное мо... 57751
Реклама
Сейчас на сайте
Гостей: 6
На сайте нет зарегистрированных пользователей

Пользователей: 13,084
новичок: bromik
Новости
Реклама
Выполняем курсовые и лабораторные по разным языкам программирования
Подробнее - курсовые и лабораторные на заказ
Delphi, Turbo Pascal, Assembler, C, C++, C#, Visual Basic, Java, GPSS, Prolog, 3D MAX, Компас 3D
Заказать программу для Windows Mobile, Symbian

Моделирование интернет магазина (Apache, Php, Html) на GPSS + Блок схема
Расчет мер близости на отношениях на Delphi + Пояснительная записка
Принадлежит ли точка пересечению двух окружностей на Turbo Pascal + Отче...

Реклама



Подписывайся на YouTube канал о программировании, что бы не пропустить новые видео!

ПОДПИСЫВАЙСЯ на канал о программировании
Атака на отказ через ... e-mail
Кратко смысл данной статьи можно выразить так: существующие службы (анонимных) почтовых пересылок ( часто называемых римейлингом или форвардингом) за счёт совместных недоработок открывают путь для тупейшей атаки на отказ произвольного почтового ящика/сервера с небольшими ресурсами и ... самих себя! Хуже всего то, что методика, описанная ниже, по силам и "чайнику"( правда, последнего потом, ещё можно найти). Кстати и сам автор специализируется совсем в другой области.
Атака описана на примере использования почтовых служб mail.ru, hotmail.ru и анонимного римейлера remailer@replay.com. Все имена (кроме анонима и хостов почтовых серверов) разумеется изменены. Атакуемый объект принадлежал лично автору.
Кто хорошо знаком с системами римейлинга/форвардинга может пропустить первые два раздела.
1. Первые нехорошие мысли (легальные)
На эту идею автор натолкнулся, используя бесплатные мейл-сервера для обеспечения рассылок почты по нескольким филиалам.
Проще говоря, я использовал систему пересылки почты сервера mail.ru, указывая в поле пересылки созданного почтового ящика e-mail'ы семи или восьми филиалов. Таким образом при рассылке 200 килобайтного письма экономился примерно 1 Mb трафика. Со временем число филиалов выросло, возникла необходимость объединить их в группы. Система рассылки стала иерархической, примерно такой:
group1@ ... :( пять адресов)
group2@ ... : ( три адреса)
group3@ ... : ( семь адресов)
all_group@ ... : (три_адреса: group1, group2, group3)

Возможность пересылки на несколько адресов сразу предлагают очень немного почтовых серверов, в частности mail.ru. Надо отметить также, что этот сервер сразу отказывался принимать список для пересылки, когда по ошибке в нём два раза повторялся один и тот же адрес. Более того, если адреса в группах пересекались, то всё равно отсылался лишь один экземпляр письма! Молодцы.
Естественно, начал мучить вопрос, а что будет, если подставить рекурсивную ссылку, например в адреса для какой-нибудь группы поставить адрес её самой или "all_group".
2. Вторые нехорошие мысли (наивные)
Почитав литературу, быстро убедился, что ничего не произойдёт, нормальные сервера пересылки вставляют в заголовок характерную строчку, позволяющую им избежать зацикливания, по схеме: А пересылает на Б, Б на А. При повторном получении того-же письма оно будет уничтожено, обычно без отсылки извещения.
Иначе открылась бы перспектива "случайно" загрузить сервера огромным количеством бессмысленной работы. Пусть, например, А пересылает на (B,C) B - на (A,C) C - (А, Б). Нетрудно увидеть, что эта схема приводит к экспоненциальному росту количества сообщений в системе. К счастью, думалось мне, подобное развитие событий исключено.
Прошёл примерно год ... Все чаще на наши адреса стал приходить спам, чьи авторы успешно пользовались анонимными почтовыми службами (типа remailer@replay.com, remailer@anon.egfa.org ) Сети для удаления первоначального адреса письма. Процедура совсем несложная: в заголовке (или начале письма ) пишете строку вида "Anon-To:адреса_получателей", и отсылаете письмо на remailer@replay.com . В указанные почтовые ящики придут письма с обрезанным заголовком.
3. Самые нехорошие мысли (об уголовно-наказуемом)
Постойте-ка, ведь использование анонимных римейлеров( дальше просто - анонимов), позволяет некоторое количество раз обойти ограничение на рекурсивную пересылку. Рассмотрим нашу последнюю схему:
А пересылает на (B,C);
B - на (A,C); C - (А, Б).

В заголовок (начало) письма добавим N строк "Anon-To: A, B, C". A,B,C пусть пересылают на аноним (R).
Теперь, если послать письмо на A, B или С, то пока R исчерпает все строки Anon-To, и в сети будет гулять 3**N (три в степени N) писем. Для N=100, это порядка 10**48 писем, что где-то на 20 порядков больше, чем число проходящих за день во всём Интернете. Вряд ли, какой сервер выдержит это. А ведь N может быть скажем равным 20, а адрес C - Вашим ( или Вашего врага, или postmaster@kavkaz.org ;-) ). С - получит около 2**21 ( двух миллионов) писем. Если в каждом будет 100 килобайт текста то "выход" составит 200 Gb. Что станет с его сервером и каналом?
4. Эксперимент
Впрочем, в этой схеме средний аноним накроется где-то на N>10 (они и так-то перегружены), но ведь никто не мешает написать более оптимальную схему, в которой основная нагрузка падает на форвардер.
Впрочем, в этой схеме средний аноним накроется где-то на N>10 (они и так-то перегружены), но ведь никто не мешает написать более оптимальную схему, в которой основная нагрузка падает на форвардер.
Пример:

attack@post - атакуемый объект
Mail.ru, hotmail.ru - форвардеры. Второй форвардер необходим т.к. mail.ru не позволит продублировать адрес даже цепочкой внутренних пересылок, а hotmail.ru пересылает только на один адрес.
Аноним - remailer@replay.com
a_readr@mail.ru пересылает на remailer@replay.com, attack@post и tmp_atck@hotmail.ru [, tmp2_atck@hotmail.ru, tmp3_atck@hotmail.ru ...]
tmp_atck@hotmail.ru на attack@post
[tmp2_atck@hotmail.ru на attack@post
tmp3_atck@hotmail.ru на attack@post
...]

В начале письма N фрагментов ( самому себе аноним тоже отсылает):

::
Anon-To: remailer@replay.com, a_readr@mail.ru
<пустая строка>
Отсылаем письмо на a_readr@mail.ru. Всё!
При N=2 и без дополнительных адресов tmp2_atck , tmp3_atck, ... attack@post - получил 14 писем. С k дополнительными их было бы (2**N-1)*(2+k). Ещё более опасной формой атаки является случай, когда один из форвардеров указывает на несуществующий адрес реального почтового сервера, перегружая последний в целом. Впрочем, это бесконечная тема.
5. Мысли о будущем или как защититься
Сразу оговорюсь, что в этой области не силён. Может кто-то и знает/придумает эффективный способ защиты. Пожалуйста поделитесь.
От большинства атак на отказ можно защититься грамотной конфигурацией сервера. Описанная же методика, в лучшем случае просто забьёт Ваш почтовый ящик или сервер. К сожалению, от нас здесь мало что зависит. Почти ничего. А вот авторы анонимов могут помочь. Обычным пользователям можно пользоваться почтой с ограниченным размером почтового ящика ( если у Вас ещё сохранились такие "старомодные" провайдеры). Скорее всего упадёт лишь Pop-сервер. Если местные провайдеры уже забыли о такой "услуге", попробуйте Web - почту типа @netscape.net, с ограниченным почтовым ящиком. Мне кажется, здесь аноним или форвард выйдет из строя гораздо раньше.
Можно, конечно поставить фильтр на известные анонимы или форвардеры, но ведь ими пользуются нормальные пользователи.
Анонимам же достаточно начать обрабатывать сразу все заголовки "Anon-To". Рост превратиться в линейный. Это тоже плохо, но уже совсем не смертельно. Ещё лучше обрабатывать только последнюю строчку переадресовки.
Разумеется, владельцам подобных анонимов были посланы соответствующие письма, но наверняка они затерялись в жалобах на спаммеров, да и римейлеров в Cети куда больше, чем может найти автор...
На 23 сентября 1999 г. пример ещё работал.
P.S. Пример специально построен на достаточно медленных или перегруженных серверах, чтобы их нельзя было эффективно использовать для атаки.
Опубликовал Kest October 26 2008 16:18:00 · 0 Комментариев · 6039 Прочтений · Для печати

• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •


Комментарии
Нет комментариев.
Добавить комментарий
Имя:



smiley smiley smiley smiley smiley smiley smiley smiley smiley
Запретить смайлики в комментариях

Введите проверочный код:* =
Рейтинги
Рейтинг доступен только для пользователей.

Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.

Нет данных для оценки.
Гость
Имя

Пароль



Вы не зарегистрированны?
Нажмите здесь для регистрации.

Забыли пароль?
Запросите новый здесь.
Поделиться ссылкой
Фолловь меня в Твиттере! • Смотрите канал о путешествияхКак приготовить мидии в тайланде?
Загрузки
Новые загрузки
iChat v.7.0 Final...
iComm v.6.1 - выв...
Visual Studio 200...
CodeGear RAD Stud...
Шаблон для новост...

Случайные загрузки
Введение в станда...
CABfiles
Основы программир...
Экранная лупа
Разработка распре...
База Allsubmitter...
DFileDeleter
Анекдоты с ostrie.ru
PHP 5 для "чайников"
ZipTV
Halcyon
CoolControls v3.0...
Шифрование по алг...
Иллюстрированный ...
«Философия» прогр...
IPAddresseEdit
начисление процен...
Autorunner
Панель Календарь
AVIwriter

Топ загрузок
Приложение Клие... 100469
Delphi 7 Enterp... 87040
Converter AMR<-... 20078
GPSS World Stud... 12816
Borland C++Buil... 11830
Borland Delphi ... 8602
Turbo Pascal fo... 7039
Visual Studio 2... 4999
Калькулятор [Ис... 4798
FreeSMS v1.3.1 3542
Случайные статьи
Рис. 1.25. Ручное ...
Стандарт AES. Алго...
Правила размещения...
Каталог алгоритмов
Как сервер отслежи...
Создание базы данн...
Описание абстрактн...
• попытка соединен...
Что называется вир...
Объявим два констр...
Turbo Pascal 7.0 –...
Описание типа доку...
Самопроверка непра...
Процедуры и функци...
Паскаль сегодня
Язык С: оператор s...
собственно создани...
Содержание
Блок ASSIGN
Datum в Чикаго
Состав текстовых ф...
Запоминание пути в...
ГЕНОЛОГ
index — индекс стр...
Уравнения состояния
Статистика



Друзья сайта
Программы, игры


Полезно
В какую объединенную сеть входит классовая сеть? Суммирование маршрутов Занимают ли таблицы память маршрутизатора?