Varnost #
EthicsPortal ravna z občutljivimi podatki o prijavah nepravilnosti. Ta stran dokumentira konkretne tehnične in organizacijske ukrepe, ki jih imamo vzpostavljene. Napisana je za zaupnike, pooblaščene osebe za varstvo podatkov in pravne službe, ki ocenjujejo platformo.
Zadnja posodobitev: 2026-11-04.
Šifriranje podatkov #
Spodaj navedena občutljiva polja podatkovne baze so pri hrambi šifrirana z Rails ActiveRecord Encryption z nedeterminističnim šifriranjem (vsako šifriranje da enoličen šifropis, kar preprečuje analizo vzorcev). Šifriranje polj ne zajema celotnih izvozov podatkovne baze ali priloženih datotek; ti so šifrirani ločeno, kot je opisano pri priloženih datotekah in varnostnih kopijah.
| Polje | Šifrirano | Deterministično |
|---|---|---|
| Opis prijave | Da | Ne |
| Ime prijavitelja | Da | Ne |
| Kontaktni podatki prijavitelja | Da | Ne |
| Strukturirani odgovori ob prevzemu (razmerje, vir, čas, prejšnja prijava, skrb glede povračilnih ukrepov) | Da | Ne |
| Vsebina sporočila (komunikacija med prijaviteljem in obravnavalcem) | Da | Ne |
| Interni zaznamki o zadevi | Da | Ne |
| Skrivnosti in rezervne kode dvostopenjskega preverjanja obravnavalcev | Da | Ne |
Nedeterministično šifriranje pomeni, da teh polj na ravni podatkovne baze ni mogoče poizvedovati po vrednosti. Tudi s polnim dostopom do podatkovne baze napadalec ne more iskati določenega imena prijavitelja po zapisih.
Priložene datoteke #
Datoteke, priložene prijavam, sporočilom in internim zaznamkom, glasovni posnetki ter izvozi podatkov o zadevah so pri hrambi v Hetzner Object Storage šifrirani z AES-256, z ločenim naključnim ključem za vsako datoteko (šifriranje na strani strežnika s ključi, ki jih zagotovi stranka). Ključ se pošlje z vsako zahtevo shrambi, Hetzner pa zavrne vsako branje brez njega. EthicsPortal ga hrani v podatkovni bazi, šifriranega z zgoraj opisanim ActiveRecord Encryption, zato same poverilnice za shrambo ne omogočajo branja datoteke: potrebni sta tudi podatkovna baza in šifrirni ključi aplikacije. Datoteke pooblaščenim uporabnikom posreduje aplikacija s pretakanjem, nikoli prek neposredne povezave do shrambe.
Datoteke, naložene pred 6. oktobrom 2026, so bile tega dne ponovno šifrirane, njihove nešifrirane kopije, vključno s hranjenimi prejšnjimi različicami, pa izbrisane. Datoteke, ki niso podatki o prijavah, kot so profilne slike in slike organizacije za deljenje, niso šifrirane na ta način. Nič od tega ne ščiti pred kompromitacijo aplikacijskega strežnika, ki hrani poverilnice za shrambo, podatkovno bazo in ključe skupaj.
Vse povezave z EthicsPortalom uporabljajo HTTPS/TLS. Nešifrirane zahteve HTTP se preusmerijo.
Anonimnost in zasebnost #
Naslovi IP #
EthicsPortal naslova IP prijavitelja ne zapisuje k prijavam, sporočilom ali revizijskim vnosom, dnevniki aplikacije za pot za prijavo pa ne vsebujejo naslovov IP.
Omejevanje pogostosti na poti za prijavo (oddaja prijave, iskanje zadeve, sporočanje) temelji na skrajšanem zgoščenem zapisu SHA-256 naslova IP zahteve, izračunanem s tajnim ključem. Zgoščeni zapis je psevdonimen, ne anonimen: ni ga mogoče prebrati kot naslov, vendar bi lahko kdor koli s tajnim ključem aplikacije z njim preverjal domnevne naslove. Uporablja se samo v oknu omejevanja pogostosti (največ 10 minut), opravilo v ozadju pa ga iz predpomnilnika izbriše najpozneje 5 minut po koncu okna.
Posredniški strežnik TLS pred aplikacijo vodi lasten dnevnik zahtev: naslov IP, pot zahteve, uporabniški agent in stanje odgovora. Pot v naslovu URL strani, na kateri prijavitelj pregleduje svojo prijavo, vsebuje oznako zadeve, zato je mogoče vnos za to stran povezati s prijavo. Hranijo se v eni sami 10-MB dnevniški datoteki, ki se prepisuje, ko se napolni, trenutno po približno dveh dneh; 7-dnevni posnetki strežnika, opisani pri varnostnih kopijah, lahko vsebujejo njihovo kopijo.
Odstranjevanje metapodatkov datotek #
Naloženim datotekam se identifikacijski metapodatki samodejno odstranijo pred shranjevanjem:
| Vrsta datoteke | Odstranjeni metapodatki | Metoda |
|---|---|---|
| Slike (JPEG, PNG, WebP, GIF, AVIF) | Podatki EXIF: koordinate GPS, model fotoaparata, serijska številka naprave, avtor, časovni žigi | Obdelava slik Vips |
| Dokumenti PDF | Avtor, aplikacija ustvarjalca, zgodovina sprememb. Se ne odstranijo: imena avtorjev komentarjev in metapodatki fotografij, vdelanih v PDF | exiftool + qpdf v standardni produkcijski postavitvi |
| Videodatoteke | GPS, podatki o napravi, programska oprema za snemanje | exiftool v standardni produkcijski postavitvi |
| Zvočne datoteke | Snemalna naprava, GPS, programske oznake | exiftool v standardni produkcijski postavitvi |
Odstranjevanje metapodatkov se izvede na strani strežnika pred shranjevanjem. Pri vrstah datotek, ki jih obdela exiftool, je to odvisno od prisotnosti standardnega produkcijskega orodja.
V dokumentu PDF se ohranijo imena pri komentarjih in metapodatki vdelanih fotografij, kot sta položaj GPS in serijska številka fotoaparata. Prijavitelj, ki jih želi odstraniti, naj fotografije naloži kot ločene slikovne datoteke in pred nalaganjem dokumenta PDF odstrani komentarje.
Preverjanje glede virusov #
Datoteke, priložene prijavam, sporočilom in internim zaznamkom, se samodejno preverijo glede zlonamerne programske opreme s ClamAV, odprtokodnim protivirusnim pogonom. Preverjanje poteka na strani strežnika v procesu v ozadju po nalaganju. Datoteke, ki preverjanja niso prestale, so blokirane za dostavo, okužene datoteke pa se samodejno odstranijo.
Datoteke se preverjajo na infrastrukturi EthicsPortala — nobeni podatki iz datotek se ne pošiljajo storitvam preverjanja tretjih oseb.
Prijave po e-pošti #
Vsaka pot za prijavo ima svoj e-poštni naslov na report.ethicsportal.eu. E-poštno sporočilo, poslano nanj, postane zadeva v tej poti za prijavo, enako kot prijava prek spletnega obrazca za prijavo. Prijave po e-pošti so privzeto vklopljene. Organizacija jih lahko izklopi v nastavitvah poti za prijavo; naslov nato v eni minuti začne zavračati nova sporočila.
- Lasten poštni strežnik. Pošto za te naslove prejema lasten poštni strežnik EthicsPortala na isti infrastrukturi v Nemčiji, ne ponudnik e-pošte tretje osebe. Sprejema samo pošto za naslove poti za prijavo, vse druge naslove zavrne in ničesar ne posreduje naprej.
- Šifriranje prenosa. Strežnik ponuja TLS 1.2 ali novejši s certifikatom Let’s Encrypt. TLS je oportunističen: strežnik pošiljatelja, ki ga ne podpira, pošto dostavi nešifrirano.
- Naslov pošiljatelja je skrit pred obravnavalci. Naslov pošiljatelja je shranjen šifrirano in obravnavalcem ni nikoli prikazan, ne v zadevi ne v njenem PDF-ju ali izvozih. EthicsPortal ga uporablja samo za pošiljanje potrditvenega sporočila prijavitelju in obvestil o novih sporočilih.
- Dostop brez e-pošte. Potrditveno sporočilo vsebuje oznako zadeve in enkratno geslo za varni nabiralnik, ki se ob prvem vpisu zamenja. Dodatna vprašanja in odgovori ostanejo v nabiralniku, ne v e-pošti. Če lastna domena pošiljatelja v svoji politiki DMARC ta naslov zavrača, se prijava ohrani, geslo pa se ne pošlje. Po 10 prijavah po e-pošti eni organizaciji ali 50 v celotnem EthicsPortalu v 24 urah se nadaljnje prijave shranijo, vendar se ne pošlje nobeno e-poštno sporočilo: ne potrditev prijavitelju ne obvestilo po e-pošti skrbnikom, ki primer še vedno vidijo v aplikaciji.
- Priloge. Datotekam se metapodatki odstranijo in se preverijo glede virusov enako kot pri nalaganju prek obrazca. Datoteke, ki jih ni mogoče sprejeti (druga vrsta, prevelike ali jih ni mogoče očistiti), se izpustijo, prijavitelj pa izve, koliko jih je.
- Kopije. Sporočilo čaka v čakalni vrsti poštnega strežnika na istem strežniku le, dokler ga aplikacija ne sprejme. Aplikacija hrani izvirno e-poštno sporočilo šifrirano, dokler zadeva ni shranjena, nato ga izbriše. Dnevniki poštnega strežnika beležijo naslove poti za prijavo, nikoli pa naslova pošiljatelja.
- Preverjanje pošiljatelja. SPF, DKIM in DMARC se preverjajo na infrastrukturi EthicsPortala. Nobeni podatki iz sporočil se ne pošiljajo zunanjim storitvam za preverjanje neželene pošte ali ugleda.
E-pošta ni anonimna: prijaviteljev ponudnik e-pošte in poštni sistemi organizacije, če piše s službenega računa, lahko hranijo kopije in zapise sporočila. Potrditveno sporočilo to navaja in prijavitelje, ki želijo ostati anonimni, usmeri na spletni obrazec za prijavo.
E-pošta za obvestila #
Spletni obrazec za prijavo ima neobvezno polje za e-pošto za obvestila. Na ta naslov prideta potrditveno sporočilo in obvestilo, ko obravnavalec napiše sporočilo, nikoli pa vsebina prijave. Naslov je shranjen šifrirano in ga, enako kot naslova pošiljatelja prijave po e-pošti, ne prikaže nobena stran za obravnavalce, noben PDF in noben izvoz. Polje ostane na voljo, ko prijavitelj odda prijavo anonimno. Samo če prijavitelj izklopi anonimno oddajo in označi »moj e-poštni naslov pokaži tudi obravnavalcem«, naslov postane kontaktni naslov, ki ga obravnavalci vidijo.
Anonimnost obravnavalca #
Prijavitelji nikoli ne vidijo pravih imen ali e-poštnih naslovov oseb, ki obravnavajo njihovo prijavo. Vsa sporočila obravnavalcev so prikazana kot »Obravnavalec«. To varuje identiteto obravnavalca in preprečuje napade s socialnim inženiringom.
Brez sledenja #
EthicsPortal ne uporablja sledilnih piškotkov tretjih oseb, oglaševalskih slikovnih pik ali skriptov za prstne odtise. Samo na trženjski spletni strani uporabljamo Plausible Analytics, ki se streže prek naše lastne domene. Ne nastavlja piškotkov in ne shranjuje naslovov IP. Cloudflare, ki dostavlja trženjsko spletno stran, obdeluje metapodatke zahtev, vključno z naslovi IP, kot je opisano v obvestilu o zasebnosti. Sama pot za prijavo nima nobene analitike.
Trenutno stanje zagotovil #
EthicsPortal na tem spletnem mestu trenutno ne trdi, da ima akreditiran certifikat ISO 27001. Trenutno tudi ne objavlja neodvisne revizije arhitekture anonimnosti s strani tretje osebe. Če se to spremeni, bosta tukaj objavljena obseg in datum.
Gradiva za varnostni pregled #
Stranke, ki potrebujejo gradiva za pregled v postopku nabave ali za pravni pregled, jih lahko zahtevajo med nabavo. Razpoložljiva gradiva lahko vključujejo podpisano pogodbo o obdelavi podatkov, dokazila iz registra in o davčni številki, izpolnjen varnostni vprašalnik ter pisne odgovore o postopkih varnostnega kopiranja in obnovitve, privilegiranem dostopu do produkcije in odzivanju na incidente.
Nadzor dostopa #
Avtorizacija se izvaja na ravni aplikacije s politikami Pundit.
| Vloga | Vidi prijave | Upravlja nastavitve organizacije | Dodeljuje obravnavalce |
|---|---|---|---|
| Skrbnik | Vse prijave | Da | Da |
| Obravnavalec | Prijave, ki so mu dodeljene ali pri katerih sodeluje | Ne | Ne |
| Opazovalec | Samo za branje, za revizorje in pravne svetovalce | Ne | Ne |
- Obravnavalci ne vidijo prijav, ki jim niso dodeljene in pri katerih ne sodelujejo. Udeležence izrecno doda skrbnik ali glavni obravnavalec (na primer ob vključitvi pravne ali kadrovske službe).
- Prijavitelji nimajo uporabniškega računa — svojo prijavo odprejo z oznako zadeve (
WB-XXXX-XXXX) in geslom, ki ga sistem ustvari ob oddaji prijave. - Vsako dejanje v krmilniku preverja avtorizacijo. Poskusi nepooblaščenega dostopa so blokirani in zabeleženi.
Dvostopenjsko preverjanje #
Računi obravnavalcev in skrbnikov lahko omogočijo dvostopenjsko preverjanje na podlagi TOTP prek katere koli standardne aplikacije za preverjanje (Google Authenticator, 1Password, Authy in združljive alternative). Ko je omogočeno, prijava zahteva osnovni prijavni podatek in menjajočo se 6-mestno kodo.
Vpis prijaviteljev #
Prijavitelji se vpišejo z oznako zadeve in geslom. Oznaka zadeve identificira zadevo in ni tajna. Geslo sestavlja 16 naključnih števk, ki jih sistem ustvari ob oddaji prijave; prijavitelj ga ne izbira. Shranjeno je le kot izvleček bcrypt, zato ga nihče ne more obnoviti, EthicsPortal pa nima funkcije, s katero bi ga prijavitelj, obravnavalec ali operater platforme lahko ponastavil. Prijavitelj, ki geslo izgubi, odda novo prijavo in v njej navede oznako zadeve. Prijave, oddane pred 18. oktobrom 2026, ohranijo 6-mestno geslo, ki ga je prijavitelj takrat izbral, in to geslo še vedno deluje. Nabiralnik za spremljanje in objava sporočil sta zaščitena s sejo za tem preverjanjem, zato sama razkrita oznaka zadeve ne omogoča branja prijave ali lažnega predstavljanja prijavitelja.
Takoj po oddaji stran s potrdilom prikaže naslov varnega nabiralnika, oznako zadeve in geslo. V tem brskalniku ostane na voljo le, dokler je zadeva odklenjena, in izgine, ko se nabiralnik zaklene po 30 minutah nedejavnosti ali ko ga prijavitelj zapusti. Na strani za vpis je polje za geslo vidno besedilno polje z izklopljenim samodejnim izpolnjevanjem, ne pa zakrito polje za geslo, da brskalniki ne bi ponudili shranjevanja gesla; brskalnik, ki ga upravlja delodajalec, bi ga sicer lahko sinhroniziral z računom delodajalca. Lepljenje deluje, presledki pa se ne upoštevajo.
Kadar osebje zabeleži prijavo, prejeto po telefonu, na osebnem srečanju, s pismom ali po e-pošti, prijavitelj pa želi zadevo spremljati na spletu, sistem ustvari enkratno geslo, ki ga obravnavalec preda prijavitelju. Deluje samo enkrat: ob prvem vpisu prijavitelja ga strežnik nadomesti z novim geslom, ki ga vidi samo prijavitelj.
Dostop prijavitelja se konča, ko izbere »Izhod«, ali po 30 minutah brez dejavnosti. Približno dve minuti pred zaklepom opozorilo ponudi, da nabiralnik ostane odprt; če se nihče ne odzove, primer izgine z zaslona. Dostop je shranjen v šifriranem piškotku v brskalniku prijavitelja, strežnik pa ne hrani seje prijavitelja.
Življenjski cikel seje #
Vsaka avtenticirana seja ob vsaki zahtevi zabeleži last_seen_at (z zakasnitvijo). Uporabniki lahko v nastavitvah računa pregledajo svoje aktivne seje, vidijo, kdaj je bila vsaka nazadnje dejavna, posamezno preklicejo katero koli sejo ali se naenkrat odjavijo iz vseh drugih sej.
Seje potečejo samodejno po 14 dneh nedejavnosti. Naslednja zahteva iz nedejavne seje uniči zapis na strežniku, počisti piškotek in zahteva ponovno overitev prek nove čarobne povezave. Nočno opravilo z isto časovno omejitvijo pomete zapuščene seje, tako da se user_agent in ip_address ne hranita dlje od okna nedejavnosti, tudi če se uporabnik nikoli ne vrne.
Overitev s čarobno povezavo omejuje obseg škode dolgotrajnih sej: ukraden piškotek seje ne da prijavnih podatkov za ponovno uporabo, ponovna overitev pa zahteva dostop do e-pošte.
Dostop članov in odhod iz organizacije #
Dostop do organizacije se izvaja na meji zahteve. Ko je član deaktiviran:
- Dostop do organizacije je takoj zavrnjen, tudi na prej shranjenih naslovih URL.
- Dodelitve odprtih prijav se odvzamejo.
- Udeležbe se odstranijo.
- Zgodovina revizijskega dnevnika, ki jo je mogoče pripisati članu, se ohrani.
- Deaktivirani član je o tem obveščen.
- Ponovna aktivacija ne obnovi samodejno prejšnjega dostopa do zadev.
Lastnika organizacije, zadnjega aktivnega skrbnika in imenovanega zaupnika za pot za prijavo ni mogoče deaktivirati. Vsi dogodki deaktivacije in ponovne aktivacije se zapišejo v revizijski dnevnik, v katerega je mogoče samo dodajati.
Odstranitev člana članstvo deaktivira in ga ne izbriše, tako da revizijska sled in zgodovina prijav ostaneta razrešljivi. Članstvo se trdo izbriše samo, ko je izbrisan članov lastni račun ali sama organizacija.
Izbris računa #
Članu, ki zapre svoj račun, se e-poštni naslov nadomesti z neuporabnim nadomestkom, njegov avatar, prijavni podatki za dvostopenjsko preverjanje, seje, žetoni API in nastavitve pa se trajno odstranijo; račun se ne more več overiti in z njim ni več mogoče stopiti v stik. Če račun v organizaciji ni nikoli deloval, se zapis izbriše v celoti. Če je, članovo ime ostane, njegova članstva pa se deaktivirajo, tako da ohranjeni zaznamki o zadevah, sporočila in revizijski vnosi ostanejo pripisljivi. Dobo hrambe določi upravljavec po svojih dokumentiranih navodilih in veljavnem pravu; pravice do izbrisa po GDPR ostajajo predmet morebitnih izjem zaradi zakonskih obveznosti ali pravnih zahtevkov.
Očiščen račun se ne more overiti po nobeni poti: ne s čarobno povezavo, ne s trditvijo SSO, ne z žetonom API.
Omejevanje pogostosti #
Javne končne točke poti za prijavo imajo omejeno pogostost za preprečevanje zlorab in napadov s preštevanjem:
| Končna točka | Omejitev |
|---|---|
| Oddaja prijave | 5 na 10 minut na zgoščeni naslov IP |
| Iskanje zadeve (oznaka zadeve + geslo) | 10 na 3 minute na zgoščeni naslov IP |
| Iskanje zadeve (oznaka zadeve + geslo) | 10 na 10 minut na oznako zadeve in zgoščeni naslov IP |
| Oddaja sporočila | 10 na 3 minute na zgoščeni naslov IP |
Omejevanje pogostosti uporablja zgoraj opisani zgoščeni zapis naslova IP s ključem — naslov IP se zanj ne shranjuje. Omejitev na oznako zadeve uporablja kot ključ kar oznako zadeve, ki se iz istega predpomnilnika izbriše v 15 minutah.
Revizija in skladnost #
Revizijska sled, v katero je mogoče samo dodajati #
Določeni dogodki v zvezi s prijavami in računi se beležijo s:
- Časovnim žigom (UTC)
- Izvajalcem (kateri uporabnik ali sistemski proces je dejanje izvedel)
- Vrsto dejanja (na primer prijava ustvarjena, stanje spremenjeno, sporočilo poslano, obravnavalec dodeljen, prijava izvožena ali izbrisana). Vsak vpogled obravnavalca v posamezno prijavo se beleži, združen na en vnos na obravnavalca na prijavo na 24 ur, enako pa se beležijo tudi naknadni vpogledi prijavitelja. Branja drugih virov se ne beležijo.
V vnose revizijskega dnevnika je mogoče samo dodajati. Noben uporabnik, tudi skrbnik organizacije ne, ne more urediti vnosa ali posamično izbrisati: sprožilci PostgreSQL zavrnejo spremembo in krajšanje na ravni podatkovne baze. Vnosi se odstranijo le s ciklom hrambe ali ob izbrisu same organizacije, privilegiran poseg v bazo pa ostaja dokumentirano preostalo tveganje (register tveganj R-08). Celotna revizijska sled je za regulativni pregled vključena v izvoze zadev v PDF.
Hramba podatkov #
Organizacije si same nastavijo dobo hrambe: 12, 24, 36, 48 ali 60 mesecev po zaključku prijave. Ko doba hrambe poteče, opravilo v ozadju prijavo in z njo povezane podatke izbriše iz produkcije; varnostne kopije potečejo po ločenem dokumentiranem življenjskem ciklu.
E-poštna sporočila prijavitelju ne pustijo zapisa v zgodovini pošiljanja EthicsPortala, zato po izbrisu prijave ne ostane noben naslov prijavitelja.
Za izbiro obdobja, ki ustreza omejitvi shranjevanja po GDPR in veljavnim nacionalnim pravilom o vodenju evidenc, ostaja odgovoren upravljavec.
Zaščita pred CSRF #
Vse oddaje obrazcev so pred ponarejanjem zahtev med spletnimi mesti zaščitene z vgrajenimi žetoni CSRF v Railsu.
Varen razvojni življenjski cikel #
EthicsPortal pri spremembah, ki se dotikajo storitve, sledi dokumentiranemu razvojnemu življenjskemu ciklu. Faze so navedene tukaj, da jih lahko pregledovalec v postopku nabave preslika v kontrole ISO/IEC 27001:2022 A.8.25–A.8.29 (za celotno preslikavo glejte preslikavo kontrol).
| Faza | Praksa |
|---|---|
| Arhitektura in zasnova | Funkcije, ki uvajajo nove tokove osebnih podatkov, podobdelovalce ali obsege avtorizacije, se pred izvedbo ovrednotijo glede na zaveze o šifriranju, nadzoru dostopa in revizijski sledi, dokumentirane na tej strani. |
| Pregled sprememb | Vsaka produkcijska sprememba se pred namestitvijo preveri po pisnem kontrolnem seznamu (pokritost šifriranja, obseg avtorizacije, oddajanje v revizijski dnevnik, potrjevanje vnosa, ravnanje s skrivnostmi). Izvrševanje je avtomatizirano in ne diskrecijsko: celoten nabor testov in statična analiza tečeta ob vsaki spremembi in ob neuspehu ustavita namestitev. Nabor testov teče na gostovanem izvajalniku CI ali na razvijalčevi delovni postaji, pri čemer se dokončan tek zabeleži kot stanje oddaje, ki ga cevovod preveri, preden gostovani tek preskoči. Vloge pri odobritvi sprememb so opisane med pregledom v postopku nabave. |
| Varno programiranje | Koda privzeto uporablja obrambne mehanizme na ravni ogrodja — parametrizirane poizvedbe prek ActiveRecord, močne parametre, ubežne nize v pogledih, žetone CSRF, šifriranje na ravni atributov, avtorizacijo Pundit na meji krmilnika. Odstopanja zahtevajo pisno utemeljitev. |
| Varnostno testiranje v razvoju | Statična analiza (Brakeman, bundler-audit, importmap audit) teče ob vsaki spremembi. Testi pokrivajo poti avtorizacije, invariante šifriranja pri hrambi, oddajanje v revizijski dnevnik in izvrševanje omejitev pogostosti. Za celotno orodjarno glejte obvladovanje odvisnosti in popravkov. |
| Ločevanje okolij | Produkcijsko in neprodukcijska okolja so izolirana. Zunaj produkcije se ne uporabljajo nobeni produkcijski osebni podatki; pripravljalno in razvojno okolje uporabljata sintetične podatke. |
| Odzivanje na ranljivosti | Prijave so potrjene v 2 delovnih dneh (glejte odgovorno razkritje). Cilji: kritične težave odpravljene v 7 dneh, visoke v 30, srednje v 90. Potrjene težave, ki prizadenejo uvedene stranke, se sporočijo prek registra incidentov, kadar izpolnjujejo merila obsega registra. |
Obvladovanje odvisnosti in popravkov #
EthicsPortal ne namešča programskih komponent ob koncu življenjske dobe. Aplikacija teče na dejavno podprtih izdajah Railsa, Rubyja, PostgreSQL in osnovnega operacijskega sistema; varnostne izdaje iz nadrejenih projektov se nameščajo sproti.
Odvisnosti se neprekinjeno preverjajo v neprekinjeni integraciji:
- Brakeman ob vsaki spremembi označi ranljivosti, značilne za Rails.
- bundler-audit preveri Gemfile glede na zbirko Ruby Advisory Database ob vsaki spremembi in znova dnevno, tako da so novo razkrita opozorila ujeta tudi, ko se koda ni spremenila.
importmap auditob vsaki spremembi in znova dnevno pregleda uvoze JavaScripta glede znanih ranljivosti.- Dependabot tedensko odpira zahtevke za zastarele dragulje Ruby in dejanja GitHub, združene po manjših in popravnih posodobitvah.
Kontrole dobavne verige omejujejo, kaj lahko doseže ogrožena izdaja odvisnosti:
- Čakalna doba. Nove različice draguljev Ruby se prevzamejo šele, ko so javno objavljene tri dni; posodobitve različic prek Dependabota čakajo 3, 7 ali 14 dni za izdaje patch, minor in major. Ugrabljene izdaje so običajno umaknjene v tem obdobju.
- Pripeta dejanja CI. Vsak korak dejanj GitHub je pripet na celoten SHA commita, zato preusmerjena oznaka ne more spremeniti tega, kar se izvaja.
- Preverjeni prenosi. Binarne datoteke, prenesene med gradnjo slike vsebnika, se preverijo glede na pripeto kontrolno vsoto SHA-256.
- Nadzorovane samodejne posodobitve. Zahtevki, ki jih odpre Dependabot, se samodejno združijo šele, ko uspešno prestanejo celoten nabor testov in statično analizo.
Komponente, ki pri nadrejenem projektu dosežejo konec življenjske dobe, se zamenjajo ali nadgradijo, preden se njihovo okno podpore zapre.
Infrastruktura #
| Komponenta | Ponudnik | Lokacija |
|---|---|---|
| Aplikacijski strežnik in podatkovna baza | Hetzner | Nürnberg, Nemčija (EU) |
| Hramba datotek | Hetzner Object Storage | Nürnberg, Nemčija (EU) |
| Varnostna kopija priloženih datotek | Hetzner Object Storage | Falkenstein, Nemčija (EU) |
| Transakcijska e-pošta | Mailjet | Francija (EU) |
| Obdelava plačil | Stripe | Irska; druge države ob veljavnih zaščitnih ukrepih — glejte obvestilo o zasebnosti |
- Hramba osnovnih podatkov o prijavah in zadevah je v Evropski uniji. Dostava e-pošte in telemetrija aplikacije imata ločeni verigi nadaljnjih dobaviteljev; glejte pogodbo o obdelavi podatkov.
- Na strežnikih EthicsPortala se ne hranijo številke kreditnih kartic ali plačilni podatki. Vse plačilne podatke obdeluje Stripe.
- Mailjet pošilja obvestila obravnavalcem ter neobvezna potrdila in obvestila o novih sporočilih prijaviteljem. Obvestila prijaviteljem vsebujejo e-poštni naslov prejemnika, oznako zadeve in povezavo do prijave, ne pa vsebine prijave. Potrdilo o prejemu prijave, poslane po e-pošti, vsebuje tudi enkratno geslo za varni predal, ki se zamenja ob prvi prijavi prijavitelja. Nadaljnja podporna veriga Mailjeta lahko vključuje dostop zunaj EGP; glejte pogodbo o obdelavi podatkov.
- Trženjska stran se streže prek Cloudflare (CDN, Združene države); pot za prijavo in vmesnik za obravnavalce ne. Ta ločena obdelava na javni strani in njeni zaščitni ukrepi za prenose so opisani v obvestilu o zasebnosti, ne na seznamu podobdelovalcev v pogodbi o obdelavi podatkov s stranko.
Varnostne kopije in obnovitev #
EthicsPortal upravlja tri dopolnjujoče se plasti varnostnih kopij, vse hranjene znotraj EU:
| Plast | Kaj | Kje | Hramba |
|---|---|---|---|
| Podatkovna baza | Dnevni izvozi PostgreSQL prek pripomočka Kamal, ki so pred nalaganjem na gostitelju šifrirani z GnuPG simetrično AES-256 | Hetzner Object Storage, Nürnberg (EU) | 21 dni za trenutne različice; izbrisane različice potečejo po dodatnih 7 dneh |
| Strežnik | Polni posnetki diska gostitelja aplikacije | Hetzner Cloud, Nürnberg (EU) | 7 dni |
| Priložene datoteke | Vsaka šifrirana priložena datoteka se z lastnim ključem za posamezno datoteko kopira v drugo vedro z različicami | Hetzner Object Storage, Falkenstein (EU) | Dokler priložena datoteka obstaja; prejšnje različice 28 dni. Izvirni glasovni posnetki se izbrišejo v celoti, brez hranjenja prejšnjih različic |
Cilji obnovitve. Cilj točke obnovitve (RPO) je 24 ur. Cilj časa obnovitve (RTO) je 4 ure. Ta cilja sta navedena tudi v sporazumu o ravni storitve.
Preizkušanje obnovitve. Vaja obnovitve teče samodejno vsak mesec prek delovnega toka CI in na zahtevo ter najnovejši izvoz obnovi v enkratno okolje. Izvoz dešifrira, ga obnovi, vsako tabelo primerja z delujočo produkcijo, nato pa aplikacijo zažene na obnovljeni podatkovni bazi, da potrdi, da se šifriran stolpec še vedno dešifrira, da se ena šifrirana priložena datoteka odpre s ključem iz obnovljenega izvoza in da ima vsaka priložena datoteka, starejša od ene ure, kopijo na lokaciji varnostne kopije, pri čemer se ena kopija odpre in preveri glede na svojo kontrolno vsoto — samo število vrstic ne loči uporabne varnostne kopije od šifropisa, katerega ključ se ne ujema več. Svežina varnostnih kopij se spremlja neprekinjeno (opozorilo, če je najnovejši izvoz starejši od 36 ur).
Šifriranje. Hetzner navaja, da Object Storage objektov pri hrambi privzeto ne šifrira, zato se izvozi podatkovne baze šifrirajo, preden zapustijo gostitelja: GnuPG simetrično AES-256, geslo pa hrani le postopek varnostnega kopiranja in je deponirano zunaj stroja. Polja aplikacijske ravni, šifrirana z Rails ActiveRecord Encryption, ostanejo znotraj vsakega izvoza ločeno šifrirana. Priložene datoteke so pri hrambi šifrirane s ključem za vsako posamezno datoteko (glejte priložene datoteke). Ti ključi obstajajo le v podatkovni bazi, zato jih vsebuje vsak šifriran izvoz. Same datoteke se v izvoz ne kopirajo. Vsaka je shranjena v Nürnbergu in z istim ključem kopirana v drugo vedro v Falkensteinu; na obeh lokacijah se prejšnje različice hranijo 28 dni.
Operativni pregled #
Nekatera operativna gradiva se delijo med pregledom v postopku nabave in se v celoti ne objavljajo na odprtem spletu, ker vsebujejo podrobnosti o infrastrukturi in odzivanju, ki so primernejše za nadzorovano razkritje.
Teme, na voljo na zahtevo med nabavo, vključujejo:
- Povzetek privilegiranega dostopa do produkcije
- Delovni tok odzivanja na incidente in stike za eskalacijo
- Odgovore glede neprekinjenega poslovanja ter odhoda in izvoza podatkov stranke
Odgovorno razkritje #
Če odkrijete varnostno ranljivost v EthicsPortalu, jo prijavite na security@ethicsportal.eu. Prosimo vas, da:
- Ranljivosti ne razkrijete javno, preden imamo priložnost, da jo odpravimo.
- Navedete dovolj podrobnosti, da težavo ponovimo in popravimo.
- Ne dostopate do podatkov drugih strank in jih ne spreminjate.
- Ne izvajate napadov za zavrnitev storitve ali množičnih samodejnih pregledov, ne poskušate socialnega inženiringa proti našemu osebju in ne oddajate prijav prek poti za prijavo katere koli stranke.
Vašo prijavo bomo potrdili v 2 delovnih dneh in si prizadevamo potrjene ranljivosti hitro odpraviti.
Brez plačane nagrade za napake. Razkritje ni nagrajeno: za prijave ranljivosti ne plačujemo ter kot pogoj za njihov prejem ne podpisujemo sporazumov o nerazkrivanju, ne dogovarjamo poslovnih pogojev in ne sprejemamo klicev. Na zgornji naslov pošljite prizadeto sredstvo, korake za ponovitev in učinek, ki ste ga ugotovili.
Zadnja posodobitev: