handouts/ho03.tex
changeset 451 b6eb8142dec1
parent 443 67d7d239c617
child 452 3447cc029e2f
equal deleted inserted replaced
450:f3d5e57ca00a 451:b6eb8142dec1
    47   table [x=Year,y=Percentage] {bufferoverflows.data};
    47   table [x=Year,y=Percentage] {bufferoverflows.data};
    48 \end{axis}
    48 \end{axis}
    49 \end{tikzpicture}
    49 \end{tikzpicture}
    50 \end{center}
    50 \end{center}
    51 
    51 
    52 \noindent This statistics shows that in the last seven years
    52 \noindent This statistics shows that in the last seven years or so the
    53 or so the number of buffer overflow attacks is around 10\% of
    53 number of buffer overflow attacks is around 10\% of all attacks
    54 all attacks (whereby the absolute numbers of attacks grow each
    54 (whereby the absolute numbers of attacks grow each year). So you can
    55 year). So you can see buffer overflow attacks are very
    55 see buffer overflow attacks are very relevant today. For example, very
    56 relevant today.
    56 recently (February 2016) a buffer overflow attack was discovered in the glibc
       
    57 library:\footnote{\url{http://arstechnica.com/security/2016/02/extremely-severe-bug-leaves-dizzying-number-of-apps-and-devices-vulnerable/}}
       
    58 
       
    59 \begin{quote}\it
       
    60 ``Since 2008, vulnerability has left apps and hardware open to remote
       
    61   hijacking. Researchers have discovered a potentially catastrophic flaw in
       
    62   one of the Internet's core building blocks that leaves hundreds or
       
    63   thousands of apps and hardware devices vulnerable to attacks that can take
       
    64   complete control over them.  The vulnerability was introduced in 2008 in
       
    65   GNU C Library, a collection of open source code that powers thousands of
       
    66   standalone applications and most distributions of Linux, including those
       
    67   distributed with routers and other types of hardware. A function known as
       
    68   getaddrinfo() that performs domain-name lookups contains a buffer overflow
       
    69   bug that allows attackers to remotely execute malicious code. It can be
       
    70   exploited when vulnerable devices or apps make queries to
       
    71   attacker-controlled domain names or domain name servers or when they're
       
    72   exposed to man-in-the-middle attacks where the adversary has the ability
       
    73   to monitor and manipulate data passing between a vulnerable device and the
       
    74   open Internet. All versions of glibc after 2.9 are vulnerable.''
       
    75 \end{quote}
    57 
    76 
    58 
    77 
    59 To understand how buffer overflow attacks work, we have to have
    78 To understand how buffer overflow attacks work, we have to have
    60 a look at how computers work ``under the hood'' (on the
    79 a look at how computers work ``under the hood'' (on the
    61 machine level) and also understand some aspects of the C/C++
    80 machine level) and also understand some aspects of the C/C++