Угрозы конфиденциальности
У Агентства национальной безопасности США (АНБ) есть модель того, какие данные они крадут: они получают их либо «в состоянии покоя», либо «в движении». Мы здесь последуем их примеру, потому что то, как мы защищаем данные, может зависеть от атаки, которая нас беспокоит. При моделировании угроз STRIDE по элементам эта кража проявляется в виде раскрытия информации в хранилище данных или в потоке данных. Существуют также угрозы утечки данных в результате процесса, включая побочные эффекты вычислений, часто приводящие к появлению скрытых каналов, которые кто-то может использовать для скрытого общения, и информации о человеческих связях. Эти утечки данных, побочные эффекты и данные о человеческих взаимоотношениях не вписываются в модель данных в состоянии покоя и в движении. Это нормально – нас больше волнует сама угроза, чем ее модель.
Между прочим, хотя мы часто используем такие слова, как кража, угроза обычно заключается в том, чтобы сделать копии или получить доступ, а не отнять их у владельца.
У данных «в состоянии покоя» обычно есть проверки авторизации, которые их защищают; проверки осуществляются операционной системой, базой данных или поставщиком облачных услуг. Неактивные данные – это данные в файлах, памяти или базах данных. Они могут быть физически привязаны к компьютеру – внутри процессора, на диске или даже на съемном носителе, таком как магнитная лента резервного копирования. Они могут быть украдены злоумышленником, выброшены владельцем, утрачены недовольным или недостаточно внимательным сотрудником или выпасть из кузова грузовика. Забавно, что мы считаем, что перемещаемая коробка с лентами – это данные в состоянии покоя, потому что лучшей защитой будет шифрование хранилища.
Из всех файлов в мире только очень небольшой набор действительно предназначен для чтения всем миром, хотя эта пропорция может меняться по мере того, как интернет делает все больше файлов доступными для всех. Некоторые из этих изменений случайны. У клиентов Amazon было достаточно проблем с блокировкой их сервиса S3, поэтому компания создала новые функции, чтобы привлечь внимание к «корзинам», которые были общедоступными, и помочь найти конфиденциальные данные в этих корзинах [Barr, 2017; Macie, 2017].
Конечно, не весь доступ к файлам санкционирован намеренно. Существует ряд сбоев, основанных на том, что анализ прав доступа путается с канонизацией имен файлов (которые обсуждаются в главе 1 «Спуфинг и аутентичность»). Существуют также сбои, вызванные отказами управления доступом, либо явными, случившимися в операционной системе, либо подразумеваемыми адресом электронной почты. Большинство систем, которые шифруют электронное письмо, не требуют от отправителя независимого подтверждения адреса электронной почты адресата и идентификатора криптографического ключа. Такое подтверждение могло бы время от времени обнаруживать, что человек случайно выбрал два разных идентификатора, и мы можем даже представить себе пользовательский интерфейс, чтобы узнать, какой из них правильный, например кнопки, помеченные двумя идентификаторами. Тем не менее дополнительные усилия, которые потребуются, скорее всего, приведут вас в ярость: «Я уже сказал вам, куда направляется письмо!»
Проблемы, связанные с раскрытием данных, не требуют дополнительных объяснений. Случаи с метаданными могут быть гораздо более тонкими.
Метаданные
Вы можете подумать, что метаданные – это когда андроид запирается от всех людей на голопалубе и создает фантастический мир, который является просто копией его самого. А вы окажетесь не в том вымышленном мире. В далекой-далекой галактике (и в нашей) метаданные – это данные о данных. Например, тот факт, что Брент Спайнер снимался в фильме «Звездный путь: Следующее поколение» – это данные. То, что он играл Дейту, это данные… Ладно, остановлюсь.
Данные могут храниться в файлах или в базах данных, и все они ассоциированы с метаданными, такими как имена файлов или путь. Многие, вероятно, заинтересованы в содержании JuneLayoffs.xlsx. Содержание staffing/AliceJuneLayoff.docx подразумевается, но это может оказаться письмом, в котором говорится: «Алиса, на твое рабочее место никто не покушается». Файл Junelayoffs/Alice.docx более интересен из-за комбинации метаданных: каталог и имя менее интересны сами по себе.
Может быть раскрыта информация о следующем:
• содержимое файла;
• имя файла;
• путь, по которому хранится файл (полный или частичный);
• существует ли файл или путь или нет;
• размер файла;
• права доступа к файлу;
• время доступа или изменения на диске или в системе контроля версий;
• теги.
Если не существует файла staffing/DarthJuneLayoff.docx, то отсутствие файла – это информация, которая кому-то действительно может понадобиться. (Кстати, я бы не хотел быть тем, кому поручено сообщить Дарту Вейдеру, что его должность лорда ситхов упразднена.)
Даже сложные для понимания названия могут дать информацию. Например, если вы заметили файл EgotisticalGiraffe.txt в системе, а позже обнаружили существование секретной программы под названием Egotistical Giraffe, вы можете заподозрить, что эти файлы связаны. Точно так же размер, формат и время доступа являются метаданными, которые могут быть интересны.
Все они, как правило, доступны авторизованному пользователю классической операционной системы, и многие из них – и аналогичные метаданные – доступны в современных SaaS или облачных системах.
Метаданные часто могут быть интерпретированы. Между Tesla Motors и New York Times возник интересный конфликт [Bishop, 2013]. Неоспоримым фактом является то, что репортер ездил на Tesla по парковке, пока не сел аккумулятор. Он раскритиковал машину в своем обзоре, но не упомянул о езде по парковке в первоначальном рассказе. Tesla заявила в пресс-релизе, что он «хотел разрядить батарею». Он утверждал, что хотел найти зарядную станцию. Что я думаю? Данные могут быть представлены в разных ракурсах, а метаданные еще более подвержены интерпретации.
Вы можете завязать себя в интеллектуальный узел из-за вопроса «Является ли криптографический ключ формой метаданных?». С одной стороны, никого не волнуют сами данные; но из-за того, что он позволяет делать, вы очень заботитесь о его конфиденциальности (или целостности в случае открытого ключа). Правильный ответ заключается в том, что это неправильный вопрос. Чтобы защитить данные, необходимо защитить ключи. Это проще, потому что они меньше и потому что вы можете обращаться с ними с большей осторожностью.
Базы данных могут использовать файловую систему, предоставляемую операционной системой, или файловую систему, которую они поддерживают сами. Этот «режим необработанного диска», конечно, имеет абстракции, аналогичные абстракциям в ОС, но оптимизирован для использования базы данных.
Несмотря на то что имеющиеся метаданные часто легко найти, существует также много информации, которая присутствует, но ее трудно увидеть.
Скрытые данные
Файлы могут содержать данные, которые явно спрятаны – просто вспомните функцию «Скрыть колонки» в электронной таблице. Они также могут содержать данные, которые являются «замкнутыми» (occluded), что тоже означает «спрятанные» или «скрытые». Например, если сделать маркер в Word черного цвета, можно скрыть информацию. Если вы распространяете файл в виде документа Microsoft Word, то любой пользователь, у которого есть файл, может изменить цвет выделения и прочитать то, что вы отредактировали. Существуют и менее глупые версии этого подхода, от просмотра истории изменений до использования утилиты Unix strings для распаковки файла и изучения его составных частей. Если вы нарисуете черный квадрат, а затем «распечатаете» его в PDF, вы можете быть удивлены, узнав, что формат PDF содержит слои. Американские спецслужбы часто публикуют напечатанные, а затем отсканированные версии документов, что является разумным способом избежать этих проблем, даже если это делает документы менее полезными.
Современный рендеринг шрифтов переменной ширины означает, что точная длина фразы также может раскрыть информацию о словах, которые вымараны. Это проще сделать с более короткими строками, такими как имена, чем с предложениями или даже абзацами.
Существует также ряд атак, в которых вы заставляете уполномоченную сторону собирать данных от вашего имени. Например, если я сообщу вашему браузеру, что в file://etc/passwd есть изображение, то прочитает ли он его? Сделает ли он содержимое изображения доступным для DOM (способ, которым браузер представляет веб-страницу в памяти)? Эти атаки сбитого с толку представителя обходят авторизацию и могут привести к раскрытию информации, вмешательству и другим последствиям и рассматриваются в специальном подразделе главы 6 «Расширение полномочий и изоляция».
Физическая память
Легко забыть, что для хранения данных в итоге требуется физическое устройство, которое может быть атаковано. Злоумышленник, который обходит проверки авторизации, налагаемые системой, имеет огромные возможности для доступа не только к данным, находящимся там в настоящее время, но и к данным, которые были там ранее. Данные, которые предположительно уничтожены, все еще могут присутствовать, но их нелегко найти. Например, освобожденная память, скорее всего, не будет перезаписана нулями. Для удаления секретов в памяти, которые больше не нужны, требуется всего несколько строк кода и, зачастую, инструкции компилятору, чтобы не оптимизировать очистку.
Когда хранение рассчитано на длительный срок, эта проблема становится более серьезной. Злоумышленник с физическим или низкоуровневым логическим доступом все равно может найти данные на диске. Мы можем заменить содержимое файла случайными данными, а затем отменить привязку. Мы можем делать то же самое с файлами или свободным пространством в файловой системе или с индексами файловой системы, хотя это может быть более сложным. К сожалению, флеш-накопители начали внедрять алгоритмы выравнивания, которые тщательно записывали данные в разных местах, чтобы уменьшить износ устройства, снижая уверенность в том, что данные действительно исчезли. По общему мнению, Apple удалила команду srm (secure rm) примерно во времена macOS Sierra [Harris, 2016] из-за трудностей, связанных с безопасным удалением.