Как стать автором
Обновить

Комментарии 25

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

Если предполагается, что этот EC2-instance имеет доступ к этим данным для своей работы, то он будет иметь доступ и к ключу шифрования.

Я не эксперт в AWS, могу здесь ошибиться. Когда приложение пишет данные в хранилище (неважно где оно расположено), этот поток уже может быть зашифрован. То есть получая доступ к хранилищу, сами данные нужно будет дешифровать.
То есть получая доступ к хранилищу, сами данные нужно будет дешифровать.

Вот только в описанном случае атакующая не просто "получила доступ к хранилищу", а получила доступ к инстансу, у которого была роль для доступа к хранилищу. Предположительно, если инстансу дали доступ на чтение, то он должен что-то с данными делать, а если так — то он будет их и расшифровывать, поэтому доступ к ключу у него тоже будет.

Инстанс имеет доступ к чтению, и читает он шифрованные данные. Расшифровка идет в памяти. Аналогия. Развернута виртуальная машина, на которой ничего нет, кроме «Блокнота». Инстансу — этой виртуалке дали доступ на чтение к хранилищу. Блокнот умеет шифровать. Хакер получает доступ к инстансу и может прочитать сохраненные в хранилище данные блокнота, но там они шифрованы.
Расшифровка идет в памяти.

В памяти того же инстанса? С помощью чего?


(Но вообще, по умолчанию, AWS S3 работает не так — вы передаете ключ в запрос к хранилищу и получаете уже расшифрованные данные)

С помощью собственного алгоритма, или стороннего crypto service provider. Про пояснение о S3 спасибо (все хочу посмотреть детали). Такие требования появляются из-за случаев с Capital One. Тоесть получение привелегий учетной записи, под которой работает инстанс приложения, не должен давать доступ к данным. Внутреннее шифрование сужает доступ до приложения (как владельца ключа). Ключ, конечно, тоже можно стащить, но это другая история.
С помощью собственного алгоритма, или стороннего crypto service provider.

Собственный алгоритм — зло, выкидываем. Остаются стандартные алгоритмы, ключи от которых хранятся где?


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

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


Внутреннее шифрование сужает доступ до приложения (как владельца ключа).

В случае стандартного развертывания на EC2 приложение — и есть инстанс, вы ничего не можете "сузить".

Собственный алгоритм — зло, выкидываем. Остаются стандартные алгоритмы, ключи от которых хранятся где?

В случае стандартного развертывания на EC2 приложение — и есть инстанс, вы ничего не можете «сузить».


Это, действительно, важный момент. В моей практике есть только ПО, которое работает на Windows Server. Там в качестве хранилища можно использовать как встроенный контейнер сертификатов, так и стороннее ПО типа Крипто API. Доступ к ключу будет иметь определенный аккаунт под которым работает ПО.
Обычно под конкретное приложение дается отдельный аккаунт. Т.е. в этом случае надо получать доступ именно к нему. То есть слабым звеном остаюся администратор, который имеет доступ к хранилищу сертификатов и учетная запись, под которой крутится сервис-приложение.

В случае с EC2 приложением, наверное да, только использование встроенных в AWS сервисов.
Доступ к ключу будет иметь определенный аккаунт под которым работает ПО.

Правильной параллелью со случившимся будет "скомпроментирован такой аккаунт". И далее становится понятно, что шифрование не поможет.

Managed Service Accounts могут усложнить задачу. Пароль автоматически регулярно меняется без участия админа. Только атака на конкретное приложение. От инсайда, как в этом примере спасет, если только инсайдер не имеет доступ к сертификатам.
От инсайда, как в этом примере спасет, если только инсайдер не имеет доступ к сертификатам.

Неа. Потому что "инсайд как в этом примере" — это кто-то нашел способ залогиниться на инстанс под учетной записью, которая там была установлена. Если бы для этой учетной записи соблюдали правила безопасности, это бы ничем не отличалось от вашего случая.

Если злоумышленник залогинился в инстансе под root'ом, то он сможет сделать все что угодно:


  • Перехватить трафик
  • Достать ключи/пароли из памяти
  • Подменить сервисы/приложение

И этот список можно продолжать долго.


По этому, в конечном случае, шифрование здесь не спасет. Оно, конечно, усложнит жизнь и придется постараться чуть больше чем просто вызвать s3cmd sync s3://..., но принципиально это не решение проблемы.

Взломом это можно назвать только с большой натяжкой — это типичный inside job.

Что удивляет больше — это абсолютно не связанный с чем-либо пассаж о том что нужно идти в облако (хотя, вероятно, это просто реклама AWS), несмотря на то что в данном случае именно сотрудница облачного провайдера стала причиной проблемы.
социальная инженерия != взлом? если данные утекли то это взлом, зделано это через найденую дырку в софте или физически пришли и утащили жёсткие диски это без разницы, особо важные данные охраняют не только настройками, но и физически, а ещё и от работников всех уровней, если тупо доверять облачному сервису то это сомнительный подход
Не понятно еще, как она на EC2 инстанс попала, кроме плохо нстроенного фаервола, нужна же еще учетка на сервере или уязвимость…
Возможно это просто совпадение, но «Бывшая сотрудница Amazon» звучит слишком подозрительно. Было бы интересно узнать, в каком подразделении она работала, а также, когда и почему перестала там работать.
Возможно это просто совпадение, но она была системным инженером в AWS где-то между 2015 и 2016 годами.

Почему она перестала там работать — гораздо более сложный вопрос, но судя по столь короткому сроку наводит на вполне очевидные мысли…

Интересно… В таком случае можно предположить, что Capital One не единственная жертва.
> сообщение, которого боится каждая современная компания — произошла утечка данных

Не боится.
* О сообщении узнают полтора технаря на хабре.
* Инвесторам говорите «Ой извините. Это были хакиры. В вот у нас зато занавески красивые.»
* Продолжаешь грести бабло.

Пока ещё ни одной конторки не закрыли за утечку. Чего бояться-то? Вот утечка туалета в офисе — это гораздо страшнее.
Как же GDPR и штрафы? А еще потеря доверия.
Все уже перестали пользоваться фэйсбуком, убером или British Airlines? Я видимо в какой-то другой вселенной живу.

Сейчас справа от меня сидит человек, который до этого работал в МФЦ (это где все ваши персданные, паспорта и прочие документы хранятся). Я уже даже не смеюсь, когда он рассказывает, что безопасности там нет в принципе. Все данные валяются как половые тряпки по углам. Можно просто прийти с ноутом, воткнуться в сетку и всё скопировать. Это ещё в лучшем случае. Ноль контроля, ноль ответственности, ноль желания что-то менять.
Вот тут можно пройти интерактивный туториал по сценарию взлома Capital One, очень понятно объясняется.

В статье есть некоторые неточности. Можно почитать на Кребсе. Если коротко:


  1. Никто не попадал на EC2, уязвимость в firewall-e "всего лишь"позволяла взломщику "trick the firewall into relaying requests to a key back-end resource on the AWS platform"
  2. К сожалению, этот back-end resource который называется метадата сервис, возвращает пароли присвоенные вышеупомянутому EC2.
  3. Дальше вы берете эти пароли и используете их откуда угодно

Проблема с метадата сервисом известна давно, просто тут для Capital One звезды улеглись — №1 это точно недосмотр, ну и слишком широкие права доступа у инстанса (тот самый S3 к которому совершенно необязательно firewall-у иметь доступ)


Короче сочетание разгильдяйства и документированных недостатков AWS.
Никакой конечно не inside job

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Изменить настройки темы

Истории