Affluences – Piano di Sicurezza Informatica

Affluences – Piano di Sicurezza Informatica

Oggetto del documento

Da Affluences, la sicurezza dei dati conservati costituisce una preoccupazione permanente. Una parte importante delle attività di concezione, sviluppo e test di Affluences è dedicata alla sicurezza dei sistemi realizzati. Questo documento descrive le disposizioni che Affluences mette in atto per rispondere alle esigenze di sicurezza aspettate dai clienti.

Descrizione del sistema

Affluences sviluppa e distribuisce una soluzione digitale interdisciplinare (web e mobile) pensata per migliorare l'accoglienza degli utenti comunicando in tempo reale i tempi di occupazione o di attesa. È disponibile anche un sistema di prenotazione.

Attraverso l'utilizzo dei prodotti Affluences, alcune informazioni qualitative e quantitative (necessarie per il corretto funzionamento dell'applicazione) possono essere inserite, salvate e ospitate sul sistema. Affluences attua una serie di misure tecniche e organizzative per garantirne la sicurezza.

Riepilogo delle esigenze

I dispositivi di sicurezza della soluzione Affluences rispondono alle 3 esigenze seguenti:

  • Riservatezza dei dati: Impossibilità da parte di terzi non autorizzati di intercettare e leggere i dati registrati e condivisi;
  • Integrità dei dati: Impossibilità da parte di terzi non autorizzati di modificare o eliminare i dati registrati;
  • Disponibilità dei dati: Garanzia dell’accesso ai dati per i soggetti autorizzati.

Per garantire la conformità a tali esigenze di sicurezza, Affluences prevede:

  • Soluzioni tecniche (concezione, sviluppo e configurazione) di prevenzione contro minacce e vulnerabilità;
  • Controlli di salvaguardia per ciò che concerne la sicurezza preventiva;
  • In caso di incidenti, delle azioni correttive.

Soluzioni tecniche preventive

Quadro generale

Per assicurare tali servizi, Affluences implementa delle soluzioni di sicurezza per i dati registrati nei 3 domini seguenti:

  • Sicurezza applicativa: disposizioni tecniche specifiche alla sicurezza dell’applicazione
  • Sicurezza di comunicazione: sicurezza della condivisione dei dati tra il navigatore dell’utente e il server dell’hosting dati
  • Sicurezza dell’hosting dei dati: disposizioni tecniche specifiche alla sicurezza dei server dell’hosting dei dati e del loro accesso

Sicurezza applicativa

Le soluzioni digitali di Affluences comportano alcune disposizioni relative alla sicurezza applicativa:

  • Coding security standards (pratiche corrette di concezione e sviluppo finalizzate a ridurre le vulnerabilità)
  • Copertura delle faglie applicative correnti
  • Sicurezza del sistema d’autentificazione
  • Gestione delle autorizzazioni
  • Password haching

Coding security standards

