Synthèse automatique
Vérifie le contrôle CIS 1.3.3 pour OpenShift Container Platform v1.9.0 en inspectant la ConfigMap du kube-controller-manager afin de confirmer que l'argument --service-account-private-key-file pointe vers le fichier de clé attendu.
Points forts
- Fournit la commande exacte combinant oc et jq, directement copiable et exécutable.
- Indique la valeur de retour attendue, ce qui rend le contrôle sans ambiguïté.
- Explique la justification sécurité : une paire de clés distincte permet la rotation des jetons de compte de service.
- Précise que la remédiation est inexistante car OpenShift configure déjà ce chemin par défaut, évitant des modifications inutiles.
Limites
- Contrôle en lecture seule : aucune remédiation ni correction automatisée n'est proposée.
- Suppose que oc et jq sont installés et que la session est authentifiée sur le cluster.
- Dépend du chemin et de la version du benchmark ; un cluster modifié manuellement peut diverger de la valeur attendue.
À utiliser lors d'un audit de conformité CIS du plan de contrôle sur un cluster OpenShift, pour valider le contrôle 1.3.3.
À ne pas utiliser sur un cluster Kubernetes vanilla sans OpenShift, ni pour effectuer réellement la rotation ou le remplacement des clés de signature des comptes de service.
Analyse de sécurité
SûrThe skill provides a read-only audit command using oc and jq to inspect the OpenShift kube-controller-manager configuration. It does not perform destructive actions, exfiltrate data, or use obfuscated payloads. The only execution risk is a shell pipeline for a legitimate compliance check.
Aucun point d'attention détecté
Comment cette analyse est faiteExemples
Run the CIS OpenShift v1.9.0 control 1.3.3 check on my cluster and tell me whether --service-account-private-key-file is set to the expected path.Dump the config.yaml from the config ConfigMap in openshift-kube-controller-manager and show me the service-account-private-key-file extended argument.I ran the oc get configmaps config -n openshift-kube-controller-manager check for CIS 1.3.3 and got an empty value — explain what that means and whether I can fix it.name: cis-ocp-v190-1.3.3 description: "Ensure that the --service-account-private-key-file argument is set as appropriate (Manual)" category: cis-openshift version: "1.9.0" author: cyberstrike-official tags: [cis, openshift, kubernetes, redhat, controller-manager, service-account, private-key, certificates] cis_id: "1.3.3" cis_benchmark: "CIS Red Hat OpenShift Container Platform Benchmark v1.9.0" tech_stack: [kubernetes, openshift, redhat] cwe_ids: [] chains_with: [] prerequisites: [] severity_boost: {}
CIS Red Hat OpenShift Container Platform Benchmark v1.9.0 - Control 1.3.3
Profile Applicability
- Level: 1
Description
Explicitly set a service account private key file for service accounts on the controller manager.
Rationale
To ensure that keys for service account tokens can be rotated as needed, a separate public/private key pair should be used for signing service account tokens. The private key should be specified to the controller manager with --service-account-private-key-file as appropriate.
Impact
You would need to securely maintain the key file and rotate the keys based on your organization's key rotation policy.
Audit Procedure
OpenShift starts the Kubernetes Controller Manager with service-account-private-key-file set to /etc/kubernetes/static-pod-resources/secrets/service-account-private-key/service-account.key.
The bootstrap configuration and overrides are available here:
Run the following command:
oc get configmaps config -n openshift-kube-controller-manager -ojson | \
jq -r '.data["config.yaml"]' | \
jq -r '.extendedArguments["service-account-private-key-file"][]'
Verify that the following is returned:
/etc/kubernetes/static-pod-resources/secrets/service-account-private-key/service-account.key
Remediation
None.
Default Value
By default, OpenShift starts the controller manager with service-account-private-key-file set to /etc/kubernetes/static-pod-resources/secrets/service-account-private-key/service-account.key. OpenShift manages the service account credentials for the scheduler automatically.
References
- https://docs.openshift.com/container-platform/latest/operators/operator-reference.html
- https://docs.openshift.com/container-platform/4.13/security/certificate_types_descriptions/control-plane-certificates.html
- https://github.com/openshift/cluster-kube-controller-manager-operator/blob/release-4.5/bindata/bootkube/bootstrap-manifests/kube-controller-manager-pod.yaml
- https://github.com/openshift/cluster-kube-controller-manager-operator/blob/release-4.5/bindata/bootkube/config/bootstrap-config-overrides.yaml
- https://github.com/openshift/cluster-kube-controller-manager-operator/blob/release-4.5/bindata/v4.1.0/kube-controller-manager/kubeconfig-cm.yaml
- https://kubernetes.io/docs/reference/command-line-tools-reference/kube-controller-manager/
CIS Controls
| Controls Version | Control | IG 1 | IG 2 | IG 3 | | ---------------- | ------------------------ | ---- | ---- | ---- | | v8 | 5.2 Use Unique Passwords | X | X | X | | v7 | 4.4 Use Unique Passwords | | X | X |
MITRE ATT&CK Mappings
| Techniques / Sub-techniques | Tactics | Mitigations | | --------------------------- | ------- | ----------- | | T1552 | TA0006 | M1022 |
Profile
Level 1 (Manual)
Du fichier au premier essai
Le téléchargement contient exactement le contenu affiché sur cette fiche. Cette copie peut différer de la dernière version du dépôt source.
Consulter la source et ses fichiers annexesCe téléchargement contient uniquement SKILL.md. Les scripts, références, modèles et dépendances éventuels ne sont pas inclus. Récupérez les fichiers nécessaires depuis la source en conservant leur arborescence avant de poursuivre.
1. Télécharger le fichier
Télécharger SKILL.mdDepuis la racine d’un projet de test, enregistrez le fichier sous .skill-downloads/set-service-account-private-key-file-mrzxury4/SKILL.md, ou utilisez la commande suivante. Ce dossier sert à examiner la skill avant son installation.
Commande pour macOS/Linux ou WSL : un shell POSIX et curl sont nécessaires. Sous Windows sans WSL, utilisez le bouton de téléchargement et créez le dossier manuellement.
mkdir -p '.skill-downloads/set-service-account-private-key-file-mrzxury4' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/set-service-account-private-key-file-mrzxury4/download' --output '.skill-downloads/set-service-account-private-key-file-mrzxury4/SKILL.md.part' && mv '.skill-downloads/set-service-account-private-key-file-mrzxury4/SKILL.md.part' '.skill-downloads/set-service-account-private-key-file-mrzxury4/SKILL.md'2. Vérifier les prérequis
Lisez SKILL.md avant de l’utiliser. Si le fichier cite des scripts ou services externes, examinez-les et préparez les accès nécessaires dans votre environnement de test.
Aucune section de prérequis reconnue dans ce fichier. Cela ne signifie pas qu’il est autonome : les bibliothèques, outils et accès peuvent être cités ailleurs dans le contenu ou dans le dépôt source.
Les plateformes de la fiche sont des indications du catalogue. Les chemins ci-dessous suivent la documentation des outils ; ils ne prouvent pas que cette skill y a été exécutée. Aucune version minimale de ces outils n’est attestée pour cette fiche.
3. Charger la skill
Le fichier ne fournit pas un en-tête name/description exploitable pour cette procédure native. Le téléchargement reste disponible pour lecture ; utilisez le mode manuel ci-dessous.
Mode manuel ou autre outil : joignez SKILL.md à une conversation, ou ouvrez-le dans un agent capable de lire les fichiers. Ajoutez les ressources annexes nécessaires. Il n’existe pas de dossier universel reconnu par tous les outils.
4. Faire un premier essai
Utilisez une entrée courte et fictive : un endpoint d’API, un petit document ou un brief d’interface. Dans une nouvelle conversation, joignez le fichier ou donnez son chemin à l’agent, puis adaptez cette demande :
Lis .skill-downloads/set-service-account-private-key-file-mrzxury4/SKILL.md et applique ses instructions à cet exemple : [décrire une entrée de test]. Indique les fichiers, dépendances ou accès qui manquent. Produis le résultat demandé par la skill sans inventer de données ni exécuter de script non examiné.Résultat attendu : une sortie correspondant aux instructions de la skill, ou une liste précise des prérequis manquants. Une simple confirmation de lecture ne valide pas le premier usage. Si une ressource externe est indisponible, ce parcours reste à tester.
Sécurité AMM DeFi
Securite
Checklist de sécurité pour les contrats Solidity AMM, pools de liquidité et flux de swap. Couvre réentrance, attaques par donation, manipulation d'oracles, etc.
Créateur de règles Semgrep
Securite
Crée des règles Semgrep personnalisées pour détecter des vulnérabilités de sécurité, des motifs de bugs et des motifs de code. Inclut une méthodologie de test en premier, le support du mode taint et des étapes de validation. Utile pour construire des détections d'analyse statique ciblées.
Revue barre d'outils développement
Securite
Règles de sécurité pour la barre d'outils de développement, le client PostHog et les feature flags. À utiliser lors de la revue de modifications des composants dev-tools et connexes.