Кратко

  • В октябре 2013 года Adobe публично заявила, что злоумышленники получили доступ к идентификаторам клиентов Adobe, шифрованным паролям, отдельным полям заказов и платёжных карт, а также к исходному коду нескольких продуктов.
  • Центральный вопрос ответственности звучит так: кто фактически контролировал хеширование паролей, объём данных платёжных карт, доступ к репозиториям исходного кода, инструкции клиентам по сбросу паролей, сроки уведомления об утечке и доказательства того, что похищенный код не расширил риски для клиентов?
  • Публичная картина позже вышла за рамки первой оценки Adobe: KrebsOnSecurity сообщил, что Adobe подтвердила около 38 млн активных пользователей с действующими шифрованными паролями в зоне утечки, а Have I Been Pwned включил в свой массив утечек 152,4 млн затронутых учётных записей.
  • Клиентам, разработчикам, корпоративным администраторам, командам реагирования на инциденты с платёжными картами и специалистам по безопасности продуктов пришлось действовать без доступа к внутренним журналам репозиториев Adobe, схеме хранения паролей, материалам платёжной системы и карте затронутых клиентов.
  • Материалы позволяют сделать вывод об ответственности с высокой уверенностью — в части контрольных обязанностей и пробелов в доказательствах. Они не позволяют домысливать закрытые подробности о каждой внутренней системе, каждом шаге злоумышленников, сборке продукта, потере клиента или изменении репозитория.

Доказательная база и принципы её использования

В этой статье публичные материалы рассматриваются как многослойная доказательная база, а не как единый полный отчёт. Материалы компании и государственных органов используются как заявления Adobe Inc. или публичных властей. Материалы регуляторных урегулирований, исследования в области безопасности, общедоступные реестры утечек, платёжные стандарты, рекомендации по безопасности ПО и хранению паролей используются для описания контрольных обязанностей, хронологии и последствий для затронутых сторон. Анализ не рассматривает вторичные публикации как доказательство закрытых фактов, которых нет в публичных материалах.

#Публичный источникИспользование в этом анализе
1Заявление Adobe о безопасности клиентовОсновное корпоративное уведомление, используемое для первоначального описания Adobe данных клиентов, сброса паролей, действий с платёжными картами, контактов с правоохранительными органами и доступа к исходному коду.
2Копия заявления о безопасности клиентов в справочном центре AdobeДействующая копия на ресурсе поддержки Adobe, подтверждающая, что уведомление остаётся частью публичной коммуникации Adobe с клиентами.
3Предупреждение CISA о компрометации данных клиентов и исходного кода AdobeГосударственное предупреждение, используемое для описания публичного риска и информирования клиентов на момент раскрытия.
4Первый репортаж KrebsOnSecurity об утечке исходного кода и данных клиентовНезависимый репортаж, используемый для хронологии, контекста репозитория исходного кода, упоминаний продуктов и заявлений Adobe в интервью.
5Продолжение KrebsOnSecurity о более широком круге пользователейНезависимый репортаж, используемый для более поздней оценки Adobe числа активных пользователей и публичного свидетельства того, что объём данных учётных записей расширился после первого уведомления.
6Запись об утечке Adobe в Have I Been PwnedОбщедоступный реестр утечек, используемый для описания более позднего массива утечки, категорий затронутых данных и контекста риска подсказок к паролям.
7Заявление генерального прокурора Огайо о многоштатном урегулированииМатериалы регулятора, используемые для описания урегулирования, вменяемых категорий данных, предмета расследования и требуемых изменений политики безопасности.
8Заметка HKCERT об утечке данных клиентов и исходного кода AdobeПубличная консультация CSIRT, используемая для рекомендаций по фишингу, описания рисков исходного кода и контекста предупреждений клиентов в разных странах.
9Анализ Troy Hunt об учётных данных Adobe и подсказках к паролямИсследование в области безопасности, используемое для описания публичного массива данных учётных записей, риска подсказок к паролям и критики хранения паролей.
10Страница команды Adobe по реагированию на инциденты безопасности продуктовДействующая страница Adobe о безопасности продуктов, используемая для контекста сообщений об уязвимостях и коммуникации по безопасности клиентов.
11Бюллетени и рекомендации Adobe по безопасностиДействующий указатель рекомендаций Adobe, используемый для контекста обновлений безопасности продуктов и продолжающейся опоры клиентов на уведомления Adobe.
12Рамка кибербезопасности NISTТерминология контрольных обязанностей: выявление, защита, обнаружение, реагирование, восстановление, управление и измерение.
13Проект NIST по рамке безопасной разработки ПОКонтекст ответственности производителя ПО: защита самого ПО, безопасная среда разработки и реагирование на уязвимости.
14Финальная страница NIST SP 800-218Рекомендации по безопасной разработке ПО, используемые для описания обязанностей по управлению исходным кодом и коммуникации производителя ПО.
15Руководство NIST SP 800-63B по цифровым удостоверениямРуководство по цифровым удостоверениям, используемое для контекста контроля паролей и верификаторов.
16Памятка OWASP по хранению паролейРекомендации по хранению паролей: хеширование, добавление соли, факторы трудоёмкости и отказ от слабой защиты учётных данных.
17Техника MITRE ATT&CK «Учётные данные в файлах»Контекст техники: почему исходный код, конфигурационные файлы и репозитории могут стать поверхностью риска для учётных данных.
18Страница PCI Security Standards Council о PCI DSSКонтекст контроля платёжных данных: объём данных держателей карт, процессоры, эквайеры, эмитенты, торговые точки и поставщики услуг.

