Ще один тиждень, ще один BWAIN!
Про що ви дізнаєтеся, якщо слухали минулого тижня Подкаст (натякати, натякати!), BWAIN - це скорочення Помилка з вражаючою назвою:
Це псевдонім, який ми використовуємо, коли ті, хто виявив нову атаку на кібербезпеку, настільки захоплюються своїм відкриттям, що вони дають йому зручне для PR прізвисько, реєструють для нього унікальне доменне ім’я, створюють для нього спеціальний веб-сайт і розробляють спеціальний логотип.
Цього разу ім'я Зіткнення+Сила містить надокучливий знак пунктуації, що є плюсом у назві помилок, але мінусом під час реєстрації інтернет-домену. (За іронією долі дозволено використовувати доменні імена -
, Але не +
).
Отже, доменне ім’я довелося трохи скоротити https://collidepower.com, але веб-сайт все одно надасть вам огляд проблеми, навіть якщо відняти знак додавання.
Зіставте кешовані дані та виміряйте необхідну потужність
Дослідники, що стоять за цим новим папір Андреас Коглер, Йонас Юффінгер, Лукас Гінер, Мартін Шварцль, Даніель Грус і Стефан Мангард з Університету Граца в Австрії, а також Лукас Герлах і Міхаель Шварц з Центру інформаційної безпеки імені Гельмгольца CISPA в Німеччині.
Ми не збираємося докладно пояснювати різні форми цієї атаки, оскільки технічні деталі того, як проводити вимірювання, і математичне моделювання, яке використовується для висновків на основі цих вимірювань, є складними.
Але суть проблеми, вибачте за частковий каламбур, полягає в тому, що кеш-пам’ять, похована всередині сучасних процесорів, призначена для забезпечення невидимого й автоматичного підвищення продуктивності…
…не завжди такий невидимий, як ви могли б подумати, і іноді може витікати частину або весь його вміст, навіть для процесів, які не повинні бачити його.
Як випливає з назви, кеш-пам’ять (вимовляється готівку, як у доларах і центах, ні друк, як на знак поваги та престижу, якщо ви коли-небудь задавалися питанням), зберігає спеціальні копії значень даних зі звичайної оперативної пам’яті в прихованих місцях всередині самого чіпа ЦП.
Якщо ЦП відстежує адреси оперативної пам’яті (розташування пам’яті), які ви нещодавно використовували, і може досить добре вгадати, які з них ви, ймовірно, незабаром знову використаєте, він може тимчасово зберігати їх у своїй кеш-пам’яті і таким чином значно пришвидшити ваш другий доступ до цих значень, третій доступ, четвертий і так далі.
Наприклад, якщо ви шукаєте ряд значень даних у таблиці для перетворення пікселів зображення з одного формату кольору в інший, ви можете виявити, що в більшості випадків таблиця пошуку повідомляє вам відвідати адресу RAM 0x06ABCC00 (що може де зберігається спеціальний код для «чорного пікселя») або адреса 0x3E00A040 (це може бути розташуванням коду «прозорого пікселя»).
Автоматично зберігаючи значення з цих двох зазвичай потрібних адрес пам’яті у своєму кеші, ЦП може закоротити (фігурально, а не буквально!) майбутні спроби доступу до цих адрес, щоб не було необхідності надсилати електричні сигнали за межі процесора, через материнську плату та в чіпи оперативної пам’яті, щоб зчитувати головну копію даних, які там зберігаються.
Таким чином, кешовані дані зазвичай доступні набагато швидше, ніж дані в оперативній пам’яті материнської плати.
Загалом, однак, ви не можете вибирати, які регістри кешу використовуватимуться для зберігання адрес оперативної пам’яті, і ви не можете вибирати, коли ЦП вирішить припинити кешування вашого значення «прозорого піксельного коду» та почати кешувати значення іншої програми натомість «надсекретний криптографічний ключ».
Дійсно, кеш може містити ліберальну суміш значень, починаючи з великої кількості адрес оперативної пам’яті, що належать до великої кількості різних облікових записів користувачів і рівнів привілеїв, усе одночасно.
З цієї причини, а також з міркувань ефективності та продуктивності, навіть програми рівня адміністратора не можуть безпосередньо переглянути список адрес, які зараз кешуються, або отримати їхні значення, щоб захистити кешовані дані від зовнішнього стеження.
Як програміст, ви все ще використовуєте інструкцію машинного коду «зчитати прозорий піксельний код з адреси 0x3E00A040», і операційна система все одно вирішує, чи маєте ви мати доступ до цих даних на основі числової адреси 0x3E00A040, навіть якщо дані зрештою надходять безпосередньо з кешу, а не зі справжньої адреси RAM 0x3E00A040.
Ціна біт-фліпа
Дослідники Collide+Power дуже спрощено виявили, що, хоча ви не можете безпосередньо переглянути тимчасові дані в кеш-пам’яті, і тому не можете обійти захист пам’яті, який буде застосовано, якщо ви перейдете через його офіційну адресу RAM …
…ви можете здогадатися, коли конкретні значення даних збираються записати в певні регістри зберігання кешу.
І коли одне вже кешоване число замінюється іншим, Ви можете зробити висновки щодо обох значень, вимірявши, скільки енергії використовує ЦП в процесі.
(Сучасні процесори зазвичай включають спеціальні внутрішні регістри, які надають показання споживання електроенергії, тому вам не потрібно розкривати корпус комп’ютера та приєднувати фізичний дріт датчика десь на материнській платі.)
Цікаво, що енергоспоживання самого ЦП, коли він перезаписує значення кешу новим, залежить від того, скільки бітів змінилося між числами.
Якщо ми спростимо питання до окремих байтів, то перезапишемо двійкове значення 0b00000000
з 0b11111111
(зміна десяткового 0 на десяткове 255) вимагає перевертання всіх бітів у байті, що споживатиме найбільше енергії.
Перезапис символу ASCII A
(65 в десятковій системі) с Z
(90 у десятковій системі) означає зміну 0b01000001
в 0b01011010
, де чотири бітові позиції перевертаються, таким чином споживаючи середню кількість енергії
І якщо числа однакові, жодні біти не потребують перевертання, що споживатиме найменше енергії.
Загалом, якщо виконати XOR два числа разом і підрахувати кількість 1-бітів у відповіді, ви знайдете кількість переворотів, оскільки 0 XOR 0 = 0
та 1 XOR 1 = 0
(тому нуль означає відсутність перевороту), while 0 XOR 1 = 1
та 1 XOR 0 = 1
(позначає фліп).
Іншими словами, якщо ви можете отримати доступ до групи вибраних власних адрес таким чином, щоб заповнити певний набір регістрів кешу всередині процесора, а потім достатньо точно відстежувати енергоспоживання, коли чужий код отримує свої дані, призначені для цього кешу натомість місця…
…тоді ви можете зробити висновки про те, скільки бітів було перевернуто між старим вмістом кешу та новим.
Звичайно, ви можете вибрати значення, що зберігаються в адресах, якими ви заповнили регістри кешу, тож ви не просто знаєте, скільки бітів, ймовірно, було перевернуто, але ви також знаєте, якими були початкові значення цих бітів до того, як відбулося перевертання місце.
Це дає вам ще більше статистичних даних, за допомогою яких можна передбачити ймовірні нові значення в кеші, враховуючи, що ви знаєте, що там було раніше, і ймовірну кількість бітів, які зараз відрізняються.
Можливо, ви не зможете точно визначити, які дані використовував процес вашої жертви, але навіть якщо ви зможете усунути деякі бітові шаблони, ви щойно дізналися те, чого не повинні були знати.
І якби ці дані були, скажімо, якимось ключем шифрування, ви могли б перетворити нездійсненну атаку грубої сили на атаку, де ви могли б просто досягти успіху.
Наприклад, якщо ви можете передбачити 70 біт у 128-бітному ключі шифрування, то замість того, щоб пробувати всі комбінації з 128 біт, що було б неможливим завданням, вам потрібно було б спробувати 258 натомість інші ключі (128 – 70 = 58), що цілком можливо.
Не потрібно панікувати
На щастя, ця «вразливість» (тепер її охрестили CVE-2023-20583) навряд чи буде використано проти вас найближчим часом.
Виробники чіпів повинні взяти до уваги скоріше теоретичне питання, виходячи з істини про те, що атаки на кібербезпеку «завжди стають кращими та швидшими», ніж експлуатаційна діра, яку можна використовувати сьогодні.
Насправді дослідники майже збентежено визнають, що «ви Не треба турбуватися».
Вони дійсно писали ви курсивом і промов не хвилюватися жирним шрифтом:
На закінчення статті дослідники з жалем зазначають, що деякі з їхніх найкращих реальних результатів цієї атаки в ідеальних лабораторних умовах витікали лише 5 біт на годину.
Щодо одного зі своїх сценаріїв атаки, фактично, вони визнали, що зіткнулися з «практичними обмеженнями, які призвели до рівня витоку понад [один] рік на біт».
Так, ви правильно прочитали – ми кілька разів перевіряли це в газеті, щоб переконатися, що ми це не уявили.
І це, звісно, викликає запитання: «Скільки часу потрібно залишити набір тестів передачі даних, перш ніж ви зможете надійно виміряти таку низьку швидкість передачі?»
За нашими розрахунками, один біт на рік дає приблизно 125 байт на тисячоліття. З такою швидкістю завантажується нещодавно випущений тригодинний блокбастер Oppenheimer у якості IMAX, яка, очевидно, займає близько половини терабайта, займе приблизно 4 мільярди років. Щоб поглянути на цю дивну фактологію в перспективі, сама Земля має лише близько 4.54 мільярдів років, плюс-мінус кілька сотень мільйонів місяців.
Що ж робити?
Найпростіший спосіб впоратися з CVE-2023-20538 прямо зараз — нічого не робити, враховуючи, що самі дослідники порадили вам не хвилюватися.
Якщо ви відчуваєте потребу щось зробити, процесори Intel і AMD мають способи навмисно зменшити точність своїх інструментів вимірювання потужності, додавши випадковий шум у показники потужності.
Це залишає ваші середні значення правильними, але змінює індивідуальні показники достатньо, щоб зробити цю і без того нереально здійсненну атаку ще важче.
Пом'якшення вимірювання потужності Intel відоме як фільтрація обмеження поточної середньої потужності (RAPL).; AMD називається режим детермінізму продуктивності.
- Розповсюдження контенту та PR на основі SEO. Отримайте посилення сьогодні.
- PlatoData.Network Vertical Generative Ai. Додайте собі сили. Доступ тут.
- PlatoAiStream. Web3 Intelligence. Розширення знань. Доступ тут.
- ПлатонЕСГ. Автомобільні / електромобілі, вуглець, CleanTech, Енергія, Навколишнє середовище, Сонячна, Поводження з відходами. Доступ тут.
- BlockOffsets. Модернізація екологічної компенсаційної власності. Доступ тут.
- джерело: https://nakedsecurity.sophos.com/2023/08/03/performance-and-security-clash-yet-again-in-collidepower-attack/
- :є
- : ні
- :де
- $UP
- 1
- 15%
- 25
- 70
- 700
- a
- Здатний
- МЕНЮ
- абсолют
- доступ
- рахунки
- Рахунки
- точність
- точно
- через
- фактичний
- додати
- доповнення
- адреса
- адреси
- визнати
- зізнався
- знову
- проти
- ВСІ
- дозволено
- по
- вже
- Також
- хоча
- завжди
- AMD
- кількість
- an
- та
- Інший
- відповідь
- будь-який
- прикладної
- Застосовувати
- приблизно
- ЕСТЬ
- AS
- призначений
- At
- приєднувати
- атака
- нападки
- Спроби
- Австрія
- автор
- автоматичний
- автоматичний
- автоматично
- середній
- фонове зображення
- заснований
- основа
- BE
- оскільки
- перед тим
- за
- буття
- КРАЩЕ
- Краще
- між
- Мільярд
- Біт
- блокбастері
- сміливий
- border
- обидва
- дно
- груба сила
- Помилка
- будувати
- гроно
- але
- by
- Кеш
- розрахунки
- CAN
- випадок
- Центр
- змінилися
- заміна
- характер
- перевірено
- чіп
- Чіпси
- Вибирати
- вибраний
- Зіткнення
- код
- збір
- color
- COM
- комбінації
- приходить
- комплекс
- комп'ютер
- висновок
- Умови
- споживати
- споживання
- містити
- зміст
- зміст
- звичайний
- конвертувати
- Core
- виправити
- може
- Курс
- обкладинка
- тріщина
- В даний час
- виготовлений на замовлення
- Кібербезпека
- Данило
- дані
- угода
- позначає
- залежить
- дизайн
- деталі
- DID
- різний
- безпосередньо
- відкритий
- відкриття
- дисплей
- do
- доларів
- домен
- Доменне ім'я
- ДОМЕННІ ІМЕНА
- Не знаю
- охрестили
- земля
- ефективність
- або
- усунутий
- В іншому
- шифрування
- досить
- Навіть
- НІКОЛИ
- точно
- приклад
- збуджений
- Пояснювати
- зовнішній
- факт
- швидше
- реально
- почувати
- кілька
- Рисунок
- знайти
- Flip
- Перевертає
- для
- Примусово
- формат
- форми
- чотири
- Четвертий
- від
- майбутнє
- Загальне
- Німеччина
- отримати
- Давати
- даний
- дає
- буде
- значно
- було
- Половина
- траплятися
- важче
- Мати
- висота
- прихований
- Hole
- годину
- hover
- Як
- How To
- Однак
- HTML
- HTTPS
- сто
- ідеальний
- if
- зображення
- неможливе
- вражаючий
- in
- включати
- includes
- індивідуальний
- інформація
- інформаційна безпека
- всередині
- замість
- Intel
- призначених
- внутрішній
- інтернет
- в
- Як не дивно
- IT
- ЙОГО
- сам
- просто
- тримати
- зберігання
- ключ
- ключі
- Знати
- відомий
- lab
- останній
- провідний
- витік
- вчений
- найменш
- Залишати
- залишити
- довжина
- рівні
- Ймовірно
- МЕЖА
- недоліки
- список
- розташування
- місць
- логотип
- Довго
- шукати
- пошук
- низький
- машина
- зробити
- Виробники
- багато
- Маржа
- Мартін
- майстер
- математичний
- Матерія
- Питання
- макс-ширина
- Може..
- засоби
- вимір
- вимір
- вимірювання
- вимір
- пам'ять
- Майкл
- може бути
- Тисячоліття
- мільйона
- пом'якшення
- змішувати
- суміш
- моделювання
- сучасний
- монітор
- місяців
- більше
- найбільш
- фільм
- багато
- ім'я
- Імена
- іменування
- Необхідність
- Нові
- немає
- шум
- ніхто
- нормальний
- нічого
- зараз
- номер
- номера
- of
- від
- офіційний
- Старий
- on
- ONE
- ті,
- тільки
- відкрити
- операційний
- операційна система
- or
- Інше
- наші
- з
- поза
- огляд
- власний
- Папір
- моделі
- Пол
- для
- продуктивність
- перспектива
- фізичний
- піксель
- місце
- plato
- Інформація про дані Платона
- PlatoData
- плюс
- положення
- Пости
- влада
- передбачати
- Престиж
- price
- привілей
- ймовірно
- зонд
- Проблема
- процес
- процеси
- процесор
- процесори
- Програміст
- програми
- виражений
- захист
- захист
- забезпечувати
- мета
- put
- якість
- питання
- піднімається
- Оперативна пам'ять
- випадковий
- ставка
- ставки
- Читати
- Реальний світ
- насправді
- причина
- Причини
- нещодавно
- зменшити
- називають
- реєструвати
- реєструючий
- регістри
- відносний
- випущений
- замінити
- Вимагається
- Дослідники
- повага
- результати
- право
- біг
- то ж
- say
- сценарії
- Чорний
- другий
- безпеку
- побачити
- послати
- Серія
- комплект
- кілька
- Короткий
- підпис
- сигнали
- спрощений
- спростити
- сайт
- відстеження
- So
- solid
- деякі
- Хтось
- що в сім'ї щось
- десь
- скоро
- розмова
- спеціальний
- конкретний
- швидкість
- старт
- Починаючи
- статистичний
- Як і раніше
- Стоп
- зберігання
- зберігати
- зберігати
- процвітати
- Запропонує
- передбачуваний
- Переконайтеся
- SVG
- система
- таблиця
- Приймати
- приймає
- Завдання
- технічний
- розповідає
- тимчасовий
- Тести
- ніж
- Що
- Команда
- їх
- Їх
- самі
- потім
- теоретичний
- Там.
- отже
- вони
- думати
- третій
- це
- ті
- Таким чином
- час
- до
- сьогодні
- разом
- прийняли
- інструменти
- топ
- трек
- переклад
- перехід
- прозорий
- правда
- намагатися
- два
- Зрештою
- при
- університет
- навряд чи
- URL
- Використання
- використання
- використовуваний
- користувач
- використання
- зазвичай
- значення
- Цінності
- ТОРМІСТЬ
- різний
- дуже
- через
- візит
- було
- шлях..
- способи
- we
- веб-сайт
- week
- ДОБРЕ
- пішов
- були
- Що
- коли
- Чи
- який
- в той час як
- ширина
- волі
- Провід
- з
- слова
- турбуватися
- б
- запис
- письмовий
- рік
- років
- ще
- Ти
- вашу
- зефірнет
- нуль