microbrewerGM / Threat-Oracle

Cyber Threat Model is an open-source project that empowers developers and infrastructure engineers to perform thorough threat modeling of applications, CI/CD pipelines, and runtime environments. It uses Neo4j's Bloom to build and visualize a digital twin of your application, enabling risk and threat identification through custom rules and CWE data.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Threat Oracle

Introduction

Welcome to the Threat Oracle project! Threat Oracle is a threat modeling tool with a digital twin, graph structure, and vialuzation.

This project aims to provide a comprehensive solution for threat modeling applications, CI/CD pipelines, and runtime environments. By building a digital twin of the application and infrastructure, we can visualize and analyze potential risks and threats. The digital twin is represented as a graph data structure, capturing data flows and interactions within the application. This graph twin is then matched to custom risk and threat rules or CWE data to discover vulnerabilities and potential threats.

Features

  • Digital Twin Creation: Build a digital twin of your application and infrastructure.
  • Graph Data Structure: Represent the application and data flows as a graph.
  • Visualization: Visualize the digital twin using Neo4j's Bloom.
  • Threat and Risk Analysis: Match the graph twin to custom risk and threat rules or CWE data to discover vulnerabilities.

Project Goals and Objectives

Goals

  1. Comprehensive Threat Modeling: Provide a robust platform for developers and infrastructure engineers to conduct thorough threat modeling of applications, CI/CD pipelines, and runtime environments.
  2. Digital Twin Creation: Enable the creation of digital twins of applications and infrastructure to visualize data flows and interactions using a graph data structure.
  3. Visualization with Neo4j Bloom: Utilize Neo4j's Bloom for intuitive and detailed visualization of the digital twin, aiding in better understanding and analysis.
  4. Risk and Threat Identification: Facilitate the identification of risks and threats by matching the digital twin with custom risk and threat rules, as well as CWE data.

Objectives

  1. Develop a Base Application Structure: Establish a solid foundation for the project, including directory structures, initial files, and setup scripts.
  2. Define a Digital Twin Properties Schema: Create a comprehensive schema that accurately represents the properties and relationships within the digital twin.
  3. Ensure Database Connectivity: Implement robust database connectivity with Neo4j to support efficient data storage and retrieval.
  4. Integrate Graph Visualization: Develop tools and examples for visualizing the digital twin using Neo4j Bloom, ensuring clarity and usability.
  5. Implement Threat and Risk Analysis: Develop mechanisms to analyze the digital twin against custom rules and CWE data, providing actionable insights into potential vulnerabilities.
  6. Continuous Improvement: Regularly update the platform with new features, performance enhancements, and security improvements based on community feedback and emerging threats.

By achieving these goals and objectives, Threat Oracle aims to be a valuable tool in the arsenal of developers and infrastructure engineers, helping them to proactively identify and mitigate security risks in their applications and environments.

Getting Started

Prerequisites

Installation

  1. Clone the repository:

    git clone https://github.com/microbrewerGM/Threat-Oracle.git
    cd threat-oracle
  2. Install the required Python packages:

    pip install -r requirements.txt

Usage

  1. Initialize the digital twin properties schema:

    python initialize_schema.py
  2. Connect to the Neo4j database:

    python connect_db.py
  3. Visualize the digital twin:

    TBD - Navigate to Bloom.

Roadmap

Phase 1: Base Application Structure

  • Initialize project repository
  • Set up basic directory structure and initial files
  • Define project goals and objectives

Phase 2: Digital Twin Properties Schema

  • Define the schema for the digital twin properties
  • Create initial schema in Neo4j

Phase 3: Database Connectivity

  • Set up connection to Neo4j database
  • Implement basic CRUD operations

Phase 4: Graph Visualization

  • Integrate Neo4j Bloom for visualization
  • Develop visualization tests and examples

Phase 5: Threat and Risk Analysis

  • Develop custom risk and threat rules
  • Integrate CWE data
  • Implement threat and risk analysis

Active Tasks

  1. Base Application Structure:

    • Initialize project repository
    • Set up basic directory structure and initial files
  2. Digital Twin Properties Schema:

    • Define the schema for the digital twin properties
    • Create initial schema in Neo4j
  3. Database Connectivity:

    • Set up connection to Neo4j database
    • Implement basic CRUD operations
  4. Graph Visualization:

    • Integrate Neo4j Bloom for visualization
    • Develop visualization tests and examples

Contributing

We welcome contributions from the community. Please read our Contributing Guidelines before submitting a pull request.

License

This project is licensed under the MIT License. See the LICENSE file for details.

Acknowledgements

We would like to thank the open source community for their lead, support and contributions.

Especially, we would like to thank the open source project Threagile!


Thank you for your attention.

For any questions or suggestions, please feel free to open an issue or contact us directly.


About

Cyber Threat Model is an open-source project that empowers developers and infrastructure engineers to perform thorough threat modeling of applications, CI/CD pipelines, and runtime environments. It uses Neo4j's Bloom to build and visualize a digital twin of your application, enabling risk and threat identification through custom rules and CWE data.

License:MIT License


Languages

Language:Python 100.0%