![]() |
|
Editore: Mc Graw Hill Pagine: 689 Autore: AA.VV. (a cura di Russell Ryan) Collana: Informatica professionale Acquistalo a prezzo scontato:
|
Data Pubblicazione: 2002-09-01 ISBN: 883864280x Prezzo: 42.00 € Lingua: Italiano |
Ryan Russell ha un messaggio importantissimo per tutti noi: "Cio' che non conoscete vi potrebbe danneggiare". In questo libro, Ryan rivela i trucchi del mestiere nelle tecniche di penetrazione dei sistemi che un aggressore potrebbe utilizzare contro il vostro sistema.
- Kevin Mitnick
Questo vero best-seller e' stato considerato "una guida esauriente e coraggiosa che non si discosta mai dal lato pratico"; la seconda edizione e' stata notevolmente aggiornata ed estesa e sara' compagna ideale per chiunque si occupi di sicurezza. Hack Proofing - seconda edizione dimostrera' ancora una volta che l’unico modo di fermare un hacker e' pensare come lui e vi consentira' di:
Ryan Russel ha lavorato come esperto in molti campi riguardanti la sicurezza e ha svolto servizi di investigazione interna per un'importante casa produttrice di software. In questo libro, l'autore rivela lo svolgimento delle tecniche di penetrazione che gli aggressori potrebbero utilizzare.
Indice
Introduzione XIX
Capitolo 1 Come diventare un hacker 1
1.1 Il significato di “hacking” 1
Perche' dedicarsi all’hacking? 2
1.2 Che cosa aspettarsi da questo libro 2
1.3 La situazione giuridica attuale 4
1.4 Riepilogo 5
1.5 FAQ 6
Capitolo 2 Le leggi sulla sicurezza 7
2.1 Informazioni sulle leggi sulla sicurezza 8
2.2 La sicurezza sul lato client non funziona 9
2.3 Non e' possibile scambiare le chiavi
di crittografia in modo protetto
senza un’informazione condivisa 10
2.4 e' impossibile essere protetti al 100%
dal codice maligno 13
2.5 Qualunque codice maligno puo' assumere
altre forme per aggirare il rilevamento della firma 15
2.6 I firewall non possono proteggere al 100%
dagli attacchi 16
L’ingegneria sociale 18
L’attacco ai server esposti 18
L’attacco diretto del firewall 20
Le falle sul lato client 20
2.7 Tutti gli IDS possono essere elusi 20
2.8 Gli algoritmi di crittografia segreti
non sono sicuri 22
2.9 Se non e' richiesta una chiave, non si tratta
di crittografia ma di codifica 24
2.10 Le password non possono essere memorizzate
in modo sicuro sul client, a meno che vi sia
un’altra password per proteggerle 25
2.11 Per iniziare a essere considerato sicuro,
un sistema deve superare un apposito controllo
di protezione indipendente 28
2.12 La sicurezza mediante l’oscurita' non funziona 29
2.13 Riepilogo 31
2.14 Soluzioni rapide 31
2.15 FAQ 33
Capitolo 3 Le classi degli attacchi 35
3.1 Identificazione e comprensione
delle classi degli attacchi 35
La negazione del servizio 36
La fuga di informazioni 43
L’accesso regolare ai file 49
La disinformazione 52
I file speciali e l’accesso ai database 55
L’esecuzione di codice arbitrario remoto 58
L’elevazione dei privilegi 60
3.2 Identificazione dei metodi
per testare le vulnerabilita' 62
La prova di concetto 63
Le tecniche di ricerca standard 65
3.3 Riepilogo 75
3.4 Soluzioni rapide 77
Identificazione e comprensione
delle classi degli attacchi 77
Identificazione dei metodi
per testare le vulnerabilita' 78
3.5 FAQ 79
Capitolo 4 La metodologia 81
4.1 La metodologia di ricerca delle vulnerabilita' 81
La ricerca del codice sorgente 82
La ricerca binaria 85
4.2 L’importanza delle revisioni del codice sorgente 86
La ricerca di funzioni soggette a errori 86
4.3 Le tecniche di retroingegnerizzazione 93
Debugger, decompilatori e disassembler 99
4.4 Il test della scatola nera 104
I chip 104
4.5 Riepilogo 106
4.6 Soluzioni rapide 107
La metodologia di ricerca delle vulnerabilita' 107
L’importanza delle revisioni del codice sorgente 107
Le tecniche di retroingegnerizzazione 107
Il test della scatola nera 108
4.7 FAQ 108
Capitolo 5 Il diffing 109
5.1 Che cos’e' il diffing? 109
Perche' praticare il diffing 112
L’osservazione del codice sorgente 113
5.2 Gli strumenti per il diffing 119
Gli strumenti di confronto dei file 119
Utilizzo degli editor esadecimali 121
Ricerca di altri strumenti 130
5.3 Risoluzione dei problemi 132
I problemi con hash e checksum 132
I problemi con compressione e crittografia 133
5.4 Riepilogo 134
5.5 Soluzioni rapide 135
Che cos’e' il diffing? 135
Gli strumenti per il diffing 135
Risoluzione dei problemi 136
5.6 FAQ 136
Capitolo 6 La crittografia 137
6.1 I concetti della crittografia 137
La storia 138
I tipi di chiavi di crittografia 138
6.2 Gli algoritmi di crittografia standard 140
Gli algoritmi simmetrici 140
Gli algoritmi asimmetrici 144
6.3 La forza bruta 146
Nozioni fondamentali sulla forza bruta 147
Utilizzo della forza bruta
per ottenere le password 148
6.4 L’utilizzo improprio degli algoritmi reali 152
Lo scambio di chiavi improprio 152
L’hash su parti separate 153
Utilizzo di una password breve per generare
una chiave lunga 154
La memorizzazione impropria di chiavi private o
segrete 155
6.5 Tentativi di crittografia amatoriale 157
La classificazione del testo cifrato 157
Le cifrature monoalfabetiche 159
Altri modi per nascondere le informazioni 159
6.6 Riepilogo 164
6.7 Soluzioni rapide 166
I concetti della crittografia 166
Gli algoritmi di crittografia standard 166
La forza bruta 167
L’utilizzo improprio degli algoritmi reali 167
Tentativi di crittografia amatoriale 168
6.8 FAQ 168
Capitolo 7 L’input imprevisto 171
7.1 La pericolosita' dei dati imprevisti 172
7.2 Le situazioni che coinvolgono i dati imprevisti 173
Le utilita' e le applicazioni locali 173
HTTP/HTML 173
I dati imprevisti nelle query SQL 176
L’autenticazione dell’applicazione 180
Mascherare l’ovvio 185
7.3 Utilizzo delle tecniche per individuare
ed eliminare le vulnerabilita' 186
Il test della scatola nera 187
Utilizzo del codice sorgente 191
La protezione mediante filtraggio 191
L’escape dei caratteri a volte non e' sufficiente 192
Perl 192
Cold Fusion/CFML (Cold Fusion Markup
Language) 193
ASP 194
PHP 194
Protezione delle query SQL 195
Segnalazione o rimozione silenziosa
dei dati nocivi 196
La funzione di input non valido 197
La sostituzione del token 197
7.4 Utilizzo delle funzioni di sicurezza disponibili
nei linguaggi di programmazione 197
Perl 198
PHP 199
Cold Fusion/CFML (Cold Fusion Markup
Language) 199
ASP 200
MySQL 201
7.5 Utilizzo degli strumenti per gestire
i dati imprevisti 201
Web Sleuth 201
CGIAudit 201
RATS 202
Flawfinder 202
Retina 202
Hailstorm 202
Pudding 202
7.6 Riepilogo 203
7.7 Soluzioni rapide 203
La pericolosita' dei dati imprevisti 203
Le situazioni che coinvolgono i dati imprevisti 204
Utilizzo delle tecniche per individuare
ed eliminare le vulnerabilita' 204
Utilizzo delle funzioni di sicurezza disponibili
nei linguaggi di programmazione 204
Utilizzo degli strumenti per gestire
i dati imprevisti 205
7.8 FAQ 205
Capitolo 8 L’overflow del buffer 207
8.1 Lo stack 207
Il codice 209
Il disassembly 210
Il dump dello stack 211
Lo stack e le sue stranezze 211
8.2 Il frame dello stack 212
Introduzione al frame dello stack 212
Il passaggio di argomenti a una funzione:
un programma di esempio 213
Il frame dello stack e la sintassi di chiamata 218
8.3 Gli overflow del buffer 219
Un semplice overflow incontrollato:
un programma di esempio 220
8.4 La creazione del primo overflow 224
Creazione di un programma
con overflow sfruttabile 225
Eseguire il codice di hacking 228
8.5 Le tecniche avanzate di overflow 259
Il filtraggio dell’input 259
La sovrascrittura del puntatore alla funzione
basato sullo stack 262
L’overflow dell’heap 262
8.6 La struttura del carico di lavoro 265
Utilizzo degli elementi a disposizione 266
8.7 Riepilogo 268
8.8 Soluzioni rapide 269
Lo stack 269
Il frame dello stack 270
Gli overflow del buffer 270
La creazione del primo overflow 270
Le tecniche avanzate di overflow 271
La struttura del carico di lavoro 271
8.9 FAQ 272
Capitolo 9 Le stringhe di formato 273
9.1 Le vulnerabilita' delle stringhe di formato 275
Perche' esistono le vulnerabilita' delle stringhe
di formato e dove si trovano? 278
Come e' possibile risolvere il problema? 280
Sfruttamento delle vulnerabilita'
delle stringhe di formato 280
Il funzionamento degli attacchi
alle stringhe di formato 284
Che cosa occorre sovrascrivere 287
9.2 L’analisi di un programma vulnerabile 288
9.3 Il collaudo con una stringa di formato casuale 292
9.4 La scrittura del codice di attacco
a una stringa di formato 293
9.5 Riepilogo 304
9.6 Soluzioni rapide 305
Le vulnerabilita' delle stringhe di formato 305
L’analisi di un programma vulnerabile 305
Il collaudo con una stringa di formato casuale 305
La scrittura del codice di attacco
a una stringa di formato 306
9.7 FAQ 306
Capitolo 10 Lo sniffing 309
10.1 Che cos’e' lo sniffing? 309
Come funziona? 309
10.2 Che cosa si “sniffa”? 310
Le informazioni di autenticazione 310
L’acquisizione di altro traffico di rete 316
10.3 I programmi di sniffing piu' conosciuti 316
Ethereal 317
Network Associates Sniffer Pro 319
NT Network Monitor 320
WildPackets 321
TCPDump 322
Dsniff 323
Ettercap 325
Esniff.c 326
Sniffit 326
Carnivore 327
Ulteriori risorse 330
10.4 Le tecniche di sniffing avanzate 330
Gli attacchi MITM 330
La violazione delle password 331
I trucchi con gli switch 331
I trucchi di instradamento 332
10.5 L’esplorazione delle API dei sistemi operativi 333
Linux 333
BSD 336
Libpcap 336
Windows 338
10.6 Le misure di protezione 339
La fornitura della crittografia 339
SSL (Secure Sockets Layer) 340
PGP e S/MIME 341
Gli switch 341
10.7 Utilizzo delle tecniche di rilevamento 342
Il rilevamento locale 342
Il rilevamento di rete 343
10.8 Riepilogo 344
10.9 Soluzioni rapide 345
Che cos’e' lo sniffing? 345
Che cosa si “sniffa”? 345
I programmi di sniffing piu' conosciuti 346
Le tecniche di sniffing avanzate 346
L’esplorazione delle API dei sistemi operativi 346
Le misure di protezione 347
Utilizzo delle tecniche di rilevamento 347
10.10 FAQ 347
Capitolo 11 L’hijacking di sessione 349
11.1 Comprensione dell’hijacking di sessione 349
L’hijacking di sessione TCP 350
L’hijacking di sessione con blocco dei pacchetti 351
L’hijacking di UDP 355
11.2 Gli strumenti a disposizione 356
Juggernaut 356
Hunt 360
Ettercap 364
SMBRelay 369
Gli osservatori di tempeste 370
11.3 Utilizzo di MITM per le comunicazioni
crittografate 372
Gli attacchi man-in-the-middle 373
Dsniff 373
Altri tipi di hijacking 375
11.4 Riepilogo 376
11.5 Soluzioni rapide 377
Comprensione dell’hijacking di sessione 377
Gli strumenti a disposizione 378
Utilizzo di MITM per le comunicazioni
crittografate 378
11.6 FAQ 378
Capitolo 12 Lo spoofing: attacchi
all’identita' di fiducia 381
12.1 Il significato di spoofing 381
Lo spoofing e' la contraffazione dell’identita' 382
Lo spoofing e' un attacco attivo
contro le procedure di controllo dell’identita' 382
Lo spoofing e' realizzabile a tutti
i livelli di comunicazione 382
Lo spoofing e' sempre intenzionale 383
Lo spoofing puo' essere cieco o informato,
ma di solito coinvolge solo credenziali parziali 384
Lo spoofing non equivale al tradimento 385
Lo spoofing non e' necessariamente maligno 385
Lo spoofing non e' nulla di nuovo 386
12.2 La teoria di base 386
L’importanza dell’identita' 387
12.3 L’evoluzione della fiducia 387
Le firme asimmetriche tra esseri umani 388
12.4 L’identita' nelle reti di computer 389
La restituzione al mittente 391
In principio fu… una trasmissione 391
12.5 La sfida delle capacita' 393
La capacita' di trasmettere: “Puo' parlarmi?” 393
La capacita' di rispondere: “Puo' rispondermi?” 395
La capacita' di codificare:
“Parla la mia lingua?” 398
La capacita' di provare un segreto condiviso:
“Condivide un segreto con me?” 400
La capacita' di provare la chiave privata:
“Riconosco la tua voce?” 402
La capacita' di provare una chiave di identita':
“La sua identita' e' rappresentata in modo indipendente
nella mia coppia di chiavi?” 402
I metodi di configurazione: costruzione
di un indice delle capacita' di fiducia 404
12.6 Lo spoofing del desktop 405
La piaga delle applicazioni
con aggiornamento automatico 405
12.7 L’impatto dello spoofing 407
Lo spoofing elegante e il sabotaggio economico 408
12.8 Il lavoro ingrato: realizzare sistemi di spoofing 419
Creazione di un router scheletro
nello spazio dell’utente 419
Lo spoofing della connettivita'
mediante firewall asimmetrici 441
12.9 Riepilogo 448
12.10 Soluzioni rapide 449
Il significato di spoofing 449
La teoria di base 450
L’evoluzione della fiducia 450
L’identita' nelle reti di computer 450
La sfida delle capacita' 450
Lo spoofing del desktop 451
L’impatto dello spoofing 451
Il lavoro ingrato: realizzare sistemi di spoofing 452
12.11 FAQ 452
Capitolo 13 Il tunneling 455
13.1 I vincoli strategici per la progettazione
del tunnel 457
La riservatezza: “Dove va il traffico?” 458
L’instradabilita': “Dove puo' passare?” 459
La distribuibilita': “Quanto e' faticoso
farlo funzionare?” 460
La flessibilita': “A che cosa serve?” 461
La qualita': “Quanto e' faticoso mantenere
questo sistema?” 463
13.2 La progettazione di sistemi di tunneling
end-to-end 464
La realizzazione dei canali con SSH 464
13.3 Apriti Sesamo: l’autenticazione 468
L’accesso di base: autenticazione
mediante password 469
L’accesso trasparente: autenticazione
mediante chiave privata 470
13.4 L’inoltro di comandi: esecuzione diretta
di script e pipe 475
13.5 L’inoltro della porta: accesso alle risorse
su reti remote 480
L’inoltro di porta locale 481
L’inoltro di porta dinamico 484
L’inoltro di porta remoto 492
13.6 L’attraversamento di una rete recalcitrante 494
L’attraversamento del ponte: accedere ai proxy
mediante ProxyCommand 494
No habla HTTP? Permutare il traffico 497
Mostrare il distintivo: autenticazione
del bastion ristretto 498
Esportazione dell’accesso SSHD 501
La connessione di host con applicazione
firewall reciproca 503
13.7 E adesso? 505
Il trasferimento di file standard su SSH 505
Il trasferimento di file incrementale su SSH 507
La masterizzazione di CD su SSH 510
La tubazione acustica: distribuzione dell’audio
su TCP e SSH 513
13.8 Riepilogo 517
13.9 Soluzioni rapide 519
I vincoli strategici per la progettazione
del tunnel 519
La progettazione di sistemi di tunneling
end-to-end 519
Apriti Sesamo: l’autenticazione 520
L’inoltro di comandi: esecuzione diretta
di script e pipe 520
L’inoltro della porta: accesso alle risorse
su reti remote 521
L’attraversamento di una rete recalcitrante 522
E adesso? 523
13.10 FAQ 524
Capitolo 14 L’hacking dell’hardware 527
14.1 Comprendere l’hacking dell’hardware 528
14.2 Apertura del dispositivo: attacchi meccanici
e al contenitore 528
I tipi di meccanismi di protezione 531
Le interfacce esterne 535
L’analisi del protocollo 537
Le interferenze elettromagnetiche
e le scariche elettrostatiche 539
14.3 Analisi delle parti interne del prodotto:
gli attacchi ai circuiti elettrici 540
Retroingegnerizzazione del dispositivo 540
Tecniche di base: gli attacchi comuni 542
Tecniche avanzate: rimozione dell’epossidico
e apertura dei circuiti integrati 545
I metodi di offuscamento e criptoanalisi 548
14.4 Quali strumenti occorrono? 549
Il kit del principiante 550
Il kit dell’esperto 550
14.5 Esempio: violazione del token di autenticazione
iButton 552
La sperimentazione con il dispositivo 552
Retroingegnerizzazione
della risposta “casuale” 554
14.6 Esempio: violazione dell’acceleratore
e-commerce NetStructure 7110 556
L’apertura del dispositivo 556
Il recupero del file system 557
La retroingegnerizzazione
del generatore di password 561
14.7 Riepilogo 562
14.8 Soluzioni rapide 563
14.9 FAQ 565
Capitolo 15 Virus, worm
e cavalli di Troia 569
15.1 La differenza tra virus, worm e cavalli di Troia 569
I virus 570
I worm 570
I virus delle macro 571
I cavalli di Troia 572
Le bufale 573
15.2 L’anatomia di un virus 573
La propagazione 574
Il carico di lavoro 575
Ulteriori astuzie 576
15.3 Le questioni relative alla piattaforma 577
Java 577
I virus delle macro 577
La ricompilazione 578
Shockwave Flash 578
15.4 Una sana preoccupazione 578
Il worm Morris 578
ADMw0rm 579
Melissa e I Love You 579
Il worm Sadmind 585
Il worm Code Red 586
Il worm Nimda 587
15.5 La creazione del proprio malware 589
I nuovi metodi di distribuzione 589
I metodi di propagazione piu' veloci 590
Ulteriori riflessioni sulla creazione del malware 591
15.6 La protezione dal software maligno 592
Il software antivirus 592
Aggiornamenti e patch 593
La protezione del browser Web 594
La ricerca antivirus 594
15.7 Riepilogo 595
15.8 Soluzioni rapide 595
La differenza tra virus, worm e cavalli di Troia 595
L’anatomia di un virus 596
Le questioni relative alla piattaforma 596
Una sana preoccupazione 596
La creazione del proprio malware 596
La protezione dal software maligno 597
15.9 FAQ 597
Capitolo 16 Elusione degli IDS 599
16.1 Gli IDS basati sulla firma 599
I falsi positivi e i falsi negativi 602
I flood di avvisi 602
16.2 Utilizzo dell’elusione a livello di pacchetto 603
Le opzioni IP 605
La frammentazione IP 605
L’header TCP 607
La sincronizzazione TCP 608
Utilizzo di fragrouter e Congestant 610
Le contromisure 612
16.3 Utilizzo dell’elusione
a livello del protocollo applicativo 612
La sicurezza come ripensamento 613
L’elusione delle corrispondenze 614
Le tecniche di attacco al Web 615
Le contromisure 616
16.4 Utilizzo dell’elusione del morphing del codice 617
16.5 Riepilogo 620
16.6 Soluzioni rapide 621
Gli IDS basati sulla firma 621
Utilizzo dell’elusione a livello di pacchetto 621
Utilizzo dell’elusione a livello
del protocollo applicativo 621
Utilizzo dell’elusione del morphing del codice 622
16.7 FAQ 622
Capitolo 17 Strumenti automatizzati di attacco
e revisione della sicurezza 625
17.1 Conoscere gli strumenti automatizzati 626
Un’esplorazione dei prodotti commerciali 629
Un’esplorazione degli strumenti gratuiti 634
17.2 Utilizzo degli strumenti automatizzati
per i test di penetrazione 638
Il collaudo degli strumenti commerciali 638
Il collaudo degli strumenti gratuiti 642
17.3 Quando gli strumenti non sono abbastanza 645
Il nuovo aspetto dei test di vulnerabilita' 646
17.4 Riepilogo 647
17.5 Soluzioni rapide 648
Conoscere gli strumenti automatizzati 648
Utilizzo degli strumenti automatizzati
per i test di penetrazione 648
Quando gli strumenti non sono abbastanza 648
17.6 FAQ 648
Capitolo 18 Segnalare i problemi di protezione 651
18.1 Perche' e' necessario riportare
i problemi di protezione 651
La divulgazione totale 653
18.2 Determinazione della persona e del momento
in cui esporre i problemi 655
A chi segnalare i problemi di sicurezza? 656
18.3 Definizione della quantita' di informazioni
da pubblicare 658
La pubblicazione dei codici di hacking 658
I problemi 659
18.4 Riepilogo 661
18.5 Soluzioni rapide 662
Perche' e' necessario riportare
i problemi di protezione 662
Determinazione della persona e del momento
in cui esporre i problemi 662
Definizione della quantita' di informazioni
da pubblicare 663
18.6 FAQ 663
Indice analitico 665
Guida sull'Hacking di Digital Alliance Confederation
Google Hacker guide di Johnny
Phrack di Phrack
Guide Hacking di Jnetworld