|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Mar 2007
Messaggi: 4683
|
[Linguaggi vari] I bug: trovarli e sfruttarli
Leggo sempre di bug che vengono scoperti e falle che vengono sfruttate: da programmi, da virus ecc ecc. Ho pensato cosi, dopo l'ennesimo articolo letto a riguardo, di aprire questo topic.
Si tirano in ballo sempre hacker e ricercatori come le persone che scoprono e sfruttano i bug. Ma come si trova un bug? Come si sfrutta? Che conoscenze si devono avere?
__________________
Firma eliminata e avatar cambiato. Troppa gente giudica il monaco dall'abito. |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Ci vuole parecchia esperienza.
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro @LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys |
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Nov 2006
Messaggi: 489
|
Provo a risponderti io in base a quel poco che so in attesa di qualcuno più esperto.
Saprai che ogni "cosa" che usi quando crei un programma è stata concepita per una determinata scopo. Molto banalmente, in questo caso, potresti sfruttare "maliziosamente" questa "cosa" per scopi diversi. Se la "cosa" è sufficientemente potente modificando l'uso che ne viene fatto nel programma potresti intaccare la sicurezza o la stabilità del sistema ecc. Un esempio stupidissimo? Un ciclo infinito: Diciamo che all' interno del tuo programma hai un ciclo che ha una determinata condizione che gli fa eseguire un numero di cicli appunto finito. Se questa condizione è regolata da una variabile, e tu per qualche motivo ai accesso a questa variabile, potresti farlo diventare senza fine. Correggetemi se sbaglio. |
![]() |
![]() |
![]() |
#4 | |
Senior Member
Iscritto dal: Mar 2007
Messaggi: 4683
|
Questo era scontato. Ma come conoscenze? Come strumenti di lavoro? Come procedimento? Soprattutto nei programmi closed source credo sia ancora più difficile che nei programmi open.
Quote:
__________________
Firma eliminata e avatar cambiato. Troppa gente giudica il monaco dall'abito. |
|
![]() |
![]() |
![]() |
#5 | |
Senior Member
Iscritto dal: Nov 2006
Messaggi: 489
|
Quote:
Come strumenti di lavoro il programma stesso e le conoscenze. Come procedimento direi sperimentale: studi il programma ed immagini come potrebbe essere stato realizzato, se conosci i limiti del codice puoi arrivare a sfruttarli. |
|
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: Feb 2006
Messaggi: 1304
|
Nello specifico credo ci voglia una conoscenza pazzesca del campo, esperienza, e bisogna studiarsi un singolo programma per molto tempo... dato che ogni bug, per come si manifesta, è unico... non credo che ci sia un "corso di studi" per sapere sta roba, ci vuole solo una solida base ed esperienza come hacker, IMHO.
|
![]() |
![]() |
![]() |
#7 |
Senior Member
Iscritto dal: Mar 2007
Messaggi: 4683
|
Direi anche conoscenze di assembly e linguaggi di basso livello, questo sicuramente.
__________________
Firma eliminata e avatar cambiato. Troppa gente giudica il monaco dall'abito. |
![]() |
![]() |
![]() |
#9 |
Senior Member
Iscritto dal: Mar 2007
Messaggi: 4683
|
A proposito di esperti di sicurezza. Le conoscenze che hanno quali sono? A volte vengono mitizzati.
__________________
Firma eliminata e avatar cambiato. Troppa gente giudica il monaco dall'abito. |
![]() |
![]() |
![]() |
#10 |
Senior Member
Iscritto dal: Oct 2006
Città: Roma
Messaggi: 1383
|
assieme ad un po' di originalitá. io una volta ho scritto in C (perdonamelo, ero ancora inesperto e non capivo che andava scritto in C++ ^^) un piccolo tool per Windows per esaminare lo stack di un altro processo e trovare potenziali buffer overflows; praticamente non faceva altro che monitorare lo stack (o gli stack) tramite dei page guards in attesa che delle sequenze binarie predefinite ci venissero scritte; l'utente del tool quindi poteva impostare come sequenza binaria una stringa che poi avrebbe ad esempio scritto da qualche parte nel programma per verificare se quella scritta andava a finire sullo stack.
non era un granché come tool perché non tutti i dati che finiscono in quel modo sullo stack sono potenziali buffer overflows: nelle ultime revisioni del C infatti é possibile allocare sullo stack array a dimensione variabile. d'altra parte quando é stato inventato il DEP, che Windows supportava giá da prima che esistesse, il mio tool ha avuto il colpo di grazia e l'ho buttato ![]() peró il principio rimane: enorme esperienza in fatto di programmazione di sistema unita ad un pizzico di fantasia e creativitá. edit - a proposito, per la serie "Linux é il sistema operativo dei programmatori": su Linux quel tool sarebbe stato irrealizzabile, o quantomeno non realizzabile in maniera ragionevole; se mi sbaglio provatemelo. Ultima modifica di fero86 : 21-02-2009 alle 12:05. |
![]() |
![]() |
![]() |
#11 | ||
Senior Member
Iscritto dal: Oct 2006
Città: Roma
Messaggi: 1383
|
Quote:
Quote:
|
||
![]() |
![]() |
![]() |
#12 | |||
Senior Member
Iscritto dal: Mar 2007
Messaggi: 4683
|
Quote:
![]() Quote:
Quote:
__________________
Firma eliminata e avatar cambiato. Troppa gente giudica il monaco dall'abito. |
|||
![]() |
![]() |
![]() |
#13 |
Bannato
Iscritto dal: Mar 2008
Città: Villabate(PA)
Messaggi: 2515
|
Sui virus, su come agiscono e come s'implementano, due bei libri puoi scaricarli da qui:
http://vx.netlux.org/lib/vml00.html http://vx.netlux.org/lib/vml01.html ![]() ![]() P.S. Occhio: se scarichi il codice sorgente, il tuo antivirus dovrebbe segnalarti la presenza di un bel po' di virus. Se compili i sorgenti e li mandi in esecuzione, avrai il computer infettato. Scarica solo i libri ![]() |
![]() |
![]() |
![]() |
#14 |
Senior Member
Iscritto dal: Oct 2006
Città: Roma
Messaggi: 1383
|
quei libri sono troppo vecchi, ritengo che non siano piu validi; gli ho dato un'occhiata e in uno ho trovato prima un appendice che costituisce un surrogato di RBIL (lol) e poi un capitolo che spiega come infettare un EXE... col vecchio formato!! (stra-lol)
per non parlare di quell'altro, dove a una certo punto ho visto un capitolo relativo a COM; allora ho pensato "ah, ma forse solo il primo era vecchio, quest'altro é aggiornato"; vado a leggere... parlava dei files COM, quelli con estensione .com, gli eseguibili senza headers insomma, non il Component Object Model ![]() saranno stati anche estremamente validi nella loro epoca, ma leggendoli oggi ci infetti al massimo un 486 ![]() PS: e non credo che l'antivirus segnali alcunché nel vedere quei virus ![]() |
![]() |
![]() |
![]() |
#15 | |
Bannato
Iscritto dal: Mar 2008
Città: Villabate(PA)
Messaggi: 2515
|
Quote:
![]() Io ho provato a scaricare i sorgenti e NOD32 mi segnala la presenza di virus. |
|
![]() |
![]() |
![]() |
#16 | |
Senior Member
Iscritto dal: Mar 2007
Messaggi: 4683
|
Quote:
![]()
__________________
Firma eliminata e avatar cambiato. Troppa gente giudica il monaco dall'abito. |
|
![]() |
![]() |
![]() |
#17 | |
Senior Member
Iscritto dal: Aug 2003
Città: Barletta (BA)
Messaggi: 939
|
Quote:
![]() Comunque Valgrind ![]()
__________________
In a world without fences, who needs Gates? Power by: Fedora 8 - Mac OS X 10.4.11 |
|
![]() |
![]() |
![]() |
#18 | |
Senior Member
Iscritto dal: Mar 2007
Messaggi: 4683
|
Quote:
Forse si riferisce al fatto che molti lo considerano un OS che usano solo i programmatori.
__________________
Firma eliminata e avatar cambiato. Troppa gente giudica il monaco dall'abito. |
|
![]() |
![]() |
![]() |
#19 | |
Senior Member
Iscritto dal: Oct 2006
Città: Roma
Messaggi: 1383
|
c'é un famoso luogo comune, si dice (o almeno si diceva) che Linux sia stato fatto dai programmatori per i programmatori, e solo perché qualunque distribuzione include di default la GCC e una buona shell
![]() Quote:
|
|
![]() |
![]() |
![]() |
#20 |
Senior Member
Iscritto dal: Nov 2001
Città: Bastia Umbra (PG)
Messaggi: 6394
|
Gli ingredienti che servono sono:
- n°1 conoscenza della gestione dello stack/heap - n°1 conoscenza di assembly - n°1 conoscenza di linguaggi di programmazione - n°1 familiarità con disassembler e debugger - fantasia e un pò di fortuna Q.B
__________________
:: Il miglior argomento contro la democrazia è una conversazione di cinque minuti con l'elettore medio :: |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 19:44.