Aide-Mémoire Aikido Security
Aperçu
Aikido Security fournit une plateforme de sécurité code-to-cloud de bout en bout conçue pour les tests VAPT (Évaluation de Vulnérabilité et Tests de Pénétration) continus et l'intégration transparente dans les workflows de développeur. Elle combine l'analyse statique, les tests dynamiques, l'analyse des dépendances et la surveillance de sécurité cloud dans une plateforme unifiée optimisée pour les pratiques DevSecOps modernes.
⚠️ Note : Plateforme commerciale avec niveau gratuit pour petites équipes. Tarification entreprise disponible pour organisations plus importantes.
Démarrage
Configuration de Compte et Intégration
# Processus de configuration initial :
# 1. S'inscrire sur aikido.dev
# 2. Vérifier l'email et compléter le profil
# 3. Créer l'espace de travail organisation
# 4. Installer l'outil CLI Aikido
# 5. Connecter le premier dépôt
# 6. Configurer les politiques de sécurité initiales
# Installation CLI
npm install -g @aikidosec/cli
# ou
curl -sSL https://get.aikido.dev | sh
# Vérifier l'installation
aikido --version
aikido auth login
Configuration de l'Espace de Travail
# Initialiser Aikido dans le projet
aikido init
# Configurer les paramètres du projet
aikido config set project-name "mon-application"
aikido config set environment "production"
aikido config set scan-schedule "daily"
# Configurer l'authentification
aikido auth configure --token VOTRE_TOKEN_API
aikido auth verify
# Vérifier le statut de l'espace de travail
aikido status
aikido info
Analyse de Sécurité du Code
Tests de Sécurité d'Application Statique (SAST)
# Exécuter une analyse de code complète
aikido scan code --path ./src --language javascript
aikido scan code --path ./src --language python --deep-analysis
aikido scan code --path ./src --language java --include-tests
# Analyse spécifique au langage
aikido scan javascript --path ./src --frameworks react,express
aikido scan python --path ./src --frameworks django,flask
aikido scan java --path ./src --frameworks spring,struts
aikido scan csharp --path ./src --frameworks dotnet,mvc
aikido scan php --path ./src --frameworks laravel,symfony
# Configuration de règles personnalisées
aikido scan code --rules-file regles-personnalisees.yaml
aikido scan code --exclude-rules "low-severity"
aikido scan code --include-rules "owasp-top10"
Règles de Qualité et Sécurité du Code
# aikido-rules.yaml
rules:
security:
sql_injection:
enabled: true
severity: high
patterns:
- "SELECT.*FROM.*WHERE.*=.*\\$"
- "INSERT.*INTO.*VALUES.*\\$"
xss_vulnerabilities:
enabled: true
severity: high
patterns:
- "innerHTML.*=.*user"
- "document.write.*user"
hardcoded_secrets:
enabled: true
severity: critical
patterns:
- "password\\s*=\\s*['\"][^'\"]{8,}['\"]"
- "api[_-]?key\\s*=\\s*['\"][^'\"]{16,}['\"]"
quality:
code_complexity:
enabled: true
max_cyclomatic_complexity: 10
max_function_length: 50
maintainability:
enabled: true
max_file_length: 500
require_documentation: true
exclusions:
paths:
- "node_modules/"
- "vendor/"
- "*.test.js"
- "*.spec.py"
rules:
- "test-specific-rule"
- "legacy-code-exception"
Sécurité des Dépendances et de la Chaîne d'Approvisionnement
# Analyser les dépendances pour les vulnérabilités
aikido scan dependencies --package-file package.json
aikido scan dependencies --package-file requirements.txt
aikido scan dependencies --package-file pom.xml
aikido scan dependencies --package-file composer.json
# Analyse avancée des dépendances
aikido scan dependencies --include-dev-dependencies
aikido scan dependencies --check-licenses
aikido scan dependencies --supply-chain-analysis
aikido scan dependencies --malware-detection
# Recommandations de mise à jour des dépendances
aikido dependencies update-check
aikido dependencies security-advisories
aikido dependencies license-compliance
aikido dependencies outdated-packages
# Générer des rapports de dépendances
aikido dependencies report --format json
aikido dependencies report --format csv
aikido dependencies report --format sbom # Software Bill of Materials
Tests de Sécurité d'Application Dynamique (DAST)
Analyse d'Applications Web
# Configurer la cible d'application web
aikido target add web --url https://app.example.com
aikido target add web --url https://api.example.com --type api
aikido target add web --url https://staging.example.com --environment staging
# Configuration d'authentification pour DAST
aikido auth web configure --url https://app.example.com \
--login-url /login \
--username testuser \
--password testpass \
--success-indicator "Dashboard"
# Authentification OAuth/OIDC
aikido auth web configure --url https://app.example.com \
--auth-type oauth2 \
--client-id VOTRE_CLIENT_ID \
--client-secret VOTRE_CLIENT_SECRET \
--scope "read write"
# Authentification par clé API
aikido auth api configure --url https://api.example.com \
--auth-type api-key \
--header "X-API-Key" \
--value VOTRE_CLE_API
Analyse DAST Complète
# Analyse de sécurité rapide
aikido scan web --url https://app.example.com --quick
aikido scan web --url https://app.example.com --owasp-top10
# Analyse complète et approfondie
aikido scan web --url https://app.example.com --comprehensive
aikido scan web --url https://app.example.com --deep-crawl
aikido scan web --url https://app.example.com --business-logic
# Analyse spécifique aux API
aikido scan api --url https://api.example.com --openapi-spec api-spec.yaml
aikido scan api --url https://api.example.com --graphql
aikido scan api --url https://api.example.com --rest-endpoints
# Configuration d'analyse personnalisée
aikido scan web --url https://app.example.com \
--max-depth 5 \
--max-pages 1000 \
--exclude-paths "/admin/*,/internal/*" \
--include-forms \
--test-file-uploads
Fonctionnalités DAST Avancées
# Analyse d'Application Page Unique (SPA)
aikido scan spa --url https://app.example.com \
--framework react \
--wait-for-js \
--capture-screenshots
# Analyse d'applications mobiles
aikido scan mobile --app-file app.apk --platform android
aikido scan mobile --app-file app.ipa --platform ios
aikido scan mobile --url https://m.example.com --mobile-web
# Analyse authentifiée avec gestion de session
aikido scan web --url https://app.example.com \
--maintain-session \
--session-timeout 30m \
--re-authenticate-on-failure
# Analyse consciente des performances
aikido scan web --url https://app.example.com \
--rate-limit 10 \
--concurrent-requests 5 \
--respect-robots-txt \
--polite-mode
Surveillance de Sécurité Cloud
Analyse d'Infrastructure Multi-Cloud
# Évaluation de sécurité cloud AWS
aikido cloud connect aws --access-key VOTRE_CLE_ACCES \
--secret-key VOTRE_CLE_SECRETE \
--region us-east-1
aikido cloud scan aws --account-id 123456789012 \
--services ec2,s3,rds,iam,vpc \
--compliance-frameworks cis,nist
# Évaluation de sécurité cloud Azure
aikido cloud connect azure --subscription-id VOTRE_ID_ABONNEMENT \
--client-id VOTRE_CLIENT_ID \
--client-secret VOTRE_CLIENT_SECRET \
--tenant-id VOTRE_TENANT_ID
aikido cloud scan azure --subscription VOTRE_ID_ABONNEMENT \
--services vm,storage,sql,keyvault,network \
--compliance-frameworks cis,iso27001
# Évaluation Google Cloud Platform
aikido cloud connect gcp --project-id VOTRE_ID_PROJET \
--service-account-key service-account.json
aikido cloud scan gcp --project-id VOTRE_ID_PROJET \
--services compute,storage,sql,iam,network \
--compliance-frameworks cis,nist
Sécurité des Conteneurs et Kubernetes
# Analyse d'images de conteneurs
aikido scan container --image nginx:latest
aikido scan container --image monapp:v1.0 --dockerfile Dockerfile
aikido scan container --image-tar monapp.tar
# Évaluation de sécurité de cluster Kubernetes
aikido scan k8s --kubeconfig ~/.kube/config
aikido scan k8s --namespace production --all-workloads
aikido scan k8s --cluster-name prod-cluster --compliance cis-k8s
# Analyse de sécurité Docker Compose
aikido scan compose --file docker-compose.yml
aikido scan compose --file docker-compose.prod.yml --environment production
# Analyse de registre de conteneurs
aikido scan registry --url registry.example.com \
--username registry_user \
--password registry_pass \
--scan-all-tags
Sécurité Infrastructure as Code (IaC)
# Analyse de sécurité Terraform
aikido scan terraform --path ./terraform
aikido scan terraform --file main.tf --plan terraform.plan
aikido scan terraform --state terraform.tfstate
# Analyse de modèles CloudFormation
aikido scan cloudformation --template template.yaml
aikido scan cloudformation --stack-name ma-pile --region us-east-1
# Analyse de sécurité de playbooks Ansible
aikido scan ansible --playbook site.yml
aikido scan ansible --inventory inventory.ini --check-vault
# Analyse de sécurité de charts Helm
aikido scan helm --chart ./monchart
aikido scan helm --chart-name nginx --repo stable
Intégration CI/CD et Automatisation
Intégration de Pipeline
# Intégration GitHub Actions
name: Analyse de Sécurité Aikido
on:
push:
branches: [main, develop]
pull_request:
branches: [main]
jobs:
security-scan:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Configuration CLI Aikido
run: |
npm install -g @aikidosec/cli
aikido auth configure --token ${{ secrets.AIKIDO_TOKEN }}
- name: Analyse de Sécurité du Code
run: |
aikido scan code --path ./src --format json > code-results.json
aikido scan dependencies --package-file package.json --format json > deps-results.json
- name: Analyse d'Infrastructure
run: |
aikido scan terraform --path ./infrastructure --format json > iac-results.json
- name: Télécharger Résultats
uses: actions/upload-artifact@v3
with:
name: security-scan-results
path: |
code-results.json
deps-results.json
iac-results.json
- name: Porte de Qualité
run: |
aikido quality-gate --threshold critical:0,high:5,medium:20
Intégration Pipeline Jenkins
// Jenkinsfile
pipeline {
agent any
environment {
AIKIDO_TOKEN = credentials('aikido-api-token')
}
stages {
stage('Checkout') {
steps {
checkout scm
}
}
stage('Analyse de Sécurité') {
parallel {
stage('Analyse de Code') {
steps {
sh '''
aikido scan code --path ./src --format json > code-scan.json
aikido scan dependencies --package-file package.json --format json > deps-scan.json
'''
}
}
stage('Analyse d\'Infrastructure') {
steps {
sh '''
aikido scan terraform --path ./terraform --format json > iac-scan.json
aikido scan docker --dockerfile Dockerfile --format json > container-scan.json
'''
}
}
}
}
stage('Porte de Sécurité') {
steps {
script {
def scanResults = sh(
script: 'aikido quality-gate --threshold critical:0,high:3 --format json',
returnStdout: true
).trim()
def results = readJSON text: scanResults
if (results.gate_status == 'failed') {
error("Échec de la porte de qualité sécurité : ${results.violations} violations trouvées")
}
}
}
}
stage('Déploiement') {
when {
branch 'main'
}
steps {
echo 'Déploiement de l\'application...'
// Étapes de déploiement ici
}
}
}
post {
always {
archiveArtifacts artifacts: '*-scan.json', fingerprint: true
publishHTML([
allowMissing: false,
alwaysLinkToLastBuild: true,
keepAll: true,
reportDir: '.',
reportFiles: 'security-report.html',
reportName: 'Rapport de Sécurité Aikido'
])
}
}
}
Intégration GitLab CI
# .gitlab-ci.yml
stages:
- security-scan
- quality-gate
- deploy
variables:
AIKIDO_TOKEN: $AIKIDO_API_TOKEN
security-scan:
stage: security-scan
image: node:18
before_script:
- npm install -g @aikidosec/cli
- aikido auth configure --token $AIKIDO_TOKEN
script:
- aikido scan code --path ./src --format json > code-scan.json
- aikido scan dependencies --package-file package.json --format json > deps-scan.json
- aikido scan terraform --path ./infrastructure --format json > iac-scan.json
artifacts:
reports:
security:
- code-scan.json
- deps-scan.json
- iac-scan.json
expire_in: 1 week
quality-gate:
stage: quality-gate
image: node:18
dependencies:
- security-scan
before_script:
- npm install -g @aikidosec/cli
- aikido auth configure --token $AIKIDO_TOKEN
script:
- aikido quality-gate --threshold critical:0,high:5,medium:20
allow_failure: false
deploy:
stage: deploy
script:
- echo "Déploiement de l'application..."
only:
- main
dependencies:
- quality-gate
Surveillance Continue et Alertes
Surveillance de Sécurité en Temps Réel
# Activer la surveillance continue
aikido monitor enable --targets all
aikido monitor enable --target web:https://app.example.com
aikido monitor enable --target api:https://api.example.com
# Configurer les horaires de surveillance
aikido monitor schedule --target web:https://app.example.com \
--frequency daily \
--time "02:00" \
--timezone "UTC"
aikido monitor schedule --target api:https://api.example.com \
--frequency hourly \
--business-hours-only
# Surveillance de vulnérabilités en temps réel
aikido monitor vulnerabilities --real-time
aikido monitor dependencies --auto-update-check
aikido monitor cloud --compliance-drift-detection
Configuration et Gestion des Alertes
# Configurer les canaux d'alerte
aikido alerts add slack --webhook-url https://hooks.slack.com/services/...
aikido alerts add email --recipients security@example.com,dev@example.com
aikido alerts add webhook --url https://api.example.com/security/alerts
aikido alerts add pagerduty --integration-key VOTRE_CLE_INTEGRATION
# Sévérité et conditions d'alerte
aikido alerts configure --severity critical --immediate
aikido alerts configure --severity high --within 1h
aikido alerts configure --severity medium --daily-digest
aikido alerts configure --severity low --weekly-summary
# Règles d'alerte personnalisées
aikido alerts rule create --name "Vulnérabilités API Critiques" \
--condition "severity=critical AND target_type=api" \
--action "slack,email,pagerduty"
aikido alerts rule create --name "Nouvelles Vulnérabilités de Dépendances" \
--condition "type=dependency AND age<24h" \
--action "slack,email"
# Suppression et gestion des alertes
aikido alerts suppress --vulnerability-id CVE-2023-1234 --duration 7d
aikido alerts acknowledge --alert-id 12345 --assignee john.doe
aikido alerts escalate --alert-id 12345 --to security-team
Conformité et Gouvernance
# Configuration de framework de conformité
aikido compliance enable --framework owasp-top10
aikido compliance enable --framework pci-dss
aikido compliance enable --framework iso27001
aikido compliance enable --framework nist-csf
aikido compliance enable --framework sox
# Application de politiques
aikido policy create --name "SLA Vulnérabilités Critiques" \
--rule "critical_vulnerabilities.remediation_time <= 24h"
aikido policy create --name "Politique Mise à Jour Dépendances" \
--rule "high_risk_dependencies.age <= 7d"
aikido policy create --name "Porte de Qualité Code" \
--rule "code_coverage >= 80% AND security_issues.critical == 0"
# Rapports de conformité
aikido compliance report --framework pci-dss --format pdf
aikido compliance report --framework iso27001 --format json
aikido compliance dashboard --framework owasp-top10
Rapports et Analyses Avancées
Génération de Rapports Personnalisés
# Rapports de sécurité exécutifs
aikido report executive --timeframe 30d --format pdf
aikido report executive --comparison-period last-quarter
aikido report executive --include-trends --include-benchmarks
# Rapports techniques détaillés
aikido report technical --scope all --include-remediation
aikido report technical --vulnerability-details --code-snippets
aikido report technical --format json --output technical-report.json
# Rapports de conformité
aikido report compliance --framework pci-dss --evidence-package
aikido report compliance --framework iso27001 --audit-ready
aikido report compliance --framework sox --quarterly
# Métriques et tableaux de bord
aikido metrics security --kpis vulnerability-density,remediation-time
aikido metrics quality --kpis code-coverage,technical-debt
aikido dashboard create --name "Sécurité Équipe" --widgets vulnerabilities,compliance,trends
Analyse de Tendances et Benchmarking
# Analyse de tendances de sécurité
aikido trends vulnerabilities --timeframe 6m --by-severity
aikido trends remediation --timeframe 3m --by-team
aikido trends compliance --framework pci-dss --monthly
# Benchmarking industriel
aikido benchmark --industry fintech --company-size medium
aikido benchmark --compare-to industry-average
aikido benchmark --security-maturity-assessment
# Analyse prédictive
aikido predict vulnerability-trends --forecast 3m
aikido predict remediation-capacity --based-on historical-data
aikido predict compliance-gaps --framework iso27001
Intégrations et Extensions
Intégrations SIEM et SOC
# Configuration Splunk
aikido integration splunk configure \
--host splunk.example.com \
--port 8089 \
--username splunk_user \
--password splunk_pass \
--index security
# Configuration Elastic Stack
aikido integration elastic configure \
--host elasticsearch.example.com \
--port 9200 \
--index aikido-security \
--auth-type basic \
--username elastic_user \
--password elastic_pass
# Configuration QRadar
aikido integration qradar configure \
--host qradar.example.com \
--auth-token VOTRE_TOKEN_QRADAR \
--log-source-id 123
# Envoi d'événements en temps réel
aikido integration send-events --target splunk --real-time
aikido integration send-events --target elastic --batch-size 100
Intégrations de Gestion de Tickets
# Configuration Jira
aikido integration jira configure \
--url https://company.atlassian.net \
--username jira_user \
--api-token VOTRE_TOKEN_JIRA \
--project-key SEC
# Configuration ServiceNow
aikido integration servicenow configure \
--instance company.service-now.com \
--username servicenow_user \
--password servicenow_pass \
--table incident
# Création automatique de tickets
aikido integration auto-ticket --severity critical,high \
--target jira \
--template security-vulnerability
aikido integration auto-ticket --compliance-violations \
--target servicenow \
--template compliance-gap
API et Automatisation Personnalisée
# Utilisation de l'API REST
curl -X GET "https://api.aikido.dev/v1/vulnerabilities" \
-H "Authorization: Bearer VOTRE_TOKEN_API" \
-H "Content-Type: application/json"
curl -X POST "https://api.aikido.dev/v1/scans" \
-H "Authorization: Bearer VOTRE_TOKEN_API" \
-H "Content-Type: application/json" \
-d '{
"target": "https://app.example.com",
"scan_type": "web",
"options": {
"deep_scan": true,
"include_apis": true
}
}'
# Webhooks pour événements personnalisés
aikido webhook create --url https://api.example.com/security/webhook \
--events vulnerability_found,scan_completed,compliance_violation \
--secret VOTRE_SECRET_WEBHOOK
# Scripts d'automatisation
aikido automation create --name "Remédiation Auto Dépendances" \
--trigger "dependency_vulnerability.severity=high" \
--action "create_pr,notify_team,schedule_review"
Dépannage et Optimisation
Diagnostic et Résolution de Problèmes
# Diagnostic de connectivité
aikido diagnostic network --target https://app.example.com
aikido diagnostic auth --verify-tokens
aikido diagnostic permissions --check-all
# Logs et débogage
aikido logs scan --scan-id 12345 --verbose
aikido logs monitor --target web:https://app.example.com --tail
aikido debug --enable --level verbose
# Vérification de configuration
aikido config validate --file aikido.yaml
aikido config test --dry-run
aikido config export --format yaml > aikido-backup.yaml
Optimisation des Performances
# Optimisation des analyses
aikido scan optimize --target web:https://app.example.com
aikido scan cache --enable --ttl 24h
aikido scan parallel --max-concurrent 5
# Gestion des ressources
aikido resources monitor --usage
aikido resources limit --cpu 80% --memory 4GB
aikido resources scale --auto --min-instances 2 --max-instances 10
# Optimisation de la bande passante
aikido network optimize --compression gzip
aikido network throttle --rate-limit 100req/min
aikido network cache --enable-cdn
Meilleures Pratiques et Sécurité
Configuration Sécurisée
# Gestion sécurisée des secrets
export AIKIDO_TOKEN="votre-token-api"
aikido auth configure --token-file ~/.aikido/token
aikido auth rotate --token ANCIEN_TOKEN --new-token NOUVEAU_TOKEN
# Configuration de proxy sécurisé
aikido config proxy --url https://proxy.example.com:8080 \
--auth-type basic \
--username proxy_user \
--password proxy_pass \
--ssl-verify
# Chiffrement des données
aikido config encryption --enable --key-file ~/.aikido/encryption.key
aikido data encrypt --input sensitive-config.yaml --output encrypted-config.enc
aikido data decrypt --input encrypted-config.enc --output decrypted-config.yaml
Gouvernance et Contrôle d'Accès
# Gestion des rôles et permissions
aikido rbac create-role --name security-analyst \
--permissions read:vulnerabilities,read:reports,write:tickets
aikido rbac assign-user --user john.doe@example.com \
--role security-analyst \
--scope project:web-app
aikido rbac create-policy --name critical-only \
--condition "severity >= critical" \
--actions view,remediate
# Audit et logging
aikido audit enable --log-level info
aikido audit export --timeframe 30d --format json
aikido audit search --user john.doe --action scan --timeframe 7d
Cette aide-mémoire couvre les fonctionnalités principales d'Aikido Security pour implémenter une sécurité complète code-to-cloud dans vos workflows de développement. Adaptez les commandes selon vos besoins spécifiques et votre environnement.