Pregled bezbednosti

Vaši podaci ostaju tamo gde im je mesto.

Sažetak za one koji procenjuju IT i bezbednost: kako se SnagBane uvodi, kako kontroliše pristup, kako je zaštićen i šta tačno napušta vaš server.

Uvođenje i podaci

  • Na vašem serveru. SnagBane je softver koji instalirate sa Dockerom, na VPS-u ili na cPanelu. Obrasci, odgovori, datoteke i nalozi čuvaju se u vašoj sopstvenoj bazi podataka (MySQL/MariaDB, PostgreSQL ili SQLite) i vašem sopstvenom skladištu.
  • Nema zajedničkih podrazumevanih lozinki. Docker baza se pokreće sa instalacionom lozinkom koju instaler zamenjuje jakom nasumičnom lozinkom; php artisan snagbane:db-password je kasnije menja.
  • Privatno skladište datoteka van korena veb servera, sa nasumičnim nazivima datoteka.
  • Radi u internoj mreži. Plan Free ne treba pristup internetu; Business i Enterprise zahtevaju odlazni HTTPS za proveru licence.

Identitet i pristup

  • Jedinstvena prijava sa Microsoft Entra ID, Google Workspace, Okta i bilo kojim SAML 2.0 dobavljačem identiteta kao što su AD FS ili Ping (Business i Enterprise) – samo potpisani SAML odgovori na prijave koje je pokrenuo sam SnagBane, svaki prihvaćen samo jednom. Prijave preko imenika nikad ne prave administratore, a mapiranje uloga iz grupa može ulogu samo da podigne.
  • Dvostepena prijava za SnagBane naloge: aplikacija za autentifikaciju (njen ključ za podešavanje može u menadžer lozinki) ili FIDO2 bezbednosni ključevi i passkey ključevi — YubiKey, Windows Hello, Google Password Manager, iCloud Keychain. Prvo se traži najjača metoda; jednokratni kodovi za oporavak su put nazad, nikad sama lozinka. Može biti obavezna za administratore, a administrator može da zatraži ponovno podešavanje.
  • Zaključavanje naloga posle ponovljenih neuspelih prijava – i za nepoznate adrese, pa ne može da se otkrije koji nalozi postoje – stroga pravila za lozinke i bcrypt heširanje.
  • Uloge i radni prostori: vlasnici, administratori, uređivači, čitaoci i ispitanici; pravila pristupa po obrascu, portalu i radnom prostoru. Posetioci bez pristupa vide samo naslov i opis, nikad pitanja.
  • Novi ljudi podrazumevano ne dobijaju pravo uređivanja – podrazumevana uloga je ispitanik.

Bezbednost aplikacije

  • Stroga Content Security Policy sa nonce vrednostima po zahtevu, zaštita od clickjackinga, HSTS uz HTTPS, nosniff i referrer politika. Zaštita od CSRF-a i fiksiranja sesije.
  • Otpremanja se proveravaju listom dozvoljenih ekstenzija i pregledom sadržaja; skripte, izvršne datoteke, SVG/HTML i dvostruke ekstenzije se blokiraju.
  • Zaštita od SSRF-a za svaki webhook i svaku integraciju: privatne adrese i adrese metapodataka se blokiraju (otporno na DNS rebinding), uz listu dozvoljenih pouzdanih internih hostova koju vodi administrator.
  • Šifrovani tajni ključevi ključem vaše aplikacije. API tokeni, linkovi za odobravanje i linkovi za izmenu i nastavak čuvaju se samo kao heš.
  • Provera na serveru svakog odgovora, svake putanje grananja i svakog izračunavanja; tačni odgovori iz kvizova nikad ne stižu do pregledača; ubacivanje formula se neutrališe pri izvozu u CSV, Excel i Google Sheets.
  • Linkovi se prave od adrese koju ste podesili, nikad od Host zaglavlja zahteva.

Nadzor i revizija

  • Dnevnik revizije prijava, administracije, izvoza i odluka o odobrenju, uključujući ko je promenio odobravaoca i zašto.
  • Slanje u SIEM: svaki unos se upisuje i kao jedan ravan JSON red u dnevnu datoteku, spremnu za Microsoft Sentinel, Elastic ili Splunk Universal Forwarder. Izvoz u CSV ili JSON Lines.
  • Potpisani webhookovi (HMAC-SHA256 sa vremenskom oznakom), da bi primaoci mogli da provere svaki poziv.

Ažuriranja i lanac snabdevanja

  • Potpisana ažuriranja: svako izdanje se pre instalacije proverava Ed25519 ključem i primenjuje u režimu održavanja, uz vraćanje jednim klikom.
  • Čista ažuriranja: datoteke uklonjene u nekom izdanju nestaju i sa vašeg servera, pa je ažurirana instalacija ista kao nova.
  • Dokazi o licenci se potpisuju i proveravaju ključem ugrađenim u aplikaciju – nijedno podešavanje okruženja ne može da otključa plaćeni plan.

Podešavanja koja vi kontrolišete

Bezbedna podrazumevana podešavanja rade odmah. U odeljku Podešavanja → Bezbednost možete ih dodatno pooštriti:

  • Obavezna verifikacija u dva koraka za administratore
  • Minimalna dužina lozinke (velika i mala slova i cifre su uvek obavezni) i trajanje sesije
  • Dozvoljene ekstenzije datoteka i najveća veličina otpremanja
  • Dozvoljeni privatni hostovi za webhookove i integracije – sve ostalo interno se blokira
  • Lokacije i nalozi u SharePointu, OneDriveu i Google Driveu koje uređivači smeju da koriste (administratori mogu da izaberu bilo šta)
  • Da li Microsoft, Google i Okta nalozi smeju da koriste i lozinku; nalozi isključeni u Entra ID-ju ili Google Workspaceu više ne mogu da se prijave njome
  • Upisivanje svakog odgovora u JSON datoteku dnevnika za vaš sakupljač logova
  • Čuvanje podataka: automatsko brisanje starih odgovora posle perioda koji izaberete (pogledajte GDPR)
Podešavanja → Bezbednost

Arhitektura

Jedna veb aplikacija na vašem serveru – bez naše usluge u oblaku na putu vaših podataka.

  • Aplikacija: PHP 8.3+ (Laravel) iza vašeg veb servera ili Docker slika. Aplikacija u pregledaču dolazi sa iste adrese; ne učitavaju se skripte, fontovi ni CDN-ovi trećih strana, a Content-Security-Policy dozvoljava samo vaš server.
  • Baza podataka: MySQL/MariaDB, PostgreSQL ili SQLite – obrasci, odgovori, odobrenja, nalozi i podešavanja. Lozinke i API ključevi integracija šifrovani su sopstvenim ključem instalacije (APP_KEY).
  • Datoteke: otpremljene datoteke, potpisi i generisani PDF-ovi u fascikli storage, van korena veb servera, sa nasumičnim nazivima; isporučuju se tek posle provere pristupa.
  • Planer: jedan cron unos (schedule:run svakog minuta) šalje podsetnike, primenjuje pravila čuvanja i proverava ažuriranja i licencu.
  • Javne adrese: obrasci (/f/…), portali (/p/…), linkovi za odobravanje (/approve/…) i potvrde (/r/…) – svaka proverava sopstveno pravilo pristupa ili potpisani token. Sve ostalo (/app, /api) zahteva prijavljeni nalog; REST API (Business i Enterprise) i SCIM (Enterprise) zahtevaju tokene.
  • Rezervne kopije su vaše: baza podataka i fascikla storage, uključujući storage/.env sa ključem koji dešifruje sačuvane tajne ključeve.

Šta napušta vaš server

SnagBane nema analitiku ni telemetriju. Sam od sebe uspostavlja samo ove veze:

