Mehanizmi sigurnosti podataka

Jedinstvena autentifikacija i autorizacija, šifriranje podataka i izračun sažetka (hashing), kao i komponente za reviziju i nadzor koje štite podatke na cijeloj platformi.

Jedinstveni sustav autentifikacije i autorizacije

Jedinstveni sustav autentifikacije i autorizacije ključna je komponenta zaštite podataka koja pruža siguran pristup resursima sustava. Omogućuje vam upravljanje korisnicima, njihovim ovlastima i pristupom podacima na razini cijelog sustava.

Podsjetnik:

  • Autentifikacija je postupak provjere identiteta korisnika (na primjer, pomoću korisničkog imena i lozinke).
  • Autorizacija je postupak provjere ovlasti korisnika za izvršavanje određenih radnji (na primjer, za pristup podacima ili funkcijama sustava).

Komponente sustava

Autentifikacija

  • Korisničko ime i lozinka: tradicionalni način autentifikacije. Korisnik se pri prijavi najprije mora identificirati korisničkim imenom i lozinkom.
  • Višefaktorska autentifikacija (MFA): korištenje više faktora (na primjer, dinamički ažuriranog softverskog tokena za web-API).

Autentifikacija temeljena na tokenima pojednostavnjuje postupak za postojeće korisnike. Na početku korisnik šalje poslužitelju zahtjev s korisničkim imenom i lozinkom. Poslužitelj ih provjerava prema vrijednostima registriranim u svojoj bazi identiteta. Ako je identitet potvrđen, poslužitelj vraća token za autentifikaciju (koji se također čuva u bazi podataka).

Kada isti korisnik kasnije zatraži pristup zaštićenim resursima, takvi se zahtjevi mogu autorizirati tokenom za autentifikaciju umjesto korisničkim imenom i lozinkom. Poslužitelj uspoređuje token s onim koji je registriran u bazi podataka i odobrava pristup.

Autorizacija

  • Uloge i ovlasti: korisnicima se dodjeljuju uloge (na primjer, administrator pristupa, korisnik) koje određuju njihove ovlasti.
  • ACL (Access Control Lists): popisi za kontrolu pristupa koji određuju tko ima pristup kojim resursima.
  • RBAC (Role-Based Access Control): kontrola pristupa temeljena na ulogama.
  • ABAC (Attribute-Based Access Control): kontrola pristupa temeljena na atributima (na primjer, prema dobu dana ili lokaciji).

Pohrana podataka o korisnicima

  • Baza korisnika: pohranjuje podatke o korisnicima, njihovim ulogama i ovlastima u jedinstvenoj bazi podataka.

Sigurnost

  • Šifriranje: štiti podatke tijekom prijenosa i pohrane.
  • Pristupni tokeni: softverski tokeni koji se dinamički ažuriraju i koriste za upravljanje sesijama.
  • Revizija: bilježenje svih radnji korisnika radi kasnije analize.

Implementacija sustava

Platforma koristi postupak autentifikacije temeljen na tokenima. Korisnik se prijavljuje korisničkim imenom i lozinkom, sustav ih provjerava i vraća pristupni token, a taj se token zatim šalje uz svaki sljedeći zahtjev radi autorizacije pristupa zaštićenim resursima. Kao korisničko ime koristi se adresa e-pošte korisnika.

Primjer zahtjeva u formatu Curl:

Request example
curl -i --header "Content-Type: application/json" \
--request POST \
--data '{"email":"api-user@example.com","password":"Str0ngPas$"}'\
https://server123/api/v1/auth/sign_in

Kao odgovor stiže sljedeća poruka:

