0% found this document useful (0 votes)
101 views5 pages

Running Head: BUFFER OVERFLOWS 1

This document discusses buffer overflow attacks and how to prevent them. A buffer overflow occurs when a program attempts to store more data in a buffer than it was intended to hold, overwriting adjacent memory. Attackers can exploit buffer overflows to execute arbitrary code on vulnerable systems. The document recommends ways to prevent buffer overflows such as choosing programming languages that do not allow direct memory access, using security features like DEP and ASLR, static code analysis tools, hiring security experts, and fuzz testing.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
101 views5 pages

Running Head: BUFFER OVERFLOWS 1

This document discusses buffer overflow attacks and how to prevent them. A buffer overflow occurs when a program attempts to store more data in a buffer than it was intended to hold, overwriting adjacent memory. Attackers can exploit buffer overflows to execute arbitrary code on vulnerable systems. The document recommends ways to prevent buffer overflows such as choosing programming languages that do not allow direct memory access, using security features like DEP and ASLR, static code analysis tools, hiring security experts, and fuzz testing.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 5

Running head: BUFFER OVERFLOWS 1

Discuss the principle of exploits based on buffer overflows attack

Authors name

Institution
BUFFER OVER FLOWS 2

Buffer overflow

Buffer overflow is a region in a computers memory that contains limits in context with

a variable in a program that references the memory. For instance:

char buff [20]

In the example above, buff stands for a range of 20 b where buff [19] is the right limit and buff

[0] if the left buffers boundary.

Another example is

int arr [20]

arr stands for an array 20. Taking an assumption that the integer size is 4 bytes then the total

size of the buffer arr is 20 times four which is equal to 80 bytes. Therefore, a buffer overflows

when data files past right or left limit of the buffer. In this way, the data records into a memory

portion that does not fit in the variable of the program which adjusts the buffer.

For instance:
char buff [20];

buff [20] = 'a';

In the example above, there is an array of size 20 bytes. The 20 b of the buffer can be the same as

index 0-index 19. But, in the following line, 20 stands as a store value of a. In such a situation is

where a buffer overrun takes place as data records beyond the buffers right boundary.

Buffer overflows attacks are frequent and gives an attacker access to have a substantial

extent of control over a machine. Through exploitation of operating systems and vulnerable

application, attackers can use commands of their choice on targeted machines and take over the

computer of the victim. For instance, picture if I execute one or more commands on a valuable

server, or works station. Depending on the rights I would have to use these commands to add
BUFFER OVER FLOWS 3

accounts, control GUI remotely, and change systems configuration. Attackers like the ability to

execute commands on targeted machine. Buffer flow vulnerability takes place when attackers

send much data to a program that is more vulnerable than the first software planned for at the

time of writing the program code (Gregory, 98). The overflowed buffer is a variable employed

by a target program. The flaws are always as a result of shoddy programming, with a person who

does not create code to look for the user input size before moving it into memory. With such

mistakes, an attacker is in a position to send more data, possibly changing the target program

flow.

Prevention of buffer overflow attacks

There are several ways to prevent buffer overflows attack. To start with, if the language

one chooses split equally between one this allows direct access to memory and the other that

does not opt for the one that does not. To be precise, choose Java, Python, Perl or Lisp over C++.

Secondly, in languages that memory can be accessed directly, where classes exist that hold

memory, for instance, std::string, employs them. Choose well worked out classes over classes

with fewer users. Thirdly, apply compiler options as DEP and ASLR. Use security linked

compiler options which your application presents (Deckard, 224). The compilers options will aid

mitigate the effect of any overflow. Fourthly, use analysis tools of static code like Veracodes or

Qualys service to find out overflows that were not meant to be in the system (Deckard, 263).

Then resolve the stuff that the developer finds. Fifthly, study how overflows operate, and how to

identify overflows in code. Sixthly, if there are resources, hire experts to evaluate your product.

They will polish your product and better it. Seventhly, ensure that your quality assurance team
BUFFER OVER FLOWS 4

knows to test for overruns and learn how they work. Lastly, do fuzzing which finds many

overflows in various products (Deckard, 216).


BUFFER OVER FLOWS 5

References

Gregory, P. (Ed.). (2015). CISSP Guide to Security Essentials. Cengage Learning

Deckard, J. (2005). Buffer Overflow Attacks: Detect, Exploit, Prevent. Syngress publishing

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy