Добавлен: 29.10.2018
Просмотров: 48127
Скачиваний: 190
726
Глава 9. Безопасность
жет и не привести к осуждению виновника, но тогда восстановить потерянные файлы
точно не удастся) или поддаться шантажу и заново нанять программиста в качестве
консультанта за астрономическую сумму, чтобы устранить проблему (в надежде, что
он, занимаясь ее устранением, не заложит новую логическую бомбу).
Были зарегистрированы случаи, когда вирус закладывал логическую бомбу в заражен-
ный им компьютер. Как правило, компьютеры были запрограммированы так, чтобы
«взорваться» всем вместе в определенный день и час. Но поскольку программист зара-
нее не знал, чей компьютер будет поражен, логические бомбы не могли использоваться
для сохранения своего рабочего места или вымогательства. Зачастую такие бомбы на-
строены на «взрыв» в какой-нибудь политически важный день. Иногда их называют
бомбами с часовым механизмом
(time bombs).
9.8.2. Лазейки
Другими прорехами безопасности, устраиваемыми инсайдерами, являются лазейки
(back door)
1
. Их создают системные программисты путем внедрения в систему такого
кода, который позволяет обойти какую-нибудь обычную проверку. Например, про-
граммист может добавить код к программе входа в систему, чтобы позволить любому
человеку войти в систему, используя регистрационное имя zzzzz, независимо от того,
что содержится в файле паролей. Обычный код программы входа в систему может
выглядеть так, как показано на рис. 9.22, а. Для встраивания лазейки код меняется на
тот, который показан на рис. 9.22, б.
Рис. 9.22. Код: а — обычный; б — с внедренной лазейкой
При вызове процедуры strcmp осуществляется проверка, не введено ли регистрацион-
ное имя zzzzz. Если это имя введено, происходит вход в систему независимо от того,
какой пароль был введен. Если этот код лазейки был внедрен программистом, рабо-
тающим на производителя компьютеров, а затем поставлен вместе с произведенными
им компьютерами, программист сможет войти в систему любого изготовленного этой
компанией компьютера независимо от того, кем будет его владелец или каким будет
содержимое файла паролей. То же самое касается программиста, работающего на
производителя операционной системы. Лазейка просто позволяет обойти процесс
аутентификации. Компании могут предотвратить внедрение лазеек путем ввода в прак-
тику своей работы обзора кода (code reviews). Согласно этой технологии, как только
1
Также их называют потайными дверьми и черными ходами. — Примеч. ред.
9.8. Инсайдерские атаки
727
программист закончил создание и тестирование модуля, он заносится в базу данных
кода. Периодически все программисты команды собираются вместе, и каждый из них
построчно объясняет всей группе, что делает его код. Это не только существенно повы-
шает вероятность того, что кто-нибудь отловит лазейку, но и повышает ставки в игре
для программиста, поскольку если он будет пойман на месте преступления, это не ста-
нет положительным фактором для развития его карьеры. Если программисты станут
сильно противиться такому предложению, можно также заставить двух сотрудников
проверять код друг у друга.
9.8.3. Фальсификация входа в систему
В этой инсайдерской атаке злоумышленником является законный пользователь,
собирающий пароли, принадлежащие другим людям, используя технологию под на-
званием фальсификация входа в систему (login spoofing). Обычно она применяется
в организациях, имеющих множество общедоступных компьютеров, объединенных
в локальную сеть, которыми пользуются многие сотрудники. К примеру, во многих
университетах имеются залы, заполненные множеством компьютеров, с каждого из
которых студенты могут войти в любую ОС. Работает эта атака следующим образом.
Обычно, когда никто не входит в систему, на экран UNIX-компьютера выводится изо-
бражение, похожее на то, что показано на рис. 9.23, а. Когда пользователь садится за
компьютер и набирает свое регистрационное имя, система запрашивает пароль. Если
вводится правильный пароль, пользователь входит в систему и запускается оболочка
(а возможно, и графический интерфейс пользователя).
Рис. 9.23. Экран входа в систему: а — настоящий; б — фальсифицированный
Теперь рассмотрим следующий сценарий. Пользователь-злоумышленник по имени
Мэл написал программу, чтобы изображение на экране выглядело так, как показано
на рис. 9.23, б. Оно выглядит точно так же, как и изображение на экране, показанное
на рис. 9.23, а, за исключением того, что его выдает не программа входа в систему, а ее
фальсификация, написанная Мэлом. Теперь Мэл запускает свою фальсифицирован-
ную программу входа в систему и отходит в сторонку, чтобы наблюдать за происходя-
щим с безопасного расстояния. Когда пользователь садится за компьютер и набирает
регистрационное имя, программа откликается запросом пароля и отключает вывод
символов на экран. После того как были собраны регистрационное имя и пароль, они
записываются где-нибудь в файле, и фальшивой программе входа в систему посыла-
ется сигнал для уничтожения ее оболочки. В результате этого действия происходит
выход Мэла из системы, переход к запуску настоящей программы входа в систему
и вывод на экран приглашения, показанного на рис. 9.23, а. Пользователь предпола-
гает, что допустил ошибку при наборе, и просто повторно входит в систему. На этот
раз все срабатывает должным образом. А тем временем Мэл получает очередную пару
728
Глава 9. Безопасность
из регистрационного имени и пароля. За счет допуска на многие компьютеры и за-
пуска фальсифицированной программы входа в систему он может собрать большую
коллекцию паролей.
Единственный способом предотвратить такое развитие событий является начало по-
следовательности входа в систему с комбинации клавиш, которая не перехватывается
пользовательскими программами. В Windows для этого используется комбинация
CTRL
+
ALT
+
DEL
. Если пользователь усаживается за компьютер и начинает с того, что
нажимает комбинацию клавиш
CTRL
+-
ALT
+
DEL
, происходит выход из системы теку-
щего пользователя и запускается программа входа в систему. Обойти этот механизм
невозможно.
9.9. Вредоносные программы
В прежние времена (скажем, до 2000 года) скучающие (но смышленые) тинейджеры
порой коротали свободное время за написанием вредоносного программного обе-
спечения, которое затем собирались выпустить в свободное плавание по всему миру,
чтобы всем насолить.
Эти программы, к числу которых относятся троянские кони, вирусы и черви, обоб-
щенно называются вредоносными программами (malware) и очень быстро распро-
страняются по всему миру. Их авторы восхищаются уровнем своего программистского
мастерства, читая публикации о многомиллионных убытках, причиненных вредонос-
ными программами, и о том, сколько людей в результате их работы потеряло ценную
информацию. А для них это просто забавные шалости, ведь они не извлекают из этого
никакой материальной выгоды.
Но эти времена уже прошли. Вредоносные программы теперь пишутся по требованию
организованных преступных группировок, предпочитающих не видеть результатов сво-
ей работы в газетных публикациях. Они разрабатываются для распространения через
Интернет с максимально возможной скоростью и инфицирования как можно большего
количества машин своих жертв. Когда машина инфицирована, устанавливается про-
граммное обеспечение, которое пересылает сообщения об адресах захваченных машин
на соответствующие компьютеры. В машину также внедряется лазейка (backdoor),
позволяющая преступникам, распространяющим вредоносные программы, без труда
давать машине команды на совершение несвойственных ей действий. Захваченные
таким образом машины называются зомби (zombie), а их коллекция называется бот-
нетом
(botnet), от сокращенного robot network, то есть сеть, составленная из роботов.
Преступники, управляющие ботнетами, могут сдавать их в аренду для различных не-
благовидных (но всегда коммерческих) целей. Одно из распространенных применений
заключается в рассылке коммерческого спама. При серьезной спам-атаке полиция
пытается отследить ее источник, но видит лишь то, что спам приходит от тысяч машин
по всему миру. Если они доберутся до владельцев этих машин, то обнаружится, что это
дети, мелкие предприниматели, домохозяйки, старушки и множество других людей,
категорически отрицающих свою причастность к рассылке спама. Использование для
грязной работы машин, принадлежащих другим людям, затрудняет выслеживание
стоящих за всем этим преступников.
После установки вредоносная программа может использоваться и для других преступ-
ных целей. Возможно, для вымогательства. Представьте себе фрагмент вредоносной
9.9. Вредоносные программы
729
программы, шифрующей все файлы на жестком диске своей жертвы, а затем выводя-
щей на экран следующее сообщение:
ВАС ПРИВЕТСТВУЕТ GENERAL ENCRYPTION!
ДЛЯ ПРИОБРЕТЕНИЯ КЛЮЧА РАСШИФРОВКИ ВАШЕГО ЖЕСТКОГО ДИСКА ПЕРЕШЛИТЕ, ПОЖАЛУЙСТА,
НЕПОМЕЧЕННЫМИ мелкими КУПЮРАМИ 100 ДОЛЛАРОВ ПО АДРЕСУ: BOX 2154, PANAMA CITY,
PANAMA. СПАСИБО. МЫ ПРИЗНАТЕЛЬНЫ ЗА ВАШЕ БЕСПОКОЙСТВО.
Еще одно распространенное занятие вредоносных программ — установка на заражен-
ной машине регистратора нажатия клавиш — логгера клавиатуры (keylogger). Эта про-
грамма регистрирует все нажатия клавиш и периодически отсылает регистрационные
записи на некие машины или ряд машин (включая зомби) с тем, чтобы в конечном
счете все это попало к преступникам. Привлечение к сотрудничеству интернет-про-
вайдеров, обслуживающих машины-поставщики, зачастую затруднено из-за того, что
многие из них в сговоре с преступниками (а иногда и принадлежат к преступному
бизнесу), особенно в странах с высоким уровнем коррупции.
Ценные сведения, добываемые из строк, набранных на клавиатуре, состоят из номеров
кредитных карт, которые могут использоваться для приобретения товаров у вполне
законных продавцов. Поскольку жертвы не подозревают о краже номеров своих кре-
дитных карт до тех пор, пока не получат выписки со своих счетов по окончании опре-
деленного цикла, преступники могут расходовать их средства в течение нескольких
дней или даже недель.
Чтобы противостоять таким атакам, все компании по выпуску кредитных карт ис-
пользуют программы искусственного интеллекта для обнаружения необычных схем
расходов. К примеру, если человек, который обычно использует свою кредитную карту
в местных магазинах, неожиданно заказывает десяток дорогих ноутбуков с доставкой
по адресу, скажем, в Таджикистан, для компании, обслуживающей кредитную карту,
зазвучит тревожный звонок, и ее сотрудник, как правило, позвонит держателю карты,
чтобы вежливо осведомиться об этой транзакции. Разумеется, преступники знают
о таком программном обеспечении, поэтому они стараются подстроить стиль своих
расходов, чтобы не попасть в поле зрения радара.
Данные, собранные логгером клавиатуры, могут быть объединены с другими данными,
собранными программами, установленными на зомби-машины, позволяя преступникам
заниматься более масштабной кражей личных данных (identity theft)
1
. Совершая это
преступление, преступник собирает значительный объем сведений о человеке, напри-
мер дату его рождения, девичью фамилию его матери, номер карточки соцобеспече-
ния, номера банковских счетов, пароли и т. д., чтобы получить возможность успешно
сыграть роль жертвы и получить новые физические документы, например дубликат
водительских прав, банковскую дебетовую карту, свидетельство о рождении и многое
другое. Все это, в свою очередь, может быть продано другим преступникам для даль-
нейшего использования.
Еще одна форма преступления, совершаемого с помощью вредоносной программы,
заключается в скрытом присутствии до тех пор, пока пользователь не осуществит
успешный вход в личный кабинет интернет-банкинга. После чего программа сразу же
запускает транзакцию для определения имеющейся на счету суммы и переводит всю
сумму на счет преступника, с которого она тут же переводится на другой счет, а затем
1
Довольно часто встречается перевод «кража личности». — Примеч. ред.
730
Глава 9. Безопасность
еще и еще раз на другие счета (в различные страны, погрязшие в коррупции). Поэтому
полиции требуются дни или недели, чтобы собрать все необходимые ей ордера на обы-
ски, чтобы проследить прохождение средств, и если даже она доберется до этих средств,
то ее требования могут остаться без удовлетворения. В таких преступлениях замешан
крупный капитал, и они уже не имеют никакого отношения к подростковым шалостям.
Кроме использования в преступной среде вредоносные программы находят при-
менение в промышленности. Компания может выпустить вредоносную программу,
запускающуюся только в момент отсутствия в системе системного администратора.
Если обстановка благоприятствует, она станет мешать производственному процессу,
снижая качество продукции и создавая тем самым проблемы конкуренту. Во всех
остальных случаях она будет бездействовать, что затрудняет ее обнаружение.
Еще одним примером целенаправленной вредоносной программы может послужить
вирус, созданный и запущенный в локальную сеть амбициозным вице-президентом
какой-нибудь компании. Если в результате проверки вирус обнаружит, что он запущен
на машине президента компании, он начнет искать электронную таблицу и перестав-
лять в ней местами две произвольно выбранные ячейки. Рано или поздно президент
на основе испорченной электронной таблицы примет неверное решение, в результате
чего будет уволен, освобождая место тому, о ком вы догадываетесь.
Некоторые люди ходят весь день с «чипом за пазухой» (не путать с теми, кто носит
RFID — чип радиочастотной идентификации). У них имеются реальные или наду-
манные претензии к окружающим и желание отомстить. И в этом им может помочь
вредоносная программа. Многие современные компьютеры хранят базовую систему
ввода-вывода (BIOS) во флеш-памяти, содержимое которой может быть переписано
под управлением определенной программы (чтобы дать возможность производителю
распространять исправления программного кода в электронном виде). Вредоносная
программа может записать во флеш-память всякий хлам, и компьютер перестанет за-
гружаться. Если чип флеш-памяти установлен в гнезде, то для устранения проблемы
нужно вскрыть компьютер и заменить чип. А если чип флеш-памяти впаян в материн-
скую плату, придется, наверное, выбрасывать плату и покупать новую.
Можно привести еще множество других примеров, но, думаю, суть вы уже уловили.
Если нуждаетесь в дополнительных ужастиках, то наберите в строке любого поиско-
вика слово malware, и вы получите десятки миллионов ссылок.
Возникает вопрос: а почему вредоносные программы распространяются с такой лег-
костью? Причин несколько. Во-первых, практически на 90 % компьютеров в мире
работает только одна операционная система, Windows (или ее версии), что делает
ее легкой мишенью. Если бы речь шла о десяти операционных системах, каждая
из которых занимала 10 % рынка, то распространять вредоносные программы стало
бы намного труднее. Как и в мире биологии, разнообразие является неплохой за-
щитой.
Во-вторых, с самых ранних времен Microsoft прилагает массу усилий для того, чтобы
сделать Windows более доступной для технически неискушенных людей. Например,
в прошлом системы Windows были обычно настроены на вход в систему без пароля,
в отличие от UNIX-систем, где исторически сложилось требование к вводу пароля
(хотя этот замечательный обычай теряет свои позиции по мере того, как Linux ста-
рается все больше походить на Windows). Во многих других случаях, выстраивая
компромисс между высокой защищенностью и простотой использования, Microsoft