Электронная библиотека

Хакер


Хакер

Гадости по e-mail

Xakep, номер #007, стр. 007-040-4


Mailing list flood

Сначала краткое отступление для тех, кто не знает, что такое Mailing List и как им пользоваться. Mailing list представляет собой offline-конференцию на определенную тематику. Предположим, что существует Mailing list с названием FOO и соответствующим адресом foo@bar.org . Вы посылаете свои сообщения или ответы на письма других участников конференции по этому адресу, а эти послания автоматически рассылаются всем подписчикам. Для того чтобы добавить или удалить себя из списка подписчиков, необходимо послать e-mail по адресу foo-request@bar.org на обычном человеческом языке или языке программы-автомата, следящего за конференцией, запрос на подписку. Многие мэйл-листы используют Majordomo - автоматический List Maintainer. У этих автоматов нет единого языка, поэтому встречаются различные варианты, но в общих чертах процесс выглядит примерно так: пользователь посылает письмо по адресу foo-request@bar.org, majordomo@bar.org или listserv@bar.org и пишет команду "SUBSCRIBE FOO" в тексте сообщения. Некоторые программы, чтобы предотвратить возможные недоразумения, сканирует все сообщение на слова типа: "SUBSCRIBE", "UNSUBSCRIBE" и "HELP".

Подобный soft облегчает жизнь администраторам почтовых конференций, но и такая технология не лишена недостатков. В пример можно привести относительно невинную шутку: запустить собственноручно написанную программу, которая, используя SMTP, пошлет от имени вашего знакомого по адресу foo-request@bar.org или даже по целому списку адресов запрос на подписку.

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

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

Теперь представим группу конференций, каждая из которой подписывается на все остальные. Такую группу назовем резонатором. E-mail, появившийся в одном из мэйл листов, начинает размножаться в геометрической прогрессии.

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

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

Назад на стр. 007-040-3  Содержание  Вперед на стр. 007-040-5