Rapporto sui test di penetrazione per lo scambio centralizzato

Sommario di gestione

Il team di Exchange centralizzato ha contattato Sayfer per eseguire test di penetrazione blackbox completi sulla loro applicazione Web e revisione whitebox per la loro architettura crittografica nel dicembre 2021.

Prima di valutare i servizi di cui sopra, abbiamo tenuto una riunione iniziale con il team tecnico di Centralized Exchange e abbiamo ricevuto una panoramica del sistema e degli obiettivi di questa ricerca.

Durante il periodo di ricerca di 4 settimane, abbiamo scoperto 10 vulnerabilità nel sistema. Le vulnerabilità più pericolose erano SQL injection e difetti nella logica aziendale.

L'impatto sul sistema è critico in quanto un utente malintenzionato potrebbe sfruttare alcune di queste vulnerabilità per sfruttare il sistema, modificando il proprio ruolo utente in "super_user" tramite l'iniezione SQL o abusando del sistema e rubando denaro dall'Exchange centralizzato utilizzando il meccanismo di aggiornamento del sistema degli anni '30.

Vulnerabilità per rischio

Alta – Minaccia diretta ai processi aziendali chiave.
Medio – Minaccia indiretta ai processi aziendali chiave o minaccia parziale ai processi aziendali.
Basso – Non esiste alcuna minaccia diretta. La vulnerabilità può essere sfruttata utilizzando altre vulnerabilità.
Informativo – Questo risultato non indica vulnerabilità, ma riporta un commento che segnala difetti di progettazione e implementazione impropria che potrebbero causare problemi a lungo termine.

Gravità
# di problemi
Alta
3
Medio
3
Basso
2
Informativo
0

Approccio

Introduzione

Il team di Centralized Exchange ha contattato Sayfer per eseguire test di penetrazione grey-box completi sull'applicazione Centralized Exchange e per eseguire il controllo di sicurezza white-box della logica aziendale e del codice di Centralized Exchange dal punto di vista della criptovaluta.

Questo rapporto documenta la ricerca svolta da Sayfer mirata alle risorse selezionate definite nell'ambito della ricerca. In particolare, questo report mostra la revisione della posizione di sicurezza per l'applicazione e il codice di Exchange centralizzato e le relative implementazioni dell'infrastruttura e dei processi.

 

Il ciclo di vita del nostro progetto di test di penetrazione:

01

Panoramica dell'ambito

02

Panoramica tecnica

03

Convalida dell'ambito

04

Modello di minaccia

05

Valutazione della sicurezza

06

Valutazione della sicurezza

Panoramica dell'ambito

Durante il nostro primo incontro e dopo aver compreso le esigenze dell'azienda, abbiamo definito lo scope dell'applicazione che risiede ai seguenti URL come scope del progetto:

  • █████████████████████
  • ████████████████████████████
  • ███████████████████████████████████
  • ████████████████████████████

I nostri test sono stati eseguiti dal 21/12/2021 al 17/01/2022

Non lasciare che sia troppo tardi!

Inizia la tua verifica con Sayfer

Convalida dell'ambito

Abbiamo iniziato assicurandoci che l'ambito definitoci dal cliente fosse tecnicamente logico. Decidere quale ambito è giusto per un dato sistema fa parte della discussione iniziale. Ottenere l'ambito giusto è la chiave per trarre il massimo valore commerciale dalla ricerca.

Modello di minaccia

Durante i nostri kickoff meeting con il cliente abbiamo definito gli asset più importanti che l'applicazione possiede.

Abbiamo definito che la più grande minaccia attuale per il sistema sta manipolando gli utenti e

████████ attività finanziarie.

Non lasciare che sia troppo tardi!

Inizia la tua verifica con Sayfer

Metodologia di valutazione della sicurezza

Sayfer utilizza OWASP WSTG come nostro standard tecnico durante la revisione delle applicazioni web. Dopo aver acquisito una conoscenza approfondita del sistema, abbiamo deciso quali test OWASP sono necessari per valutare il sistema.

Valutazione della sicurezza

Dopo aver compreso e definito l'ambito, eseguito la modellazione delle minacce e valutato i test corretti richiesti per controllare completamente l'applicazione per i difetti di sicurezza, abbiamo eseguito la nostra valutazione della sicurezza.

