Analyse de confidentialité élargie, profilage de la surface d'attaque et améliorations du mappage des sources GitHub
La mise à jour de mai 2025 d'Ostorlab apporte des capacités complètes d'analyse de la confidentialité, avec 21 nouvelles catégories de collecte de données et des outils de vérification améliorés. Cette version introduit des profils de scan Attack Surface spécialisés pour des évaluations de sécurité optimisées, ajoute l'intégration du code source GitHub pour un mappage précis des vulnérabilités et met en place une limitation du débit en QPS pour des scans maîtrisés. Parmi les autres améliorations : des contrôles par expression régulière des URL pour les scans mobiles, une intégration Jira simplifiée et des capacités d'empreinte étendues pour une détection plus précise.
Amélioration du nommage des rapports PDF : le nom des exports PDF a été amélioré, ce qui facilite l'organisation et l'identification des rapports.
🎯 Attack Surface
Introduction de deux nouveaux profils de scan pour les scans Attack Surface : pour mieux contrôler la profondeur et l'objectif du scan :
Attack Surface KEV Scan : un scan ciblé sur les Known Exploited Vulnerabilities (KEV), pour identifier les problèmes de sécurité les plus critiques et activement exploités.
Attack Surface Exhaustive Scan : un scan complet pour une couverture approfondie de
la posture de sécurité externe de votre organisation.
Vous devrez désormais sélectionner un profil de scan lors de la création d'un nouveau scan Attack Surface
🔗 Integrations
Amélioration de l'intégration GitHub pour afficher les vulnérabilités de votre code sous forme de commentaires : avec l'intégration Ostorlab Github App, lorsque la plateforme trouve des problèmes de sécurité, elle ajoute des commentaires directement dans votre pull request, à l'emplacement exact où les vulnérabilités sont détectées, avec un bouton en un clic pour appliquer les correctifs.
Les développeurs obtiennent ainsi un contexte immédiat sur les vulnérabilités, directement dans leur base de code, ce qui facilite la
compréhension et la correction des problèmes de sécurité sans passer d'un outil à l'autre.
🛡️ Scanning & Vulnerability Management
Ajout d'une option pour contrôler la limitation du débit en QPS (Queries Per Second) du trafic réseau sortant pendant les scans
de vulnérabilités.
Cette fonctionnalité permet de définir des limites de requêtes par seconde pour les scans Web App, Web API, Network et Attack Surface.
Ajout d'expressions régulières d'URL de périmètre dans les règles de monitoring : ajout de la prise en charge de la liste blanche de domaines précis dans les scans
mobiles à l'aide d'expressions régulières. Les tests se limitent ainsi aux seules parties pertinentes de votre application.
Create Rule :
Update Rule :
🎫 Remediation
Expérience d'intégration Jira simplifiée : le processus de création de tickets Jira bénéficie d'améliorations de l'interface, pour une interface plus intuitive et
plus cohérente.
🔒 Compliance & Privacy
Privacy Analysis Enhancements
Nouveau tableau de synthèse des scans de confidentialité : ajout d'un tableau complet qui présente les pratiques de collecte de données de l'application,
notamment :
Ce qui est déclaré dans la politique de confidentialité
Les citations réelles de la politique à titre de validation
Ce que nos scans ont détecté dans l'application
Les preuves lorsque nous trouvons des écarts
Il devient ainsi beaucoup plus facile de repérer d'un coup d'œil les problèmes de conformité en matière de confidentialité.
Privacy Policy Analysis Expansion
Amélioration du scan de confidentialité avec 21 nouvelles catégories de collecte de données, pour une analyse plus complète de la politique de confidentialité. Les catégories incluent désormais :
Suivi de la localisation (CURRENT_LOCATION, LOCATION_HISTORY)
Accès aux médias (USER_PHOTOS_MEDIA)
Surveillance du comportement des utilisateurs (SEARCH_QUERIES, APP_USAGE, BROWSING_ACTIVITY)
Cette extension permet d'identifier plus en profondeur les problèmes de confidentialité, améliore la vérification de la conformité et vous aide
à mieux comprendre les risques potentiels pour la vie privée dans les applications.
🔍 Detection
Fingerprinting Enhancements
Ajout d'empreintes pour les bibliothèques natives : capacités de détection améliorées pour trois bibliothèques critiques
couramment intégrées dans les applications de messagerie axées sur la confidentialité :
libsignal_jni : bibliothèque cryptographique centrale pour la messagerie sécurisée
libsqlcipher : bibliothèque de chiffrement de base de données qui protège le stockage local des messages
libringrtc : implémentation WebRTC pour les appels vocaux et vidéo sécurisés
Ajout d'empreintes : nous détectons désormais mojoPortal, Craft CMS et FastCGI.
Biometric Authentication Security
Ajout de la détection de l'authentification biométrique non sécurisée : notre nouveau scanner identifie les applications qui utilisent la reconnaissance d'empreinte digitale ou faciale
sans liaison cryptographique appropriée. Il détecte les cas où la vérification biométrique n'est pas liée de façon sécurisée à
des clés cryptographiques, une vulnérabilité que les attaquants peuvent exploiter pour contourner les contrôles de sécurité sur Android comme sur iOS.
Code Example of Insecure Biometric Authentication
Voici un exemple d'implémentation non sécurisée de l'authentification biométrique, où un CryptoObject est transmis à l'invite biométrique mais n'est pas réellement utilisé pour déchiffrer les données de l'utilisateur :
// VULNERABLE IMPLEMENTATION: Biometric authentication with CryptoObject but without actually using itpublicclassMisusedCryptoObjectAuthenticator{privatestaticfinalStringENCRYPTED_DATA_KEY="encrypted_data";privateSharedPreferencespreferences;privateCiphercipher;privateSecretKeysecretKey;publicMisusedCryptoObjectAuthenticator(Contextcontext){this.preferences=context.getSharedPreferences("app_prefs",Context.MODE_PRIVATE);try{// Initialize crypto componentsKeyGeneratorkeyGenerator=KeyGenerator.getInstance("AES");keyGenerator.init(256);secretKey=keyGenerator.generateKey();cipher=Cipher.getInstance("AES/GCM/NoPadding");cipher.init(Cipher.ENCRYPT_MODE,secretKey);}catch(Exceptione){e.printStackTrace();}}publicvoidauthenticateUser(finalAuthenticationCallbackcallback){try{// We create a CryptoObject and pass it to the biometric promptBiometricPrompt.CryptoObjectcryptoObject=newBiometricPrompt.CryptoObject(cipher);BiometricPromptbiometricPrompt=newBiometricPrompt(activity,executor,newBiometricPrompt.AuthenticationCallback(){@OverridepublicvoidonAuthenticationSucceeded(BiometricPrompt.AuthenticationResultresult){// VULNERABILITY: We have the cryptoObject but don't use it!// Instead, we just set a flag or retrieve data directly// The CryptoObject from the result is ignoredBiometricPrompt.CryptoObjectcryptoResult=result.getCryptoObject();// Simply set authentication flag without using the CryptoObjectsetAuthenticated(true);callback.onSuccess();}@OverridepublicvoidonAuthenticationFailed(){callback.onFailure("Authentication failed");}});// We pass the cryptoObject to authenticatebiometricPrompt.authenticate(promptInfo,cryptoObject);}catch(Exceptione){callback.onFailure("Error: "+e.getMessage());}}privatevoidsetAuthenticated(booleanauthenticated){preferences.edit().putBoolean("is_authenticated",authenticated).apply();}// VULNERABILITY: This method retrieves sensitive data without requiring the// cryptoObject that was used during authenticationpublicStringgetSensitiveData(){// Simply checks a boolean flag instead of using crypto bindingif(preferences.getBoolean("is_authenticated",false)){// Get data without using the CryptoObject for decryptionStringencryptedData=preferences.getString(ENCRYPTED_DATA_KEY,null);// We manually decrypt using our stored secretKey instead of// using the key bound to biometric authenticationreturndecryptWithStoredKey(encryptedData);}returnnull;}privateStringdecryptWithStoredKey(StringencryptedData){// Decrypt using the stored key, not the one from biometric authenticationtry{// This uses the class-level secretKey, not anything from the biometric resultCipherdecryptCipher=Cipher.getInstance("AES/GCM/NoPadding");decryptCipher.init(Cipher.DECRYPT_MODE,secretKey);returnnewString(decryptCipher.doFinal(Base64.decode(encryptedData,Base64.DEFAULT)));}catch(Exceptione){returnnull;}}}
Explication de la vulnérabilité :
1. Le code crée un CryptoObject et le transmet au processus d'authentification biométrique
2. Cependant, après une authentification réussie, le CryptoObject est ignoré
3. Au lieu d'utiliser le CryptoObject pour déchiffrer les données sensibles, l'application :
- Définit un simple indicateur booléen
- Utilise une clé stockée séparément pour le déchiffrement, qui n'est pas liée à la vérification biométrique
4. Cela permet à des attaquants de contourner la sécurité biométrique en manipulant directement l'indicateur stocké ou en accédant à la clé de déchiffrement
GraphQL Security
Amélioration des analyseurs GraphQL pour signaler une vulnérabilité sécurisée lorsqu'aucune vulnérabilité n'est détectée, ce qui vous donne plus
de confiance dans les évaluations de sécurité.
Threat Center
Nous avons ajouté la prise en charge de plusieurs CVE :
CVE-2025-2825/CVE-2025-31161 : Critical CrushFTP Authentication Bypass - Une vulnérabilité grave (CVSS 9.8)
affectant les versions 10.0.0-10.8.3 et 11.0.0-11.3.0 de CrushFTP, qui permet un contournement complet de l'authentification par
la manipulation des en-têtes et des cookies d'authentification de style S3.
CVE-2025-22457 : Ivanti Stack-Based Buffer Overflow - Vulnérabilité critique d'exécution de code à distance affectant Ivanti
Connect Secure, Policy Secure et les passerelles ZTA, en raison d'une validation insuffisante des en-têtes HTTP X-Forwarded-For.
CVE-2025-2636 : InstaWP Connect Plugin LFI Vulnerability - Vulnérabilité critique d'inclusion de fichiers locaux dans le
plugin WordPress populaire InstaWP Connect, qui affecte plus de 30 000 installations actives.
CVE-2025-32432 : Craft CMS Remote Code Execution - Vulnérabilité critique d'exécution de code à distance non authentifiée affectant plusieurs
versions de Craft CMS, via une désérialisation non sécurisée dans le processus de transformation des assets.
CVE-2024-12847 : Enhanced Netgear Router Command Injection Detection - Nous avons amélioré la détection grâce à un payload
echo dynamique avec des jetons aléatoires, ce qui élimine les faux positifs tout en conservant une détection précise de la vulnérabilité.
CVE-2019-9874 : Sitecore Anti-CSRF Deserialization Vulnerability - Vulnérabilité critique d'exécution de code à distance dans Sitecore CMS
qui permet à des attaquants non authentifiés d'exécuter du code arbitraire via une désérialisation non sécurisée.
CVE-2017-3066 : Adobe ColdFusion RCE via Java Deserialization - Vulnérabilité critique permettant à des attaquants non authentifiés
d'exécuter du code arbitraire en envoyant des objets Java sérialisés spécialement conçus.
CVE-2017-12637 : SAP NetWeaver AS Java Directory Traversal - Vulnérabilité de sévérité élevée permettant à des attaquants non authentifiés
d'accéder à des fichiers sensibles du serveur par manipulation de chemins (path traversal).