Метадані EC2: Розуміння, Важливість та Відключення
У цій статті ми розглянемо, що таке метадані EC2 та чому вони мають важливе значення. Ви також отримаєте знання про те, як відключити ці метадані з метою захисту від загроз, таких як SSRF.
Amazon Web Services (AWS) надає сервіс Amazon Elastic Compute Cloud (Amazon EC2), який дозволяє масштабувати обчислювальні ресурси. Завдяки Amazon EC2 ви можете прискорити процеси розробки та розгортання додатків, не потребуючи значних інвестицій у фізичну інфраструктуру.
Виходячи з ваших потреб, ви маєте можливість запускати необхідну кількість віртуальних серверів. Amazon EC2 дозволяє гнучко налаштовувати параметри мережі та безпеки, а також керувати сховищем даних.
Інформація про ваш запущений екземпляр, яка може бути налаштована або якою можна керувати, називається метаданими екземпляра. До категорій таких метаданих належать ім’я хоста, події та групи безпеки. Крім того, ви можете отримувати доступ до даних користувача, вказаних при запуску екземпляра, за допомогою цих метаданих.
Ви маєте змогу додати короткий сценарій або встановити параметри під час конфігурації екземпляра. Застосовуючи дані користувача, ви можете створювати унікальні AMI (образи машин) та змінювати файли конфігурації під час запуску.
Ви можете налаштовувати як нові, так і існуючі екземпляри для виконання різноманітних завдань, використовуючи параметри метаданих. Зокрема:
- Встановлювати вимогу надсилання запитів метаданих екземплярів через IMDSv2.
- Встановлювати обмеження на кількість переадресацій відповіді PUT.
- Блокувати доступ до метаданих екземпляра.
Для доступу до метаданих з активного екземпляра EC2 існують два методи: IMDSv1 та IMDSv2.
Сервіс метаданих екземплярів відомий як IMDS. Методології доступу відрізняються: IMDSv1 використовує модель запит/відповідь, тоді як IMDSv2 орієнтований на сеанси.
AWS наполегливо рекомендує використовувати IMDSv2 як більш безпечний метод. За замовчуванням AWS SDK застосовує виклики IMDSv2, і ви можете вимагати від користувачів налаштування нових EC2 з активованим IMDSv2, використовуючи ключі умов IAM у політиці IAM.
Для перегляду всіх типів метаданих екземпляра з запущеного екземпляра використовуйте наступні URI IPv4 або IPv6:
IPv4:
curl http://169.254.169.254/latest/meta-data/
IPv6:
curl http://[fd00:ec2::254]/latest/meta-data/
Вказані IP-адреси є локальними та дійсні лише в межах екземпляра.
Для доступу до метаданих екземпляра можна використовувати тільки локальну адресу посилання 169.254.169.254. Запити метаданих через цей URI є безкоштовними, AWS не стягує додаткової плати.
Чому виникає потреба відключення метаданих?
В середовищі AWS атаки SSRF є поширеним явищем. Компанія Mandiant, що спеціалізується на кібербезпеці, виявила випадки автоматизованого сканування вразливостей, метою яких є збір облікових даних IAM з відкритих онлайн-додатків.
Застосування IMDSv2 для всіх екземплярів EC2, що має додаткові переваги безпеки, значно знижує ці ризики для вашої організації. IMDSv2 значно зменшує можливість викрадення облікових даних IAM через SSRF.
Використання підробки запитів на стороні сервера (SSRF) для отримання доступу до сервісу метаданих EC2 є одним з поширених методів атак, про які навчають найчастіше.
Сервіс метаданих доступний для більшості екземплярів EC2 за адресою 169.254.169.254. Він містить важливу інформацію про екземпляр, таку як IP-адреса, назва групи безпеки та інше.
Якщо до екземпляра EC2 приєднана роль IAM, сервіс метаданих також надаватиме облікові дані IAM для аутентифікації цієї ролі. Зловмисник може викрасти ці облікові дані, використовуючи SSRF, залежно від версії IMDS.
Необхідно також враховувати, що зловмисник, що має доступ до оболонки екземпляра EC2, також може отримати ці облікові дані.
Розглянемо приклад, коли веб-сервер працює на порту 80 екземпляра EC2. Цей сервер має вразливість SSRF, яка дозволяє надсилати запити GET на будь-яку адресу. Зловмисник може скористатись цим для надсилання запиту на http://169.254.169.254
.
Як відключити метадані?
Блокуючи кінцеву точку HTTP сервісу метаданих екземпляра, ви можете обмежити доступ до метаданих вашого екземпляра, незалежно від використовуваної версії сервісу.
Зміни можуть бути скасовані у будь-який момент шляхом активації кінцевої точки HTTP. Для відключення метаданих вашого екземпляра використовуйте команду CLI modify-instance-metadata-options
та встановіть для параметра http-endpoint
значення disabled
.
Для відключення метаданих виконайте наступну команду:
aws ec2 modify-instance-metadata-options --instance-id i-0558ea153450674 --http-endpoint disabled
Відключення метаданих
Як ви можете побачити, після відключення метаданих, спроба доступу до них викликає повідомлення “ЗАБОРОНЕНО”.
Якщо потрібно знову активувати метадані, виконайте наступну команду:
aws ec2 modify-instance-metadata-options --instance-id i-0558ea153450674 --http-endpoint enabled
Знову активовані метадані
Підсумки
Метадані можуть бути корисні для отримання різноманітної інформації з великих сховищ даних. Однак, ними також можна зловживати для отримання даних про місцезнаходження або ідентифікації особи без її відома. Оскільки вони фіксують кожну зміну, включаючи видалення та коментарі, важливо знати, що вони можуть містити інформацію, яку ви не бажаєте поширювати. Тому видалення метаданих є ключовим для збереження конфіденційності та анонімності в мережі.
Ви також можете ознайомитись з іншими ключовими термінами AWS для поглиблення своїх знань.