Raccolta di informazioni

Raccolta di informazioni Nome del test
WSTG-INFO-01 Condurre la ricognizione della scoperta dei motori di ricerca per la fuga di informazioni
WSTG-INFO-02 Server web di impronte digitali
WSTG-INFO-03 Esamina i metafile del server Web per perdite di informazioni
WSTG-INFO-04 Enumerare le applicazioni sul server Web
WSTG-INFO-05 Esaminare il contenuto della pagina Web per perdite di informazioni
WSTG-INFO-06 Identificare i punti di ingresso dell'applicazione
WSTG-INFO-07 Mappa i percorsi di esecuzione attraverso l'applicazione
WSTG-INFO-08 Framework di applicazioni Web per impronte digitali
WSTG-INFO-09 Applicazione Web per impronte digitali
WSTG-INFO-10 Mappa dell'architettura dell'applicazione

Test di gestione della configurazione e della distribuzione

Test di gestione della configurazione e della distribuzione Nome del test
WSTG-CONF-01 Testare la configurazione dell'infrastruttura di rete
WSTG-CONF-02 Testare la configurazione della piattaforma dell'applicazione
WSTG-CONF-03 Testare la gestione delle estensioni dei file per le informazioni riservate
WSTG-CONF-04 Esamina il vecchio backup e i file senza riferimenti per informazioni riservate
WSTG-CONF-05 Enumerare le interfacce di amministrazione dell'infrastruttura e dell'applicazione
WSTG-CONF-06 Prova i metodi HTTP
WSTG-CONF-07 Testare la sicurezza del trasporto HTTP Strict
WSTG-CONF-08 Testare la politica interdominio RIA
WSTG-CONF-09 Testare l'autorizzazione del file
WSTG-CONF-10 Test per Subdomain Takeover
WSTG-CONF-11 Prova l'archiviazione cloud

Test di gestione dell'identità

Test di gestione dell'identità Nome del test
WSTG-IDNT-01 Testare le definizioni dei ruoli
WSTG-IDNT-02 Processo di registrazione dell'utente di prova
WSTG-IDNT-03 Processo di provisioning dell'account di prova
WSTG-IDNT-04 Test per l'enumerazione degli account e l'account utente indovinabile
WSTG-IDNT-05 Test per la politica del nome utente debole o non applicata

Test di autenticazione

Test di autenticazione Nome del test
WSTG-ATHN-01 Test per le credenziali trasportate su un canale crittografato
WSTG-ATHN-02 Test per le credenziali predefinite
WSTG-ATHN-03 Test per il meccanismo di blocco debole
WSTG-ATHN-04 Test per bypassare lo schema di autenticazione
WSTG-ATHN-05 Test per la password ricordata vulnerabile
WSTG-ATHN-06 Test per le debolezze della cache del browser
WSTG-ATHN-07 Test per criteri password deboli
WSTG-ATHN-08 Test per risposta alla domanda di sicurezza debole
WSTG-ATHN-09 Test per funzionalità di modifica o ripristino password deboli
WSTG-ATHN-10 Test per un'autenticazione più debole in un canale alternativo

Test di autorizzazione

Test di autorizzazione Nome del test
WSTG-ATHZ-01 Includi file di attraversamento directory di prova
WSTG-ATHZ-02 Test per bypassare lo schema di autorizzazione
WSTG-ATHZ-03 Test per l'escalation dei privilegi
WSTG-ATHZ-04 Test per riferimenti a oggetti diretti non sicuri

Test di gestione della sessione

Test di gestione della sessione Nome del test
WSTG-SESS-01 Test per lo schema di gestione delle sessioni
WSTG-SESS-02 Test per gli attributi dei cookie
WSTG-SESS-03 Test per la fissazione della sessione
WSTG-SESS-04 Test per le variabili di sessione esposte
WSTG-SESS-05 Test per contraffazione di richieste cross-site
WSTG-SESS-06 Test per la funzionalità di logout
WSTG-SESS-07 Timeout della sessione di test
WSTG-SESS-08 Test per il puzzle della sessione
WSTG-SESS-09 Test per il dirottamento della sessione

