it-swarm-eu.dev

È accettabile che un pentester professionista qualificato elimini o modifichi involontariamente dati sensibili nella produzione durante un pentest?

Oggi ho vissuto una situazione in cui una persona responsabile della sicurezza di una società richiedeva a una compagnia di pentimento di ritirare una clausola nel contratto in cui si afferma che:

"durante il pentest esiste la possibilità di eliminare o modificare involontariamente dati sensibili nell'ambiente di produzione a causa dell'esecuzione di alcuni strumenti, exploit, tecniche, ecc."

Il cliente afferma che non accetterà quella clausola e che ritiene che nessuna società accetterebbe tale clausola. Pensa che durante un pentest sia possibile accedere alle informazioni ma mai cancellate o modificate.

Sappiamo che l'esecuzione di alcuni strumenti come web crawler o spider può eliminare i dati se l'applicazione web è programmata in modo molto scorretto, quindi esiste sempre la possibilità se verranno utilizzati quei tipi di strumenti.

So che queste sono le condizioni del cliente e dovrebbero essere accettate, ma:

n pentester esperto e professionale può sempre assicurare che nessun dato venga cancellato o modificato in produzione durante un pentest?

n pentest può davvero essere fatto se il team di pentest ha la limitazione che i dati non possono essere creati o modificati?

La compagnia di pentimento dovrebbe sempre includere la clausola di esclusione di responsabilità per ogni evenienza?

120
kinunt

Non è possibile che un pentester possa garantire al 100% che i dati non vengano modificati o eliminati, allo stesso modo in cui non possono garantire che la disponibilità del sistema non sia influenzata (ho rovesciato i sistemi con una scansione delle porte o un carattere singolo). come dici tu un web crawler può cancellare i dati da un sistema se è stato impostato male.

Direi che ciò che dovrebbe essere detto è qualcosa di simile "si prenderanno tutte le precauzioni per garantire che i test non influiscano negativamente sui sistemi in esame e che non vengano fatti tentativi deliberati di modificare o eliminare i dati di produzione o di influire negativamente sulla disponibilità dei sistemi nell'ambito. Tuttavia, con tutti i test di sicurezza sussiste il rischio che i sistemi siano interessati e il cliente dovrebbe assicurarsi che i backup di tutti i dati e i sistemi siano in atto prima dell'inizio della revisione "

145
Rory McCune

Un pentester che afferma che non modificherà mai i dati di produzione è un bugiardo sporco , o pensa di essere molto più competente di quello che è realmente, o intende fortemente non fare nulla (è l'unico modo infallibile di non infrangere mai nulla). In ogni caso, non vuoi lavorare con quel ragazzo.

Un potenziale cliente che crede che abili pentestatori non danneggeranno mai i sistemi testati e che rifiuta di lavorare con gli aggressori a meno che non lo promettano esattamente, è un cliente che 1. vive nella fiaba terra dei sogni dell'unicorno e 2. è quasi garantito che lo farà mai affari solo con bugiardi sporchi. A un certo punto ha qualche disillusione, probabilmente in un modo piuttosto spettacolare.

È un imperativo morale e anche autoprotezione di base per i pentester includere clausole sulla possibile rottura nei loro contratti. Il rischio di danni collaterali è reale, anche se il pentester è molto bravo in quello che fa (perché il danno non deriva da quanto è buono il pentester ma da quanto è stato progettato e implementato il sistema testato ). Un pentester potrebbe essere citato in giudizio per non aver avvertito il cliente.

Un cliente che rifiuta un contratto con tale clausola ha un altro nome: "guai". Di solito è meglio saltare del tutto tali clienti.

92
Tom Leek

Avvertenza: non sono un pentester professionista. E lavoro nel software di backup.

Un pentester esperto e professionale può sempre garantire che nessun dato venga cancellato o modificato in produzione durante un pentest?

Direi di no, non ci sono garanzie assolute che qualcosa non verrà accidentalmente cancellato quando si tenta di rompere le cose. Tuttavia, detto ciò, un pentester dovrebbe generalmente tentare di sfruttare i sistemi in un modo che non comporta l'eliminazione dei dati. Ad esempio, mentre l'istruzione SQL preferita da tutti è:

select * from users where userid='dave'; DROP ALL TABLES;

Un approccio più responsabile sarebbe semplicemente quello di elencare tutti i dati:

select * from users where userid='2' OR 1=1;

In generale, immagino che la maggior parte dei tester per penne abbia sviluppato una serie di exploit della varietà non distruttiva come quest'ultima.

L'iniezione di Javascript nelle sue varie forme può utilizzare un semplice codice di prova del concetto come alert("exploited you"); anziché un codice di exploit autentico.

Un pentest può davvero essere fatto se il team di pentest ha la limitazione che i dati non possono essere creati o modificati?

Direi di no. Come mostreresti una prova del concetto di XSS memorizzato senza poter archiviare il tuo XSS nel database? Questo invariabilmente creerà nuovi dati.

Esistono numerosi esempi in cui un exploit richiede la scrittura di dati, anche se solo temporaneamente.

La compagnia di pentimento dovrebbe sempre includere la clausola di esclusione di responsabilità per ogni evenienza?

Ancora una volta, sto estendendo le mie conoscenze personali qui, ma ho intenzione di dire di sì.

Ciò ritorna comunque al punto di assumere una società di test con penna. Lo scopo di un test con penna è identificare i rischi che potrebbero essere necessari per essere valutati e risolverli prima che i cattivi li trovino.

Spero anche che un buon pentester chieda, e ogni buon affare avrebbe pensato, il ripristino di emergenza su una certa scala. Sicuramente dovresti avere un backup di qualche modulo sui tuoi sistemi in modo da poterlo ripristinare secondo necessità. Ne hai bisogno non solo nel caso in cui il pentest distrugga i tuoi dati, ma nel caso in cui sei davvero violato dai cattivi, nel qual caso potresti voler ripristinare un backup non contaminato.

36
user2213

Eseguo test di penetrazione abbastanza regolarmente sui miei siti.

La prima volta che ne ho eseguito uno ho bloccato il sito e inondato il loro server di posta con spam.

Ho quindi twittato alcuni moduli, per sbarazzarmi dello spam e mi ha permesso di identificare e correggere tutti gli altri buchi noti, senza fermare il server.

Sono stato francamente stupito dalla subdolezza degli sfruttatori, ho dovuto tappare buchi che non avevo considerato.

Ma il fatto era che, prima di eseguire i test, pensavo che i miei siti fossero sicuri. Avevo seguito le migliori pratiche, per quanto possibile, per la progettazione di siti Web, ma c'erano ancora problemi.

Ora, con il senno di poi, apprezzo che i test possano influenzare il mio sito di produzione.

Quindi ho in programma.

Mi assicuro che venga eseguito il backup di tutto per primo.

Se il sito è davvero molto critico, creerò un clone completo, quindi testerò prima quel clone.

Ho imparato per esperienza che se si crea il clone, crearlo su un altro server. Altrimenti, quando il clone si interrompe, il server influirà comunque sull'ambiente di produzione.

Ma eseguo ancora i miei test. Come pensi che gli hacker possano accedere ai siti? Presumibilmente eseguono test come questi stessi, in modo non autorizzato. Quindi fino a quando il tuo sito non sarà protetto sarà sempre vulnerabile. È molto meglio eseguire prima i test, con le precauzioni (backup ecc.) In atto, piuttosto che raccogliere i pezzi quando meno te lo aspetti.

Quindi sì, è accettabile, ma è anche prevedibile e dovrebbe essere gestito di conseguenza.

15

La risposta al tuo titolo è "Sì" e il cliente deve saperlo!

Questo disclaimer non è un caso del CYA, è invece un'informazione vitale di cui il cliente ha bisogno per prepararsi al pentest. Non sono un tester di penna, ma IMO questo non dovrebbe essere sepolto nell'ultima pagina nella stampa fine, ma dovrebbe essere nella pagina 1 del contratto, fronte e centro e con un carattere grassetto. La società cliente deve prepararsi affinché le cose vadano male: è necessario eseguire backup, creare e mettere in atto piani di ripristino, ecc. Consentire al cliente di ritenere che un test con penna sia privo di rischi è irresponsabile. Per definizione, stai tentando di innescare un comportamento errato, senza alcun controllo su quanto si estende o si estende quel comportamento rotto.

Le risposte alle 3 domande nel corpo del tuo post sono: (1) no, non puoi fornire alcuna garanzia su altri codici (2) una forma limitata di test con la penna potrebbe essere fatta senza modificare o creare INTENZIONALMENTE i dati (se tu escludi qualsiasi registrazione che l'app potrebbe fare) ma i risultati non sarebbero completi e infine (3) dovresti SEMPRE includere questo disclaimer - tanto per i clienti quanto il tuo.

Il tester è fondamentalmente alla ricerca di un difetto da sfruttare e non può in alcun modo garantire che non troverà un difetto che danneggi. Considera na tipica dichiarazione di non responsabilità del software per qualcosa che NON è destinato a riscontrare o creare difetti, quindi considera che probabilmente non hai scritto il codice che stai testando ...

2
jmoreno

Probabilmente puoi assicurarlo solo a determinate condizioni. Ovviamente Pentest è un compromesso tra molti fattori, alcuni dei quali sono direttamente antagonisti alla disponibilità del sistema e uno di questi è la profondità della tua analisi. Alcune persone potrebbero sostenere che un pentesto senza sfruttamento non è un pentesto.

In passato ho dovuto sottoporre a controllo alcuni sistemi SCADA che sono abbastanza famosi per la loro fragilità e posso assicurarvi che è possibile mettere a punto la maggior parte degli strumenti per essere abbastanza delicati. Ad esempio, disabilitare le impronte digitali NMAP e aumentare il ritardo tra i pacchetti ha aiutato molto.

Tuttavia, per rispondere alla tua domanda, personalmente, io MAI accetto di mettere una clausola per garantirlo a un mio cliente. Gli darò la mia Parola, ma per quanto riguarda gli affari non puoi essere responsabile se la loro applicazione si rompe da sola durante il tuo pentest.

1

"Un pentester esperto e professionale può sempre garantire che nessun dato venga cancellato o modificato in produzione durante un pentest?"

No.

"Un pentest può davvero essere fatto se il team di pentest ha la limitazione che i dati non possono essere creati o modificati?"

Non la penso così ..

"La compagnia di pentimento dovrebbe sempre includere la clausola di esclusione di responsabilità per ogni evenienza?"

Un accordo interno apparirà molto diverso da un accordo di terze parti. Non conosco alcuna compagnia di test di penna che non abbia limiti di assicurazione di responsabilità civile, tra le altre protezioni ...

1
user29367