Checkmarx est une plateforme de sécurité des applications (AST) qui permet d'analyser le code source pour identifier les vulnérabilités de sécurité. Elle offre des fonctionnalités avancées pour la détection des failles de sécurité, la gestion des risques et l'intégration dans les pipelines CI/CD. Checkmarx est largement utilisé par les équipes de développement et de sécurité pour assurer la sécurité des applications dès les premières phases du cycle de développement.
Présentation de Checkmarx
Qu'est-ce que Checkmarx ?
Checkmarx est une plateforme de sécurité des applications qui vous permet de :
- Analyser le code source : Identifier les vulnérabilités de sécurité dans le code source.
- Gérer les risques : Prioriser et gérer les risques de sécurité.
- Intégrer dans les pipelines CI/CD : Automatiser les vérifications de sécurité dans les processus de développement.
- Générer des rapports : Produire des rapports détaillés sur les vulnérabilités identifiées.
Installation et Configuration
Checkmarx est généralement installé sur un serveur dédié et configuré via une interface web. Pour utiliser Checkmarx via la ligne de commande, vous pouvez utiliser l'API REST de Checkmarx ou des outils CLI spécifiques.
Exemples de Ligne de Commande
Voici quelques exemples de commandes avancées pour utiliser Checkmarx via la ligne de commande.
Prérequis
Avant de commencer, assurez-vous que vous avez accès à l'API REST de Checkmarx et que vous avez configuré les informations d'identification nécessaires (URL de l'API, clé d'API, etc.).
Analyser un Projet
Pour analyser un projet avec Checkmarx, vous pouvez utiliser l'API REST. Voici un exemple de script en Python utilisant la bibliothèque requests
pour soumettre un projet à l'analyse :
import requests import json # Configuration api_url = "https://your-checkmarx-server/cxrestapi" api_key = "your-api-key" project_id = "your-project-id" preset_id = "your-preset-id" # Soumettre le projet à l'analyse scan_url = f"{api_url}/sast/scans" headers = { "Content-Type": "application/json", "Authorization": f"Bearer {api_key}" } data = { "projectId": project_id, "presetId": preset_id, "isIncremental": False, "isPublic": True, "forceScan": True } response = requests.post(scan_url, headers=headers, data=json.dumps(data)) if response.status_code == 201: print("Scan initiated successfully.") else: print(f"Failed to initiate scan: {response.text}")
Récupérer les Résultats d'une Analyse
Pour récupérer les résultats d'une analyse, vous pouvez utiliser l'API REST pour obtenir les résultats du scan :
import requests import json # Configuration api_url = "https://your-checkmarx-server/cxrestapi" api_key = "your-api-key" scan_id = "your-scan-id" # Récupérer les résultats du scan results_url = f"{api_url}/sast/scans/{scan_id}/results" headers = { "Content-Type": "application/json", "Authorization": f"Bearer {api_key}" } response = requests.get(results_url, headers=headers) if response.status_code == 200: results = response.json() print(json.dumps(results, indent=4)) else: print(f"Failed to retrieve scan results: {response.text}")
Intégrer Checkmarx dans un Pipeline CI/CD
Pour intégrer Checkmarx dans un pipeline CI/CD, vous pouvez ajouter une étape de vérification de sécurité dans votre fichier de configuration CI/CD. Par exemple, pour GitHub Actions, vous pouvez ajouter une étape comme suit :
name: Checkmarx Security Check on: [push, pull_request] jobs: checkmarx: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - name: Set up Python uses: actions/setup-python@v2 with: python-version: '3.x' - name: Install Requests run: pip install requests - name: Run Checkmarx Scan env: CHECKMARX_API_URL: ${{ secrets.CHECKMARX_API_URL }} CHECKMARX_API_KEY: ${{ secrets.CHECKMARX_API_KEY }} CHECKMARX_PROJECT_ID: ${{ secrets.CHECKMARX_PROJECT_ID }} CHECKMARX_PRESET_ID: ${{ secrets.CHECKMARX_PRESET_ID }} run: | python - <<EOF import requests import json api_url = "${{ env.CHECKMARX_API_URL }}" api_key = "${{ env.CHECKMARX_API_KEY }}" project_id = "${{ env.CHECKMARX_PROJECT_ID }}" preset_id = "${{ env.CHECKMARX_PRESET_ID }}" scan_url = f"{api_url}/sast/scans" headers = { "Content-Type": "application/json", "Authorization": f"Bearer {api_key}" } data = { "projectId": project_id, "presetId": preset_id, "isIncremental": False, "isPublic": True, "forceScan": True } response = requests.post(scan_url, headers=headers, data=json.dumps(data)) if response.status_code == 201: print("Scan initiated successfully.") else: print(f"Failed to initiate scan: {response.text}") EOF
Conclusion
Checkmarx est une plateforme puissante pour analyser le code source et identifier les vulnérabilités de sécurité. En utilisant l'API REST de Checkmarx, vous pouvez automatiser et simplifier les vérifications de sécurité dans votre processus de développement. Ces exemples de commandes vous donnent un bon point de départ pour commencer à utiliser Checkmarx via la ligne de commande et l'intégrer dans vos pipelines CI/CD.