Securitate #
EthicsPortal procesează date sensibile privind raportările interne. Această pagină descrie măsurile tehnice și organizatorice esențiale pentru evaluarea de securitate și conformitate.
Ultima actualizare: 2026-05-17.
Criptare #
Datele sensibile din raportări și din mesaje sunt criptate în repaus. Toate conexiunile la platformă folosesc HTTPS/TLS.
Măsura vizează în special:
- descrierea raportării;
- identitatea persoanei care raportează, dacă este furnizată;
- datele de contact;
- conținutul mesajelor dintre persoana care raportează și responsabilul de caz.
Protecția anonimatului #
Portalul public este proiectat pentru a reduce expunerea identității:
- raportarea poate fi trimisă fără nume și fără date de contact;
- metadatele identificabile din fișiere sunt eliminate înainte de stocare;
- interfața publică nu afișează identitatea responsabilului de caz;
- persoana care raportează revine în dosar cu un ID de caz și un cod PIN ales la trimitere.
Control de acces #
Accesul la dosare este separat pe roluri:
| Rol | Poate vedea dosare | Poate modifica setările organizației |
|---|---|---|
| Administrator | Da | Da |
| Responsabil de caz | Doar dosarele la care are acces | Nu |
Fiecare acțiune importantă este înregistrată în jurnalul de audit.
Ciclul de viață al sesiunii #
Fiecare sesiune autentificată înregistrează last_seen_at la fiecare cerere (cu debouncing). Utilizatorii își pot examina sesiunile active, pot vedea când a fost activă fiecare ultima dată, pot revoca individual orice sesiune sau se pot deconecta din toate celelalte sesiuni simultan din setările contului.
Sesiunile expiră automat după 14 zile de inactivitate. Următoarea cerere a unei sesiuni inactive distruge înregistrarea de pe server, șterge cookie-ul și impune reautentificarea printr-un nou link magic. Un job nocturn elimină sesiunile abandonate cu același prag, astfel încât user_agent și ip_address nu sunt păstrate dincolo de fereastra de inactivitate, chiar dacă utilizatorul nu se mai întoarce.
Autentificarea prin link magic limitează aria de impact a sesiunilor de lungă durată: un cookie de sesiune furat nu oferă o credențială reutilizabilă, iar reautentificarea necesită acces la e-mail.
Accesul membrilor și retragerea accesului #
Accesul la organizație este aplicat la limita cererii. Atunci când un membru este dezactivat:
- Accesul la organizație este respins imediat, inclusiv pe URL-urile salvate anterior.
- Atribuirile raportărilor deschise sunt anulate.
- Participările sunt eliminate.
- Istoricul jurnalului de audit atribuibil membrului este păstrat.
- Membrul dezactivat este notificat.
- Reactivarea nu restabilește automat accesul anterior la cazuri.
Ultimul administrator activ și proprietarul organizației nu pot fi dezactivați. Toate evenimentele de dezactivare și reactivare sunt scrise în jurnalul de audit doar pentru adăugare.
Membrii fără amprentă de conformitate (fără înregistrări în jurnalul de audit, fără atribuiri, fără participări) sunt șterși definitiv la eliminare; membrii cu amprentă sunt dezactivați soft astfel încât pista de audit să rămână rezolvabilă.
Audit și conformitate #
Jurnal de audit doar cu adăugare #
Fiecare acțiune din EthicsPortal este înregistrată cu:
- Marcaj temporal (UTC)
- Autor (utilizatorul sau procesul de sistem care a efectuat acțiunea)
- Tip de acțiune (raportare creată, schimbare de stare, mesaj trimis, alocare responsabil, vizualizare raportare, export raportare, ștergere raportare etc.)
Intrările din jurnalul de audit sunt doar cu adăugare. Nu pot fi modificate sau șterse de niciun utilizator, inclusiv administratorii organizației. Jurnalul complet de audit este inclus în exporturile PDF ale dosarului pentru revizuirea de către autoritățile de reglementare.
Retenția datelor #
Organizațiile își configurează propria perioadă de retenție: 12, 24, 36 sau 60 de luni după închiderea unei raportări. Când expiră perioada de retenție, raportarea și toate datele asociate (mesaje, anexe, intrări din jurnalul de audit) sunt șterse automat și definitiv de o sarcină de fundal.
Aceasta îndeplinește cerințele de limitare a stocării din GDPR (art. 5(1)(e)) și obligațiile de păstrare a evidenței din Directiva (UE) 2019/1937 (art. 17–18).
Protecție CSRF #
Toate trimiterile de formulare sunt protejate împotriva falsificării cererilor cross-site folosind jetoanele CSRF integrate ale Rails.
Fișiere și protecție malware #
Fișierele încărcate sunt tratate pentru a reduce riscul operațional:
- eliminarea metadatelor;
- verificări de siguranță în fluxul de procesare;
- blocarea accesului la fișiere care nu trec verificările tehnice.
Ciclu de dezvoltare securizat #
EthicsPortal urmează un ciclu de dezvoltare documentat pentru modificările care afectează Serviciul. Etapele sunt enunțate aici pentru ca un evaluator de achiziții să le poată corela cu controalele ISO/IEC 27001:2022 A.8.25–A.8.29.
| Etapă | Practică |
|---|---|
| Arhitectură și design | Funcționalitățile care introduc fluxuri noi de date cu caracter personal, subprocesatori sau scopuri de autorizare sunt evaluate înainte de implementare în raport cu angajamentele privind criptarea, controlul accesului și jurnalul de audit documentate pe această pagină. |
| Revizuirea codului | Modificările aduse în producție sunt revizuite în raport cu o listă de verificare scrisă (acoperirea criptării, scopul de autorizare, emiterea în jurnalul de audit, validarea intrărilor, gestionarea secretelor) înainte de implementare. Analiza statică rulează la fiecare modificare și blochează fuziunea în caz de eșec. |
| Programare securizată | Codul folosește implicit apărări la nivel de cadru — interogări parametrizate via ActiveRecord, parametri puternici, eludare la afișare în view-uri, jetoane CSRF, criptare la nivel de atribut, autorizare Pundit la limita controllerului. Devierile necesită justificare scrisă. |
| Testare de securitate în dezvoltare | Analiza statică (Brakeman
, bundler-audit
, importmap audit) rulează la fiecare modificare. Testele acoperă căile de autorizare, invarianții criptării în repaus, emiterea în jurnalul de audit și aplicarea limitelor de rată. |
| Separarea mediilor | Mediile de producție și non-producție sunt izolate. Datele cu caracter personal din producție nu sunt folosite în afara producției; mediile de staging și dezvoltare folosesc date sintetice. |
| Răspuns la vulnerabilități | Rapoartele sunt confirmate în 2 zile lucrătoare (vezi dezvăluirea responsabilă ). Ținte: probleme critice remediate în 7 zile, majore în 30, medii în 90. Problemele confirmate care afectează clienții implementați sunt raportate prin registrul de incidente când îndeplinesc criteriile registrului. |
Gestionarea dependențelor și a actualizărilor #
EthicsPortal nu implementează componente software ajunse la sfârșitul ciclului de viață. Aplicația rulează pe versiuni cu suport activ ale Rails, Ruby, PostgreSQL și ale sistemului de operare subiacent; actualizările de securitate din amonte sunt aplicate continuu.
Dependențele sunt scanate continuu în CI:
- Brakeman semnalează vulnerabilitățile specifice Rails la fiecare modificare.
- bundler-audit verifică Gemfile-ul față de Ruby Advisory Database la fiecare modificare și, în plus, zilnic conform unui program, astfel încât vulnerabilitățile nou divulgate să fie detectate chiar și fără modificări de cod.
importmap auditscanează importurile JavaScript pentru vulnerabilități cunoscute la fiecare modificare și, în plus, zilnic conform unui program.- Dependabot deschide săptămânal pull request-uri pentru gem-urile Ruby și pentru GitHub Actions învechite, grupate pe actualizări minore/de patch.
Componentele care ajung la sfârșitul ciclului de viață în amonte sunt înlocuite sau actualizate înainte de închiderea ferestrei de suport.
Găzduire și infrastructură #
Datele principale ale raportărilor sunt găzduite în Uniunea Europeană, pe infrastructură Hetzner în Germania. Procesarea plăților este realizată prin Stripe. E-mailurile tranzacționale sunt livrate prin servicii dedicate.
Portalul public de raportare nu folosește scripturi publicitare sau mecanisme de urmărire comercială.
Copii de rezervă și restaurare #
EthicsPortal operează două straturi complementare de copii de rezervă, ambele păstrate în UE:
| Strat | Conținut | Locație | Retenție |
|---|---|---|---|
| Baza de date | Copii zilnice criptate ale bazei de date PostgreSQL, printr-un accesoriu Kamal | Hetzner Object Storage, Nürnberg (UE) | 7 zile |
| Server | Instantanee complete ale discului serverului de aplicație | Hetzner Cloud, Nürnberg (UE) | 7 zile |
Obiective de recuperare. Obiectivul punctului de recuperare (RPO) este de 24 de ore. Obiectivul timpului de recuperare (RTO) este de 4 ore. Aceste obiective apar și în Acordul de nivel de serviciu .
Testarea restaurării. Un exercițiu de restaurare este efectuat cel puțin trimestrial într-un mediu de unică folosință. Ultimul exercițiu: 2026-05-14.
Criptare. Copiile bazei de date sunt criptate în repaus de către Hetzner Object Storage; câmpurile criptate la nivelul aplicației prin Rails ActiveRecord Encryption rămân criptate în copie.
Continuitate și răspuns la incidente #
EthicsPortal păstrează o abordare operațională directă:
- jurnal de audit pentru acțiuni relevante;
- proceduri de restaurare și continuitate gestionate operațional;
- notificarea clienților atunci când un incident material o impune.
Revizuire operațională #
Anumite materiale operaționale sunt partajate în etapa de revizuire pentru achiziții în loc să fie publicate integral pe web deschis, deoarece conțin detalii de infrastructură și de răspuns mai potrivite pentru dezvăluire controlată.
Subiecte disponibile la cerere în etapa de achiziție:
- Sumar al accesului privilegiat în producție
- Flux de răspuns la incidente și contacte de escaladare
- Continuitatea activității și răspunsuri privind dezafilierea/exportul clienților
Dezvăluire responsabilă #
Dacă descoperiți o vulnerabilitate de securitate în EthicsPortal, vă rugăm să o raportați la security@ethicsportal.eu . Vă solicităm să:
- Nu divulgați public vulnerabilitatea înainte să o putem aborda.
- Oferiți detalii suficiente pentru a reproduce și remedia problema.
- Nu accesați și nu modificați datele altor clienți.
Vom confirma raportul dvs. în 2 zile lucrătoare și vom urmări remedierea promptă a vulnerabilităților confirmate.
Ultima actualizare: