Return to Video

02-39 Buffer Overflow

  • 0:00 - 0:05
    Non c'e' bisogno di dire che questo comportamento dei programmi C e C++ apre le porte
  • 0:05 - 0:08
    a molti molti modi per abusare del sistema.
  • 0:08 - 0:15
    Avrai sentito parlare di buffer overflows, che sfruttano proprio questa falla del C e C++
  • 0:15 - 0:20
    in cui degli individui non solo possono leggere ma anche scrivere oltre gli elementi di un array
  • 0:20 - 0:25
    allo scopo di piazzare del codice dannoso e accedere a zone di memoria.
  • 0:25 - 0:29
    Cio' apre le porte a tutta una serie di hack interessanti, naturalmente.
  • 0:29 - 0:31
    Come ci si puo' accorgere di questi errori?
  • 0:31 - 0:34
    Cio' di cui abbiamo bisogno e' una invariante di sistema che controlli
  • 0:34 - 0:38
    continuamente che i confini di un array non vengano superati in lettura o scrittura.
  • 0:38 - 0:45
    Cio' che uno strumento potrebbe fare, per esempio, e' di monitorare costantemente le aree non inizializzate
  • 0:45 - 0:49
    in letture e scritture da qualsiasi singola istruzione che sia
  • 0:49 - 0:55
    e ogni qualvolta il programma tenti di accedere a della memoria di sistema non allocata,
  • 0:55 - 1:01
    succedera' che il controllore invariante sollevera' un eccezione oppure blocchera' il programma
  • 1:01 - 1:05
    consentendoci percio' di individuare questo tipo di errori.
  • 1:05 - 1:10
    Sono d'aiuto in questo degli strumenti per il C e C++, compresi strumenti come Electric Fence,
  • 1:10 - 1:17
    che e' esattamente questo: mette questi blocchi prima e dopo ogni blocco allocato
  • 1:17 - 1:22
    e percio' rileva quando delle letture e scritture avvengono al di fuori delle aree allocate.
  • 1:22 - 1:28
    E il secondo importante tool qui e' Valgrind, che e' proprio un interprete per binari x86
  • 1:28 - 1:32
    il quale ci consente di monitorare gli accesi al codice non inizializzato dei programmi C e C++.
タイトル:
02-39 Buffer Overflow
Video Language:
English
Team:
Udacity
プロジェクト:
CS259 - Software Debugging
Duration:
01:37
fabio added a translation

Italian subtitles

改訂