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.


Mise en garde concernant l'utilisation des outils de cybersécurité

L'utilisation des outils de cybersécurité présentés sur ce site est soumise à des considérations légales et éthiques importantes. Avant d'utiliser ces outils, nous vous encourageons à prendre en compte les points suivants :

- Cadre légal : L'utilisation de certains outils de cybersécurité peut être réglementée par la loi dans votre pays ou région. Il est de votre responsabilité de vous informer sur les lois en vigueur concernant la cybersécurité, la protection des données et la vie privée. L'utilisation non autorisée de ces outils peut entraîner des poursuites judiciaires et des sanctions pénales.

- Consentement : Assurez-vous d'obtenir le consentement explicite des parties concernées avant d'utiliser des outils qui pourraient intercepter, surveiller ou analyser des données. Le respect de la vie privée des individus est primordial.

- Utilisation éthique : Les outils de cybersécurité doivent être utilisés de manière éthique et responsable. Ils ne doivent pas être employés à des fins malveillantes, telles que le piratage, le vol de données ou toute autre activité illégale.

- Responsabilité : En utilisant ces outils, vous reconnaissez que vous le faites à vos propres risques. Nous ne saurions être tenus responsables des conséquences résultant de l'utilisation de ces outils, y compris, mais sans s'y limiter, les dommages matériels, les pertes de données ou les poursuites judiciaires.

- Formation et expertise : Il est recommandé de suivre une formation adéquate et de posséder les compétences nécessaires avant d'utiliser des outils de cybersécurité. Une mauvaise utilisation peut entraîner des résultats indésirables et des risques pour la sécurité.

En utilisant ce site et les outils qui y sont présentés, vous acceptez de respecter ces conditions et de vous conformer à toutes les lois applicables.

Formateur

Bertrand LECLERCQ

Consultant DevSecOps & Data Engineer


Avec 25 ans d'expérience dans le développement logiciel et une certification en Data Engineering de l'École des Mines Paris - PSL, je suis passionné par la cybersécurité, le big data et le DevOps. J'aime partager mes connaissances et aider la communauté à renforcer sa posture de sécurité.

J'ai créé une base de vulnérabilités librement accessible et je me forme en continu sur des plateformes comme TryHackMe. Mon objectif ? Démocratiser la cybersécurité et permettre à chacun de mieux comprendre les enjeux.

J'ai une solide expertise dans la conception et le déploiement de solutions sécurisées, ainsi qu'une expérience éprouvée dans la gestion de projets complexes. Maîtrisant un large éventail de technologies (Python, Go, Java, Docker, Kubernetes, etc.), je suis convaincu que la sécurité doit être intégrée dès le début du cycle de développement.

Le projet NoHackMe vous permet d'effectuer une veille Cyber, vous permet de découvrir le monde de la Cybersécurité ainsi qu'une section formation Cyber

Soutenez No Hack Me sur Tipeee