File size: 4,884 Bytes
a2e0997
 
 
 
 
 
 
 
 
 
 
89c8ad5
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5788e9e
89c8ad5
 
5788e9e
89c8ad5
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5788e9e
89c8ad5
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
---
title: Audit Api
emoji: 🌍
colorFrom: yellow
colorTo: blue
sdk: docker
pinned: false
license: mit
short_description: 'AfricTivistes Digital Security Audit '
---

# API d'Analyse d'Audit de Sécurité

API Flask permettant d'analyser automatiquement les réponses à un audit de sécurité et de générer des recommandations via l'intelligence artificielle.

## Présentation

Cette API utilise l'intelligence artificielle pour analyser les réponses fournies lors d'un audit de sécurité informatique. Elle identifie automatiquement le type d'audit, évalue le niveau de sécurité global, détecte les points forts et les vulnérabilités, puis génère des recommandations personnalisées.

## Fonctionnalités

- **Détection automatique du type d'audit** (complet ou spécifique à un domaine)
- **Analyse des réponses** par IA spécialisée en cybersécurité
- **Évaluation du niveau de sécurité** avec score sur 10
- **Identification des points forts** et leur importance
- **Détection des vulnérabilités** et classification par niveau de risque
- **Génération de recommandations détaillées** pour remédier aux failles
- **Production d'un résumé** de la situation et des étapes prioritaires

## Prérequis

- Python 3.7+
- Bibliothèques: Flask, Requests
- Clé API OpenRouter (ou autre fournisseur de modèles LLM)

## Installation

1. Clonez le dépôt:
```bash
git clone https://github.com/AfricTivistes/adisa.git
cd adisa
```

2. Installez les dépendances:
```bash
pip install -r requirements.txt
```

3. Configurez votre clé API dans `app.py` ou via une variable d'environnement.

## Utilisation

### Démarrer l'API

```bash
python app.py
```

L'API sera accessible par défaut sur `http://localhost:5000`.

### Endpoints

#### 1. Analyse d'audit

**Endpoint**: `POST /api/analyze`

**Description**: Analyse les réponses d'un audit de sécurité et génère une évaluation complète.

**Format de requête**:
```json
{
  "Question 1": "Réponse 1",
  "Question 2": "Réponse 2",
  "Comment gérez-vous les mots de passe?": "Nous utilisons un gestionnaire de mots de passe d'entreprise",
  ...
}
```

**Format de réponse**:
```json
{
  "status": "success",
  "audit_type": "Audit spécifique: Politique de mots de passe",
  "evaluation": {
    "score": 7,
    "level": "Bon"
  },
  "strengths": [
    {
      "text": "Utilisation d'un gestionnaire de mots de passe centralisé",
      "rating": "Fort"
    },
    ...
  ],
  "weaknesses": [
    {
      "text": "Absence de politique de changement régulier des mots de passe",
      "rating": "Moyen"
    },
    ...
  ],
  "recommendations": [
    "Mettre en place une authentification à deux facteurs pour tous les services critiques",
    "Automatiser la détection des mots de passe faibles",
    ...
  ],
  "summary": "La gestion des mots de passe présente un bon niveau général mais nécessite des améliorations..."
}
```

#### 2. Vérification de santé

**Endpoint**: `GET /api/health`

**Description**: Vérifie que l'API est opérationnelle.

**Format de réponse**:
```json
{
  "status": "ok",
  "message": "API d'analyse d'audit de sécurité opérationnelle"
}
```

## Personnalisation

### Modification du modèle d'IA

Vous pouvez modifier le modèle utilisé en changeant les paramètres dans le constructeur de la classe `SecurityAuditAnalyzer`:

```python
security_analyzer = SecurityAuditAnalyzer(
    api_key="votre-clé-api",
    model="autre-modèle"
)
```

### Types d'audits supportés

L'API détecte automatiquement plusieurs domaines de la cybersécurité:

- Politique de mots de passe
- Sécurité des réseaux
- Gestion des accès
- Protection des données
- Sécurité physique
- Formation et sensibilisation
- Gestion des incidents
- Conformité réglementaire

## Architecture du code

- `app.py` : Point d'entrée de l'application Flask et définition des routes
- `SecurityAuditAnalyzer` : Classe principale pour l'analyse des audits
  - `analyze_responses()` : Méthode principale d'analyse
  - `_build_prompt()` : Construction du prompt pour l'IA
  - `_detect_audit_type()` : Détection automatique du type d'audit
  - `_parse_analysis()` : Extraction des données structurées

## Sécurité

⚠️ **Attention**: Ne stockez jamais votre clé API directement dans le code en production. Utilisez plutôt des variables d'environnement ou un fichier de configuration sécurisé.

## Exemple d'utilisation avec cURL

```bash
curl -X POST http://localhost:5000/api/analyze \
  -H "Content-Type: application/json" \
  -d '{
    "Avez-vous une politique de mots de passe?": "Oui, nous exigeons des mots de passe d'au moins 8 caractères",
    "Utilisez-vous l'authentification à deux facteurs?": "Seulement pour les comptes administrateurs",
    "À quelle fréquence les mots de passe sont-ils changés?": "Il n'y a pas d'obligation de changement"
  }'
```