Рамка ответственности уже, чем обвинение, и шире, чем уведомление об утечке

Инцидент Adobe сделал исходный код и записи клиентов общим тестом ответственности за учётные данные, потому что дело не укладывалось в одну простую категорию. Это была не только утечка учётных записей, не только событие с платёжными картами и не только инцидент с исходным кодом. В уведомлении Adobe говорилось, что злоумышленники получили доступ к идентификаторам клиентов и шифрованным паролям, вынесли отдельные поля данных клиентов и платёжных карт 2,9 млн клиентов, а также получили доступ к исходному коду нескольких продуктов. CISA повторила опасения относительно данных клиентов и исходного кода в публичном предупреждении.

Более поздние публикации и записи в реестрах утечек показали, что масштаб данных учётных записей больше первой цифры.

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

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

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

Позже регуляторы проверяли, существовали ли разумные меры до и во время атаки.

Суть — фактический контроль. Клиенты не могли проверить схему хранения паролей Adobe, журналы репозиториев или платёжную сеть. Они могли лишь реагировать на инструкции и доказательства, которые Adobe включила в публичные материалы. Когда провайдер владеет фактами, а клиенты выполняют большую часть работы, провайдер обязан делать публичную картину ясной, поэтапной и проверяемой.

Что устанавливает публичная доказательная база

Публичная доказательная база устанавливает несколько устойчивых положений. В собственном уведомлении Adobe говорилось, что её команда безопасности обнаружила атаки, связанные с незаконным доступом к информации о клиентах и исходному коду. В нём говорилось, что злоумышленники получили доступ к идентификаторам клиентов Adobe и шифрованным паролям. Компания сообщила, что, по её убеждению, злоумышленники вынесли имена, шифрованные номера кредитных или дебетовых карт, сроки действия и сведения о заказах 2,9 млн клиентов, при этом Adobe не считала, что дешифрованные номера карт покинули её системы.

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

Государственные органы и внешние источники добавляют другие слои. CISA предупредила клиентов следить за мошеннической активностью по учётным записям. В первом репортаже KrebsOnSecurity описывался массив похищенного исходного кода и приводились заявления Adobe в интервью о расследовании, возможном составе продуктов и проверке целостности продуктов. Позже KrebsOnSecurity сообщил о подтверждении Adobe, что злоумышленники получили доступ к идентификаторам Adobe и действующим шифрованным паролям примерно 38 млн активных пользователей, а данные неактивных, недействительных и тестовых учётных записей всё ещё изучаются.

Have I Been Pwned позже включила утечку Adobe как 152,4 млн затронутых учётных записей и указала адреса электронной почты, имена пользователей, пароли и подсказки к паролям. Генеральные прокуроры штатов позже объявили о многоштатном урегулировании претензий, возникших из утечки 2013 года.

Этих положений достаточно для анализа обязанностей. Их недостаточно для утверждения закрытых фактов, которые остаются за пределами публичных материалов. Материалы не показывают каждую затронутую базу данных, каждый внутренний путь доступа, каждое событие в репозитории, каждую деталь контроля паролей или исход для каждого клиента. Эта неопределённость — не повод игнорировать дело. Это повод сосредоточиться на том, что зависимой стороне требовалось, чтобы Adobe доказала.

Почему предмет доверия важен

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

Разработчики и корпоративные покупатели доверяли Adobe понимание того, изменил ли похищенный исходный код продуктов вероятность будущих эксплойтов или подмены релизов.

Этот набор предметов доверия шире, чем база данных клиентов.

Широкий предмет доверия объясняет, почему событие сохранило значение. Утечка учётных записей решается сбросом паролей, мониторингом мошенничества и предупреждениями о повторном использовании паролей. Событие с платёжными картами требует координации банков и карточных сетей, доказательств объёма данных и уведомления клиентов. Доступ к исходному коду ставит другой вопрос: могли ли злоумышленники изучать детали реализации, проверки безопасности, логику сборки или встроенные секреты так, чтобы это изменило будущий риск?

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

Именно здесь проступает общий тест ответственности за учётные данные. Слово «учётные данные» не следует читать только как «пароль». Учётные данные могут включать пароли, подсказки к паролям, обработку платёжных токенов, доступ к репозиториям исходного кода, сервисные секреты, контроль подписи или сборки, а также заверения, позволяющие корпоративному администратору продолжать доверять поставщику ПО. Публичные материалы ясно показывают стороны паролей и исходного кода. Многие детали доказательств остаются закрытыми.

Хранение паролей сделало идентификацию клиентов первой практической задачей

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

