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++ |