Читать книгу «Сисадмин. История одного взлома» онлайн полностью📖 — Юрия Гиммельфарба — MyBook.
image

Ладно, это все досужие рассуждения. По крайней мере, теперь понятно, что искать и где искать. Если кто-то и проник в банковскую систему извне, то сделать это можно только через почтовый сервер. Посмотрим на почтовом сервере, который управляет и обеспечивает работу системы «Клиент-Банк». Так, где ты у нас, родной? Вот ты где, красавец! Ну-ка иди к папочке! Посмотрим, как ты управляешь нашими денежками…

Сергей начал осторожно просматривать содержимое этого сервера. Все нормально, антивирусная программа установлена, мониторинг производится, так что все в ажуре! Опаньки, секундочку, а это что за ерунда на постном масле? Антивирусная защита есть на все – даже почтовые базы в режиме он-лайн сканируют, параноики! – только оперативная память остается полностью вне любого антивирусного контроля! Ну, дают, красавцы удалые! Значит, в оперативной памяти почтового сервера может находиться любой компьютерный триппер – и никто в банке даже и не почешется! Надо просмотреть содержимое оперативной памяти этого компьютера.

Точно! Вот и разгадка, вот он, троянец, сидит в оперативной памяти, как у себя дома! Причем, забавно: он размещается именно по тем адресам памяти, к которым обращается и программа «Клиент-Банк». О как! Н-да, меня терзают смутные сомнения…

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

Скопировав себе на компьютер найденного «трояна», Сергей довольно улыбнулся. Классно, ай да Серега, ай да сукин сын! Но работы еще – непочатый край: надо понять, что этот троян там делает конкретно и какие вредоносные действия выполняет. А чего тут мудрствовать лукаво? Надо запустить его у себя и посмотреть, чего он делает.

Сергей отключил антивирусный мониторинг на своем компьютере, запустил найденного неизвестного троянца на выполнение и стал отслеживать обращения. Но – странное дело! – вредоносная программа тут же выгрузилась из памяти и прекратила работу. Очень странно. Погоди-ка, сам же говорил, что эта зараза может обращаться к какому-то файлу, в котором будет храниться таблица этих расчетных счетов, которые и были хакнуты! Надо еще раз поискать. Хотя, в данном случае – что искать? Иголку в стоге сена? Но попробовать все равно надо.

Хотя, постой. А если запустить контекстный поиск по диску одного из тех счетов, которые этот кибер-гопник хакнул? Это побыстрее получится.

Результат не заставил себя долго ждать. Через несколько минут Сергей нашел маленький текстовый файл.

– Ну вот, – сказал сам себе Сергей. – Все на месте. Теперь повторим операцию.

Сергей снова запустил троянца на выполнение и стал ждать. Теперь же, при появлении на диске списка счетов, найденный зловред не выгрузился из памяти. Создалось впечатление, что ничего не происходило. Сергей запустил антивирус. Тут же на экране появилось сообщение: «В оперативной памяти компьютера обнаружен неизвестный вирус!». В порядке эксперимента Сергей отключил проверку оперативной памяти и снова запустил антивирус. На этот раз никакого сообщения не появилось.

– Вот, Костя, тебе и ответ на твой первый вопрос, а именно: как эти гады данный взлом провернули, – вслух сказал себе Сергей. – Остается теперь только выяснить самую малость: надобно понять, кто же это такой умный у тебя в банке работает?

Так, подумал Сергей, пора временно остановиться и позвонить Косте. На данном этапе без него тут не разобраться. По крайней мере, теперь есть, что докладывать. Первый и очень важный результат есть.

Часы показывал около половины первого ночи. Сергей взял в руки телефон, подаренный Костей, и нажал кнопку вызова. После первого же сигнала в трубке раздался знакомый голос с характерной хрипотцой: очевидно Костя ждал звонка.

