Sentinel IOC

Indicators of Compromise Management System

View on GitHub

Sentinel IOC

πŸ”— GitHub Pages

A C++ project for analyzing Indicators of Compromise (IOCs) using Object-Oriented Programming principles.

Description

Sentinel IOC simulates an IOC analyzer (malicious IPs, URLs, and hashes), enabling users to register, view, update, and delete this information. It’s a practical introduction to Object-Oriented Programming (OOP) in C++.

Technologies Used

Features

Project Structure

πŸ“ sentinel-ioc/
 ┣ πŸ“ googletest                   >> Unit tests
 ┣ πŸ“ src/
 ┃ ┣ πŸ“ CLI                 
 ┃ ┃ ┣ πŸ“„ cli.hpp                  >> CLI interface class
 ┃ ┃ β”— πŸ“„ cli.cpp
 ┃ ┣ πŸ“ data/
 ┃ ┃ β”— πŸ“„ iocs.csv                 >> Simulated database (CSV format)
 ┃ ┣ πŸ“ fileManager                 
 ┃ ┃ ┣ πŸ“„ fileManager.hpp          >> File read/write manager
 ┃ ┃ β”— πŸ“„ fileManager.cpp
 ┃ ┣ πŸ“ indicator                 
 ┃ ┃ ┣ πŸ“„ indicator.hpp            >> Abstract base class for IOCs
 ┃ ┃ β”— πŸ“„ indicator.cpp              
 ┃ ┣ πŸ“ indicatorManager
 ┃ ┃ ┣ πŸ“„ indicatorManager.hpp     >> Manages IOC CRUD operations
 ┃ ┃ β”— πŸ“„ indicatorManager.cpp
 ┃ ┣ πŸ“ maliciousHash
 ┃ ┃ ┣ πŸ“„ maliciousHash.hpp        >> Derived class for malicious hash
 ┃ ┃ β”— πŸ“„ maliciousHash.cpp
 ┃ ┣ πŸ“ maliciousIP
 ┃ ┃ ┣ πŸ“„ maliciousIP.hpp          >> Derived class for malicious IP
 ┃ ┃ β”— πŸ“„ maliciousIP.cpp
 ┃ ┣ πŸ“ maliciousURL
 ┃ ┃ ┣ πŸ“„ maliciousURL.hpp         >> Derived class for malicious URL
 ┃ ┃ β”— πŸ“„ maliciousURL.cpp
 ┃ ┣ πŸ“ utils
 ┃ ┃ ┣ πŸ“„ utils.hpp                >> Utility functions (e.g., menu, timestamps)
 ┃ ┃ β”— πŸ“„ utils.cpp
 ┃ ┣ πŸ“„ sentinel.exe               >> Main executable
 ┃ ┣ πŸ“„ sentinel_tests.exe         >> Unit tests executable   
 ┃ β”— πŸ“„ main.cpp                   >> Application entry point
 ┣ πŸ“ public/
 ┃ ┣ πŸ“ assets                     >> Project images
 ┃ ┣ πŸ“„ sentinel-ioc.puml          >> UML diagram 
 ┃ β”— πŸ“„ report.md                  >> Project report
 ┃ β”— πŸ“„ report.pdf                 >> Project report
 β”— πŸ“„ README_EN.md

OOP Concepts Demonstrated

How to Run on CLI

Clone the Repository

git clone https://github.com/bomday/sentinel-ioc.git

Requirements

Compile the Program

g++ -g -std=c++17 -o sentinel.exe main.cpp cli/cli.cpp utils/utils.cpp indicator/indicator.cpp maliciousIP/maliciousIP.cpp maliciousURL/maliciousURL.cpp maliciousHash/maliciousHash.cpp indicatorManager/indicatorManager.cpp fileManager/fileManager.cpp -I. -Icli -Iutils -Iindicator -ImaliciousIP -ImaliciousURL -ImaliciousHash -IindicatorManager -IfileManager

Run the Program

./sentinel.exe

Running Unit Tests

See the Test README

Running the Graphical User Interface (GUI)

See the GUI README

Video Demo

πŸ”— Understand our structure and watch our Demo: YouTube

Interface finalized after first delivery

Images

Sentinel IOC Interface

Sentinel IOC Interface

Sentinel IOC Interface

Sentinel IOC Interface

Project Report

See the Report

Team

Name Course
Beatriz Helena Information Systems
Dayane Lima Information Systems
Maria AntΓ΄nia Information Systems
Rafael Teles Information Systems
Williams Andrade Information Systems