web application security testing guide
c ++ algoritmo di ordinamento per inserzione
A causa dell'enorme quantità di dati archiviati nelle applicazioni web e dell'aumento del numero di transazioni sul web, un adeguato test di sicurezza delle applicazioni web sta diventando molto importante giorno dopo giorno.
In questo articolo, apprenderemo in dettaglio i termini chiave utilizzati nei test di sicurezza del sito web e il suo approccio di test.
Cosa imparerai:
- Che cos'è il test di sicurezza?
- Alcuni termini chiave utilizzati nei test di sicurezza
- Strumenti di test di sicurezza consigliati
- Approccio al test di sicurezza
- Metodi per il test della sicurezza web
- Conclusione
- Lettura consigliata
Che cos'è il test di sicurezza?
Test di sicurezza è il processo che controlla se il file i dati riservati rimangono riservati o meno (cioè non è esposto a persone / entità per le quali non è destinato) e gli utenti possono eseguire solo quei compiti che sono autorizzati a svolgere
Per esempio, un utente non dovrebbe essere in grado di negare la funzionalità del sito Web ad altri utenti o un utente non dovrebbe essere in grado di modificare la funzionalità dell'applicazione Web in modo non intenzionale, ecc.
Alcuni termini chiave utilizzati nei test di sicurezza
Prima di procedere oltre, sarà utile familiarizzare con alcuni termini utilizzati frequentemente nei test di sicurezza delle applicazioni web:
Che cos'è la 'vulnerabilità'?
Questa è la debolezza dell'applicazione web. La causa di tale 'debolezza' può essere dovuta a bug nell'applicazione, un'iniezione (codice SQL / script) o la presenza di virus.
Che cos'è la 'manipolazione degli URL'?
Alcune applicazioni Web comunicano informazioni aggiuntive tra il client (browser) e il server nell'URL. La modifica di alcune informazioni nell'URL può a volte portare a un comportamento non intenzionale da parte del server e questo viene definito come Manipolazione dell'URL .
Che cos'è l ''iniezione SQL'?
Questo è il processo di inserimento di istruzioni SQL tramite l'interfaccia utente dell'applicazione Web in una query che viene quindi eseguita dal server.
Che cos'è 'XSS (Cross-Site Scripting)'?
Quando un utente inserisce uno script HTML / lato client nell'interfaccia utente di un'applicazione web, questo inserimento è visibile ad altri utenti ed è definito come XSS .
Che cos'è lo 'spoofing'?
Viene chiamata la creazione di siti Web o e-mail simili a bufale Spoofing .
Strumenti di test di sicurezza consigliati
# 1) Acunetix
la migliore app spia per Android
Acunetix è uno scanner di sicurezza per applicazioni web end-to-end. Fornirà una visione a 360 gradi della sicurezza della tua organizzazione. È in grado di rilevare 6500 tipi di vulnerabilità come SQL injection, XSS e Weak Passwords, ecc. Utilizza una tecnologia di registrazione macro avanzata per la scansione di moduli multilivello complessi.
La piattaforma è intuitiva e facile da usare. È possibile pianificare e dare priorità a scansioni complete e scansioni incrementali. Contiene una funzionalità di gestione delle vulnerabilità incorporata. Con l'aiuto di strumenti CI come Jenkins, le nuove build possono essere scansionate automaticamente.
=> Prova Acunetix per Web App Security
# 2) Kiuwan
Trova e correggi le vulnerabilità nel tuo codice in ogni fase dell'SDLC.
Kiuwan è conforme ai più severi standard di sicurezza tra cui OWASP, CWE, SANS 25, HIPPA e altri.Integra Kiuwan nel tuo IDE per un feedback immediato durante lo sviluppo. Kiuwan supporta tutti i principali linguaggi di programmazione e si integra con i principali strumenti DevOps.
=> Scansiona il tuo codice gratuitamente
Approccio al test di sicurezza
Per eseguire un utile test di sicurezza di un'applicazione web, il tester di sicurezza dovrebbe avere una buona conoscenza del protocollo HTTP.
È importante comprendere come il client (browser) e il server comunicano utilizzando HTTP.
Inoltre, il tester dovrebbe almeno conoscere le basi di SQL injection e XSS.
Si spera che il numero di difetti di sicurezza presenti nell'applicazione web non sia elevato. Tuttavia, essere in grado di descrivere accuratamente tutti i difetti di sicurezza con tutti i dettagli richiesti sarà sicuramente di aiuto.
Metodi per il test della sicurezza web
# 1) Cracking delle password
Il test di sicurezza su un file Applicazione web può essere avviato da 'Password Cracking'. Per accedere alle aree private dell'applicazione, è possibile indovinare un nome utente / password o utilizzare uno strumento per crackare le password per lo stesso. Un elenco di nomi utente e password comuni è disponibile insieme a cracker di password open source.
Se l'applicazione web non impone una password complessa ( Per esempio, con alfabeti, numeri e caratteri speciali o con almeno un numero di caratteri richiesto), potrebbe non essere necessario molto tempo per decifrare il nome utente e la password.
Se un nome utente o una password vengono memorizzati nei cookie senza crittografarli, un utente malintenzionato può utilizzare diversi metodi per rubare i cookie e le informazioni memorizzate nei cookie come nome utente e password.
Per maggiori dettagli vedere un articolo su ' Test dei cookie del sito web '.
# 2) Manipolazione di URL tramite metodi HTTP GET
Un tester dovrebbe verificare se l'applicazione trasmette o meno informazioni importanti nella stringa di query. Ciò accade quando l'applicazione utilizza il metodo HTTP GET per passare le informazioni tra il client e il server.
Le informazioni vengono passate attraverso i parametri nella stringa di query. Il tester può modificare un valore di parametro nella stringa di query per verificare se il server lo accetta.
Tramite la richiesta HTTP GET, le informazioni dell'utente vengono passate al server per l'autenticazione o il recupero dei dati. L'attaccante può manipolare ogni variabile di input passata da questa richiesta GET a un server per ottenere le informazioni richieste o per corrompere i dati. In tali condizioni, qualsiasi comportamento insolito da parte dell'applicazione o del server Web è la porta per l'aggressore per accedere a un'applicazione.
# 3) SQL Injection
Il prossimo fattore che dovrebbe essere controllato è SQL Injection. L'inserimento di una singola citazione (') in qualsiasi casella di testo dovrebbe essere rifiutato dall'applicazione. Se invece il tester incontra un errore del database, significa che l'input dell'utente viene inserito in una query che viene poi eseguita da un'applicazione. In tal caso, l'applicazione è vulnerabile all'iniezione SQL.
Gli attacchi SQL injection sono molto critici poiché un utente malintenzionato può ottenere informazioni vitali dal database del server. Per controllare i punti di ingresso di SQL injection nella tua applicazione web, trova il codice dal tuo codebase dove le query MySQL dirette vengono eseguite sul database accettando alcuni input dell'utente.
Se i dati di input dell'utente vengono creati in query SQL per interrogare il database, un utente malintenzionato può iniettare istruzioni SQL o parte delle istruzioni SQL come input dell'utente per estrarre informazioni vitali da un database. Anche se un utente malintenzionato riesce a bloccare l'applicazione in modo anomalo, dall'errore di query SQL visualizzato su un browser, l'attaccante può ottenere le informazioni che sta cercando.
In questi casi, i caratteri speciali degli input dell'utente devono essere gestiti / sottoposti a escape correttamente.
# 4) Cross-Site Scripting (XSS)
Un tester dovrebbe inoltre controllare l'applicazione web per XSS (Cross-site scripting). Qualsiasi HTML Per esempio, o qualsiasi script Per esempio, non deve essere accettato dall'applicazione. Se lo è, l'applicazione può essere soggetta ad attacchi da parte di Cross-Site Scripting.
L'autore dell'attacco può utilizzare questo metodo per eseguire uno script o un URL dannoso sul browser della vittima. Utilizzando il cross-site scripting, un utente malintenzionato può utilizzare script come JavaScript per rubare i cookie degli utenti e le informazioni memorizzate nei cookie.
Molte applicazioni web ottengono alcune informazioni utili e passano queste informazioni in alcune variabili da pagine diverse.
Per esempio, http://www.examplesite.com/index.php?userid=123 & query = xyz
L'autore dell'attacco può facilmente passare un input dannoso o come parametro '& query' che può esplorare importanti dati utente / server sul browser.
Importante: Durante i test di sicurezza, il tester dovrebbe fare molta attenzione a non modificare nessuno dei seguenti:
- Configurazione dell'applicazione o del server
- Servizi in esecuzione sul server
- Dati utente o cliente esistenti ospitati dall'applicazione
Inoltre, un test di sicurezza dovrebbe essere evitato in un sistema di produzione.
Conclusione
Lo scopo di un test di sicurezza è scoprire le vulnerabilità dell'applicazione Web in modo che gli sviluppatori possano rimuovere queste vulnerabilità dall'applicazione e rendere l'applicazione Web ei dati al sicuro da qualsiasi azione non autorizzata.
come aprire un file .bin su Windows 10
Lettura consigliata => Differenza tra SAST / DAST / IAST / RASP
Sentiti libero di condividere i tuoi commenti / suggerimenti su questo articolo.
Lettura consigliata
- Guida per principianti al penetration test di applicazioni Web
- Test di sicurezza (una guida completa)
- Alpha test e beta test (una guida completa)
- Test di sicurezza di rete e migliori strumenti di sicurezza di rete
- Migliori strumenti di test del software 2021 (Strumenti di automazione del test QA)
- Guida completa al test di verifica della costruzione (test BVT)
- I 4 migliori strumenti di test di sicurezza open source per testare l'applicazione Web
- Test funzionale vs test non funzionale