Engineering

OXO Titan UI: Simplifying Security Scanning for Everyone

OXO Titan UI encapsulates OXO's capabilities within an accessible interface, democratizing advanced security scanning techniques. This article explores OXO Titan's journey from concept to reality, highlighting its key features and presenting a practical user workflow example.

Mon 26 August 2024

Introduction

OXO is a state-of-the-art security scanning framework known for its simplicity. However, the power and versatility of OXO's Command-Line Interface (CLI) often pose challenges for users unfamiliar with complex command-line operations.

To address this, OXO Titan was developed as an intuitive User Interface (UI) to transform user interaction with OXO. This OnPrem UI encapsulates OXO's capabilities within an accessible interface, democratizing advanced security scanning techniques. By bridging the gap between the myriad of complex tools and a simple UI, OXO Titan streamlines operations and enhances the user experience.

This article explores OXO Titan's journey from concept to reality, highlighting its key features and presenting a practical user workflow example. We examine how this UI simplifies the setup and execution of vulnerability scans, making it an indispensable tool for both novice and experienced security professionals.

Key Features

OXO Titan UI

The OXO Titan UI brings the capabilities of the OXO API to a graphical interface, making it accessible to a wider range of users. You can access the UI by running the oxo serve command. In the figure below, OXO serves the UI on http://http://0.0.0.0:3420.

Before running the server, install the requirements with: pip install ostorlab[serve].

OXO Serve Command

Scanner and Scans Management:

In OXO Titan, a scanner serves as a pivotal component where the scans are taking place. It can be a local or external machine where the OXO server is running and operates independently, allowing customization to meet diverse security requirements.

To set up a scanner, click on the scanners button, then enter details like Scanner Endpoint and API Key, obtainable from running the oxo serve command.

Scanner Setup

Running Scans:

After setting up the scanner, start running scans using various types of assets. To run a scan, provide the following details:

  • Scanner: Select the scanner to run the scan on.
  • Title: (Optional) Give a title or name to the scan.
  • Asset: (Required) Specify the asset to be scanned (e.g., Android/iOS application, web application, API, or network).
  • Asset Definition YAML File: Optionally, run scans on multiple asset types using this file.
  • Agent Group: (Required) Select the agent group on which the scan will run. Refer to the agent group documentation for more information on what an agent group is and how to create one.

Scan Setup

After running scans, you can access them from an intuitive dashboard that provides a centralized view of all scanning activities across the scanners configured by the user.

Scans list

You can see the scan details and the vulnerabilities reported by clicking on it.

Scan Details

Furthermore, users can locally cache and export full scan results by clicking on the export button in the scan details page.

Export Scan

Check the UI documentation for more details about the OXO Titan UI capabilities.

OXO API

The OXO API is a GraphQL API that expands upon the Command-Line Interface (CLI) capabilities, making it easier to perform and manage various scanning activities.

It offers a range of features that simplify and enhance user interactions with the OXO framework.

For example, to fetch scans and related vulnerabilities with the CLI commands, you need first to list scans using oxo scan list, then pass the scan ID to oxo vulnz list -s <scan_id>. You should use oxo vulnz describe -v <vuln_id> for details of a vulnerability.

However, a simple GraphQL query achieves the same results with the OXO API. Here's how you can query scans and their vulnerabilities with 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
                    }
                }
            }
        }
    }
}

Here are the key use cases and functionalities provided by the OXO API:

Action Type Argument Comment
RunScan Mutation title: String, assetIds: [Int]!, agentGroupId: Int!
StopScan Mutation scanId: Int!
DeleteScan Mutation scanId: Int!
ImportScan Mutation file: Upload!, scanId: Int Import scan from a zip file.
ExportScan Mutation scanId: Int!, exportIde: Boolean Export scan to a zip file.
CreateAssets Mutation assets: [OxoAssetInputType]!
PublishAgentGroup Mutation agentGroup: OxoAgentGroupCreateInputType!
DeleteAgentGroup Mutation agentGroupId: Int!
Scans Query scanIds: [Int], page: Int, numberElements: Int, orderBy: OxoScanOrderByEnum, sort: SortEnum Query scans and reported vulnerabilities.
Scan Query scanId: Int
AgentGroups Query search: String, page: Int, numberElements: Int, orderBy: AgentGroupOrderByEnum, sort: SortEnum, agentGroupIds: [Int], assetType: AssetTypeEnum Query agent group with all associated agents and their arguments.

Design and Architecture

Consider the following scenario where a User manages two scanners, one internal and one external:

Design and Architecture

Access and Setup

The User accesses the UI and adds scanner instances:

Access and Setup

Scan Operations

The User can perform actions such as creating scans using various types of assets, including Android Store for assets from Google Play Store, Android Files like Apk or Aab, iOS Store for assets from Apple App Store, iOS IPA File, Web App for web application scans, Web API for API scans accessed over the web, and Network.

Run scan

After running scans, the User can view and review them on the scans list page, which features tabs for each scanner and the scans executed within it.

Scans list page

The User can then export a scan by clicking on the “Export” button in the scan details page. For example, we are going to export the scan of the Reddit web asset from external scanner and import it into the local scanner:

Export Scan

Import Scan

The user can verify that the scan is imported from the scans list page:

Verify Scan

Conclusion

OXO Titan marks a substantial improvement to the OXO open-source framework, offering a streamlined, user-friendly interface that simplifies vulnerability scanning. By enhancing accessibility and functionality through intuitive design, OXO Titan empowers users to manage multiple scanners, run scans on various asset types, import/export scan data, and access detailed reporting with ease. This advancement ensures organizations can effectively enhance their operational efficiency and security capabilities within the OXO ecosystem.

We do newsletters, too


Get the latest news, updates, and product innovations from Ostorlab right in your inbox.

Table of Contents