Le pratiche corrette di concezione e sviluppo finalizzate a ridurre le vulnerabilità applicative sono le seguenti:

  • Convalida degli accessi: Ogni accesso utente è soggetto a regole di convalida per garantire la coerenza e la non-nocività dei dati inviati prima di qualsiasi interazione con la base dei dati.
  • Cleancoding: Le pratiche corrette di clean coding sono sistematicamente effettuate per garantire il mantenimento e la sicurezza del sistema, in particolare i design patterns (MVC, adapter, mediator, decorator, facciata, ecc.) e i designs principles (Single responsibility principles, Don't Repeat Yourself, ecc.).
  • Automatizzazione dei test unitari: Ogni aggiornamento dell’applicazione è accompagnato da una serie di test automatizzati che implicano centinaia di “Test Cases” con lo scopo di assicurare una copertura massimale degli scenari di esecuzione (comprendenti test relativi a casi limite)
  • Errorlogging: Ogni bug in produzione è automaticamente registrato su un log dedicato con lo scopo di assicurare l’ottimizzazione continua del sistema.
  • Vincoli di integrità: Nell’ambito della progettazione di database relazionali, il modello logico dei dati (MLD) è controllato da un massimo di vincoli di integrità (unique key, not null, check, integrità referenziale, pk, fk, ecc.) per garantire la coerenza dei dati.
  • Deployment automatico: Ogni processo di deployment è automatizzato tramite uno script dedicato in cui le corrette pratiche di amministrazione e di ambiente di produzione sono capitalizzate continuamente (alterazione dei modelli dei dati, aggiornamento dei certificati SSL, ecc.)

Copertura delle vulnerabilità delle applicazioni più comuni

Il sistema prevede delle soluzioni che permettono di bloccare le faglie applicative correnti, tra cui:

  • XSS (Cross-site Scripting): Ogni accesso utente è soggetto a regole di pretrattamento che permettono l’escaping con lo scopo di neutralizzare gli attacchi XSS.
  • CSRF(Cross-Site Request Forgery): Ogni formulario predispone di gettoni di validità con lo scopo di assicurare che gli aggressori informatici non sfruttino le autorizzazioni di un utente autentificato per eseguire delle azioni a sua insaputa tramite un sito web terzo.
  • SQL Injection: Ogni comunicazione con il database dipende dall’ORM Django. Il codice SQL prodotto tramite questo modulo esula da tutti i parametri che possono essere controllati da utenti malintenzionati.
  • Session fixation: Le credenziali di accesso sono automaticamente associate a dei cookies con lo scopo di beneficiare dello standard W3C “same-origin policy” (divieto per i navigatori di accedere a un cookie attraverso un sito web terzo).

Sicurezza del sistema di autentificazione

Il sistema di autentificazione si basa sul modulo di autentificazione Passport (aggiornato ad ogni nuovo rilascio, vedi Procedure di aggiornamento tecnologico. Tale sistema di autentificazione include inoltre regole di rinforzo della sicurezza (convalida della password, attacchi forzati, notifiche di connessione, ecc.).

Gestione delle autorizzazioni

I diritti di accesso ai dati sono attribuiti ad ogni utente autentificato secondo il progetto a cui partecipa e tenendo conto del suo ruolo (gruppo creatività, incubazione, esecuzione, amministrazione, reporting). Le regole di gestione delle autorizzazioni sono ulteriormente verificate in front/back e sono incluse nei test (vedi Coding security standards).

Password haching

Ogni password è soggetta a una funzione di haching (funzione di haching SHA256 o bcrypt). Nessuna password decriptata è archiviata nel database.

Sicurezza di comunicazione

Protocollo utilizzato

Gli scambi dei dati tra il navigatore dell’utente e il server sono codificati con l’applicazione di un protocollo HTTPS che utilizza una funzione di cifratura AES 256.

Certificato

Il certificato HTTPS è fornito dall’organismo “Let’s Encrypt”.

Sicurezza dei server

Certificazioni

L'hosting dei dati è affidato alla società francese OVH, che garantisce un'infrastruttura certificata ISO27001, SOC I tipo 2 (SSAE 16 e ISAE 3402) e SOC 2 tipo II.

Territorialità

Tutti i dati sono ospitati su server sicuri situati a Gravelines e Strasburgo (Francia). OVH fornisce un certificato di territorialità su richiesta.

Gestione delle porte di accesso

I porti accessibili sono identificati e documentati formalmente. Ogni porto è associato a un servizio con relativa funzione precisata nella lista qui di seguito. Ogni porto è inoltre soggetto a regole di privacy che mettono in sicurezza e seguono le pratiche corrette in base alle documentazioni ufficiali.

Porto 443: corrisponde al protocollo HTTPS.

Porto 80: corrisponde al protocollo HTTP. È utilizzato per reindirizzare automaticamente al Porto 443 con lo scopo di garantire uno scambio sicuro dei dati.

Porto 22: è utilizzato sia per l’amministrazione dei prompt di comandi tramite il protocollo SSH che per lo scambio di documenti tramite il protocollo SFTP. Per non moltiplicare il numero dei porti accessibili, il porto 21 dedicato al protocollo FTP rimane inaccessibile.

Ogni altro porto di accesso al server è bloccato sulla base di regole IPTABLES. Ogni processo associato a un porto accessibile è bloccato se non possiede un ruolo utile al buon funzionamento del sistema.
Protezione DDoS

I server implementati beneficiano della protezione contro gli attacchi DDoS.

Registrazione degli eventi

Ogni evento relativo ai punti di accesso è archiviato da un sistema di aggiornamento. Vedi Procedure di vigilanza.

Backup

I server sono soggetti a un piano di backup regolari. Vedi Procedure di backup.

Procedure preventive

Affluences ha designato un responsabile della sicurezza informatica. Serve da interlocutore con i nostri clienti in merito a tutte le questioni di sicurezza. Affluences applica un piano di mantenimento al livello della sicurezza preventiva tramite:

  • Le procedure di aggiornamento tecnologico
  • Le procedure di backup dei dati ospitati
  • Le procedure di vigilanza degli accessi ai server
Procedure di aggiornamento tecnologico

I nostri strumenti sono soggetti ad aggiornamenti regolari con lo scopo di beneficiare delle ultime misure correttive di sicurezza.

Procedure di backup

Un piano di backup per i dati ospitati è implementato a 2 livelli:

  1. Un backup completo giornaliero
  2. Backup incrementali

Tre copie di questi backup sono conservate in tre diversi centri dati.

Procedure di vigilanza

Ogni evento relativo ai punti di accesso è archiviato da un sistema di aggiornamento che memorizza le informazioni necessarie alla rilevazione di intrusioni e alla diagnosi in caso di sospetto.

Un tool di sicurezza (fail2ban) è utilizzato per identificare i pattern di attacco e per bloccare l’accesso ai server agli indirizzi IP sospetti in caso di necessità.

Qualche regola di rilevazione di intrusioni sono listate qui di seguito a titolo informativo:

  • Numero di tentativi di connessione non riusciti superiore a una soglia predefinita (attacco bruteforce)
  • Numero di richieste insolite durante un periodo predefinito (attacco DDoS)
  • Modifica dei diritti di accesso ai documenti
  • Modifica dei diritti o della password degli utenti sistema
  • Tentativi di accesso a URL non pubblici

Procedure correttive

In caso di sinistro, Affluences applica un piano di soccorso che include le procedure correttive seguenti:

  • Ripristino del database ad uno stato anteriore
  • Ripristino del database in caso di sinistro
  • Piano di soccorso in caso di perdita dei dati
  • Riversibilità
Ripristino a uno stato anteriore

Su richiesta dei clienti, il piano di backup giornaliero (vedi Procedure di backup) consente di ripristinare il database ad uno stato precedente. 

Piano di soccorso in caso di perdita dei dati

In caso di sinistro (perdita dei dati, crash del server, ecc.), il piano di backup settimanale su un server indipendente (vedi Procedure di backup) permette di ripristinare il database ad uno stato anteriore al relativo incidente.

Piano di intervento in caso di intrusione illegale

In caso di rilevazione di un’intrusione illegale (vedi Procedure di vigilanza), Affluences applica il piano di intervento seguente:

  1. Blocco immediato dell’IP identificato come fonte dell’intrusione
  2. Recupero dei dati e diagnosi
  3. Analisi dei dati e diagnosi
  4. Correzione degli errori e applicazione delle azioni preventive
  5. Riavvio del sistema, se necessario
Reversibilità

Il sistema permette l’export dei dati ospitati in un formato leggibile Excel (csv, xls et xlsx).

Lista degli acronimi

  • AES – Advanced Encryption Standard
  • CSRF – Cross-Site Request Forgery
  • DDOS – Distributed Denial of Service
  • FTP – File Transfer Protocol
  • HHTP – Hypertext Transfer Protocol
  • HTTPS – HyperText Transfer Protocol Secure
  • ISAE - International Standards for Assurance Engagements
  • MLD – Modello Logico dei Dati
  • MVC – Model-view-controller
  • ORM – Object Relational Mapping
  • RSA – Rivest, Shamir, Aldeman (inventori)
  • SFTP – SSH File Transfert Protocole
  • SSAE – Statement on Standards for Attestation Engagements
  • SQL – Structured Query Language
  • SOC – Security Operating Center
  • SSH – Secure SHell
  • SSL – Secure Socket Layer
  • XSS – Cross Site Scripting
  • W3C – World Wide Web Consortium