L'exploit sta effettuando ricerche diverse dai test di penetrazione

2

Sono confuso da una terminologia: il reverse engineering mi sembra abbastanza simile alla ricerca di exploit. Voglio dire, se puoi invertire un programma probabilmente sarai in grado di trovare una vulnerabilità, ma per questo devi essere bravo con C e Assembly.

Un sacco di persone mi dicono che un pen tester dovrebbe padroneggiare Python e altri linguaggi di scripting non C e Assembly. Questo è davvero confuso quindi la mia domanda è:

L'exploit sta ricercando parte del pentesting?

    
posta None 03.01.2014 - 23:16
fonte

2 risposte

13

Breve:

L'exploit è diverso dai test di penetrazione? Sì.

L'exploit sta ricercando parte del pentesting? Normalmente no.

Un buon riassunto di cosa sono i test di penetrazione è qui: definizione di Wikipedia di test di penetrazione .

Test di penetrazione semplice

Un sacco di attività di testing sulla penetrazione sta eseguendo attacchi o exploit preesistenti e ben noti. (Come per esempio eseguire MetaSploit.) Questo lavoro si basa su alcuni modelli di dove possono trovarsi i problemi rilevanti. Ma in realtà non implica la ricerca di sfruttamento o il reverse engineering.

Andando più in profondità

Tuttavia, andando più a fondo nei test di penetrazione, non è sufficiente utilizzare strumenti completamente disponibili. In questa fase, le persone:

  • Considerare il sistema di destinazione (le sue operazioni e le sue possibili debolezze) in dettaglio
  • Crea attacchi in base al sistema di destinazione

L'analisi del sistema di destinazione è di solito al livello di esaminare il suo design di alto livello, i suoi componenti (come server Web, framework, protocolli di comunicazione, ecc.). Ovviamente questa analisi può essere approfondita come il reverse engineering o la revisione del codice sorgente, ma spesso i dettagli di livello più alto sono abbastanza buoni da poterlo definire sufficientemente su come attaccare il sistema.

In questa precedente risposta è possibile trovare una descrizione più dettagliata delle fasi usuali relative ai test di penetrazione Qual è la differenza tra un test di penetrazione e una valutazione della vulnerabilità?

Perché non eseguire il reverse engineering o sfruttare la ricerca

La ragione per cui il reverse engineering e l'exploit di ricerca sono raramente parte importante del pentesting è che si sta facendo un pentesting per il proprietario del sistema. Pertanto, l'hacker ha già fornito strumenti molto migliori di quelli che i ricercatori hanno in genere: il sistema viene solitamente rivelato loro in dettaglio per consentire loro di svolgere il proprio lavoro in modo efficiente. (In altre parole, sono autorizzati a mettere in corto circuito gran parte della ricerca sugli exploit.)

Python e scripting

La ragione per cui lo scripting è importante nei test di penetrazione è che i test di penetrazione di solito coinvolgono un gran numero di casi di test molto simili. Per rendere efficienti queste piccole variazioni, in genere viene utilizzato lo scripting.

Ad esempio, Metasploit, che è uno strumento comune da utilizzare su questo campo, può essere copiato usando python.

Oltre a python, vengono utilizzati altri linguaggi di scripting, come Ruby e Perl.

I mean if you can reverse one program probably you will be able to find a vulnerability, but for this you need to be good with C and Assembly.

In caso di software ben scritto non sarei d'accordo. Anche se hai accesso al codice sorgente originale del software, in genere è difficile trovare vulnerabilità.

Se hai solo accesso al binario, è ancora più difficile, dato che hai effettivamente bisogno di decompilare il software, e molta conoscenza è scomparsa e il codice non è più in un formato di facile lettura. Il moderno software è abbastanza grande da rendere molto difficile concentrarsi su parti importanti del binario e scavare da esso vulnerabilità essenziali.

    
risposta data 03.01.2014 - 23:52
fonte
2

Basandoci sull'ottima risposta di user4982, vorrei anche aggiungere che la reverse engineering e la ricerca sull'exploit sono due attività in qualche modo distinte. Il reverse engineer cerca di capire un prodotto studiando i suoi componenti di base, possibilmente per interfacciarsi con un prodotto esistente, ma forse a volte solo per clonarlo. E a seconda dei motivi, il ricercatore di exploit potrebbe cercare di rompere un prodotto senza l'intento di aggiustare o modificare nulla.

Il ricercatore di exploit può utilizzare il reverse engineering come uno dei tanti strumenti per liberare una vulnerabilità da un pacchetto, ma ne avrà altri: i test di fuzz e gli strumenti di exploit di iniezione vengono subito in mente. E un ingegnere inverso potrebbe cercare di proteggere o rafforzare un prodotto vulnerabile, con l'intento di proteggersi dalle sue vulnerabilità intrinseche, quindi potrebbe utilizzare gli stessi strumenti di fuzzing e strumenti di iniezione per trovare i punti da applicare. Sono due lati diversi della stessa medaglia.

    
risposta data 08.01.2014 - 20:45
fonte

Leggi altre domande sui tag