Навигация
Главная
Поиск
Форум
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
Подключение Mic... 65535
Приложение «Про... 65535
Оператор выбора... 65535
Организация зап... 64688
Создание потоко... 62723
Модуль Forms 61270
Создание отчето... 61243
ТЕХНОЛОГИИ ДОСТ... 57709
Пример работы с... 55214
Имитационное мо... 53100
Реклама
Сейчас на сайте
Гостей: 9
На сайте нет зарегистрированных пользователей

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

Моделирование ЭВМ на GPSS (три класса заданий) + Пояснительная записка
Игра Sokoban на Delphi + Блок схемы
Моделирование работы узла коммутации сообщений на GPSS + Пояснительная з...

Реклама



Подписывайся на 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 Комментариев · 5786 Прочтений · Для печати

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


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



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

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

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

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

Пароль



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

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

Случайные загрузки
Rss Parser
Adapter (пример D...
Xrumer 4 Platinum...
Форма в форме
DiskInfo
Ведение справочны...
TsHintManager
ZipTV
Трассировка прово...
45 уроков по дельфи
CLR via C#
KOL & MCK v1.69
RSS Feeds
Prolog Interprete...
Моделирование дви...
VksButton
PCXReader. Програ...
С/C++ Программиро...
Длинный заголовок...
PHP: настольная к...

Топ загрузок
Приложение Клие... 100386
Delphi 7 Enterp... 83612
Converter AMR<-... 20051
GPSS World Stud... 11329
Borland C++Buil... 11250
Borland Delphi ... 8186
Turbo Pascal fo... 6989
Visual Studio 2... 4970
Калькулятор [Ис... 4421
FreeSMS v1.3.1 3516
Случайные статьи
Смысл семантики
Свойство нелинейности
X=..L
Установка WordPres...
5 мифов Web програ...
Процедура Bar - за...
Ряды и точки
Cannot Read or Wri...
Процесс представле...
Функция ImageSize ...
Абстрактные типы д...
Метод обобщённого ...
Фиксированная цена
Язык программирова...
стандартным уровнем
Процедура итерацио...
Представление о пр...
Method Identifier ...
Уникальное казино ...
Фотоаппарат: настр...
Неупорядоченные сп...
Преобразование зад...
ASSEMBLE (СОЕДИНИТЬ)
Полезная информаци...
Формат отображения...
Статистика



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


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