– Обойдемся без имен, – вместо приветствия сказал Костя. Теперь он не любезничал, от игривого тона не осталось и следа. Теперь он говорил коротко и жестко. – Никакой лирики, никаких имен, излагай только факты. Что успел накопать?

– Значит так, – в тон ему без приветствия начал Сергей. – Факты следующие. Я пока ответил только на первый, но зато на самый главный вопрос: понял, каким образом была осуществлена данная хитроумная операция. Докладываю: взлом был произведен с одного компьютера и это компьютер значится в твоей сети под именем SYS_ADMIN. Разумеется, имен ваших компьютеров я не знаю – да и откуда у меня может быть такая информация? – но, рассуждая логически, предполагаю, что, скорее всего, это компьютер твоего системного администратора. Это было сделано при помощи неизвестного троянца, который сидит в оперативной памяти этого компьютера. Но по сети он не распространился.

– Чего? – недоуменно спросил Костя. – Троянца? А что это хреновина с морковиной?

– Ну, как тебе объяснить, – замялся Сергей. – Это программа, которая, как правило, выдает себя за что-нибудь мирное и чрезвычайно полезное. Есть масса подобной дряни: например, интернет-трояны, которые либо дают доступ к компьютеру с другого компьютера без ведома пользователя, либо высылают по определенному адресу какую-либо информацию с компьютера-жертвы (как правило, чужие пароли). А в твоем случае, это управление системой «Клиент-Банк» – впрочем, я еще до этого не дошел. Хорошо, тогда встречный вопрос: ты знаешь, что такое «вирус»?

– Да, знаю, – нетерпеливо ответил Костя. – Но все равно не понимаю: что же у меня в банке-то завелось?

– Если тебе так будет легче, то давай, я буду употреблять термин «вирус», – снисходительно ответил Сергей. – Хотя, в данном случае это будет не совсем правильно, но я не возражаю. Хорошо, считай, что у тебя завелся вирус.

– Тогда сразу вопрос, – перебил Костя. – На всех компьютерах у нас установлены антивирусные программы. Причем, это было мое личное распоряжение в форме официального приказа по банку. Почему же программа не обнаружила этот вирус? Твою мать, какой кретин не выполнил мой приказ?!

– Ты погоди, не спеши, а лучше послушай. Это твое распоряжение на самом деле выполнено. Но выполнено формально. Тут есть два мелких, но весьма забавных обстоятельства. Во-первых, это вирус новый и распространения он не получил. Поэтому в базе данных антивирусной программы его просто нет. Уверен, что он был написан специально по чьему-то заказу и специально для вашего банка. Причем, именно для подобного взлома. Я пришел к этому выводу потому, что преступник слишком хорошо знал особенности работы именно вашей системы «Клиент-Банк» – а ты ведь сам говорил, что в каждом банке подобная система своя. Так вот, если этот вирус сидит в памяти компьютера, на котором нет системы «Клиент-Банк» – ничего не произойдет. Но все это далеко не самое главное. Этот вирус все равно был бы обнаружен вашими антивирусами: в подобных программах предусмотрен эвристический анализ операционной системы и поведенческий анализ загруженных приложений, поэтому он все равно был бы обнаружен. Тут имеется другое обстоятельство. А именно следующее: на этом компьютере был отключен мониторинг оперативной памяти, а этот вирус именно там и сидел. На всех других компьютерах контроль оперативной памяти был включен, а на этом – выключен. Вот в этом и фишка, вот почему я сказал тебе, что твой приказ формально исполнен, придраться тут не к чему!

– Ах, вот оно что, – в голосе Кости явно послышалось удивление. – Понятно. Вот теперь многое становится понятным и это многое объясняет. Да, извини, я тебя перебил. Внимательно слушаю дальше.