Have I Been Pwned описывает более поздний массив, содержащий идентификаторы записей клиентов, имена пользователей, адреса электронной почты, шифрованные пароли и подсказки, с некачественной криптографией паролей, из-за которой многие пароли было легче восстановить.

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

Вопрос ответственности не только в том, были ли пароли сброшены. Сброс — это реагирование. Хранение учётных данных — это предотвращение. У клиентов не было практической возможности выбирать метод хеширования Adobe, использование соли, рабочий фактор, дизайн подсказок, политику хранения или систему верификаторов. Они могли только избегать повторного использования паролей, реагировать на уведомления о сбросе и менять пароли в других местах. Это означает, что контрольная обязанность Adobe находилась выше по потоку, чем пользователь.

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

Современные рекомендации NIST и OWASP помогают описать этот класс контроля. Провайдер, хранящий верификаторы учётных записей, должен защищать их схемами, рассчитанными на противодействие офлайн-атакам, и избегать схем восстановления доступа, раскрывающих секреты пользователя. Дело Adobe 2013 года остаётся полезным, потому что показывает цену отношения к записям учётных данных как к обычным данным учётных записей. Попав в чужие руки, набор данных становится долгоживущим помощником для атак на разные сервисы, особенно там, где пользователи повторно использовали пароли.

Объём платёжных данных требовал доказательств, а не только заверений

В первом уведомлении Adobe разделила шифрованные и дешифрованные данные карт. Это различие было центральным. Компания сообщила, что злоумышленники вынесли шифрованные номера кредитных или дебетовых карт, сроки действия и сведения о заказах 2,9 млн клиентов, но Adobe не считала, что были вынесены дешифрованные номера карт. Adobe также сообщила, что уведомила банки, обрабатывающие платежи клиентов, чтобы они могли взаимодействовать с карточными компаниями и банками-эмитентами. Таким образом, публичные материалы поместили платёжный риск в более узкую рамку, чем риск данных учётных записей, но эта рамка всё равно требовала доказательств.

Ответственность за платёжные данные не заканчивается словом «зашифровано». Ответственные вопросы таковы: какие системы хранили данные карт, какие поля сохранялись, как защищались ключи шифрования, могли ли злоумышленники пытаться расшифровать данные, получили ли процессоры и эквайеры достаточно сведений и каким клиентам сказали следить за злоупотреблениями. В заявлении генерального прокурора Огайо об урегулировании позже описывался вывод о том, что Adobe узнала о попытках злоумышленника расшифровать шифрованные номера платёжных карт клиентов и что злоумышленник скомпрометировал веб-сервер и использовал его для доступа к другим серверам.

Эта публичная версия регулятора сделала историю контроля платежей более конкретной, чем одно первое уведомление.

Материалы PCI DSS полезны здесь не потому, что они решают вопрос об ответственности Adobe в этой статье, а потому, что называют экосистему. Организации, которые хранят, обрабатывают, передают данные держателей карт или могут влиять на них, находятся внутри сети продавцов, процессоров, эквайеров, эмитентов и поставщиков услуг. В этой сети платёжные доказательства облачного поставщика ПО предназначены не только для его собственного юридического досье. Они — основа для последующего мониторинга, уведомлений клиентов, решений о замене карт и реагирования на мошенничество.

Исходный код был риском доверия к продукту, а не только интеллектуальной собственностью

Кражу исходного кода часто описывают как кражу собственности компании. В этом деле вопрос риска для клиентов был шире. В продукты Adobe входило широко развёрнутое ПО для творчества, работы с документами, серверов и веб-приложений. KrebsOnSecurity сообщал, что в обнаруженном массиве исходного кода были, судя по всему, ColdFusion и Acrobat, а более поздние публикации указывали, что в зону риска попал и исходный код Photoshop. HKCERT предупреждала, что незаконный доступ к исходному коду может помочь злоумышленникам изучать продукты и находить уязвимости в течение длительного времени.

В собственном уведомлении Adobe говорилось, что на основе имевшихся на тот момент данных компании не известно о конкретном повышенном риске для клиентов из-за инцидента с исходным кодом.

Разрыв между этими заявлениями и есть пространство ответственности. Исходный код может быть украден без доказательств подмены релизов, эксплойтов нулевого дня или компрометации клиентов. Но украденный исходный код также может повысить будущий риск, давая злоумышленникам лучшее знание деталей реализации, предположений о безопасности и внутреннего устройства продукта. Ответственная публичная позиция не обязана публиковать чувствительные особенности исходного кода. Она обязана объяснить, как компания проверила целостность сборки, доступ к репозиториям, аномальные коммиты, встроенные секреты и историю релизов продуктов.

Рамка NIST по безопасной разработке ПО помогает назвать обязанности производителя. Защита ПО включает защиту сред разработки и артефактов ПО от подмены и несанкционированного доступа. Реагирование на уязвимости включает выявление остаточных слабостей и коммуникацию с потребителями. Более поздние страницы Adobe — PSIRT и бюллетени безопасности — показывают действующую структуру, через которую клиенты получают информацию о безопасности продуктов. Вопрос 2013 года состоял в том, были ли доказательства по исходному коду, стоявшие за этим доверием, достаточно сильны для зависимых клиентов.

Часы уведомления изменили то, что могли сделать клиенты

Запись о сроках важна, потому что раскрытие передаёт работу другим. Первое публичное заявление Adobe вышло 3 октября 2013 года. Предупреждение CISA в тот же день довело осведомлённость до клиентов. Первое уведомление содержало начальную оценку числа клиентов и описывало сброс паролей, уведомления банков-эквайеров и проверку исходного кода. В конце октября KrebsOnSecurity сообщил о подтверждении Adobe, что затронуты около 38 млн активных пользователей с действующими шифрованными паролями, а также данные неактивных, недействительных и тестовых учётных записей, которые ещё расследуются.

Have I Been Pwned позже отразила гораздо больший публичный массив утечки.

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

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

Инструкции по сбросу паролей были необходимы, но по своей природе неполны

Сброс паролей — одно из немногих действий с клиентами, которое провайдер может выполнить немедленно. Adobe сбросила пароли затронутых клиентов и посоветовала пользователям сменить пароли на других сайтах, где использовались те же идентификатор пользователя и пароль. Этот совет устранял самый предсказуемый побочный ущерб: повторное использование учётных данных. Совет также вскрывает асимметрию утечки облачных учётных записей. Adobe владела хранилищем идентификации. Пользователи несли бремя смены повторно используемых паролей по всему интернету.

Инструкции по сбросу необходимы, потому что превращают абстрактное уведомление в действие. Они неполны по своей природе, потому что не могут сказать каждому клиенту, где он повторно использовал пароль, не раскрыла ли подсказка другой секрет, осталась ли старая учётная запись значимой и есть ли у корпоративного администратора идентификации спящие учётные записи, связанные с закупками, лицензиями или поддержкой. Для потребителей работа сводилась к личной гигиене безопасности.

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

Качество инструкций по сбросу следует оценивать по тому, говорят ли они людям, что делать сейчас, за чем следить позже и какая неопределённость остаётся. Уведомление Adobe включало немедленные инструкции по сбросу, предупреждения о повторном использовании и контекст мониторинга платежей. Более поздние публичные материалы показывают, почему более сильная документация по безопасности учётных записей помогла бы: клиентам нужно было понимать подсказки к паролям, категории учётных записей, различие активных и неактивных записей и разницу между первым кругом затронутых карт Adobe и более крупным массивом данных учётных записей.

Перед корпоративными администраторами стояла иная задача, чем перед частными клиентами

Частный клиент мог сменить пароль Adobe и следить за карточным счётом. Корпоративному администратору приходилось задавать другой набор вопросов. Какие идентификаторы Adobe привязаны к лицензиям на ПО, закупкам, поддержке, облачному хранению, издательским процессам, совместной творческой работе или учётным записям разработчиков? Затронуты ли административные учётные записи? Связывало ли повторное использование паролей учётные записи Adobe с корпоративной почтой, путями восстановления единого входа или порталами поставщиков? Готовы ли команды поддержки к фишингу со ссылками на утечку? Обучили ли сотрудников избегать поддельных ссылок на сброс?

Публичные материалы не предоставили административную карту по каждому тенанту и не могли этого сделать в общем уведомлении. Но инцидент показывает, почему корпоративным клиентам нужны уведомления поставщиков, отделяющие советы потребительского уровня от доказательств администраторского уровня. Сброс паролей важен, но предприятиям также нужны инвентаризация учётных записей, информация о затронутых ролях, изменения в аутентификации, уведомление по домену и способ подтвердить, были ли затронуты привилегированные учётные записи. Эти потребности были особенно острыми, потому что Adobe была не просто случайным сайтом.

Это поставщик ПО с облачными учётными записями, инструментами для творчества, документными инструментами и зависимостями в области безопасности продуктов.

Таким образом, вопрос ответственности является общим, но неравномерным. Adobe владела фактами об утечке. Корпоративные клиенты владели фактами о собственном использовании учётных записей. Более сильная общая документация связала бы эти две стороны: критерии затронутых учётных записей, инструкции для администраторов, предполагаемые фишинговые схемы и ясные формулировки о том, что Adobe могла и не могла проверить. Без этого клиентам приходится переводить общее уведомление в собственный план контроля.

Суверенитет и локализация данных проявились через сеть уведомлений

История Adobe была глобальной, хотя значительная часть публичной правоприменительной истории относилась к Северной Америке. У Adobe были клиенты в разных регионах, продуктах и сервисных линиях. CISA опубликовала предупреждение в США. HKCERT опубликовала в Гонконге рекомендацию, предупреждавшую пользователей о том же событии, включая фишинговый риск и долгосрочный риск похищенного исходного кода. Генеральные прокуроры штатов позже урегулировали претензии о защите потребителей и конфиденциальности в многоштатном соглашении. В результате перед нами полезный пример того, как утечка облачного сервиса пересекает локальные системы ответственности.

Суверенитет данных в этом случае не только о том, где физически лежали байты. Он о том, какой публичный орган мог предупредить затронутых людей, какие законы регулировали уведомление, какие клиенты получили мониторинг кредитной истории, какие банки или карточные сети действовали и какие региональные структуры безопасности перевели событие в практические советы. Клиент видит одну учётную запись Adobe. Запись об ответственности проходит через корпоративное уведомление, федеральное киберпредупреждение, действия регуляторов штатов, независимые репортажи и рекомендации региональных CSIRT.

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

Вторичные публикации изменили доступную картину

Роль KrebsOnSecurity в истории Adobe важна, потому что публичное понимание утечки строилось не только на заявлении Adobe. Первый репортаж Krebs описывал обнаружение крупного массива исходного кода и приводил заявления Adobe в интервью о расследовании. Позднее продолжение Krebs сообщило, что Adobe подтвердила около 38 млн активных пользователей с действующими шифрованными паролями в зоне утечки и продолжает расследовать данные неактивных, недействительных и тестовых учётных записей. Затем Have I Been Pwned и Troy Hunt дали публике устойчивый взгляд на массив данных учётных записей и подсказки к паролям.

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

Если первая цифра — 2,9 млн клиентов по платёжным данным, а более поздняя оценка активных пользователей с учётными данными значительно больше, разницу нужно объяснить простым языком.

Поэтому дело Adobe — это также коммуникационный кейс. Провайдер должен ожидать, что внешние доказательства оспорят или уточнят его первое заявление. Правильная реакция — не оборонительная позиция. Это более точная карта категорий данных, статуса учётных записей, действительности паролей, объёма платёжных карт, охвата исходного кода и оставшихся неизвестных.

Бремя доказательств по исходному коду отличается от бремени доказательств по учётным данным

Доказательства по учётным данным часто конкретны. Провайдер может сказать, у каких учётных записей были действительные верификаторы паролей, какие пароли сброшены, какие подсказки присутствовали и какие клиенты уведомлены. Доказательства по исходному коду сложнее. Соответствующие материалы могут включать журналы доступа к репозиториям, снимки исходного кода, системы сборки, подпись релизов, проверку аномальных коммитов, сканирование секретов, тестирование безопасности продуктов и исследование уязвимостей. Значительная часть этих материалов чувствительна. Тем не менее решение клиента о риске зависит от вывода.

В первом заявлении Adobe говорилось, что ей не известно о конкретном повышенном риске для клиентов из-за доступа к исходному коду. KrebsOnSecurity сообщал, что Adobe проверяла выпущенный код ColdFusion и искала аномальную активность в репозиториях. HKCERT отмечала заявление Adobe о том, что выпущенные после инцидента продукты ColdFusion не были заражены и что Adobe не известно об эксплойтах нулевого дня, нацеленных на продукты Adobe в результате утечки исходного кода. Эти публичные заявления полезны, но это всё же выводы. Клиенты не могли независимо увидеть лежащие в основе проверки.

Ответственный путь — раскрыть классы доказательств, не раскрывая сами доказательства. Производитель ПО может сказать, сравнивались ли результаты сборки, были ли ротированы ключи подписи, были ли аннулированы учётные данные репозиториев, сканировались ли секреты, были ли проверены затронутые ветки и получили ли уязвимые продукты дополнительное тестирование. Такое заявление даёт покупателям способ оценить вывод, не превращая уведомление в инструкцию для злоумышленника.

Действия регуляторов сохранили дело после новостного цикла

Многоштатное урегулирование, объявленное в 2016 году, показывает, что событие Adobe не закончилось после рассылки сбросов паролей. Регуляторы проверили, существовали ли разумные меры защиты систем от атак и было ли обнаружение атаки достаточно быстрым. В заявлении генерального прокурора Огайо говорилось, что урегулирование закрыло претензии пятнадцати штатов и потребовало от Adobe внедрить новые политики и практики, регулярно оценивать меры защиты, соблюдать потребительские законы штатов и выплатить в общей сложности один миллион долларов участвующим генеральным прокурорам.

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

Для клиентов и советов директоров регуляторная «вторая жизнь» создаёт дополнительный слой доказательств. Она подтверждает, что публичные власти рассматривали событие как вопрос управления и защиты потребителей, а не только как техническое вторжение. Она также показывает, почему анализ на основе источников не должен замораживать дело на первом уведомлении. Полная запись об ответственности включает первое заявление, последующие уточнения масштаба, независимые доказательства утечки, инструкции клиентам, публичные предупреждения и более поздние правоприменительные результаты.

Чего публичные материалы не доказывают

Аккуратная статья должна назвать, чего она не знает. Публичные материалы не доказывают каждый шаг злоумышленника внутри сети Adobe. Они не доказывают точный первоначальный вектор. Они не раскрывают каждую базу данных, репозиторий, учётные данные, сервер или запись клиента. Они не показывают полный внутренний план миграции хранения паролей после инцидента. Они не показывают каждый артефакт проверки исходного кода или каждую проверку целостности сборки. Они не доказывают, что похищенный исходный код привёл к конкретному более позднему эксплойту. Они не доказывают, что каждый клиент понёс ущерб.

Эти ограничения важны, потому что тексты об утечках часто колеблются между успокоением и спекуляцией. Более полезная позиция уже: публичных материалов достаточно, чтобы определить контрольные обязанности и пробелы в доказательствах, но недостаточно, чтобы домысливать закрытые факты. Собственные заявления Adobe можно использовать как публичные утверждения. KrebsOnSecurity можно использовать как независимый репортаж и хронологию. HIBP можно использовать как справочник по массиву утечки. Уведомления о многоштатных урегулированиях можно использовать как материалы регуляторов. Стандарты можно использовать для определения разумных классов контроля.

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

Эта дисциплина особенно необходима, когда речь идёт об исходном коде. Утечка исходного кода может звучать катастрофически, даже когда не показана ни одна подменённая сборка. Она также может быть материально рискованной, даже когда первое заявление компании говорит, что конкретный повышенный риск неизвестен. Ответственный ответ — не выбирать одну из крайностей. Это требовать доказательств о границе.

Восстановление потребовало большего, чем возврат учётных записей

Восстановление после этого события имело как минимум четыре трека. Первый — восстановление идентификации: сброс паролей, предупреждения о повторном использовании, удаление или нейтрализация слабых артефактов восстановления доступа и коммуникация с владельцами активных и неактивных учётных записей. Второй — восстановление платежей: определение объёма данных карт, контакты с банками-эквайерами, координация с карточными компаниями и эмитентами, мониторинг там, где это доступно, и поддержка уведомлений клиентов.

Третий — восстановление ПО: проверка доступа к исходному коду, контроль выпущенного кода и целостности сборок, расследование аномальной активности в репозиториях и коммуникация выводов о рисках продуктов.

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

Публичные материалы показывают следы всех четырёх треков, но не каждую деталь. Adobe описывала сброс паролей, уведомления банков-эквайеров, уведомление клиентов, контакты с правоохранительными органами, мониторинг кредитной истории и проверку исходного кода. Более поздние репортажи и материалы регуляторов показывают, что треки данных учётных записей и управления продолжались. Действующие страницы PSIRT и рекомендаций Adobe показывают действующую инфраструктуру, через которую сообщаются обновления безопасности продуктов, хотя сами по себе эти страницы не доказывают внутренние исправления 2013 года.

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

Более сильная публичная документация разделила бы каждую затронутую поверхность

Более сильная публичная документация облегчила бы разделение поверхностей данных. Она отличала бы клиентов с платёжными картами от владельцев идентификаторов Adobe. Она отличала бы активные учётные записи от неактивных, недействительных и тестовых данных. Она отличала бы шифрованные пароли от подсказок к паролям и объясняла бы риск для клиента, создаваемый каждой категорией. Она указала бы, у каких продуктов исходный код был затронут на уровне классов, и какие проверки проводились для оценки подмены или будущего риска эксплойтов. Она отделяла бы подтверждённые факты от фактов, всё ещё находящихся в стадии изучения.

Документация также выиграла бы от инструкций по ролям клиентов. Потребителям нужны советы по паролям и картам. Корпоративным администраторам — советы по инвентаризации учётных записей и привилегированным ролям. Разработчикам и командам безопасности — контекст обновлений продуктов и заверений по исходному коду. Платёжным партнёрам — объём данных, временные окна и доказательства, подтверждающие исключение дешифрованных карт. Региональным структурам — краткое изложение, которое можно перевести в локальные предупреждения. Единое уведомление может начать процесс, но не должно быть всем процессом.

Это не требование безграничного раскрытия. Это требование удобной структуры. Высоконадёжные поставщики ПО могут раскрывать категории, сроки, методы проверки, действия клиентов, исключения и неопределённость, не раскрывая чувствительных деталей. Чем более централен провайдер для рабочих процессов клиентов, тем сильнее должна быть эта структура.

Уроки для зависимости от облачных сервисов

Дело Adobe — это кейс зависимости от облачных сервисов, потому что учётная запись у поставщика ПО может одновременно стать зависимостью идентичности, платёжной зависимостью, сервисной зависимостью и зависимостью доверия к продукту. Клиентам не нужно было размещать у себя базу данных учётных записей Adobe, чтобы унаследовать работу по утечке. Разработчикам не нужно было управлять репозиториями исходного кода Adobe, чтобы унаследовать вопросы о заверениях по исходному коду. Банкам не нужно было эксплуатировать коммерческие системы Adobe, чтобы унаследовать задачи мониторинга.

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

Поэтому модель общей ответственности должна быть конкретной. Клиенты отвечают за уникальные пароли, многофакторную аутентификацию там, где она доступна, инвентаризацию идентификационных данных и локальный мониторинг. Adobe отвечала за схему верификаторов паролей, минимизацию данных, контроль доступа к репозиториям, защиту платёжных данных, чёткое уведомление и границы доказательств. Платёжные партнёры отвечали за те карточные обязанности, которые они контролировали. Регуляторы отвечали за проверку соблюдения стандартов защиты потребителей. Сведение всего этого к расплывчатой модели общей ответственности скрывает, кто реально что мог сделать.