VezaŠta se šaljeKomeKada
Provera ažuriranjaIzdanje, verzija, verzija PHP-a i adresa sajta. Uz licencu i: licencni ključ, Freemius ID instalacije i nasumični ID instalacijeSnagBane servis za ažuriranja (Cloudflare)Svakog dana i kada administrator proveri; isključuje se sa SNAGBANE_UPDATES=false
Preuzimanje ažuriranjaSamo zahtev za potpisani paketSnagBane servis za ažuriranjaKada administrator instalira ažuriranje
Aktivacija licence (Business, Enterprise)Licencni ključ, nasumični ID instalacije, adresa i naziv sajta, verzija, i ime i mejl administratora koji aktiviraFreemius (naš preprodavac)Jednom, pri dodavanju licence
Provera licence (Business, Enterprise)Licencni ključ, Freemius ID instalacije, nasumični ID instalacije i verzijaFreemius i SnagBane servis za licenceSvakog dana; svakog sata dok provera ne uspe

A ove samo ako ih podesite:

Šta uključujeteŠta se šaljeKome
E-poštaObaveštenja, zahtevi za odobrenje i potvrdeServis za e-poštu koji podesite (SMTP ili API)
Prijava i imenikZahtevi za prijavu; čitanje imenika za birače osoba, rukovodioce i grupeMicrosoft Entra ID, Google Workspace, Okta ili vaš SAML dobavljač identiteta
Integracije i webhookoviOdgovori i datoteke koje svaki od njih treba da pošaljeServisi koje povežete, na događaje koje izaberete
Plaćanja u obrascimaIznos, valuta, šta se plaća i mejl ispitanika ako je poznat – nikad podaci o karticiStripe ili PayPal
Dnevnik revizije u vaš SIEMUnosi iz dnevnika revizijeVaš Sentinel, Splunk, Elastic ili HTTPS endpoint
Mašinsko prevođenjeTekstovi obrazaca koje šaljete na prevodDeepL, Azure, Google ili LibreTranslate
Obaveštenja aplikacije za telefonPrazan signal za buđenje – telefon zatim preuzima obaveštenje sa vašeg serveraPush servis pregledača te osobe
Uvoz obrasca sa linkaJedan zahtev za javnu stranicu tog obrascaGoogle Forms ili Microsoft Forms, kada uređivač uvozi obrazac
Izbori sa listeJedan zahtev za listuCSV adresa, SharePoint lista, Excel tabela ili Google tabela koju povežete

Dokumenti za procenjivače

Ne tvrdimo da imamo sertifikate kao što su ISO 27001 ili SOC 2: SnagBane radi u vašoj infrastrukturi, pod vašim kontrolama i revizijama.

Pitanja procenjivača

Možemo li da ga koristimo bez pristupa internetu?

U planu Free – da, ništa nije potrebno. Business i Enterprise zahtevaju odlazni HTTPS da bi se dokaz o licenci obnavljao najmanje na svaka 2 dana; obrasci, odgovori i odobravanja nastavljaju da rade čak i kada su plaćene funkcije pauzirane.

Ko može da vidi odgovore?

Samo ljudi kojima date pristup radnom prostoru obrasca, kao i odobravaoci za zahteve koji su im dodeljeni. Odobravaoci otvaraju datoteke kroz svoje odobrenje, nikad preko javnog linka.

Kako se podešavaju Microsoft 365 dozvole?

U vašem sopstvenom zakupcu: preporučena PowerShell skripta tamo pravi registraciju aplikacije, pa vidite i kontrolišete svaku dozvolu. Pogledajte dozvole.

Kako da dnevnik revizije stigne u Sentinel ili Splunk?

U planu Enterprise SnagBane ga šalje pravo u Microsoft Sentinel, Splunk, Elastic ili bilo koji HTTPS endpoint. Možete i da usmerite sakupljač na dnevne JSON Lines datoteke u storage/logs/audit. Pogledajte SIEM uputstvo.

Kako da prijavimo bezbednosni problem?

Pišite nam kako je opisano u politici prijavljivanja ranjivosti. Molimo vas da prvo ne otvarate javni issue.

Gde su rezervne kopije?

Tamo gde pravite rezervne kopije servera: baza podataka i fascikla storage. SnagBane ne čuva kopije nigde drugde.