Мелтдаун: соображения о влиянии на секретные системы

(Ди Алессандро Руголо)
04/04/18

Meltdown, термин, значение которого является синонимом «катастрофического краха» или «ядерной катастрофы», вошел в общее пользование из-за проблем безопасности, выделенных на некоторых типах процессоров, включая практически все процессоры Intel, часть процессоров AMD и и так далее, сделанный от 2010 до сегодняшнего дня. Эта уязвимость не влияет на очень немногие процессоры (или из Spectre, в некотором роде очень похожи), среди них хорошая часть ARM, SPARC и малины.

Но о чем это? Что это на самом деле Meltdown? И, прежде всего, какое влияние это может оказать на ИТ-системы и, в частности, на секретные системы, используемые в военной среде?

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

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

Неисправность

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

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

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

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

2. Чтобы пользователи или процессы не мешали друг другу и не причиняли вреда путем записи данных в уже используемое пространство памяти, возможно, операционной системой, была введена концепция «области защиты». На практике операционная система назначает каждому пользователю или процессу уровень, с которым связана возможность использования определенной области памяти. Когда процесс пытается получить доступ к области памяти, для которой он не авторизован, он обычно "завершается".

3. Третья характеристика, связанная с архитектурой новых процессоров, обычно оснащенных несколькими вычислительными блоками, заключается в возможности выполнения инструкций или операций параллельно или, в некоторых случаях, выполнения одной и той же инструкции с разными значениями для ускорения определенных операций. Это функции, известные как «конвейер команд» и «спекулятивное исполнение». Это основа концепции «внеочередного выполнения», т. Е. Выполнения программных инструкций, которые еще не являются необходимыми, но которые, вероятно, придется выполнить.

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

Что ж, вопрос простой. Если верно, что вышеупомянутые характеристики были введены для использования характеристик новых процессоров, то в равной степени верно и то, что то, что было сделано, значительно увеличило сложность систем и, следовательно, возможность введения нетривиальных уязвимостей, и это так. из Meltdown.
Теперь нам нужно знать, что одним из пользователей компьютера является операционная система, она считается «привилегированным пользователем» и может выполнять определенные операции, не предоставляемые универсальному пользователю.

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

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

Учитывая цель этой статьи и сложность аргумента, нет смысла продолжать описывать детали работы этого типа атаки, а пытаться понять последствия этой атаки для безопасности в отношении военных информационных систем.
Прежде всего необходимо принять во внимание концепцию проверки и сертификации систем.
Это связано с тем, что, как я надеюсь, теперь ясно, что почти все процессоры в сочетании с наиболее используемыми операционными системами подвержены атакам MeltdownК ним относятся клиент 7 и операционные системы Windows 2008 R2 64, которые, если вы посещаете сайт сертифицированных систем Common Criteria, сертифицированы для использования в секретных системах большинства стран мира ,

Возможно ли, что во время испытаний никто не заметил небезопасного поведения систем?
Нужно ли переосмысливать, как Центры валидации проводят тесты, возможно, слишком сосредоточенные на тестировании того, что было заявлено производителями, не исследуя (намного) дальше?
Тем не менее, есть явные признаки возможных проблем на процессорных архитектурах с удаленного 1995 Агентством национальной безопасности.

Второе соображение касается возможности применения патчей безопасности.
Как только стало известно о Meltdown, ведущие компании-разработчики программного обеспечения пытались исправить программные изменения в архитектурных аппаратных задачах.
Среди них Microsoft, которая сразу же выпустила патч, но с каким результатом? Новости хакера в статье, опубликованной несколько дней назад, он опубликовал исследование независимого исследователя Ульфа Фриска, в котором показано, как патч только ухудшил ситуацию, позволяя кражи данных теперь даже быстрее, чем без применения патча.
Это еще один момент для тщательного рассмотрения: применение патча, даже если это возможно (и это не всегда без повторной сертификации системы!), Может быть еще более опасным, чем оставлять вещи такими, какие они есть.

Итак, как нам решать проблемы, столь глубоко присущие архитектуре систем?

Какие уверенности, такие как гарантии, могут дать нам военные системы, которые потенциально были объектом атак, подобных Meltdown в течение многих лет?

Мы знаем, Meltdown публично с июля 2017, но мы не знаем, знал ли кто-нибудь ранее эту уязвимость и использовал ее, потенциально присущую процессорам нового поколения, начиная с 2010. У меня нет ответа, но есть только предположение: в современном мире ничто не безопаснее, возможно потому, что человек, даже обученный человек, вряд ли сможет справиться со сложностью систем.

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

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

 
Для получения дополнительной информации:

- https://meltdownattack.com/meltdown.pdf
- https://thehackernews.com/2018/03/microsofts-meltdown-vulnerability.html
- Введение в процессоры INTEL: https://www.tomshw.it/differenze-i-processori-intel-75496
- Обзор процессоров ARM: https://www.ilsoftware.it/articoli.asp?tag=Differenza-tra-processori-ARM...
- Введение в процессоры SPARC: http://www.pcpedia.it/Il-Processore/ultrasparc.html
- Обзор процессоров малины: https://opensource.com/resources/raspberry-pi
- https://www.commoncriteriaportal.org