OXO Titan UI : simplifier le scan de sécurité pour tous
OXO Titan UI encapsule les capacités d'OXO dans une interface accessible, démocratisant les techniques avancées de scan de sécurité. Cet article retrace le parcours d'OXO Titan, du concept à la réalité, présente ses principales fonctionnalités et propose un exemple de workflow utilisateur concret.
Introduction
OXO est un framework de scan de sécurité open source connu pour sa simplicité. Cependant, la puissance et la polyvalence de son interface en ligne de commande (CLI) posent souvent des difficultés aux utilisateurs peu familiers des opérations complexes en ligne de commande.
Pour y répondre, OXO Titan a été développé comme une interface utilisateur (UI) intuitive qui transforme l'interaction des utilisateurs avec OXO. Cette UI OnPrem encapsule les capacités d'OXO dans une interface accessible, démocratisant les techniques avancées de scan de sécurité. En comblant le fossé entre une multitude d'outils complexes et une UI simple, OXO Titan simplifie les opérations et améliore l'expérience utilisateur.
Cet article retrace le parcours d'OXO Titan, du concept à la réalité, met en avant ses principales fonctionnalités et présente un exemple pratique de workflow utilisateur. Nous examinons comment cette UI simplifie la configuration et l'exécution des scans de vulnérabilités, ce qui en fait un outil indispensable aussi bien pour les professionnels de la sécurité débutants que confirmés.
Fonctionnalités clés
OXO Titan UI
L'OXO Titan UI apporte les capacités de l'API OXO dans une interface graphique, la rendant accessible à un plus large éventail d'utilisateurs. Vous pouvez accéder à l'UI en exécutant la commande oxo serve. Dans la figure ci-dessous, OXO sert l'UI sur http://http://0.0.0.0:3420.
Avant de lancer le serveur, installez les dépendances avec : pip install ostorlab[serve].

Gestion des scanners et des scans :
Dans OXO Titan, un scanner est le composant central où les scans s'exécutent. Il peut s'agir d'une machine locale ou externe sur laquelle le serveur OXO tourne et fonctionne de manière indépendante, ce qui permet de le personnaliser pour répondre à des exigences de sécurité variées.
Pour configurer un scanner, cliquez sur le bouton des scanners, puis saisissez des informations comme le Scanner Endpoint et l'API Key, que vous obtenez en exécutant la commande oxo serve.

Exécution des scans :
Une fois le scanner configuré, vous pouvez lancer des scans sur différents types d'actifs. Pour lancer un scan, renseignez les informations suivantes :
- Scanner : sélectionnez le scanner sur lequel exécuter le scan.
- Title : (facultatif) donnez un titre ou un nom au scan.
- Asset : (obligatoire) indiquez l'actif à scanner (par exemple, une application Android/iOS, une application web, une API ou un réseau).
- Asset Definition YAML File : facultativement, lancez des scans sur plusieurs types d'actifs à l'aide de ce fichier.
- Agent Group : (obligatoire) sélectionnez le groupe d'agents sur lequel le scan s'exécutera. Consultez la documentation sur les groupes d'agents pour savoir ce qu'est un groupe d'agents et comment en créer un.

Après avoir lancé des scans, vous pouvez y accéder depuis un tableau de bord intuitif qui offre une vue centralisée de toutes les activités de scan sur les scanners configurés par l'utilisateur.

Vous pouvez consulter les détails du scan et les vulnérabilités signalées en cliquant dessus.

De plus, les utilisateurs peuvent mettre en cache localement et exporter les résultats complets d'un scan en cliquant sur le bouton d'export de la page de détails du scan.