Покупательский урок ясен. Клиент облачного сервиса не должен спрашивать только о том, есть ли у поставщика страница о безопасности. Клиент должен спрашивать, как поставщик обращается с хранением учётных данных, определением масштаба утечки, уведомлением администраторов, защитой исходного кода, заверениями об обновлениях продуктов и готовыми к регуляторам доказательствами. Эти вопросы не теоретические. История Adobe 2013 года показывает, как быстро эти поверхности могут сойтись.

Жизненный цикл ПО и зависимость от поставщика изменили рычаги восстановления

Продукты Adobe находились внутри рабочих процессов клиентов. Творческие команды, документные команды, разработчики, веб-администраторы и корпоративные покупатели не могли просто перестать полагаться на Adobe за одну ночь из-за уведомления об утечке. Эта зависимость меняет стандарт ответственности. Когда клиенты не могут быстро уйти, объяснение провайдера должно быть сильнее. Оно должно позволять клиентам продолжать работу, принимая рациональные решения о риске.

Риск жизненного цикла ПО также длиннее, чем риск сброса учётной записи. Пароль можно сменить за минуты. Доступ к исходному коду может влиять на проверку безопасности продуктов месяцами или годами, если он раскрывает детали реализации или практики разработки. Доступ к репозиториям также может поднимать вопросы о встроенных секретах, истории веток и контроле сборок. Публичная позиция Adobe состояла в том, что компании не известно о конкретном повышенном риске для клиентов из-за доступа к исходному коду, а публичные репортажи описывали проверочную деятельность.

Нерешённый вопрос ответственности — уровень доказательств, которые клиенты могли увидеть для этого вывода.

Язык SSDF от NIST полезен, потому что рассматривает безопасное производство ПО как управляемый жизненный цикл. Защита артефактов ПО, сред разработки и релизов — это не просто инженерное предпочтение. Это обязанность заверений перед покупателем. В отношениях с зависимостью от поставщика клиентам нужно доказательство, что провайдер может защитить ПО до выпуска и задокументировать, что произошло после инцидента.

Советы директоров должны рассматривать схему учётных данных как вопрос управления

Хранение учётных данных может выглядеть техническим, пока утечка не заставит руководителей объяснять его клиентам, банкам, регуляторам и публике. История Adobe показывает, почему советы директоров должны рассматривать схему учётных данных как управление. Разница между обратимым шифрованием, должным образом защищёнными верификаторами паролей, слабыми подсказками, сильными процессами сброса и поддержкой многофакторной аутентификации влияет на ущерб клиентам и доверие к компании. Это последствия уровня совета директоров, даже если детали схемы технические.

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

Тот же совет директоров должен спрашивать, как защищён исходный код. Кто может получить доступ к репозиториям? Как секреты не попадают в код? Изолированы ли системы сборки? Защищены ли ключи подписи? Проверяются ли аномальные коммиты? Может ли компания доказать целостность релизов после несанкционированного доступа? Дело Adobe полезно тем, что соединяет и идентификацию, и исходный код. Совет директоров, рассматривающий их по отдельности, упустит, как одно вторжение может сделать публичными оба.

Покупатели должны спрашивать о доказательствах до события

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

Какие каналы поддержки используются, чтобы клиенты могли избежать фишинга после утечки?

Эти вопросы должны появляться при закупках, проверке безопасности и обновлении контрактов, потому что клиенты теряют рычаги, когда инцидент уже идёт. Во время утечки поставщик сосредоточен на локализации и юридической проверке, а клиенты пытаются защитить операции. До утечки покупатель может потребовать обязательств по уведомлению, списков контактов администраторов, инструкций по ролям, дополнений по безопасности, прав на аудит и категорий доказательств после инцидента. Цель — не требовать каждую внутреннюю деталь. Цель — определить пакет доказательств, который будет полезен при сбое.

Для поставщика ПО с крупными зависимостями от учётных записей и продуктов этот пакет доказательств должен охватывать учётные данные, платёжные данные, исходный код, уведомление клиентов и целостность обновлений продуктов. История Adobe 2013 года остаётся компактной причиной, почему все пять должны быть в одном разговоре покупателя.

Язык контрактов должен следовать за открытой поверхностью

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

Если исходный код или системы сборки продуктов существенны для сервиса, он должен касаться контроля доступа к репозиториям, целостности сборок, подписи релизов, проверки уязвимых продуктов и клиентоориентированных рекомендаций по продуктам.

Полезный пункт не требует от поставщика раскрывать секреты, которые создали бы больший риск. Он требует от поставщика делиться достаточным объёмом доказательств, чтобы клиент мог действовать. Это означает категории, сроки, затронутые системы, действия клиентов, исключения, методы проверки и изменённые контроли. Это также означает маршруты эскалации. Люди, получающие потребительское уведомление о сбросе, — не те же люди, которым нужен брифинг для корпоративного администратора или памятка с заверениями о безопасности продукта.

