Quali proprietari di app devono eseguire mentre risolvono XSS per ridurre al minimo i rischi?

1

Ho inviato un rapporto pentest in cui ho segnalato XSS in alcune posizioni in un'applicazione. La direzione ha accettato il rischio. Hanno pianificato di rimediare al problema nei prossimi trenta giorni. Tuttavia, hanno chiesto che cosa deve essere fatto dalla loro parte in quei trenta giorni in modo da minimizzare il rischio mentre risolvono il problema. Si noti che l'applicazione è una risorsa altamente sensibile disponibile solo sulla rete dell'ufficio.

    
posta one 03.10.2016 - 19:36
fonte

2 risposte

1

Questa è principalmente una decisione aziendale. Ci sono due estremi:

  • Accetta il rischio - continua e spera che nessun hacker lo sfrutti.
  • Disattiva l'applicazione : nessuna possibilità che venga violata se è disattivata.

In pratica, il rischio di XSS su una rete interna è piuttosto basso. Se gli attaccanti esterni sono sulla rete, possono probabilmente fare cose peggiori. Gli insider malevoli tendono ad abusare degli accessi legittimi piuttosto che a dedicarsi all'hacking. D'altra parte, la disattivazione dell'applicazione potrebbe avere un impatto aziendale importante. Quindi la maggior parte delle aziende accetta questo rischio.

Esistono misure tecniche che possono mitigare il rischio. Ad esempio:

  • Installa un WAF - sebbene l'installazione e la messa a punto richiederanno probabilmente più di 30 giorni.
  • Modifica comportamento degli utenti : gli utenti devono chiudere tutti gli altri browser Windows (e le schede) mentre utilizzano l'applicazione interna e disconnettersi al termine. Ciò rende l'XSS nell'app interna non sfruttabile, sebbene sia un problema per gli utenti.

In definitiva, tuttavia, la tua azienda accetta di risolvere i problemi entro 30 giorni è una buona risposta. Un sacco di aziende prendono molto meno sul serio le falle di sicurezza nelle app interne.

    
risposta data 03.10.2016 - 20:48
fonte
0

Chiedi ai loro esperti di sicurezza o agli sviluppatori di back-end di creare un plug-in come HTMLCutter Plugin, in modo da filtrare e sanificare tutto l'input che viene fornito dall'utente prima di elaborare i loro input. I passaggi alternativi che è possibile eseguire sono

1) Hai bisogno di una libreria di codifica di sicurezza = > link - Libreria di codifica di Microsoft

2) Escape HTML prima di inserire dati non attendibili nel contenuto dell'elemento HTML

Cerca Implementazione di riferimento ESAPI su code.google.com

Comando String safe = ESAPI.encoder (). EncodeForHTML (request.getParameter ("input"));

3) Fuga di attributi prima di inserire dati non affidabili in attributi comuni HTML

String safe = ESAPI.encoder (). encodeForHTMLAttribute (request.getParameter ("input"));

4) Escape JavaScript prima di inserire dati non attendibili nei valori dei dati JavaScript

String safe = ESAPI.encoder (). encodeForJavaScript (request.getParameter ("input"));

5) Escape CSS e convalida rigorosamente prima di inserire dati non attendibili nei valori delle proprietà dello stile HTML

String safe = ESAPI.encoder (). encodeForCSS (request.getParameter ("input"));

6) Escape dell'URL prima di inserire dati non attendibili nei valori dei parametri URL HTML

String safe = ESAPI.encoder (). encodeForURL (request.getParameter ("input"));

7) Sanitizza il markup HTML con una libreria progettata per il lavoro

Puoi trovare il codice su github per HTMLSanitizer, Ruby on Rails Sanitizer, ecc.

8) Impedisci l'XSS basato su DOM

Suggerimenti aggiuntivi:

I) Usa flag cookie HTTPOnly

II) Implementa la politica di sicurezza del contenuto

III) Usa un sistema di modelli di auto-fuga

IV) Utilizzare X-XSS-Protection Response Header

Spero che questo aiuti a risolvere il problema.

    
risposta data 03.10.2016 - 20:05
fonte