
🔗 Application mobile légère d'orchestration de sécurité pour l'examen des URI, offrant une interface unifiée multi-moteurs pour agréger et valider la sécurité des liens en temps réel.
Une application Android moderne pour l'analyse complète de la sécurité des URL, combinant plusieurs API de détection de menaces avec une détection avancée de l'usurpation de domaine afin de protéger les utilisateurs contre les sites web malveillants.
Créez un fichier secrets.properties dans le répertoire racine :
ABUSEIPDB_API_KEY=your_abuseipdb_key
VIRUSTOTAL_API_KEY=your_virustotal_key
URLSCAN_API_KEY=your_urlscan_key
Important : En utilisant cette application, vous devez respecter les conditions d'utilisation de chaque fournisseur d'API :
Cloner le dépôt
git clone <repository-url>
cd olyx
Configurer les clés API
cp secrets.properties.example secrets.properties
# Modifiez secrets.properties avec vos clés API
Compiler et exécuter
./gradlew assembleDebug
./gradlew installDebug
olyx/
├── app/
│ ├── src/main/
│ │ ├── java/com/olyx/
│ │ │ ├── data/
│ │ │ │ ├── Models.kt # ApiResult, HistoryEntry
│ │ │ │ ├── HistoryManager.kt # Logique de persistance
│ │ │ │ └── SpoofingDetector.kt # Moteur d'analyse de domaine
│ │ │ ├── network/
│ │ │ │ └── ApiService.kt # Intégrations API
│ │ │ ├── ui/
│ │ │ │ ├── components/
│ │ │ │ │ ├── ApiScoreCard.kt # Résultats individuels des API
│ │ │ │ │ └── GlobalScoreCard.kt # Affichage du score agrégé
│ │ │ │ ├── screens/
│ │ │ │ │ ├── HomeScreen.kt # Saisie d'URL
│ │ │ │ │ ├── AnalysisScreen.kt # Affichage des résultats
│ │ │ │ │ ├── HistoryScreen.kt # Historique des recherches
│ │ │ │ │ └── AboutScreen.kt # Informations sur l'application
│ │ │ │ ├── theme/
│ │ │ │ │ ├── Color.kt # Palette du thème sombre
│ │ │ │ │ ├── Theme.kt # Configuration Material3
│ │ │ │ │ └── Type.kt # Typographie
│ │ │ │ └── utils/
│ │ │ │ └── ScoreUtils.kt # Algorithmes de notation
│ │ │ ├── utils/
│ │ │ │ └── Constants.kt # Constantes de l'application
│ │ │ └── MainActivity.kt # Point d'entrée
│ │ └── res/
│ │ ├── raw/
│ │ │ └── legitimate_domains.txt # Liste des domaines protégés
│ │ └── font/
│ │ ├── gemunulibre_regular.ttf
│ │ └── redhatdisplay_regular.ttf
├── screens/ # Captures d'écran
├── build.gradle.kts
└── secrets.properties # Clés API (pas dans le dépôt)
Modifiez app/src/main/res/raw/legitimate_domains.txt :
votrebanque.com
votrebanque.fr
votreentreprise.com
Modifiez les seuils dans SpoofingDetector.kt :
private fun calculateSuspicion(...): Int {
if (distance == 1) return 90 // Très similaire → Risque élevé
if (distance == 2) return 70 // Assez similaire → Risque moyen
if (distance == 3) return 50 // Moins similaire → Risque faible-moyen
}
Mettez à jour l'impact de l'usurpation dans ScoreUtils.kt :
val penalty = (spoofingResult.suspicionLevel * 0.5).toInt() // 50 % du niveau de suspicion
# Exécuter les tests unitaires
./gradlew test
# Exécuter les tests instrumentés
./gradlew connectedAndroidTest
# Générer le rapport de couverture
./gradlew jacocoTestReport
Utilise l'analyse de déviation statistique :
Score de base = Moyenne (scores API)
Pénalité = Niveau de suspicion × 0,5
Score final = max(0, Score de base - Pénalité)
Calcule le nombre minimum d'opérations d'édition (insertion/suppression/substitution) entre deux chaînes pour détecter le typosquatting.
Ce projet est sous licence GNU Affero General Public License v3.0. Voir LICENSE pour plus de détails.