Etapa II

Etapa II, ,,Realizarea modelului conceptual al S.I.I. Specificațiile, arhitectura și tiparul (modelul) Sistemului Informatic Integrat pentru managementul activităților, resurselor și informațiilor instituției publice (S.I.I.). Software Development – Dezvoltarea software a modelului conceptual – modelul software al SII”, din cadrul proiectului, a avut ca scop principal realizarea modelului si arhitecturii SIIMA si implementarea acestuia.

Modelul conceptual al S.I.I

În procesul de conceptualizare al S.I.I au fost luate în vedere următoarele aspecte practice care se manifestă la nivelul sistemelor funcționale aflate în exploatare:

  • Necesitatea de adaptare a sistemului la creșterea gradului de utilizare a acestuia (creșterea nivelului de încărcare);
  • Necesitatea de adaptare structurală și funcțională a acestuia odată cu modificarea practică a proceselor de business.
  • Necesitatea de procedurare și control a noilor versiuni ale modulelor funcționale, controlul calității acestora, respectiv promovarea în mediul productiv

Plecând de la arhitectura stratificată a S.I.I (Figura – Arhitectura de bază a sistemului), unde modulele funcționale se află pe stratul NIVELUL APLICATIV, a fost creat modelul conceptual al managementului codului sursă, procesului de compilare, testare automatizată și împachetare a modulelor funcționale, respectiv deploymentulul acestora în cadrul unui registru centralizat al versiunilor modulelor funcționale.

Arhitectura de bază a sistemului

După cum poate fi observat în cadrul Figurii – Controlul versiunii codului sursă, procesul de build, tranziția către mediul de execuție, dezvoltatorii software și testerii software care lucrează sub coordonarea managerului de proiect și arhitectului de sistem vor lucra cu platforma GITLAB (https://about.gitlab.com/) pentru întregul proces de lucru, începând menținerea versiunilor codului sursă al sistemului până la  instalarea fișierelor binare, rezultat al compilării, în registrul de imagini centralizat al S.I.I.

Astfel, ca operațiuni de bază, în cadrul platformei GITLAB, vor fi efectuate:

ARHITECTUL DE SISTEM

  • Definește specificații funcționale
  • Definește milestone-uri
  • Definește activități și sub activități de dezvoltare software necesare a fi realizare pentru realizarea milestone-urilor

MANAGERUL DE PROIECT

  • Alocă activitățile la nivel de dezvoltator software și urmărește realizarea acestora

TESTERUL SOFTWARE

  • Urmărește rezultatul proceselor de build
  • Urmărește rezultatul execuției testelor automatizate
  • Realizează teste funcționale
  • Înscrie defectele identificate în cadrul platformei, spre remediere.

DEZVOLTATORUL SOFTWARE

  • Preia și actualizează codul sursă al sistemului
  • Preia activitățile alocate de managerul de proiect și le îndeplinește prin scrierea de cod sursă și încărcarea acestuia în sistemul de management versiunii codului sursă

PROCESE AUTOMATIZATE

  • Compilarea automatizată a modulelor odată cu înscrierea in platformă a unei noi versiuni a codului sursă
  • Notificarea responsabililor privitor la eventualele erori de compilare
  • Rularea testelor automatizate și notificarea responsabililor în caz de eșuare a acestora
  • Instalarea imaginii binare rezultate în registrul de imagini al S.I.I
  • Instalarea automatizată a noii versiuni spre disponibilizarea acesteia pentru teste funcționale
    manuale/ utilizarea acesteia.

Privitor la modul de încapsulare a imaginilor binare ale modulelor funcționale va fi utilizată tehnologia DOCKER (https://www.docker.com/) ce oferă premise foarte bune pentru instalarea facilă și securizată, respectiv rularea modulelor funcționale ale S.I.I, respectiv posibilitatea de instalare în oricare altă locație a  modulelor S.I.I prin preluarea acestora din cadrul registrului de imagini. Cea din urmă opțiune este deosebit de importantă având în vederea faptul că S.I.I SIIMA este prevăzut a fi instalat în multiple locații.

Monitorizarea securității. Arhitectura si setup de laborator

Pentru securitatea rețelei folosim Security Onion care este o distribuție Linux gratuită, open source dedicată detecției intruziunilor, monitorizării securității și gestionării log-urilor. Aceasta distribuție include:

  • Elasticsearch, un motor de stocare/indexare date, cu funcții de analiză și căutare bazat pe JSON
  • Logstash, un colector de date cu un ecosystem de plug-inuri extensibil
  • Kibana, interfața pentru explorarea datelor
  • Suricata, pentru generarea alertelor în urma detecției intruziunilor
  • Syslog-ng pentru colectare log-uri și Bro/Zeek, un framework flexibil si eficient pentru analiza traficului de rețea
  • Sguil, Squert – oferă acces la evenimente în timp real, datele de sesiune și capturi de pachete brute, facilitând monitorizarea securității rețelei și analizelor orientate pe evenimente.
  • CyberChef, este o aplicație web intuitivă pentru a efectua tot felul de operațiuni de tip cyber (de exemplu : codare XOR sau Base64, calcul hash, criptare etc)

Funcțiile de baza ale soluției de monitorizare securitate sunt relizate de:

  • Componenta de captură pachete – este realizată cu utilitarul netsniff-ng ce capturează tot traficul de rețea, stochează fișiere pcap pe disc, poate face traffic replay si analiză online și offline
  • Sisteme de detecție intruziuni la nivel de host și rețea – realizează analiza sistemelor de tip host sau a traficului de rețea si furnizează log-uri si alerte referitoare la evenimente si activități.
    Security Onion permite la alegere folosirea diferitelor tehnologii de tip NIDS (network based IDS), bazate fie pe reguli (detecție amprente/semnături sau trafic suspicios cum ar fi aplicațiile Snort sau Suricata) fie orientate pe analiza (monitorizarea traficului și logarea conexiunilor cum ar fi aplicatia Bro/Zeek). Pentru detecția intruziunilor la nivel de host Security Onion ofera suplimentar soluția Wazuh – o aplicație open source pentru monitorizarea securității la nivel de host, detecția amenințărilor si monitorizarea integrității.
  • Uneltele de analiză fără de care volumele de date generate de către componentele de mai sus nu pot fi folosite la adevărata lor valoare. Security Onion integrează mai multe unelte: Squil – ce oferă vizibilitate asupra evenimentelor colectate și contextul necesar validării acestora, Squert – o aplicație web ce prezintă o intrerfață de interogare a bazei de date Squil, Kibana – pentru analiza și pivotarea între diferitele tipuri de informații furnizate de Security Onion, CapMe – pentru descărcarea și vizualizarea fișierelor pcap.

Soluția Security Onion este construită pe baza unui model client-server distribuit. În trecut, Security Onion se baza doar pe utilizarea unui „senzor” (clientul) și a unui „server” de tip Security Onion  serverul).
Recent, odată cu includerea Elastic Stack (suita formată din Elastic Search, Logstash si Kibana), arhitectura distribuită s-a schimbat și acum include utilizarea componentelor Elastic și a nodurilor separate pentru procesarea și stocarea datelor din stiva Elastic Stack.
Din punct de vedere arhitectural, pentru infrastructuri complexe și cu volume foarte mari de date  Security Onion recomanda multiple noduri de colectare și stocare date așa cum se poate observa în figura de mai jos:

In cadrul SIIMA instalarea și configurarea Security Onion este realizată în mod stand-alone. Toate componentele se află pe o singura mașină virtuală, existând posibilitatea ca, în funcție de nivelul de trafic ce trebuie analizat, să fie efectuată o instalare distribuită.