L'API REST di Wordpress con CORS abilitata rappresenta un rischio per la sicurezza?

4

Dopo un'ispezione di sicurezza di un sito su cui è in esecuzione Wordpress con un'API REST, lo scanner ha contrassegnato la rotta / wp-json / come vulnerabilità a causa di una politica CORS molto flessibile che consente a terze parti di interagire con il servizio. Tuttavia, non riesco a trovare una fonte concreta di informazioni sensibili che potrebbero essere rubate senza richiedere ulteriori informazioni alla vittima. Ad esempio, l'API REST di Wordpress offre diversi modi per autenticare gli utenti, quindi ho pensato che forse uno di loro sarebbe stato vulnerabile.

  1. Autenticazione basata su cookie. Sembra essere utile solo per temi e plugin e l'utente deve fornire un nonce per avere accesso alle risorse.
  2. Autenticazione di base. Richiede un'intestazione codificata di base 64 con le credenziali dell'utente.
  3. OAuth. Deve essere configurato fornendo token ai client e registrando tali client nel servizio principale e penso che sia necessario fornire questo token in ogni richiesta.

Se hai altre idee o correzioni, faccelo sapere.

C'è qualche rischio per la sicurezza di avere un'API REST con CORS abilitato?

UPDATE:

Come ulteriore chiarimento, in questo caso particolare, le restrizioni Access-Control-Allow-Origin: * vengono aggirate programmaticamente impostando l'intestazione Access-Control-Allow-Origin in base all'intestazione Origin della richiesta. Di solito, questo sarebbe sufficiente per avere preoccupazioni, ma in questo caso, non sono sicuro che i meccanismi di autenticazione offerti dall'API REST siano sufficienti per proteggersi dalle vulnerabilità correlate a CORS.

    
posta Robert Smith 19.12.2016 - 05:20
fonte

1 risposta

2

CORS è un meccanismo comunemente frainteso e persino alcuni scanner di sicurezza sbagliano. Ad esempio alcuni segnaleranno Access-Control-Allow-Origin: * come un problema serio, senza rendersi conto che il browser non invierà credenziali (ad esempio cookie) con la richiesta (non è possibile combinare quel valore jolly con Access-Control-Allow-Credentials: true ).

Questo è il caso più comune, difficile dire se questo è ciò che è stato segnalato nel tuo caso senza i dettagli della tua politica CORS.

Il rischio principale che posso pensare di avere un'API REST con CORS sarebbe se un'origine non attendibile fosse elencata in ACAO, tu avessi ACAC: true set e un utente ha visitato l'origine non sicura mentre era autenticato sul sito e una richiesta è stato passato con i loro cookie al sito per consentire il recupero del contenuto protetto, in quanto è possibile visualizzare una configurazione abbastanza complessa.

Se desideri maggiori informazioni su CORS, ti consiglio di leggere questo e questo . Vale anche la pena notare che l'API REST di Wordpress potrebbe avere alcuni problemi di sicurezza, ad esempio, recupero di nomi utente validi senza autenticazione

    
risposta data 21.12.2016 - 13:33
fonte

Leggi altre domande sui tag