Response example
HTTP/1.1 200 OK
X-Frame-Options: SAMEORIGIN
X-XSS-Protection: 1; mode=block X-Content-Type-Options: nosniff X-Download-Options: noopen X-Permitted-Cross-Domain-Policies: none Referrer-Policy: strict-origin-when-cross-origin Content-Type: application/json; charset=utf-8 access-token: EXAMPLE-ACCESS-TOKEN-1
token-type: Bearer
client: EXAMPLE-CLIENT-ID
expiry: 1615227012
uid: api-user@example.com
ETag: W/"5b9bcc76f7223b72b79d9f2d31ff0fd5"
Cache-Control: max-age=0, private, must-revalidate
X-Request-Id: c18e06b4-e5bd-40b5-875d-7ac958e2fbb5
X-Runtime: 0.391069
Transfer-Encoding: chunked
{"data":{"id":6,"email":"api@local.
net","provider":"email","uid":"api-user@example.com","name":"API user"}}

U ovom odgovoru zanima nas parametar access_token. Vrijednost ovog zaglavlja koristi se kao lozinka za svaki zahtjev i mijenja se sa svakim zahtjevom.

Slijedi primjer zahtjeva koji koristi token iz prethodnog odgovora:

Request example with token
curl -i --header "access-token: EXAMPLE-ACCESS-TOKEN-1" \
--header "token-type: Bearer" \
--header "client: EXAMPLE-CLIENT-ID" \
--header "uid: api-user@example.com" \
--request GET \
--header "Content-Type: application/json" \
--data '{"page":"2"}' \
https://server123/api/v1/stations

Kao odgovor stiže sljedeća poruka:

Sesiju možete završiti postupkom SignOut ili spremiti potrebna zaglavlja iz posljednjeg zahtjeva i ponovno ih upotrijebiti sljedeći put, ako token još nije istekao. Imajte na umu da posljednji token, ako sesija nije završena, ostaje valjan još neko vrijeme, ovisno o postavkama sustava na poslužitelju.

Prednosti sustava

Jedinstveni sustav autentifikacije i autorizacije moćan je alat za zaštitu podataka i kontrolu pristupa. Donosi sljedeće prednosti:

  • Centralizirano upravljanje: pojednostavnjuje upravljanje korisnicima i njihovim ovlastima.
  • Sigurnost: štiti podatke od neovlaštenog pristupa.
  • Dosljednost: sve aplikacije i sustavi koriste isti mehanizam autentifikacije i autorizacije.
  • Skalabilnost: olakšava dodavanje novih aplikacija i korisnika.

Šifriranje podataka

Kako bi zaštitio kritične informacije, sustav koristi šifriranje (pretvaranje informacija u oblik koji se ne može pročitati bez odgovarajućeg ključa) i izračun sažetka (hashing), tj. pretvaranje podataka u jedinstven niz znakova fiksne duljine – sažetak (hash). To je jedan od ključnih mehanizama zaštite podataka: osigurava povjerljivost, cjelovitost i sigurnost informacija, kako pohranjenih, tako i onih u prijenosu.

Sustav koristi različite algoritme za šifriranje podataka i izračun sažetka.

Primjena šifriranja u sustavu

Šifriranje pohranjenih podataka

  • Baze podataka: šifriranje pojedinačnih polja baze podataka.
  • Datoteke: šifriranje datoteka prije spremanja na disk.

Šifriranje podataka u prijenosu

  • HTTPS: korištenje protokola SSL/TLS za šifriranje podataka pri mrežnom prijenosu.
  • VPN: uspostavljanje sigurnog tunela za prijenos podataka.

Šifriranje lozinki

Pohrana sažetaka lozinki umjesto samih lozinki.

Primjeri šifriranja i dešifriranja podataka

Pogledajmo primjere šifriranja i dešifriranja konfiguracijskih datoteka sustava.

Šifriranje podataka

example.config
mkdir_p(encrypted_dir_path)
encrypted = Rails.application.encrypted(encrypted_file_path, key_path: 'config/system.key')
encrypted.write(File.read(decrypted_file_path))
File.delete(decrypted_file_path)

Dešifriranje podataka

example.config
mkdir_p(decrypted_dir_path)
File.write(decrypted_file_path,
  Rails.application.encrypted(encrypted_file_path, key_path: 'config/system.key').read
)

Prednosti šifriranja podataka

  • Povjerljivost: zaštita podataka od neovlaštenog pristupa.
  • Cjelovitost: jamstvo da podaci nisu izmijenjeni.
  • Autentičnost: potvrda izvora podataka.
  • Usklađenost s propisima: ispunjavanje regulatornih zahtjeva.

Revizija i nadzor

Nekoliko komponenata nadzire aktivnost korisnika i sustava, otkriva sumnjivo ponašanje i osigurava usklađenost sa sigurnosnim zahtjevima. Zajedno ove komponente:

  • prikupljaju, analiziraju i pohranjuju informacije o aktivnosti korisnika i sustava kako bi osigurale odgovornost i usklađenost;
  • neprekidno nadziru sustav i opremu u stvarnom vremenu kako bi otkrile incidente i reagirale na njih.

Ciljevi

  • Odgovornost: jamstvo da se bilježi cjelokupna aktivnost korisnika i sustava.
  • Sigurnost: otkrivanje i sprječavanje neovlaštenih aktivnosti.
  • Otkrivanje problema: prepoznavanje hardverskih problema i anomalija te poduzimanje korektivnih mjera.
  • Optimizacija performansi: analiza performansi sustava i pronalaženje uskih grla koja zahtijevaju optimizaciju.
  • Predviđanje i planiranje: prikupljanje podataka za prognozu budućeg opterećenja i planiranje resursa.
  • Usklađenost: osiguravanje usklađenosti s regulatornim zahtjevima.
  • Analiza incidenata: analiza incidenata do kojih je došlo, radi sprječavanja budućih.

Komponente revizije i nadzora

Prikupljanje podataka

  • Zapisi (logovi): evidencija radnji korisnika i sustava na svim razinama.
  • Metrike: podaci o performansama sustava (na primjer, opterećenje procesora, zauzeće memorije).

Pohrana podataka

  • Pohrana zapisa: prikupljanje podataka iz različitih izvora i distribuirana pohrana zapisa i metrika, organizirana po tematskim područjima.
  • Rotacija zapisa: automatsko brisanje starih zapisa radi uštede prostora.

Analiza podataka

  • Pretraživanje i filtriranje: mogućnost pretraživanja i filtriranja zapisa prema različitim kriterijima.
  • Analitika: korištenje alata za analizu podataka (na primjer, Zabbix).

Upozorenja

  • Upozorenja: slanje obavijesti o sumnjivim aktivnostima i havarijskim situacijama (na primjer, e-poštom ili u razgovor na Telegramu).
  • Automatske radnje: automatsko reagiranje na incidente (na primjer, blokiranje korisnika).

Primjer implementacije

Bilježenje

Korištenje biblioteke za bilježenje u aplikaciji.

Prikupljanje pogrešaka u podacima s mjerila

Pohrana zapisa

Korištenje centralizirane pohrane zapisa.

Tablica audits

U ovoj tablici pohranjuju se informacije o bilježenju podataka.

PoljeTipOpis
idintegerJedinstveni identifikator zapisa (primarni ključ).
auditable_idintegerReferenca na objekt revizije (equipment.id, stations.id …).
auditable_typecharacter varyingObjekt revizije (equipment, stations …).
user_idintegerReferenca na identifikator korisnika (users.id)
actioncharacter varyingRadnja
audited_changesjsonbIzmjene obuhvaćene revizijom
versionintegerVerzija izmjena
remote_addresscharacter varyingUdaljena adresa
request_uuidcharacter varyingIdentifikator događaja.
created_attimestamp(6) without time zoneDatum i vrijeme izmjene.
Tablica error_logs

U ovoj tablici pohranjuju se informacije o pogreškama u podacima koji stižu s mjerila.

PoljeTipOpis
idintegerJedinstveni identifikator zapisa (primarni ključ).
loggable_idintegerReferenca na registrirani objekt (equipment.id …).
loggable_typecharacter varyingRegistrirani objekt (equipment …).
messageintegerReferenca na identifikator pogreške.
paramsjsonbKarakteristike pogreške.
created_attimestamp(6) without time zoneDatum i vrijeme izmjene.

Analiza zapisa

Alati koji se koriste za analizu zapisa:

  • Konfiguriranje web-obrazaca za vizualizaciju i analizu zapisa.
  • Izrada nadzornih ploča za praćenje aktivnosti korisnika.

Upozorenja

Prilagođena upozorenja o sumnjivim aktivnostima:

  • Konfiguriranje upozorenja u sustavu Zabbix za praćenje metrika.
  • Slanje obavijesti e-poštom ili u razgovor na Telegramu pri alarmnim događajima.

Prednosti revizije i nadzora

Revizija i nadzor moćni su alati za zaštitu podataka: pomoću njih pratite aktivnost korisnika i sustava, otkrivate sumnjivo ponašanje i osiguravate usklađenost sa sigurnosnim zahtjevima. Omogućuju vam da:

  • osigurate odgovornost za podatke i njihovu sigurnost;
  • prepoznate i spriječite incidente;
  • ispunite regulatorne zahtjeve.

Povezane teme

Posljednji put ažurirano

Je li vam ova stranica bila korisna?