
🔗 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.
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.