Come proteggi olisticamente un servizio Web dagli attacchi di rete e MITM?

1

Ho diversi servizi web finanziari a cui è possibile accedere tramite HTTPS, tuttavia i dispositivi client potrebbero accedere ai servizi Web tramite WiFi non trusted, tramite proxy discutibili e, eventualmente, toR exit node.

Domanda

Come posso proteggere la chiamata dell'API di Javascript, la risposta e l'identità dell'utente?

In particolare, sono interessato a garantire il non ripudio olistico, la riservatezza, l'integrità della connessione end-to-end.

Il mio obiettivo è rendere disponibile un servizio Web che può essere utilizzato da siti Web basati su desktop e anche da app mobili.

    
posta random65537 29.12.2012 - 16:57
fonte

2 risposte

2

TLS / SSL

Il minimo di sicurezza che un servizio web dovrebbe avere deve essere disponibile su una connessione HTTPS. Il certificato deve essere valido (non scaduto, non autofirmato).

Idealmente il servizio HTTP è disabilitato.

Utilizza intestazioni HTTPSTS

L'intestazione HTTP Strict Transport Security deve essere aggiunta per garantire che tutte le future richieste a quell'host si verifichino su HTTPS. Questa tecnologia aiuta a prevenire attacchi man in the middle con strumenti di attacco come SSLStrip.

Verifica che TLS sia configurato correttamente

Verifica la configurazione TLS del server e risolvi eventuali avvisi critici in modo appropriato.

Aggiungi cruft alle risposte JSON

Unparsable cruft viene utilizzato da Google, Facebook e altri per prevenire determinati attacchi javascript.

Imposta il flag di sicurezza su tutti i cookie

L'impostazione del flag di sicurezza su tutti i cookie impedisce la "perdita" involontaria di dati preziosi a potenziali aggressori.

Imposta solo HTTP per tutti i cookie di autenticazione

Il flag Solo HTTP è improprio e non significa che il cookie verrà inviato in modo non corretto, piuttosto significa che il cookie non è disponibile per Javascript e disponibile solo per il consumo dal server.

Blocca l'utilizzo per indirizzo IP

A seconda del pubblico di destinazione, limita l'utilizzo del servizio per IP sorgente.

Monitor

Monitora le richieste al secondo, per utente e guasti al secondo, per utente.

    
risposta data 29.12.2012 - 17:10
fonte
1

I seguenti sono usati meno frequentemente, ma migliorano la mia risposta precedente

Certificati client

Un certificato client crittograferà l'intera sessione TLS con "autenticazione reciproca" e proteggerà la sessione dagli attacchi MITM e potrà essere utilizzata su reti non attendibili.

Utilizza DNSSec

Utilizza DNSSec per tutti i domini DNS utilizzati nell'applicazione, ovvero la posizione del servizio e tutti i CRL, AIA e percorsi OCSP nella catena

VPN

Le chiamate API su una VPN possono migliorare la sicurezza e, se la VPN richiede certificati distribuiti localmente, il vantaggio di sicurezza potrebbe essere lo stesso dei certificati client.

Una variante di questa risposta è utilizzare ToR con il server di destinazione che ha un indirizzo .onion, ma non è raccomandato per il pubblico in generale.

Se il servizio web utilizza SOAP, o WS-Security, considera l'utilizzo della sicurezza dei messaggi. La sicurezza dei messaggi è stata descritta come l'interpretazione WS- * di TLS ma all'interno di un payload XML. Ciò significa che queste chiamate SOAP possono essere utilizzate su un semplice HTTP e inoltrate su più intermediari non attendibili.

Avviso per gli utenti Javascript

Non tentare di utilizzare SOAP con sicurezza dei messaggi con Javascript. Non è possibile creare e gestire in modo sicuro la coppia di chiavi necessaria per i messaggi SOAP. Inoltre, ci sono molti altri problemi come l'utilizzo di più domini, l'analisi XML, ecc.

    
risposta data 29.12.2012 - 17:30
fonte

Leggi altre domande sui tag