Logo Jim Peel
Back to Projects

Oracle Hackathon Challenge

Pre-AI CodingPythonSQLiteFlaskJS

Introduction

Won Oracle IT's first Hackathon by engineering a full-stack OCI asset discovery and security analysis platform that mapped multi-tenancy infrastructure topologies directly to active security list rule sets

Challenge

Taking seclist information from OCI, build an application map and visualize the allowed flows by application
Input: Tenancy = git, application_name

  • Objective 1 [10p]: Succesfully connect to the API
  • Objective 2 [20p]: Identify the application subnets based on the subnet naming standard
  • Objective 3 [20p]: Identify the allowed application flows based on the seclist information in each subnet
  • Objective 4 [10p]: Visualize application flows showing intra-application flows (allowed flows between application subnets)
  • Objective 5 [20p]: Visualize application flows showing intra-vcn flows (allowed flows between inside the VCN)
  • Objective 6 [20p]: Visualize application flows showing external flows (allowed flows with hosts outside the VCN)

Stretch objective: categorize the application based on the flow patterns: internal, external, single-region, multi-region, small-footprint (small ammount of open ports outside the application), big-footprint (large ammount of open ports outside the application), anything else.

Screenshots

UI

UI

Results

Relults

Create and update DB

arch-lnx [~] $ python3 ~/oci_info/refresh_db.py --refresh
Reading config file...
Starting sqlite DB refresh -> ~/oci_info/oci_info.db
Valid configs found for tenancy(s): ['ORAGIT', 'GIT']
Starting data collection for: ORAGIT 
   Importing table --> compartments --> rows: 15
   Importing table --> instances --> rows: 744
   Importing table --> instances --> rows: 24
   Importing table --> vnic_attachments --> rows: 24
   Importing table --> vnic_attachments --> rows: 774
   Importing table --> vcns --> rows: 4
   Importing table --> subnets --> rows: 346
   Importing table --> seclist_attachments --> rows: 1641
   Importing table --> seclists --> rows: 608
   Importing table --> seclist_rules --> rows: 14435
Starting data collection for: GIT 
   Importing table --> compartments --> rows: 24
   Importing table --> instances --> rows: 0
   Importing table --> instances --> rows: 0
   Importing table --> vnic_attachments --> rows: 0
   Importing table --> vnic_attachments --> rows: 0
   Importing table --> vcns --> rows: 9
   Importing table --> subnets --> rows: 333
   Importing table --> seclist_attachments --> rows: 1609
   Importing table --> seclists --> rows: 612
   Importing table --> seclist_rules --> rows: 14472

arch-lnx [~] $ python3 ~/oci_info/run.py
Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)