AWS - Nitro Enum
Основна інформація
AWS Nitro - це набір інноваційних технологій, які формують базову платформу для AWS EC2 інстанцій. Введений Amazon для підвищення безпеки, продуктивності та надійності, Nitro використовує спеціальні апаратні компоненти та легкий гіпервізор. Він абстрагує більшість традиційних функцій віртуалізації до спеціального апаратного та програмного забезпечення, мінімізуючи поверхню атаки та покращуючи ефективність використання ресурсів. Відвантажуючи функції віртуалізації, Nitro дозволяє EC2 інстанціям забезпечувати майже металеву продуктивність, що особливо корисно для ресурсомістких додатків. Крім того, Nitro Security Chip спеціально забезпечує безпеку апаратного та мікропрограмного забезпечення, ще більше зміцнюючи його надійну архітектуру.
Nitro Enclaves
AWS Nitro Enclaves забезпечує безпечне, ізольоване обчислювальне середовище в межах Amazon EC2 інстанцій, спеціально розроблене для обробки надзвичайно конфіденційних даних. Використовуючи AWS Nitro System, ці enclaves забезпечують надійну ізоляцію та безпеку, ідеально підходять для обробки конфіденційної інформації, такої як PII або фінансові записи. Вони мають мінімалістичне середовище, значно знижуючи ризик витоку даних. Крім того, Nitro Enclaves підтримують криптографічну атестацію, дозволяючи користувачам перевіряти, що виконується лише авторизований код, що є важливим для дотримання суворих стандартів захисту даних та відповідності.
Зображення Nitro Enclave запускаються зсередини EC2 інстанцій, і ви не можете побачити з AWS веб-консолі, чи працює EC2 інстанція зображення в Nitro Enclave чи ні.
Встановлення Nitro Enclave CLI
Дотримуйтесь усіх інструкцій з документації. Однак, ось найважливіші з них:
Nitro Enclave Images
Зображення, які ви можете запускати в Nitro Enclave, базуються на docker images, тому ви можете створювати свої Nitro Enclave images з docker images, таких як:
Як ви можете бачити, образи Nitro Enclave використовують розширення eif
(Enclave Image File).
Вихідні дані будуть виглядати приблизно так:
Запуск зображення
Згідно з документацією, для запуску зображення enclave потрібно призначити йому пам'ять щонайменше в 4 рази більшу за розмір файлу eif
. Можливо налаштувати ресурси за замовчуванням для нього у файлі
Завжди пам'ятайте, що вам потрібно зарезервувати деякі ресурси для батьківського EC2 інстансу також!
Після визначення ресурсів для образу і навіть модифікації конфігураційного файлу, можливо запустити образ enclave за допомогою:
Перелічення Enclaves
Якщо ви скомпрометували EC2 хост, можливо отримати список запущених образів enclave за допомогою:
Це неможливо отримати shell всередині запущеного образу enclave, тому що це головна мета enclave, однак, якщо ви використовували параметр --debug-mode
, можливо отримати stdout з нього за допомогою:
Terminate Enclaves
Якщо зловмисник компрометує EC2 instance, за замовчуванням він не зможе отримати shell всередині них, але він зможе terminate them за допомогою:
Vsocks
Єдиний спосіб спілкуватися з образом, що працює в enclave, це використання vsocks.
Virtual Socket (vsock) — це сімейство сокетів у Linux, спеціально розроблене для полегшення комунікації між віртуальними машинами (VMs) та їхніми гіпервізорами, або між самими VMs. Vsock забезпечує ефективну, двосторонню комунікацію без залежності від мережевого стека хоста. Це дозволяє VMs спілкуватися навіть без мережевих конфігурацій, використовуючи 32-бітний Context ID (CID) та номери портів для ідентифікації та управління з'єднаннями. API vsock підтримує як поточкові, так і датаграмні типи сокетів, подібно до TCP та UDP, надаючи універсальний інструмент для додатків на рівні користувача у віртуальних середовищах.
Отже, адреса vsock виглядає так: <CID>:<Port>
Щоб знайти CIDs образів, що працюють в enclave, можна виконати наступну команду і отримати EnclaveCID
:
Зверніть увагу, що з хоста немає жодного способу дізнатися, чи CID відкриває будь-який порт! Якщо не використовувати якийсь vsock порт-сканер, як https://github.com/carlospolop/Vsock-scanner.
Vsock Server/Listener
Тут наведено кілька прикладів:
Last updated