Сетевой контрольXakep, номер #047, стр. 047-054-1 Управление сотнями, тысячами компьютеров maravan (maravan@real.xakep.ru) Наверное, каждый сталкивался с такой проблемой, как нехватка ресурсов отдельно взятой машины - будь то домашняя тачка или шелл. В этой статье речь пойдет о том, как можно избавиться от таких проблем. Что подразумевается под этой "нехваткой"? Применительно к миру информационной безопасности это может означать примерно следующее: имеется куча натасканных с различных хостов md5-хэшей, которые необходимо банально подобрать, либо несколько миллионов IP-адресов, которые надо просканить на наличие чего-либо. Естественно, при сегодняшних скоростях осуществить подбор, используя средства всего одной машины - весьма трудная задача, просканить такое количество - тоже. Здесь приходится рассчитывать скорее на удачу, чем на математический детерминизм (во, какое слово!) этого процесса - он может длиться годами. Но в 99,9 процентах случаев такой срок совершенно неприемлем. Как можно ускорить процесс? Конечно, можно подождать появления более быстрых машин и более широких каналов. Если же ждать не хочется, то придется ограничиться имеющимися средствами. Одним из таких средств является кластеризация или, говоря простым языком, использование нескольких (десятков, сотен, тысяч) машин для осуществления нужных вычислений. Действительно, зачем десять лет ждать появления машин в 1000 раз быстрее существующих, если уже сегодня можно при желании "запрячь" 1000 компов, получив ожидаемые только через 10 лет ресурсы. Теперь надо прикинуть, как все это реализовать: собрать кучу машин и сделать так, чтобы они согласованно работали над единой задачей. Причем нельзя забывать, что решать эту проблему хакеру придется без согласия людей - владельцев той самой кучи машин. Чтобы избежать лишних проблем, связанных с засветкой, надо свести такое участие к минимуму. Создание червя Начнем с самого начала, с того момента, когда, кроме не совсем кривых рук, нет ничего. Первый вопрос напрашивается сам собой – где взять отвечающее нашим потребностям количество машин. А как сказал умный человек, потребности людей неограниченны, так что задача, стоящая перед хакером, весьма серьезна. Из сводки новостей по информационной безопасности за последние несколько лет мы узнаем, что существуют 2 напасти на честных админов - это хакеры и черви. Причем последние повинны в заражении миллионов машин (взять хотя бы таких представителей, как codered, nimda, klez и пр.). Так что мешает сделать своего червячка, который прошелся бы по Инету и дал, что нужно. Как это сделать? Простейший вариант выглядит примерно следующим образом: Зайти на пакетшторм. Скачать работающий эксплоит. Прикрутить к нему сканер. Допустим, сплоит написан для очередного wuftpd. Следовательно, сканер должен просто чекать весь Интернет :) на открытый 21 порт и, в случае его (порта) открытости, применять к нему сплоит. Далее надо смодифицировать эксплоит таким образом, чтобы он не тупо перенаправлял stdin и stdout с консоли на сокет и обратно, а исполнял на удаленной машине некую последовательность команд (пусть это будет обычный шелл-скрипт), которая закачивала бы необходимого червячка на эту самую машину и запускала бы его там. |


















































































