– А вот дальше начинается самое интересное. Этот вирус работает следующим образом. Он никак себя не проявляет до определенного момента, а активизируется только в момент начала работы твоей системы «Клиент-Банк». Далее все сделано весьма оригинально: происходит простое считывание данных со счетов твоих самых богатых клиентов и если у них на счете есть сумма четыреста тысяч долларов – тогда этот вирус вклинивается в работу твоей программы «Клиент-Банк» и к банковской выписке каждого из твоих двадцати шести олигархов добавляет по одной строчке. Если хотя бы у одного такая сумма на счету будет отсутствовать – этого перевода не произойдет и никто ничего не заметит! Но если наступает момент, когда каждый – подчеркиваю: каждый, как говорится, «все или ничего»! – из них имеет на счету сумму четыреста тысяч долларов… А вот тогда и имеем то, что получили. Правда, я не совсем понимаю, почему выбрана сумма именно четыреста тысяч, а не другая, ну да это неважно. Только одно скажу – работа филигранная! Тот, кто это задумал и осуществил – просто гений. Это я тебе говорю, как профессионал.

– Погоди-ка, – ошеломленно сказал Костя. – Ты что же, хочешь сказать, что этот чертов вирус до сих пор сидит на моих компьютерах и такой перевод денег теоретически может повториться снова? Я тебя правильно понял?

– Именно так, – ответил Сергей. В его голосе звучали нотки гордости и восхищения. Гордости за свое мастерство и восхищение мастерством коллеги по цеху. Он умел искренне восхищаться мастерством других.

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

– Ни х… себе. Полный п…ц! – от души и с чувством выругался Костя. – Все равно ни хрена понять не могу! Как эта зараза работает? Что это за мерзость? Ты можешь это мне объяснить, учитывая то, что я разбираюсь в компьютерах не лучше, чем слон в высшей математике?!

– Ладно, – усмехнулся Сергей. – Тяжело, но попробую. Представь себе, что ты в банке завел такой порядок: твои задания должны выполняться быстро и четко, не вдумываясь в смысл твоих приказов.

– Да так оно и есть, – ответил Костя. – Это ты к чему сказал?

– А вот к чему. Представь себе свою секретаршу, который приходит на работу к себе в офис и каждый день обнаруживает у себя на столе стопку бумаги со списком заданий, которые она должна выполнить за рабочий день. Представил, да? Итак, твоя секретутка берет верхний лист, читает твои мудрые указания, пунктуально их выполняет, выбрасывает «отработанный» лист в мусорную корзину, а затем переходит к следующему листу. А вот теперь представь, что к вам в банк тайком пробрался некий злоумышленник, в отсутствии твоей секретарши подходит к ее рабочему месту и подкладывает в стопку бумаг лист, на котором написано следующее: «Переписать этот лист два раза и положить копии в стопку заданий соседей». Что сделает твоя секретарша? Будучи дисциплинированной и привыкшая точно исполнять твои задания, она это и сделает: дважды перепишет лист, положит его соседям на стол, уничтожит оригинал и перейдет к выполнению второго листа из стопки. То есть продолжит выполнять свою настоящую работу. Теперь смотри, что произойдет дальше. Что сделают соседи, являясь такими же аккуратными сотрудниками, привыкшие также выполнять твои приказы? Обнаружив новое задание, они сделают то же самое, что и твоя секретутка: перепишут лист по два раза и раздадут следующим сотрудникам. Итого, в конторе бродят уже четыре копии первоначального документа, которые и дальше будут копироваться и раздаваться на другие столы. Вот примерно так же работает и компьютерный вирус, только стопками бумаг-указаний являются программы, а вместо секретарши – компьютер. Так же как и секретарша, компьютер аккуратно выполняет все команды программы (в моем примере это листы заданий), начиная с первой. Если же первая команда звучит как «скопируй меня в две другие программы», то компьютер так и сделает, – и команда-вирус попадает в две другие программы. Когда компьютер перейдет к выполнению других «зараженных» программ, вирус тем же способом будет расходиться все дальше и дальше по всему компьютеру. В моем примере про твою секретаршу и ее высокоинтеллектуальную работу лист-вирус не проверяет, заражена очередная папка заданий или нет. В этом случае к концу рабочего дня все твои служащие будут завалены такими копиями и будут заниматься только тем, что переписывать один и тот же текст и раздавать его соседям! Смотри: секретарша сделает две копии, очередные жертвы вируса – уже четыре, затем восемь, шестнадцать, тридцать две, шестьдесят четыре и так далее. То есть количество копий каждый раз будет увеличиваться в два раза.