Consultez la documentation de l'UI pour plus de détails sur les capacités de l'OXO Titan UI.
API OXO
L'API OXO est une API GraphQL qui étend les capacités de l'interface en ligne de commande (CLI) et facilite l'exécution et la gestion de diverses activités de scan.
Elle offre un éventail de fonctionnalités qui simplifient et améliorent les interactions des utilisateurs avec le framework OXO.
Par exemple, pour récupérer des scans et les vulnérabilités associées avec les commandes CLI, vous devez d'abord lister les scans avec oxo scan list, puis passer l'ID du scan à oxo vulnz list -s <scan_id>. Utilisez oxo vulnz describe -v <vuln_id> pour obtenir les détails d'une vulnérabilité.
Avec l'API OXO, en revanche, une simple requête GraphQL donne les mêmes résultats. Voici comment interroger les scans et leurs vulnérabilités avec pagination :
query Scans {
scans(page: 1, numberElements: 10) {
scans {
id
title
createdTime
progress
vulnerabilities(numberElements: 1, page: 2) {
vulnerabilities {
id
technicalDetail
riskRating
detail {
title
shortDescription
description
recommendation
}
}
}
}
}
}
Voici les principaux cas d'usage et fonctionnalités fournis par l'API OXO :
| Action | Type | Argument | Commentaire |
|---|---|---|---|
RunScan |
Mutation | title: String, assetIds: [Int]!, agentGroupId: Int! |
|
StopScan |
Mutation | scanId: Int! |
|
DeleteScan |
Mutation | scanId: Int! |
|
ImportScan |
Mutation | file: Upload!, scanId: Int |
Importe un scan depuis un fichier zip. |
ExportScan |
Mutation | scanId: Int!, exportIde: Boolean |
Exporte un scan vers un fichier zip. |
CreateAssets |
Mutation | assets: [OxoAssetInputType]! |
|
PublishAgentGroup |
Mutation | agentGroup: OxoAgentGroupCreateInputType! |
|
DeleteAgentGroup |
Mutation | agentGroupId: Int! |
|
Scans |
Query | scanIds: [Int], page: Int, numberElements: Int, orderBy: OxoScanOrderByEnum, sort: SortEnum |
Interroge les scans et les vulnérabilités signalées. |
Scan |
Query | scanId: Int |
|
AgentGroups |
Query | search: String, page: Int, numberElements: Int, orderBy: AgentGroupOrderByEnum, sort: SortEnum, agentGroupIds: [Int], assetType: AssetTypeEnum |
Interroge les groupes d'agents avec tous leurs agents associés et leurs arguments. |
Conception et architecture
Prenons le scénario suivant, où un utilisateur gère deux scanners, l'un interne et l'autre externe :

Accès et configuration
L'utilisateur accède à l'UI et ajoute des instances de scanner :

Opérations de scan
L'utilisateur peut effectuer des actions comme créer des scans sur différents types d'actifs : Android Store pour les actifs du Google Play Store, Android Files comme les Apk ou Aab, iOS Store pour les actifs de l'Apple App Store, iOS IPA File, Web App pour les scans d'applications web, Web API pour les scans d'API accessibles via le web, et Network.

Après avoir lancé des scans, l'utilisateur peut les consulter et les examiner sur la page de liste des scans, qui comporte un onglet pour chaque scanner et les scans exécutés dessus.

L'utilisateur peut ensuite exporter un scan en cliquant sur le bouton « Export » de la page de détails du scan. Par exemple, nous allons exporter le scan de l'actif web Reddit depuis le scanner externe et l'importer dans le scanner local :


L'utilisateur peut vérifier que le scan est bien importé depuis la page de liste des scans :

Conclusion
OXO Titan marque une amélioration substantielle du framework open source OXO, en offrant une interface simplifiée et conviviale qui facilite le scan de vulnérabilités. En améliorant l'accessibilité et les fonctionnalités grâce à une conception intuitive, OXO Titan permet aux utilisateurs de gérer plusieurs scanners, de lancer des scans sur différents types d'actifs, d'importer et d'exporter les données de scan et d'accéder facilement à des rapports détaillés. Cette avancée permet aux organisations d'améliorer efficacement leur efficacité opérationnelle et leurs capacités de sécurité au sein de l'écosystème OXO.