Защита систем. Чему «Звездные войны» учат инженера ПО — страница 57 из 68

тировать слабое звено, оно выглядело бы очень похоже на настольную Windows или Linux конца 1990-х годов. Уязвимости таких систем остаются важными как для злоумышленников, так и для защитников. Эти цепочки сведены вместе на рисунке 9.4. Вы видели компоненты по отдельности и теперь можете увидеть, как они собираются вместе (с добавлением «Установить код» сбоку; загруженные файлы и использование локального кода не отображаются).

Между прочим, деревья атак обычно показываются так, чтобы цель атакующего была вверху. В данном случае я поместил ее внизу, поскольку истории на странице обычно двигаются вниз, а не вверх. (Традиционное представление связано с тем, что деревья создаются как запись результатов анализа.)

Но это не единственные крупные цепочки. Я уже упоминал о фишинге, а теперь, чтобы свести все это воедино, на рисунке 9.5 показана упрощенная версия рисунка 9.4 и справа добавлена кража учетных данных и их использование. Я называю эту модель «Песчаным краулером», потому что именно так все и заканчивается. В следующем разделе мы раскроем цепочки, ориентированные на учетные данные, показанные справа.

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

Кстати, не каждое использование пароля приводит к запуску кода. Пароли восходят к тем временам, когда солдатам нужен был способ идентифицировать себя у часовых. (Отсюда фраза в мюзикле «Гамильтон»: «Пароль – „Рошамбо“, поняли меня? „Рошамбо“!» Они повторяют его, чтобы запомнить.) Это мало известно, но тот старый код, который годился для того, чтобы пробраться через блокаду на Эндор, тоже был Рошамбо.


Рис. 9.4. Цепи, собранные в дерево


Рис. 9.5. Авторская модель «Песчаный краулер»[2]

Получение или использование учетных данных

Получение учетных данных является частым обходным путем в других цепочках атак. В главах 1, 4 и 7 мы рассмотрели многие такие механизмы, связанные со спуфингом, раскрытием информации и предсказуемостью.

Несмотря на то что фишинг занимает огромное место в нашем воображении, он не является единственным способом кражи учетных данных. Использование украденных (утекших) учетных данных – невероятно распространенное звено в цепочке. Важно правильно хранить пароли (о чем вы узнали в главе 7 «Предсказуемость и случайность»).

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

После того как сайт слил пароль, вы действительно должны прекратить его использовать. Вот один из моих: NXcsx2IZ. Это настоящий пароль, который я использовал на довольно дорогом сайте, и сайт пароль слил. Я не против поделиться им здесь, потому что перестал им пользоваться.

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


Рис. 9.6. Цепь захвата аккаунта


Фишинг

Классический фишинг обманом заставляет человека ввести свои учетные данные на поддельном веб-сайте. Это новый набор шагов цепочки атаки, на котором мы сосредоточимся, исключив шаги, уже рассмотренные нами (они могут быть доставлены в сообщениях: ссылки на вредоносные веб-сайты (атаки на клиенты) или вложения (атаки на локальные пакеты)).

Цепочка атаки фишинга. Эта цепочка атаки состоит из шагов, которые злоумышленник должен выполнить, чтобы украсть деньги с вашего банковского счета.

1. Выбрать одну или несколько целей. (Разведка.)

2. Составить письмо, которое выглядит как письмо из банка. (Вооружение.)

3. Доставить оружие, отправив письмо. (Доставка.)

4. Кто-то кликает на наживку. (Применение эксплойта.)

5. Они посещают веб-сайт и вводят их учетные данные. (Снова применение эксплойта.)

6. Злоумышленник использует эти учетные данные, чтобы войти в их банк и украсть деньги. (Целевое действие).