Событие Adobe показывает, почему это важно. Один и тот же публичный инцидент затронул потребительские учётные записи, реагирование на платёжные карты, корпоративную идентификацию, проверку исходного кода, заверения по жизненному циклу ПО и внимание регуляторов. Язык контракта, упоминающий только персональные данные, может упустить риск исходного кода. Язык контракта, упоминающий только патчи безопасности, может упустить повторное использование учётных данных. Ответственность требует называть поверхности до того, как они выйдут из строя.

Операционные индикаторы, которые делают заявления проверяемыми

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

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

Эти индикаторы не экзотичны. Это то, что нужно клиентам, чтобы меньше гадать. Малому бизнесу нужно знать, стоит ли сотрудникам менять повторно используемые пароли. Банку нужно знать, достаточно ли мониторинга карт или вероятна замена карт. Специалисту по проверке безопасности ПО нужно знать, заслуживают ли будущие циклы патчей особого внимания. Региональному кибероргану нужно знать, предупреждать ли о фишинге, обновлениях продуктов, платёжном мошенничестве или обо всём сразу.

Публичные материалы Adobe содержат часть этих индикаторов, но не все. В них названы сброс паролей, шаги по уведомлению о картах, контакты с правоохранительными органами, контакты с банками-эквайерами и проверка исходного кода. Более поздние источники назвали более крупную совокупность учётных записей и риск подсказок к паролям. Более сильная документация свела бы эти элементы в одну ясную карту доказательств.

Вопрос о повторении шире, чем Adobe

Вопрос о повторении не в том, был ли у Adobe второй идентичный инцидент. Вопрос в том, усвоили ли сопоставимые поставщики правильный урок. Любой крупный поставщик ПО может держать учётные данные клиентов, платёжные данные, исходный код продуктов, метаданные поддержки, облачное хранение, телеметрию и администрирование лицензий в одних и тех же отношениях доверия. Вторжение, пересекающее эти границы, создаст работу для клиентов, даже если каждая отдельная категория данных имеет разный правовой режим.

Поэтому дело Adobe входит в более широкий каталог ответственности. Оно показывает, почему хранение паролей должно предполагать кражу базы данных. Оно показывает, почему репозитории исходного кода должны восприниматься с той же серьёзностью, что и производственные системы. Оно показывает, почему уведомление клиентов должно быть поэтапным, но точным. Оно показывает, почему публичные цифры могут меняться и почему компаниям следует рано объяснять различия категорий. Оно показывает, почему действия регуляторов штатов могут прийти через годы после первого уведомления.

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

Этот урок о повторении конструктивен. Цель — не заморозить инцидент 2013 года в янтаре. Цель — использовать его как карту контроля. Если провайдер сегодня не может сказать, как он ответил бы на вопросы уровня Adobe об учётных данных, объёме платежей, доступе к исходному коду и доказательствах целостности продуктов, его план реагирования на инциденты не готов.

Главный вывод об ответственности

Главный вывод: Adobe контролировала системы, которые клиентам нужно было объяснить. Клиенты могли менять пароли, следить за платёжными счетами и остерегаться фишинга, но не могли сами проверить хранилище учётных данных, границу платёжных данных, доступ к исходному коду или проверку целостности продуктов. Поэтому публичные материалы Adobe были главным инструментом для принятия решений клиентами. Запись началась с корпоративного уведомления, расширилась через публичные репортажи и реестры утечек, а позже получила слой регуляторного урегулирования.

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

Для покупателей урок — требовать категории доказательств до утечки. Для советов директоров — рассматривать схему паролей и защиту исходного кода как управление. Для регуляторов — смотреть за пределы первого уведомления и проверять, существовали ли разумные практики обнаружения, сегментации и защиты. Для клиентов — относиться к учётной записи поставщика ПО как к реальной поверхности идентичности, а не как к второстепенному логину на сайте.

Решение читателя

Читатель должен вынести из материала практический вопрос, а не лозунг. Если бы облачный поставщик ПО сегодня раскрыл, что получил доступ к записям клиентов и исходному коду, смог бы он показать классы затронутых учётных записей, защиту верификаторов, границу платёжных данных, проверку репозиториев, проверки целостности продуктов, хронологию уведомлений, действия клиентов и оставшиеся неизвестные — без ожидания, пока внешние журналисты или реестры утечек дополнят картину? Если ответ «нет», история Adobe всё ещё актуальна как урок ответственности.

Событие Adobe 2013 года полезно тем, что не помещается в одну категорию. Это кейс идентификации, кейс объёма платежей, кейс жизненного цикла ПО, кейс трансграничного уведомления и кейс управления. Именно так часто ведут себя современные сбои облачных сервисов. Провайдер с наибольшим контролем должен представить самые ясные доказательства, а зависимые стороны не должны вынуждены собирать эти доказательства из фрагментов.

Справедливый стандарт — не всеведение. Это дисциплинированное публичное доказательство. Скажите, что произошло. Скажите, что известно. Скажите, что остаётся неопределённым. Скажите, что делать клиентам. Скажите, какие доказательства поддерживают утверждение, что риск ограничен. В истории Adobe эти обязанности очерчивают поверхность ответственности яснее, чем любая отдельная цифра утечки.