– Интересная мысль, – хмыкнул Костя. – Такое никогда не приходило мне в голову.

– Это еще не все, – довольно пробормотал Сергей. – Теперь проанализируй ситуацию. Если, допустим, каждый твой сотрудник на переписывание одного листа тратит тридцать секунд и еще столько же на раздачу копий, то через час по конторе будет «бродить» более десять в восемнадцатой степени копий вируса! Ты себе это представляешь? Скорее всего, конечно же, в банке на эту забавную операцию просто не хватит бумаги, и распространение вируса будет остановлено по столь банальной причине.

На другом конце трубки раздался Костин смех.

– Как это ни смешно, но именно такой случай произошел в однажды в Соединенных Штатах, – сказал Сергей. – Это было в восемьдесят восьмом году. Хотя, честно говоря, всем пострадавшим в этом инциденте было совсем не смешно. Тогда несколько глобальных сетей передачи информации оказались переполненными копиями сетевого вируса. Он назывался «вирус Морриса». Он рассылал сам себя от компьютера к компьютеру. Поэтому «правильные» вирусы делают так: «Переписать этот лист два раза и положить копии в стопку заданий соседей, если у них еще нет этого листа». Проблема решена – «перенаселения» нет, но каждая стопка содержит по копии вируса, при этом клерки еще успевают справляться и с обычной работой.

– Но я слышал, что вирусы могут еще и уничтожать данные – спросил Костя. – Или я путаю?

– Нет, не путаешь, – ответил Сергей. – Если мы снова для примера возьмем твою длинноногую секретуточку, то все будет очень просто – достаточно дописать на лист примерно следующее: «Первое. Переписать этот лист два раза и положить копии в стопку заданий соседей, если у них еще нет этого листа. Второе. Посмотреть на календарь – если сегодня пятница, попавшая на тринадцатое число, то следует выкинуть все документы в мусорную корзину» Кстати, примерно именно это и выполняет давно известный старый вирус «Иерусалим», который в начале девяностых наделал немало бед.

Костя хмыкнул.

– Кстати, на примере твоей секретарши очень хорошо видно, почему в большинстве случаев нельзя точно определить, откуда в компьютере появился вирус, – заметил Сергей. – Все твои служащие имеют одинаковые – причем, заметь: с точностью до почерка! – КОПИИ, но оригинал-то с почерком злоумышленника уже давно в корзине! Вот тебе простое объяснение работы вируса. Плюс к нему имей в виду две аксиомы, которые, как это ни странно, не для всех являются очевидными.

– Какие? – заинтересованно спросил Костя.

– Во-первых, вирусы не возникают сами собой, – ответил Сергей. – Их создают очень злые и нехорошие программисты-хакеры и рассылают затем по сети передачи данных или подкидывают на компьютеры знакомых. И твой случай – не исключение. Вирус не может сам собой появиться на ваших банковских компьютерах – либо тебе его подсунули на флэшках, на компакт-диске, из Интернета, по почте, либо ты сам его случайно скачал откуда-нибудь. Либо вирус жил у тебя в компьютере с самого начала, либо – и это есть самое ужасное! – программист-хакер влез к тебе в сеть примерно так же, как влез в нее я. И второе: компьютерные вирусы заражают только компьютер и ничего больше, поэтому не надо бояться – через клавиатуру и мышь они человеку не передаются.

После этих слов Сергей засмеялся.

– Чего ты ржешь? – мрачно спросил Костя. – Меня обули на десять лимонов твоими вирусами, а он ржет!

1
...