Злоумышленники выполняют разведку. Они выбирают одну или несколько целей, собирая или фильтруя адреса электронной почты. Этот шаг часто включает в себя результаты атак на раскрытие информации, например массовую кражу адресов электронной почты при взломе, или почтовые серверы, которые реагируют по-разному, когда такого пользователя нет, например возвращают сообщение. Это также может быть сбор архивов опубликованных списков рассылки или маркетинговых сервисов, таких как data.com или Spokeo. Все атаки могут выполненяться как для этой цепочки, так и в другое время.

Вооружение – это когда злоумышленник разрабатывает оружие, создавая электронное письмо, которое притворяется человеком или организацией, которым, как вы надеетесь, доверяет цель. В классическом фишинге оружие – это сообщение, предназначенное для того, чтобы убедить кого-то нажать на ссылку. Оружие часто включает в себя спуфинг: URL-адреса, такие как Paypa1.com (с единицей, а не со строчной L), или отображаемый текст, в котором написано «Paypal.com», но лежащее под ним значение HTML href указывает на что-то другое. Оно часто создается путем модификации реального электронного письма от этого банка. Эти сообщения, как правило, предназначены для того, чтобы создать ощущение срочности, потому что фишинговая инфраструктура рано или поздно попадает в черные списки, сообщения фильтруются задним числом и т. д.

Вооружение может быть сложным. Например, спамерам нужен почтовый сервер, который позволит им отправлять много почты. (Современные системы, такие как Gmail, имеют усиленную защиту от исходящего спама.) Это может быть их собственный почтовый сервер или тот, который они взломали (получив на нем расширение полномочий). Термин сервер здесь может ввести в заблуждение: это не обязательно должна быть большая стоечная система в центре обработки данных. Многие почтовые черви включали в себя собственные SMTP-движки, оптимизированные для быстрой отправки. Злоумышленнику нужна платформа, отвечающая потребностям его кампании.

Вооружение может также включать в себя создание домена, который правдоподобно выглядит как принадлежащий банку, типа bank-email-server.com, по крайней мере для занятого человека. Этот домен может использоваться как для электронной почты, так и для веб-сайта. Он будет включать в себя украденные изображения и, вероятно, также HTML-код, отображающий веб-сайт банка. Этот HTML-код может быть изменен, чтобы уменьшить количество обращений к реальным веб-серверам, или оставлен нетронутым, чтобы снизить затраты на хостинг.

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

Этап применения эксплойта происходит, когда кто-то нажимает на ту часть электронного письма, которая является оружием (URL), а затем его браузер отображает фальшивый веб-сайта банка. Жертва вводит свои учетные данные. Браузер отправляет на сайт учетные данные жертвы. Эти учетные данные позволяют злоумышленнику обманывать жертву в будущем. Иногда учетные данные отправляются с фишингового сервера куда-то еще на случай, если фишинговый сайт будет отключен. (Менеджеры паролей используют разные идентификаторы для сайтов, поэтому они с меньшей вероятностью отправят ваши учетные данные на поддельный сайт.)

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

Как выясняется, никто уже не делает все эти шаги самостоятельно. Для каждого шага существуют эффективные рынки. Но есть еще два свойства, которые гораздо важнее с нашей точки зрения. Во-первых, многие из этих шагов используют типы атак, о которых мы говорили отдельно. Во-вторых, эти атаки могут быть связаны друг с другом. То, что злоумышленники объединяют обнаруженные вами угрозы в нечто большее, означает для вас, что все проблемы, которые вы обнаруживаете при моделировании угроз и не хотите исправлять, подобны деталям конструктора LEGO, разбросанным по полу. Вы наступите на одну деталь, а злоумышленники пристыковывают к ней другие, чтобы получить прибыльную атаку.

Альтернативная цепочка фишинговых атак. Разные аналитики разумно разбивают цепочки атак по-разному. Чтобы проиллюстрировать это, позвольте мне вкратце рассказать о еще одной цепочке фишинга, разработанной Крисом Мейдингером из компании Agari, занимающейся безопасностью электронной почты, в 2014 году. Как выглядела их разбивка, показано ниже.

1. Выбор целей.