Вадим Проскурин - Добрая Фея
— Ребята! — позвал Степа. — Что осмысленное может лежать в ir2?
Он не ожидал, что получит вразумительный ответ, Но ответ пришел, причем почти немедленно.
— This! — сказал Вася Васильченко, не отрываясь от дизассемблера.
— Чего? — переспросил Степа.
— This, — повторил Вася. — Текущий объект. Ну, если программа написана на + + D, и текущая функция — член класса, то ссылка на экземпляр объекта передается в ir2.
Степа задумался. Он не умел программировать на объектно—ориентированных языках, кое-какое общее представление имел. Значит, ссылка на экземпляр объекта. Если объект, например, является картинкой, то содержимое картинки лежит внутри тела объекта, при этом смещение от начала заголовка, скорее всего, будет константой, а значит… Неужели рандомизация адресного пространства не работает? Да, точно, не работает! Как бы хитро и запутанно система ни строила карту памяти, сбить с толку эксплойт ей не удастся, загрузчик всегда точно укажет на вирусный код, надо только, чтобы атакуемая программа была написана на объектно-ориентированном языке и чтобы внутреннее представление объекта было известно нарушителю заранее. То есть, если нарушитель имеет конкретную версию конкретной программы и знает, что в атакуемой системе стоит она же, тогда нарушитель направляет этой программе специальный пакет данных и, когда этот пакет начинает обрабатываться, управление передастся внутрь пакета, прямо на вирус. При этом вся аппаратная защита отключается, вирус получает неограниченные полномочия, устанавливает полный контроль над системой и дальше делает с ней все, что захочет. А если версия программы не та? В худшем случае будет зеленый экран, а скорее всего, вообще ничего не случится — если программа сильно переделана, вряд ли новая версия соберет в регистрах процессора ту самую волшебную комбинацию чисел, которая активизирует эксплойт. А если нарушитель точно не знает, какую программу атакует, он может отправить в атакуемую систему несколько пакетов данных, каждый из которых будет заточен под свою конкретную версию. Если пакет данных большой, например видеоклип, можно заложить в разных его местах разные загрузчики, хоть один, да сработает. При этом версия и даже тип операционной системы не имеют никакого значения, регистры-то везде одни и те же.
Выходит, то, чего боялись спецслужбы всего мира, кроме Магеллании, все-таки случилось. Магелланские инженеры вложили-таки в самый популярный процессор в мире аппаратную закладку, и любой, кто знает о ней, способен установить контроль над любым компьютером мира.
Нет, на самом деле не над любым. Кроме аутфаксов, есть и другие процессоры, их немного, но они есть. Кроме того, допустим, нарушитель про эксплуатировал аппаратную закладку и внедрил вирус куда хотел, как он будет передавать электронному шпиону команды и как будет получать от него донесения? Сетевой трафик проходит через множество промежуточных узлов, любой из них может обнаружить подозрительную активность и забить тревогу. На самом деле, защититься от этой закладки не так уж и сложно, надо, чтобы… Ладно, это уже технические детали, о них пусть другие люди думают, от Степы это не требуется, от него требуется одно — все проверить и дать толковое описание. Причем можно сильно не торопиться, эти закладки стоят повсюду уже не первый год, несколько дней ожидания роли не сыграют.
Кстати! А не работает ли эта закладка прямо здесь и сейчас? Это несложно проверить, поток команд вируса, запущенного с ее помощью, должен иметь в заголовке… ну—ка, посмотрим… Нет, таких потоков в этой системе нет, глава богу. Или не слава богу? Может, есть способы скрывать их следы от администратора, заподозрившего неладное? Ладно, над этим потом подумаем, сейчас есть более первоочередные задачи.
Через полчаса Степа собрал нормальный рабочий загрузчик вируса, использующий только что обнаруженную закладку. В качестве вируса Степа взял классический MetaHost (с ампутированной боеголовкой, естественно) и вскоре обнаружил, что закладка специально заточена под этот вирусный движок, очевидно, заокеанские коллеги построили информационное оружие судного дня именно на нем. Еще через час была готова демонстрационная версия вируса под Penguix, а вскоре после обеда Степа с ужасом понял, что в стандартных драйверах Интернета и для The Wall, и для Penguix распределение регистров специально подобрано так, чтобы эту закладку было легче эксплуатировать. Или, наоборот, выбор регистров для активизации закладки основан на том, чтобы ее можно было активизировать через Интернет, не передавая никаких картинок, а просто послав специальный сетевой пакет. Если начнется реальная информационная война, один атакующий компьютер сможет выводить из строя компьютеры противника десятками в секунду, а если еще организовать экспоненциальное распространение вируса…
2Саша снял трубку после второго гудка.
— Привет, Костя, — сказал он.
— Привет, — отозвался Костя. — Удобно сейчас говорить, не занят?
— Не очень, — ответил Саша. — В смысле, не очень занят. Что сказать хотел?
— Ну… — замялся Костя.
Готовясь к этому разговору, он так и не смог решить, с чего начать, думал, что все как-то само получится…
— С тем вчерашним парнем нормально все прошло? — спросил Костя.
— Вроде да, — ответил Саша. — Точно я еще не узнавал, обычно такие дела быстро не делаются, думаю, к концу недели будет известно что-то определенное, но вряд ли раньше. А что, беспокоишься?
— Ну да, беспокоюсь, — сказал Костя. — Видишь ли, мы с Инной уехали из того… ну…
— Я знаю, — сказал Саша. — Мне уже доложили, что вы вернулись в твою квартиру, я не возражаю, вышестоящее начальство тоже. Если начнутся проблемы, я позвоню, предупрежу.
— Тут еще вот какое дело… Андрей…
Костя опять замялся, пытаясь поаккуратнее сформулировать то, что хотел сказать, но оказалось, что формулировать ничего не нужно.
— Что Андрей хочет к вам переехать, я знаю, — сказал Саша. — Мы с ним вчера говорили об этом. Я не возражаю. Ты, кстати, новую квартиру покупать не собираешься?
— Подумываю. А что?
— Если купишь квартиру и вы в нее переедете, эту Ольге отдашь?
Костя понял, куда клонит Саша, и рассмеялся.
— Конечно, — ответил он. — Она тебя тоже уже достала?
— Ну… в общем, да, — признался Саша. — Я теперь понимаю, почему ты ушел от нее. Знал бы заранее… но чего уж теперь…
Костя хотел было сказать, что на самом деле он не уходил от Ольги, она сама его бросила, грубо и цинично… Но Саша и сам все прекрасно понимает, эти его слова — не ошибка, а оговорка.
— Хорошо, — сказал Костя. — Тогда, значит, Андрей переедет, как только так сразу. Да хоть завтра.
Саша странно хмыкнул и сказал:
— Вообще-то, он еще вчера почти все вещи собрал. Он вчера очень расстроен был, когда говорил, что ты велел ему ждать.
— Ну… — Костя немного подумал и принял решение. — Хорошо, давай не будем ждать. Сегодня мне никуда ехать не надо, дождусь звонка и сразу поеду к нему. Или вообще, сразу поеду, не дожидаясь звонка.
— А вот этого не надо, — серьезно сказал Саша. — Это его обидит. Подростки любят верить, что сами принимают важные решения, а когда понимают, что все решено за них старшими, они обижаются. Пусть лучше он думает, что это он тебя уговорил. Ты можешь как бы поколебаться, поразмышлять, посопротивляться немного для виду, он только рад будет.
Внезапно Косте стало противно. Саша — неплохой мужик, честный, порядочный, не злой, обещания всегда выполняет, но есть у него эта мерзкая черта, из-за которой нормальные люди так ненавидят кобнюков. Он все время манипулирует людьми, не со зла, просто настолько привык к этому, что все получается как бы само собой. Все эти гадкие психологические трюки он воспринимает как нечто естественное, само собой разумеющееся, иногда он забывает, что разговаривает с человеком, который этим трюкам не обучен и, более того, считает их аморальными. Саша подсознательно стал считать Костю своим, а перед своими можно не изображать приличного человека, можно быть самим собой, особенно если считаешь, что в той стороне личности, которую ты не показываешь чужим, ничего плохого нет. Когда Костя и Ольга начали жить вместе, ее поначалу шокировало, что он привык ходить по квартире в старых застиранных спортивных штанах, а он считал, что все нормально, и искренне недоумевал, почему она возмущается. Наверное, Саша думает, что применять поганые психологические трюки тоже нормально, если применять их для хороших дел. В чем-то он прав, но где граница между хорошими делами и плохими? Кто может ее провести, кроме самого субъекта, принимающего решение? Саша считает, что проводит эту границу правильно, и, должно быть, он прав, Инна не раз забиралась к нему в голову своей телепатией, и все равно считает его хорошим человеком. Но если все начнут думать и действовать, как он…