Test di convalida dei dati

Test di convalida dei dati Nome del test
WSTG-INPV-01 Test per Reflected Cross Site Scripting
WSTG-INPV-02 Test per Stored Cross Site Scripting
WSTG-INPV-03 Test per la manomissione dei verbi HTTP
WSTG-INPV-04 Test per l'inquinamento dei parametri HTTP
WSTG-INPV-05 Test per SQL Injection
WSTG-INPV-06 Test per l'iniezione di LDAP
WSTG-INPV-07 Test per l'iniezione XML
WSTG-INPV-08 Test per l'iniezione SSI
WSTG-INPV-09 Test per l'iniezione di XPath
WSTG-INPV-10 Test per IMAP SMTP Injection
WSTG-INPV-11 Test per l'iniezione di codice
WSTG-INPV-12 Test per l'iniezione di comandi
WSTG-INPV-13 Test per l'inserimento di stringhe di formato
WSTG-INPV-14 Test per la vulnerabilità incubata
WSTG-INPV-15 Test per il contrabbando di splitting HTTP
WSTG-INPV-16 Test per richieste HTTP in entrata
WSTG-INPV-17 Test per l'iniezione di intestazione host
WSTG-INPV-18 Test per l'iniezione di modelli lato server
WSTG-INPV-19 Test per contraffazione di richieste lato server

Gestione degli errori

Gestione degli errori Nome del test
WSTG-ERRH-01 Test per la gestione impropria degli errori
WSTG-ERRH-02 Test per le tracce dello stack

Crittografia

Crittografia Nome del test
WSTG-CRYP-01 Test per la sicurezza del livello di trasporto debole
WSTG-CRYP-02 Test per Padding Oracle
WSTG-CRYP-03 Test per informazioni sensibili inviate tramite canali non crittografati
WSTG-CRYP-04 Test per la crittografia debole

Test di logica aziendale

Test di logica aziendale Nome del test
WSTG-BUSL-01 Testare la convalida dei dati della logica aziendale
WSTG-BUSL-02 Prova la capacità di falsificare le richieste
WSTG-BUSL-03 Controlli di integrità del test
WSTG-BUSL-04 Test per i tempi di processo
WSTG-BUSL-05 Test Numero di volte che una funzione può essere utilizzata Limiti
WSTG-BUSL-06 Test per l'elusione dei flussi di lavoro
WSTG-BUSL-07 Testare le difese contro l'uso improprio delle applicazioni
WSTG-BUSL-08 Caricamento di prova di tipi di file imprevisti
WSTG-BUSL-09 Caricamento di prova di file dannosi

Test lato client

Test lato client Nome del test
WSTG-CLNT-01 Test per Cross Site Scripting basato su DOM
WSTG-CLNT-02 Test per l'esecuzione di JavaScript
WSTG-CLNT-03 Test per l'iniezione di HTML
WSTG-CLNT-04 Test per il reindirizzamento URL lato client
WSTG-CLNT-05 Test per l'iniezione di CSS
WSTG-CLNT-06 Test per la manipolazione delle risorse lato client
WSTG-CLNT-07 Testare la condivisione delle risorse tra le origini
WSTG-CLNT-08 Test per il lampeggiamento tra siti
WSTG-CLNT-09 Test per il clickjacking
WSTG-CLNT-10 Testare i WebSocket
WSTG-CLNT-11 Prova la messaggistica Web
WSTG-CLNT-12 Testare l'archiviazione del browser
WSTG-CLNT-13 Test per l'inclusione di script tra siti

Test API

Test API Nome del test
WSTG-APIT-01 Testare GraphQL

Recensione del portafoglio crittografico

Recensione del portafoglio crittografico Nome del test
SAYFER-CRPTW-01 Testare la logica aziendale commerciale
SAYFER-CRPTW-03 Testare le configurazioni dei nodi di criptovaluta basate su UTXO
SAYFER-CRPTW-04 Testare le configurazioni del codice di criptovaluta basate sull'account
SAYFER-CRPTW-05 Verifica il codice critico di conferma della transazione
SAYFER-CRPTW-06 Prova il supporto TAPROOT
SAYFER-CRPTW-07 Prova l'archiviazione della chiave privata

 

Controllo dell'ordine da Sayfer





    Questo sito è protetto da reCAPTCHA e Google Informativa sulla Privacy ed Termini di Servizio applicare.

    Risultati della valutazione della sicurezza

    Salvataggio non sicuro delle chiavi MPC private

    ID SAYFER-CRPTW-07
    Rischio Alta
    Abilità richiesta Alta
    OWASP
    Riferimento
    -
    Dove -
    Strumenti Audit di configurazione

    Descrizione

    Gli scambi centralizzati soffrono di pratiche di gestione delle chiavi di bassa qualità. Ci sono molti esempi di tali casi in cui le chiavi sono state perse o rubate causando la perdita di tutti i fondi del portafoglio da parte del servizio o il blocco completo dei fondi.

    Durante il controllo dei file di configurazione, abbiamo esaminato l'archiviazione di gestione delle chiavi. Abbiamo scoperto che le chiavi utilizzate per il cold wallet multi-sig non sono archiviate in luoghi sufficientemente distribuiti.

    Ci sono 3 chiavi che vengono utilizzate all'interno della firma della chiave MPC. 1 è memorizzato in una macchina fisica protetta. Gli altri 2 sono archiviati all'interno della stessa macchina dedicata in GCP.

    Sono state prese un paio di misure di sicurezza per proteggere queste macchine, ma il problema si basa sulla distribuzione, se la macchina distribuita su GCP viene compromessa, un utente malintenzionato può firmare qualsiasi transazione dal portafoglio freddo.

    Questo è un luogo ad alto rischio e delicato in cui molti hanno fallito in passato, le migliori pratiche dovrebbero essere seguite rigorosamente.

    Mitigazione

    Utilizza il servizio di custodia di terze parti per gestire gli hot wallet e le casseforti. Saremo lieti di consigliare uno dei nostri partner.

    Questi servizi gestiscono MPC e la gestione delle chiavi per te, con altri livelli di sicurezza aggiunti che rendono l'uso di tali servizi la scelta migliore per gli scambi centralizzati.

     

    SQL Injection

    ID WSTG-INPV-05
    Rischio Alta
    Abilità richiesta Medio
    OWASP
    Riferimento
    - Link
    Dove – ██████████████
    Strumenti Ripetitore Burp, sqlmap, PayloadAllTheThings

    Descrizione

    Un attacco SQL injection consiste nell'inserire o "iniettare" una query SQL parziale o completa nell'input di dati che viene trasmesso dal client all'applicazione web. Un attacco SQL injection riuscito può leggere dati sensibili dal database, modificare i dati del database (inserimento/aggiornamento/cancellazione), eseguire operazioni di amministrazione del database (come l'arresto del DBMS), ripristinare il contenuto di un determinato file sul file system DBMS o scrivere file nel file system e, in alcuni casi, inviare comandi al sistema operativo.

    Usando il transaction endpoint siamo stati in grado di abusare del more Parametro di query URL per iniettare payload SQL dannoso:

    /api/transactions?size=10&more=te');INJECTION_PAYLOAD

    Il payload che abbiamo utilizzato è stato:

    /api/transactions?size=10&sort=time,DESC&more=te');SELECT+CASE+WHEN+(substring(versio n(),12,2)+%3d+'10')+THEN+pg_sleep(10)+ELSE+pg_sleep(0)+END%3b – Che in questo caso controlla se l'istanza in esecuzione di Postgres è la versione 10 o meno.

    Un utente malintenzionato che sfrutta questa vulnerabilità potrebbe assumere il controllo del sistema. Siamo stati in grado di estrarre gli schemi delle tabelle, aggiornare il ruolo del nostro utente o scaricare qualsiasi informazione salvata sul DB e persino modificare il saldo del nostro utente sul DB.

    Mitigazione

    La vulnerabilità SQL injection è facile da correggere ma difficile da mitigare. Sono necessari un forte linting o l'implementazione di regole di compilazione che impongono modifiche future.

    La mitigazione delle vulnerabilità di SQL injection viene in genere eseguita seguendo un framework di scelta, il che significa che lo sviluppatore non dovrebbe mai concatenare le stringhe in un'istruzione SQL completa.

    Ogni input dell'utente dovrebbe essere disinfettato in un esecutore SQL anziché essere utilizzato come una semplice stringa di query SQL.

    Per ulteriori informazioni sulla perfezione dell'iniezione SQL, fare riferimento a SQL ICheatSheet per la prevenzione delle iniezioni.

     

    Riferimenti di oggetti diretti non sicuri

    ID WSTG-ATHZ-04
    Rischio Alta
    Abilità richiesta Medio
    OWASP
    Riferimento
    - LInk
    Dove – ██████████████████/dashboad/{DASHBOARD_ID}
    Strumenti Ripetitore Burp, DevTools

    Descrizione

    I riferimenti a oggetti diretti insicuri (IDOR) sono un tipo di vulnerabilità del controllo degli accessi che si verifica quando un'applicazione utilizza l'input fornito dall'utente per accedere direttamente agli oggetti. Come risultato di questa vulnerabilità, gli aggressori possono aggirare l'autorizzazione e accedere direttamente alle risorse nel sistema, ad esempio record di database o file.

    Abbiamo scoperto che l'API █████████ consente a un utente malintenzionato di visualizzare le informazioni della dashboard di altri utenti, inclusi tutti i dati finanziari di questo utente.
    La vulnerabilità si basa sul parametro id dashboard che è un numero intero indovinabile. Esempio di richiesta per un singolo dashboard (per un dashboard che non è di proprietà dell'utente corrente):

    GET ████/dashboard/827371 HTTP/1.1

    Host: ██████████████████

    api-key: ██████████

    Ciò indica che il /dashboard/DASHBOARD_ID l'endpoint non controlla l'autorizzazione per la risorsa richiesta. Un utente malintenzionato autenticato potrebbe eseguire lo scraping di ogni singola dashboard che contiene informazioni sui fondi dell'utente e sulle transazioni passate.

    Mitigazione

    Esistono diversi modi per mitigare le vulnerabilità IDOR, in questo caso sembra che la soluzione potrebbe essere quella di verificare l'autorizzazione per ogni singola richiesta.

    Ciò significa che ogni chiave di richiesta sarà in grado di recuperare solo i dashboard del proprio account

     

    Autenticazione più debole nel canale alternativo

    ID WSTG-ATHN-10
    Rischio Alta
    Abilità richiesta Medio
    OWASP
    Riferimento
    - Link
    Dove – ██████████████████
    Strumenti Google Chrome, DevTools, accumula, ffuf

    Descrizione

    Anche se i meccanismi di autenticazione primari non includono alcuna vulnerabilità, è possibile che esistano vulnerabilità in canali utente di autenticazione legittimi alternativi per gli stessi account utente.

    Questa vulnerabilità fa parte di una catena di 2 vulnerabilità che ci ha permesso di prendere il controllo di qualsiasi account con solo un indirizzo email.

    Come parte della nostra fase di ricognizione in cui proviamo a trovare un vettore di attacco più ampio enumerando i principali sottosistemi bersaglio, abbiamo trovato un'interfaccia di amministrazione sotto il sottodominio ██████████████████. È possibile accedere all'interfaccia di amministrazione utilizzando un normale utente dell'app, ma per quasi tutte le richieste di rete che abbiamo ispezionato durante il caricamento della pagina principale, il server restituisce un errore 401.

    [IMAGE_REDATTO]

    Abbiamo decodificato il file bundle main.js che contiene il codice front-end per l'app e abbiamo trovato tutti i potenziali endpoint con cui un amministratore può interagire.

    Potremmo sfruttare solo l'endpoint di api/updateUser. L'endpoint ci ha consentito di modificare qualsiasi e-mail dell'utente e, così facendo, siamo stati in grado di reimpostare la password della vittima e assumere il controllo dell'account

    [IMAGE_REDATTO]

    Mitigazione

    Si consiglia vivamente di realizzare un meccanismo di autenticazione o una VPN per il debug o per i servizi amministrativi del sistema per prevenire la presenza di applicazioni pubbliche non sicure che possono essere sfruttate da un utente malintenzionato.

    Inoltre, esiste un meccanismo di autorizzazione nell'interfaccia di amministrazione, ma questo non rientra nell'ambito di questo progetto.

     

    Esamina i metafile del server Web per perdite di informazioni

    ID WSTG-INFO-03
    Rischio Alta
    Abilità richiesta Medio
    OWASP
    Riferimento
    - Link
    Dove – ████████████████

    – █████████████████████████████

    – ████████████

    Strumenti Chrome, vai avanti

    Descrizione

    Come parte della nostra ricerca sull'obiettivo e sui suoi sottodomini, abbiamo trovato alcuni metafile che non dovrebbero essere pubblici, o almeno non senza l'appropriato meccanismo di autenticazione.

    • ████████████████████████.gitignore
    • ██████████████████████████████/docker-compose.yml
    • ████████████████████████/swagger-ui.html

    [IMAGE_REDATTO]

    [IMAGE_REDATTO]

    [IMAGE_REDATTO]

    Abbiamo trovato tre tipi di file che potrebbero danneggiare i servizi ████████, .gitignore, swagger-ui e la docker-compose.yml file. Questi tre file rivelano dati sensibili

    sull'architettura del servizio. Un attore malintenzionato può utilizzare queste informazioni per aumentare il suo vettore di attacco sul bersaglio.

    Mitigazione

    Se possibile, rimuovere questi file dal servizio pubblico o implementare un meccanismo di autorizzazione che garantisca l'accesso solo agli utenti privilegiati.

     

    Intestazione del criterio di sicurezza dei contenuti mancante

    ID SAYFER-CONFIG-008
    Rischio Medio
    Abilità richiesta Alta
    OWASP
    Riferimento
    -
    Dove -
    Strumenti Rutto, browser web

    Descrizione

    Content Security Policy (CSP) è un ulteriore livello di sicurezza che consente di rilevare e mitigare determinati tipi di attacchi, tra cui Cross-Site Scripting (XSS) e attacchi di data injection.

    Non abbiamo trovato un'intestazione CSP in nessuna delle risposte del server.

    [IMAGE_REDATTO]

    Utilizzando CSP gli amministratori di siti Web aggiungono un'altra linea di difesa contro XSS o attacchi di clickjacking, in questo modo il sistema sarà sicuro anche se future modifiche non garantite verranno apportate al codice sorgente.

    Un criterio CSP di base dovrebbe almeno descrivere i domini predefiniti nella whitelist per i file statici (come script, immagini e CSS). E frame-ancestors per prevenire attacchi di click-jacking.

    Ulteriori informazioni:

    1. https://cspvalidator.org/
    2. https://csp-evaluator.withgoogle.com/

    Mitigazione

    Aggiungere il Content-Security-Policy: [policy] su ogni risposta in cui il caricamento di risorse esterne potrebbe essere pericoloso

    Consigliamo vivamente di utilizzarlo e testarlo prima con la variante "Solo report" per testare la policy prima di rilasciarla in produzione:

    Content-Security-Policy-Report-Only: [policy]

     

    Test per le intestazioni di sicurezza

    ID SAYFER-CONFIG-009
    Rischio Medio
    Abilità richiesta Alta
    OWASP
    Riferimento
    -
    Dove – ████████████
    Strumenti Rutto, browser web

    Descrizione

    1. I browser supportano molte intestazioni HTTP che possono migliorare la sicurezza delle applicazioni per proteggersi da una varietà di attacchi comuni, le intestazioni vengono scambiate tra un client Web (di solito un browser) e un server per specificare i dettagli relativi alla sicurezza della comunicazione HTTP.

    Guardando le intestazioni di sicurezza di ████████, mancano le seguenti informazioni:

    • X-Content-Type-Opzioni

    L'impostazione di questa intestazione impedirà al browser di interpretare i file come qualcosa di diverso da quanto dichiarato dal tipo di contenuto nelle intestazioni HTTP.

    • Strict-Transport-Security

    HSTS è un meccanismo di politica di sicurezza Web che aiuta a proteggere i siti Web da attacchi di downgrade del protocollo e dirottamento dei cookie. Consente ai server Web di dichiarare che i browser Web devono interagire con esso solo utilizzando connessioni HTTPS sicure e mai tramite il protocollo HTTP non sicuro.

    • Referrer-Politica

    L'intestazione Referer è un'intestazione della richiesta che indica il sito da cui ha avuto origine il traffico. Se non è in atto una prevenzione adeguata, l'URL stesso e persino le informazioni sensibili contenute nell'URL verranno divulgate al sito di origine incrociata.

    • Accesso-Controllo-Consenti-Origine

    L'intestazione ha il valore di "*" che espone l'API per ogni sito Web, questo potrebbe non essere il risultato desiderato.

    Mitigazione

    Aggiunta delle intestazioni sopra menzionate a tutti i servizi di back-end.

     

    Esamina i metafile del server Web per perdite di informazioni

    ID WSTG-INFO-03
    Rischio Basso
    Abilità richiesta Medio
    OWASP
    Riferimento
    - Link
    Dove -
    Strumenti DevTools

    Descrizione

    Durante la ricerca del target con DevTool siamo stati in grado di visualizzare il codice sorgente del frontend senza alcun offuscamento. Questa vulnerabilità si verifica perché i bundle JS vengono forniti con sourcemaps alla produzione, che consentono di leggere il codice sorgente originale con commenti che potrebbero rivelare informazioni, ad esempio il seguente file path.ts:

    █████████████████████/paths.ts [IMAGE_REDACTED]

    Avendo la mappa dei sorgenti, un utente malintenzionato può conoscere la base di codice, leggere commenti e trovare parti di codice obsolete che in seguito possono essere utilizzate per trovare vulnerabilità.

    Mitigazione

    Non spedire le mappe di origine alla produzione, la maggior parte dei sistemi di registrazione e di tracciamento degli errori ha l'opinione di caricare le mappe di origine in un sistema di back-office. Un altro approccio sarebbe quello di servire le mappe di origine solo agli utenti autenticati tramite VPN o altri meccanismi.

     

    Server web di impronte digitali

    ID WSTG-INFO-002
    Rischio Basso
    Abilità richiesta Medio
    OWASP
    Riferimento
    - LInk
    Dove – ███████████████████████████
    Strumenti Rutto

    Descrizione

    Anche se le informazioni sui server esposti di per sé non sono necessariamente una vulnerabilità, sono informazioni che possono aiutare gli aggressori a sfruttare altre vulnerabilità che possono esistere. La maggior parte degli endpoint non rivela alcuna informazione sul server tramite intestazioni HTTP o pagine di errore.
    Utilizzando la seguente richiesta HTTP non corretta siamo stati in grado di rilevare un server Nginx tramite una risposta 400
    GET /v2 HTTPMALFORMED/1.1
    Host: ██████████████████
    Accept: */*

    Il corpo di risposta è:
    <html>
    <head><title>400 Bad Request</title></head>
    <body bgcolor="white">
    <center><h1>400 Bad Request</h1></center>
    <hr><center>nginx 1.14.0</center>
    </body>
    </html>

    Mitigazione

    Esistono diversi modi per oscurare le intestazioni del server Web, i metodi più comunemente utilizzati sono:

    1. Server proxy inverso che si frappongono tra l'Internet globale e l'interno
    2. Configura ogni server Web per eliminare queste intestazioni.

    Appendice A: correzioni per la valutazione della sicurezza

    Verrà aggiornato dal team Sayfer dopo la prima revisione.

    Puoi trovare maggiori informazioni a riguardo sul nostro Blog

    Il blog di Sayfer si concentra su web3, sicurezza e ricerca sulle vulnerabilità. Riteniamo che nel settore della sicurezza informatica sia fondamentale rimanere aggiornati sulle ultime tendenze e progressi. Attualmente, il nostro team di ricercatori esperti si diverte a ricercare tecnologie blockchain e web3 all'avanguardia.
    Contattaci

    Rimaniamo in contatto

    Dove
    Tel Aviv, Israele
    messaggeri:
    Non esitate a contattarci, saremo lieti di rispondere!





      Questo sito è protetto da reCAPTCHA e Google Informativa sulla Privacy ed Termini di Servizio applicare.
      Salta al contenuto