Skip to content

About

Term assignment 1 of course Dátové štruktúry a algoritmy at Paneuro university Slovakia

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

1 Commit

Folders and files

Repository files navigation

PEVŠ DSA 2026 - Semestrálny projekt 1 - Riešenie

🛡️ SENTINEL – Systém pre spracovanie sieťových hrozieb

C++ 17 Static Badge

Systém pre zachytenie a vyriešenie sieťových incidentov implementovaný v jazyku C++17. Tento projekt je súčasťou semestrálneho zadania predmetu Dátové Štruktúry a Algoritmy.

Popis

SENTINEL je konzolová aplikácia (CLI - Command Line Interface), ktorá umožňuje:

  • Správu zariadení v počítačovej sieti
  • Zaznamenávanie bezpečnostných incidentov
  • Spracovanie incidentov pomocou fronty
  • Perzistenciu dát do textových súborov

Funkcionalita

Správa zariadení

Každé zariadenie obsahuje:

  • IP adresa - unikátny identifikátor zariadenia
  • Názov - ľubovoľný názov zariadenia
  • Počet incidentov - automaticky aktualizovaný pri pridaní/vyriešení incidentov

Zariadenia sú ukladané do vlastnej implementácie hash mapy s IP adresou ako kľúčom.

Fronta incidentov

Každý incident obsahuje:

  • IP adresa - zariadenie, na ktorom incident nastal
  • Časová pečiatka - Unix timestamp vytvorenia incidentu
  • Typ incidentu - kategória bezpečnostného incidentu

Incidenty sú spracovávané pomocou vlastnej implementácie fronty (FIFO).

Typy incidentov

  • ddos - Distributed Denial of Service
  • sql_injection - SQL Injection
  • xss - Cross-Site Scripting
  • brute_force - Brute Force Attack
  • broken_auth - Broken Authentication
  • unknown - Neznámy typ (predvolený)

Použitie

Kompilácia

g++ -std=c++17 -o bin/sentinel -Wall -Wextra src/main.cpp

Príkazy

Zobrazenie nápovedy

./sentinel
./sentinel --help

Správa zariadení

Pridanie nového zariadenia:

./sentinel new --ip <IP_ADRESA> --name <NÁZOV>

Príklad:

./sentinel new --ip 192.168.1.10 --name iPhone
./sentinel new --ip 10.10.25.30 --name Server

Výpis všetkých zariadení:

./sentinel list

Správa incidentov

Pridanie nového incidentu:

./sentinel add --ip <IP_ADRESA> [--type <TYP_INCIDENTU>]

Príklady:

./sentinel add --ip 192.168.1.10 --type ddos
./sentinel add --ip 10.10.25.30

Vyriešenie nasledujúceho incidentu:

./sentinel fix

Program zobrazí detaily incidentu a zariadenia, následne požiada o potvrdenie vyriešenia (y/n).

Počet incidentov vo fronte:

./sentinel count

Dátové súbory

Program automaticky pracuje s dvoma textovými súbormi:

  • zariadenia.txt - ukladá informácie o zariadeniach
  • incidenty.txt - ukladá frontu incidentov

Oba súbory sú načítané pri spustení programu a aktualizované pri každej zmene.

Implementované dátové štruktúry

Hash Mapa (Devices)

  • Vlastná implementácia hash tabuľky
  • Kolízie riešené reťazením (chaining)
  • Predvolená kapacita: 13 bucketov
  • Hash funkcia: std::hash<std::string>() modulo kapacita

Fronta (IncidentQueue)

  • Vlastná implementácia založená na std::list
  • FIFO princíp (First In, First Out)
  • Operácie: push, pop, peek, size

Technické požiadavky

  • Jazyk: C++17
  • Kompilátor: G++ (štandard C++17)
  • Závislosti: Iba štandardná knižnica C++

Štruktúra projektu

.
├── bin/                  # Skompilované spustiteľné súbory
├── src/
│   └── main.cpp         # Hlavný zdrojový súbor
├── test/                # Automatizované testy
├── zariadenia.txt       # Dáta zariadení (vytvorené automaticky)
└── incidenty.txt        # Dáta incidentov (vytvorené automaticky)

Autor

Tento projekt je súčasťou zadania predmetu Dátové Štruktúry a Algoritmy na PEVŠ.

Licencia

ISC License - súbor LICENSE

Akademický projekt - PEVŠ DSA 2026

About

Term assignment 1 of course Dátové štruktúry a algoritmy at Paneuro university Slovakia

Resources

Stars

0 stars

Watchers

0 watching

Forks

Contributors

Languages