Buffer overflow vulnerability Essay

1. Introduction

Buffer Overflow exposure is doubtless the most important security menace faced by present twenty-four hours information security professionals. The system has got allocated buffer infinite to hive away their informations temporarily. Basically systems receive informations in many signifiers and hive away them on the buffer for processing. If the information received is larger than the allocated memory infinite so they overflow. Writing outside the allocated memory infinite could do application to crash or able to put to death malicious codification. If any aggressor is smart plenty to craft this overflowed informations into any codification, so they get executed as legitimate map and leting aggressor to hold an authorization over the system ( Tipton et al, 2007 ) .
Main cause for buffer flood is hapless programming patterns. Much of these bugs are exists in, due to the application developer ‘s error or ignorance merely. This could go on due to hapless cognition coders got on application security. To forestall this sort of exposure developer instruction is of import ( Tipton et al, 2007 ) . These sorts of package can incorporate many buffer overflow exposures like stack flood, heap overflow, Off-by-one-overflow, Integer flood and Format String Overflow ( Foster et al, 2005 ) .
Harmonizing to some package sellers, Buffer overflow exposures are the most awful exposures have been identified. It got rich history of development by some of the awful worms and viruses, which digital universe had encountered. Some of them are discussed on this article every bit good. Morris Worm, Code Red Worm, W32/Nimda and SQL Slammer have caused amendss deserving one million millions of dollars.
Buffer overflow exposures are really common in package application, harmonizing to CERT statistics more than 60 % of exposures are linked with buffer flood related exposures. Buffer floods are easy to work, non needfully needed any adept proficient cognition. Many books required to work the buffers are freely available on the Internet. Buffer Overflow constitutes largest menace to the current Information Security Industry. ( Buffer Overflow, Feats: The Why and How. ( 2005 ) . )
Within this study writer discusses major five buffer overflow state of affairs with past history of development and so some industry accepted recommendations to get the better of such exposures.

2. Buffer Flow Vulnerabilities

Buffer overflow exposure is the most serious menace faced by current twenty-four hours computing machine systems. They are the most common ways of working the systems and best known exposure. Chiefly Buffer overflow occurs due to ignorance of the developer, chiefly due to hapless memory direction in their package codification. ( Tipton et al, 2007 )
Buffer flood could work in different ways, some of import flows can be categorized as follows. ( Foster et al, 2005 ) ;

We will write a custom essay sample on
Buffer overflow vulnerability Essay
or any similar topic only for you
Order now
  1. Stack Overflow
  2. Heap Overflow
  3. Off-by-one-overflow
  4. Integer floods
  5. Format String Overflow

2.1 Stack Overflow

Buffer flood in the stack is the most common and the major cause for systems exploit. Stack flood could go on if there is some sort of effort to hive away more informations than, it could keep. If this incident has non been noticed decently, so it could take to many unpredictable effects. Hacker or Intruder could utilize this cringle hole to acquire into the system and utilize it for their ain awful intent. Following is the elaborate treatment of how interloper can work the stack.

2.1.1 What is Stack

Stack is the country allocated in a memory for procedure of peculiar plan maps and variables. Stack information construction is working in a LIFO method ( Last in First Out ) . In this method information is pushed into an allocated stack infinite and pulled out the last pushed point foremost. ( Koopman, 1998 )
Stacks normally grow from top to bottom. Initial size of the stack is zero. The top most points in the stack, is last to force in and will be the first to be popped out. If the bottom point in the stack is removed, so stack will go forth empty. Stack is a really utile to hive away information temporarily. ( Koopman, 1998 )
A utile and important facet of tonss is they can be merely accessed from the top of the stack. ( Koopman, 1998 )
When map is executed application put needed parametric quantity to name that map on the stack. ESP ( extended stack arrow ) is process registry which used by computing machines to maintain record of current location on the stack. In the stack layout lower elements on the stack point to the higher memory references. Stack is normally grows from higher memory reference to lower memory reference. The application put the return reference of the map in the stack, return reference tell the map where to return when it completes its procedures. When map is running, it adds some of its local variables on the stack. When map is done with its processing, it pops out those local variables from the stack and so computing machine runs the bid at the return reference. ( Gallagher et al, 2006 )

2.1.2 Exploiting the Stack

With respect to stack floods, chief concern is application plans ( Specially written utilizing linguistic communications like C/C++ ) store its informations construction on the stack. In much computing machine architecture return references for maps calls are stored in the stack, and so fall short to verify for the length of the informations copied in, this excess set of informations could overwrite other informations every bit good as stored map return reference excessively. If interloper is smart plenty to works this new content in such manner, it could put to death another malicious codification planted by aggressor, and so it might convey ruinous effects. ( Foster et al, 2005 )
Now will travel through simple plan to imitate how stack flood could go on ;
For an illustration, following sample plan declares threading informations type that is 15 bytes long, it is use to accept user name from console entry,
int chief ( )
char sName [ 15 ] ;
printf ( “Enter Student Name: ” ) ;
scanf ( “ % s” , sName ) ;
Here “sName” defined as 15byte, but user existent input length is non verified. Now will detect how this map is treating in the stack.
1. Before user input a Name,

sName 15 bytes

Return Address

2. User enters short name, work all right tantrum in the defined buffer length, return reference is integral
sName =”PONTING ‘


Return Address

3. Now try to hanker name,



Now new informations has been exceeded its allocated buffer length and extended and overwritten the return reference as good.
Any possible interlopers can tryout different combination to do certain, how much excess informations require in order to overwrite the return reference. In the topographic point of that return address they can works opening reference of the buffer. The procedure takes this return reference and direct plan to the beginning of the buffer. If the aggressor has added some malicious codification on this buffer, they will acquire executed. ( Tipton et al, 2007 )
There are two common method of puting the malicious codification by hackers. One is to infix malicious codification in the overflowed buffer and so overwrite the return reference with the buffer reference. Other method is to pack the buffer with some debris informations and put the malicious codifications behind the return reference on stack. Then the return reference has overwritten with an order that will adhere control to the stack arrow, which could be directing to the place after the return reference. ( Shaneck ( n.d. ) )

2.2 Heap Overflow

2.2.1 What is Heap

Another of import facet to see floods from buffers allocated on the pile. The pile is memory country used by the applications procedure and they allocated dynamically during the tally clip. Any possible development on pile is different from stack development. Unlike stack flood pile floods are really much inconsistent and exploit effects are different. This memory is separate from memory allocated for stack. ( Foster et al, ( 2005 )
When plan was written programmer design the infinite needed to salvage its informations. There are figure of maps has been used to carry through this demand. They could be changing depending on the environment and intent of the application. There are twosome of normally used ANSI-C maps like malloc ( ) , calloc ( ) and realloc ( ) . C++ , the operator “new” creates memory on the pile. ( Foster et al, ( 2005 ) )
When plan process calls any of these maps, they reserve memory infinite, and subsequently coder has to let go of them one time they are no more in usage.
Following graph shows the stack ‘s and heaps construction in the memory ; ( Foster et al, ( 2005 ) )


High memory references

Fresh country

Uninitialized informations

Text Segment

Low memory references

Heap memory is arranged into some immediate blocks of set sized memory. Now will reexamine some simplistic position of heap contents. ( Foster et al, ( 2005 ) )




2.2.2 Exploiting the Heap

The most simplistic signifier of heap flood is, overwrite the next informations in the following ball of memory with new set of informations. Overwriting the information on the pile is really simple and does non ever clangs. ( Foster et al, ( 2005 ) )
Here is a sample C++ application with heap overflow exposure. ( Chien and Szor ( 2002 ) )
Void chief ( int argc, coal **argv )
char *buffer = ( char * ) malloc ( 15 ) ;
char *myval = ( char * ) malloc ( 15 ) ;
strcpy ( buffer, ” XXXXXXXXXXXXXX” ) ;
strcpy ( myval, argv [ 1 ] ) ;
printf ( “ % s” , buffer ) ;
This plan dynamically allocates memory infinite for two buffers. First buffer is filled with ‘X ‘s. Other one is acquiring the values from bid line input. With normal operation scenario, memory appears like this ( Chien and Szor ( 2002 ) ) ;

Memory Address







? ? ? ?

? ? ? ? ? ? ? ? ? ? ? ? ?




In following scenario, if user inputs larger sum of informations. Then it do to overwrite next memory infinites. ( Chien and Szor ( 2002 ) )

Memory Address







? ? ? ?





By overruning a pile, it does non normally affect return reference. However, this overwritten informations could do system to crash ( for illustration due to denial of service ) , or freshly overwritten memory infinite contain some informations that relevant to security of the application, or It could overwrite or modify arrows to a map and can be replaced with the location of shell codification. ( Chien and Szor ( 2002 ) )

2.3 Off-By-One floods

Mistakes can go on while numbering no of bytes in a procedure, but cost could be one byte floods and called as an off-by-one. ( Chien and Szor ( 2002 ) )
This sort of scenario could originate if coder is utilizing arithmetic operator “less than equal to” ( “ & lt ; =” ) , alternatively of utilizing “less than” ( “ & lt ; ” ) . ( Chien and Szor ( 2002 ) )
For a illustration will see two next heap memory balls A and B. Due to some plan cryptography lack buffer in A overflowed by 1 bytes, it could overwrite and alter the least important byte of B ‘s because it is in small Indian system. So this memory arrow feat can be used in assortment of mode. ( Foster et al, ( 2005 ) )

2.4 Integer floods

Integer overflows occur when any peculiar map fail to pull off the numerical informations when inputted informations extended beyond the infinite allocated for that peculiar numeral informations type. ( Gallagher et al, 2006 ) .
If programmer utilizations C++ short whole number informations type to hive away some numeral informations, it can keep merely values between +32767 and -32768. The short whole number is a signed information type, holds 2bytes ( 16 spots ) of worth informations. Signed agencies first taking spots indicate, whether the figure is positive value or negative value. ( Gallagher et al, 2006 ) .
If programmer attempt to cipher 25000+25000 and seek to hive away consequence in short whole number informations type, it store value as -15536 because consequence set is excessively large figure tantrum and value floods and alter the mark every bit good as value. Attacker could utilize this feat to many intents. ( Gallagher et al, 2006 ) .

2.5 Format String Overflow

In early 2000, security universe discovered another major package exposure known as format threading onslaught. First feat was identified at Washington University FTP devil ( WU-FTPD ) . This feat allowed aggressors to derive root entree on hosts running WU-FTPD without any kind of hallmark if anon. FTP was enabled ( unfortunately it was the default apparatus in many systems ) . Actually format threading exposure is input proof bug, where coder failed to properly validate untrusted informations before include into the format twine statement. ( Foster et al, ( 2005 )
A format map is a C/C++ map does non hold a fixed set of statements, takes different figure of statements. It is a transition map ; they are used in C plans to show C crude informations types in human clear format. Very much normally used C threading format map is “prinf” . ( Foster et al, ( 2005 )
In format twine exposure, chief job is some external informations included into the format threading map ‘s statement, this exposure is non similar to heap or stack overflow. By utilizing format threading hacker ‘s got ability to compose, his arbitrary codifications to definite location in the memory. ( Foster et al, ( 2005 ) )
To acquire a proper apprehension of format twine exposure is happening, it is of import to understand how “printf” map is working,
Short illustration to show how “printf” is working ; ( Foster et al, ( 2005 ) )
Int chief ( )
Int nVar=50 ;
Printf ( “Variable value is, % i” , nVar ) ;
In the above codification, prinf map is used with two statements format twine and value needed to publish with the twine. Output of the codification would wish this ;
Variable value is, 50
Now will look at the stack and how it would look like, ( Foster et al, ( 2005 ) )

Printf ( )

Value of I ( nVar )

Return Address Main ( )

Printf map does n’t cognize how many statements it has received, they are taken from the stack as the format twine is executed. In our illustration whole number variable item is added to the format twine. Printf map expects, value matching to this token to be passed as the 2nd statement. Function references these statement values on the stack in its stack frame. When printf map is making the end product twine, it will take whatever value from the stack and usage that value matching to the item in the format twine. ( Foster et al, ( 2005 ) )
Above class of action occur regardless of whether coder has added the 2nd statement to printf map or non. So, if no any statement which corresponds to the item were passed, what is on the stack will be treated as the statement. ( Foster et al, ( 2005 ) )
When the statement does non fit with the matching items in the format twine, so end product will include a mixture of values from the stack, where batch of other information has been stored. So attacker got an chance to read information which does n’t belong to him. Furthermore, format map item “/n” , can be used to compose anything to the stack. ( Foster et al, ( 2005 ) )

3. History of development

Buffer overflow methods have been used by hacker ‘s for a long period of clip. But it was non known that much to industry until the Code Red worm, it was flooring intelligence for the security industry. Many antivirus companies could n’t supply timely protection against it. Since so there were batch of Worms/Viruses have been released by malicious users. We will discourse some the Worms/Viruses which exploited buffer overflow exposure ( Szor, 2005 ) .

3.1 The Morris Worm

The Morris worm was the first major Internet worm to assail the cyberspace. It was named after discoverer, Robert Tappan Morris pupil at Cornell University. This worm was ab initio released on November 2nd 1988. This worm infected about over 60,000 computing machines within twosome of hours. ( Estimated around 10 % of all Internet connected computing machines at that clip ) ( Daswani, Kern, Kesavan, 2007 ) .
This onslaught disabled the cyberspace connectivity for several yearss, forced many organisation to unplug their web from Internet.
The Morris worm spread to one computing machine to another utilizing the Internet, without any human intercession. The Morris worm replicated itself and distribute to other computing machines. This act had generated monolithic web traffic. ( Daswani et al, 2007 ) .
The Morris worm had used the exposure of fingerd daemon plan in BSD-derived versions of UNIX ( for finger devil waiter ) to retroflex itself. The fingerd is a simple waiter based plan, it provides interface to the “finger” plan at clients. The finger client plan enables some users to obtain a friendly position study whether peculiar user has been logged into a peculiar system. The Morris worm took advantage of this map ; since this plan is deployed in all UNIX based systems ( Daswani et al, 2007 ) .
The Morris worm exploited fingerd overflowing in the buffer which used for input. The standard C Library map “gets ‘ read input without verifying any boundary values, this exposure exploited by the Morris Worm. ( Daswani et al, 2007 ) .
The Morris worm in add-on to utilizing fingerd plan exposure, it used the exposure identified in the sendmail plan which is deployed in the UNIX waiters. The sendmail plan is aid to direct electronic mails from one UNIX waiter to another UNIX Server. This plan can run in different manners, the manner exploited by the Morris Worm in sendmail is debug manner built into it. The worm issues debug bid to sendmail and so hold to direct some malicious codifications. This enabled replicate the worm from one computing machine to another computing machine. Actually this debugging installation should hold been disabled on all production UNIX systems. But unluckily many site decision makers left this option opened. ( Daswani et al, 2007 ) .
The other exposure of Morris worm exploited was the UNIX commands viz. rsh and rexec. Both of them allow users to put to death bids remotely. To utilize the rexec characteristics, it needed to acquire in to the user ‘s histories. So it had to think user ‘s watchwords. To accomplish this end, it has accessed the watchword file and list of particular popular common watchwords. It was really much successful in happening the needed watchword and successfully logged into computing machine with selected user name and watchword. Once it gets into one computing machine, it would seek to log into the other computing machines within the same web. In some instances it does and rsh or rexec remotely executed bids on the other computing machines. ( Daswani et al, 2007 ) .
The Morris worm has used three type techniques and was able to distribute really quickly ( Daswani et al, 2007 ) .

  1. Used the buffer overflow exposure.
  2. It used the system constellation loophole in sendmail.
  3. Remotely logged into computing machines utilizing common user Idahos and watchwords.

This worm demonstrates system deployment is besides of import factor when sing security of it. The Morris worm exploited common exposure found in all UNIX waiters. If a peculiar exposure exists in a system, it could be in other systems as good. Furthermore it is of import to pay attending when taking a watchword ; they should be difficult to think by any possible aggressor. ( Daswani et al, 2007 ) .

3.2 The Code Red Worm

The Code Red worm was ab initio surfaced in July-2001. It has been estimated, this worm had infected more than 300000 computing machines within a twenty-four hours. It exploited the buffer overflow exposure existed in the Microsoft IIS web waiter. ( Szor. 2005 )
“Dynamic Graphs of Code Red Worm” ( Alex, ( 2001 ) )
The Code Red worm exploited known buffer overflow exposure in the IIS Server. Once it infected any peculiar waiter, so it retroflex it and starts scanning random IP addresses through TCP Port 80 for other IIS Servers, and connect with those IIS waiters. In add-on it did a denial of service ( DOS ) onslaught on those references. Speed of distributing this worm so speedy, worm was able infects 1000s of computing machines within twosome of proceedingss. There were no any suites to respond rapidly to keep it. Code Red was memory resident worm, so it could be eliminated by bring uping the computing machine, but due to nature and velocity of its spread same computing machine got infected fleetly ( Daswani et al, 2007 ) .
The Code Red was able to infect the computing machines, which got virus scanning package every bit good. The Code Red stays in computing machines memory, and did n’t compose any files to difficult disc, as a consequence it was able by base on balls any virus scanning tools every bit good ( Daswani et al, 2007 ) .
Basically Code Red used few techniques to infect other computing machines ( Berghel. 2001 ) ;

  1. It used the TCP/IP Port 80 to distribute to other computing machines.
  2. Added its individuality on the web site with “ Welcome to www.worm.com! —Hacked by Chinese! ”
  3. Self reproduction by random IP reference generator.
  4. Unleash the denial of service onslaught on some selected web sites, including whitehouse.gov

The Code Red worm connected to other Web Servers utilizing Port 80, after connexion has been established hosts sends http GET ( which contained chief worm codification ) petition to connected waiter. That petition exploited the buffer over flow exposure on that waiter, and executed worm on that system. The worm straight executed from that computing machines memory ( Szor. 2005 ) .
Once it ‘s infected any waiter, ab initio it make 100 togss and first 99 togss indiscriminately choose some IP references and seek to link with that IP reference to any waiter and go on to infect another waiter, the hundredth yarn would seek to place is septic system is windows system and alter the web site by adding its signature “ Welcome to www.worm.com! —Hacked by Chinese! ” ( Berghel. 2001 ) .
The Code red had exploited known exposure in IIS Server, for which Microsoft have warned about this exposure and issued the relevant spot every bit good, but unluckily many system decision makers failed to use this spot and they paid monetary value. This exploit gave a good lesson that is Prevention is far more cost effectual than handling them after development. If the security professional kept them side by side with sellers about any new spot releases and updates of any package, they could hold easy minimized desolation caused by this worm.

3.3 The W32/Nimda Worm

Nimda worm started distributing on the Internet on September 18th 2001. Nimda exploited some exposure on Microsoft Windows 95, 98, 2000, NT and 2000 Servers. The Nimda took some action from codification ruddy worm and made it more severely than it. Nimda adopted legion extension vectors to distribute from one computing machine to another computing machine ( Daswani et al, 2007 ) .
Actually Nimda worm was really destructive, because it was able to distribute faster, consumed batch of web bandwidth and exploited many known exposures in victims system. The Nimda was able to obtain to the full administrative privilege in mark computing machine every bit good. Furthermore, this worm is really difficult to take from the system, because it does batch of alterations in the victims computing machine, including many register and file alterations. The “Nimda” represent, if “Admin” spelled in backwards order. This worm has exploited some buffer overflow exposure in IIS and some bugs Outlook.
Nimda has used following methods to propagate itself ;
( Mackie, Roculan, Russell & A ; Velzen, 2001 )

  1. Email, The Nimda worm was delivered utilizing the electronic mail
  2. Web waiter onslaughts, The Nimda worm hunt for vulnerable Microsoft IIS Servers, to copy itself to the waiter.
  3. Web shoping codification, The Nimda worm appends its malicious codification to all WebPages shacking on septic web waiters.
  4. Open web portions, The Nimda worm propagate internally through utilizing unfastened web portions.

The Nimda Worm was able to garner email reference from email clients like Microsoft Outlook, by utilizing the Windows Messaging Application Programming Interface ( MAPI ) or any references found in.html cached paperss. Then writhe sends messages to those email Idahos ‘s fond regard of worm itself as a“README.EXE” feasible file utilizing its ain E-mail plan. If the receiving system open the message and, the instantly file get executed automatically, so that computing machine get infected. The topic of the electronic mail is derived from bing messages in septic computing machine ( Mackie et al, 2001 ) .
The Nimda worms exploited “Escaped Character Decoding Command Execution Vulnerability” and “Extended Unicode Directory Traversal Vulnerability” in unpatched Microsoft IIS. It looks for back doors left by Code Red II worm. It looks for IIS Web waiters by its ain IP Address coevals mechanism. If successful, so reassign warm codification utilizing the file name Admin.dll through the Trivial File Transfer Protocol ( TFTP ) Service on UDP port 69, Then this Admin.dll file get executed and Infect system ( Mackie et al, 2001 ) .
The Nimda one time entered into a Web waiter, it looks for any Web files and infects the content of those pages by add oning them with JavaScript intended to convey to play its malicious codification. This JavaScript causes web browser to download malicious codification into the user ‘s computing machine. If any victim user sing those infected web sites will go septic with Nimda worm as happen with email clients besides ( Mackie et al, 2001 ) .
Finally, Nimda created most serious security breach by compromising web shared booklets and files. Actually it has granted “everyone” with “full access” privileges on local and shared directories, and it did some Windowss register alterations, which enabled all thrusts shared. Then copied itself into every possible locations. If victims system is connected cyberspace, by making this Nimda has created back door, which enabled full entree from Internet on victims computing machine ( Mackie et al, 2001 ) .
Once once more as usual, Nimda Worm exploited known exposures on Application. They were known to industry months in progress, and relevant spots were available, but ignorance of system decision makers made Nimda worms to carry through its aim. Most of the amendss by the Nimda Worm could hold been prevented, had system decision maker applied relevant spots when it became available.

3.4 The SQL Slammer Worm

SQL Slammer was another lay waste toing worm hit the Internet on 25th January 2003. With following the same stairss SQL Slammer Worm took the advantage of Buffer Overflow Vulnerability found in Microsoft SQL Server database ( Daswani et al, 2007 ) .
SQL Slammer was the fastest worm to hit Global web. As it was started distributing in Internet, it infected more than 90 % vulnerable systems within 10 proceedingss of clip span. It caused important amendss to many organisations in many states ( Moore, Paxson, Savage, Shannon, Staniford and Weaver ( 2003 ) ) .
This graph demo geographical distribution of the virus within 30minutes of its release. ( Moore et al. ( 2003 ) )
The SQL Slammer worm caused major amendss by overloading the web bandwidth ; fortuitously it did n’t do malicious activities beyond that. But many sites lost its connectivity due to its web bandwidth ingestion. This worm could hold been event worst, if it had been designed to make more awful Acts of the Apostless like canceling and altering files. ( Moore et al. ( 2003 ) )
The SQL Slammer Worm operated via utilizing the connectionless UDP ( User Datagram Protocol ) instead than utilizing TCP ( Transmission Control Protocol ) . UDP is much faster than the TCP and SQL Slammer Worm was able spread more quickly. So Slammer worms spread was about dual the velocity than the Code Red Worm. SQL Slammers web transportation warhead was merely 404bytes individual UDP package compares to Code Red ‘s 4Kbyte. ( Moore et al. ( 2003 ) )
The SQL Slammer worm exploited the exposure found in Microsoft SQL Server – Server Resolution Service ( SSRS ) . SQL Server uses UDP Port 1434 for this service.SQL Slammer Worm has used this service launch its onslaught. It was stack buffer overflow exposure. It enabled aggressor to direct maliciously coded petition to UDP Port 1434. SQL Slammer worm was written utilizing the Assembly linguistic communication, it merely sit over the machine linguistic communication, no demand of any compilers, hence treating that virus was really fast. ( Moore et al. ( 2003 ) ) .
The SQL Slammer virus used the internal clock and Windows API map, to randomly bring forth some IP reference, to direct its codification. After directing a package, it loops about and instantly sends another to different computing machine. If this UDP Packet sent to a vulnerable computing machine, now these systems become affected and besides get down to propagate same mode as host computing machine did. While SQL Slammer did n’t incorporate awful warhead but created significant amendss by overloading the web. ( Moore et al. ( 2003 ) ) .
The SQL Slammer Worm had exploited known exposure in Microsoft SQL Server, for which Microsoft have warned about this exposure in progress and issued the relevant spot every bit good, but unluckily many system decision makers have failed to put in this spot, and left their system vulnerable to this feat.

4. Countermeasures

4.1 Application Security

Software jobs play major function when it come Information Security. Software weaknesses such as buffer flood and design weaknesses/flaws are important, when sing the security of it. Any aggressor could work those failings and compromise the system. So it is really of import to hold a good application security scheme when pull offing the Information Security Management System ( ISMS ) .
Main of import construct should understand by any security practician, proper instruction and watchfulness is of import to any application security. This should get down with developer ; he should hold first-class apprehension of how to develop a secure application. Development scheme should hold a proper program to place exposure and eliminate them proper control during the development stage itself. By working to forestall some security issues at initial stage of development, could increase opportunities of create and implementing a secure package well. Some of the most common security jobs should be avoided when developing a new package or codification alterations. Some of the common exposures are ;

  1. Buffer Overflows: A buffer flood occurs when application attempt to compose informations beyond its allocated memory infinite. This is really common issue with application written by utilizing linguistic communications like C and C++ . If coders neglect to verify the informations length for any input values, it could take to buffer overflow development and this defect can be used by anyone for any malicious act. Buffer overflows can be prevented by clever scheduling. Proper input proof is compulsory, ne’er trust user input.
  2. SQL injections: Attacker can establish SQL Injection by infixing some malicious SQL statement via Application Input Fieldss into the application. If application is utilizing some input values to make dynamic SQL, so an aggressor could utilize it for SQL Injection. For an illustration in login pages of web application, aggressor would be able to input crafted values to trip SQL Injection exposure, as a consequence aggressor get clasp of full entree in application including sensitive information ‘s. Basically being able Inject any SQL question means malicious user ‘s can put to death anything at their will.
  3. Improper Error handling: Improper mistake handling could take to many security jobs in application. If application mistake handled improperly, so they could supply critical information to aggressor. Anyone be able to utilize these hints and can beg planned onslaught on the application. Due to carelessness of coders, many mistake messages reveal some basic critical security information about the package.

Having a good cognition of some basic package security rules can do package more secure. Here is the some brief description of some rule could be used by package development professionals ;

  1. Least Privileges: Limit privileges to minimum degree, which is adequate to execute application functionality. No more than required or non less than needed. Giving merely authorization to carry through the occupation. Main advantage of this principal is, it could forestall from inadvertent amendss.
  2. Separation of Duty: In separation of responsibilities, individual individual can non carry through a one undertaking. Need some other people ‘s blessing every bit good. For an illustration in a bank teller ca n’t let go of money without blessing of the director.
  3. Software security testing: Good methodological analysis of package proving is of import to do package more secure in the presence of malicious users.

In add-on to above consideration farther, System decision makers should hold changeless contact with sellers, seller bulletin and package spot release.
When put ining new package utmost attention should be taken in constellation, security facet of the system should see foremost and continue with execution harmonizing to it. When giving entree privileges, all application should be given least sum of privileges to carry through its primary undertaking merely.

4.2 Testing the Code

There could be much ground why applications got bugs like buffer flood. They could be programmer ‘s errors, hapless system design, intentionally introduced codifications, force per unit area on development squad to run into the deadlines, Poor coding practises, and package development language/tools used. No affair, irrespective of cause of the application they should be exhaustively tested prior to execution, otherwise effects could be ruinous. One of the most effectual ways identifies and eradiate the package is to prove them.

4.2.1 Test-driven Development/Unit Test

During the development stage itself, coder can make Test-driven development. This can be merely accomplished by making a unit trial on current development procedure, which developer has been involved with. Unit of measurement is the testable part in a system which can be tested by developer himself. By making this he can guarantee he is within the development demand boundary every bit good place any possible bugs on the system. This can be merely achieved in linguistic communications like Java utilizing JUnit, but it is non limit to java, it is possible to carry through the same undertaking in other linguistic communications as good.
Primary intent of unit trial is to pull out smallest portion in the package application and verify they behave precisely as per the system demands and place, proving in isolation mean is much easier to insulate bugs.
In add-on to happening mistakes, unit proving it could supply immediate feedback on coder ‘s work and it assist programmer write much better codification.

4.2.2 Peer reappraisal

Before application put into production, they can be reviewed for any possible bugs by another senior developer or co-worker. By utilizing the codification reappraisal stableness of the codification and rightness can be improved. This sort of broader reappraisal can assist to cut down mistake rate in the written plan. Review could assist to place whether application has used proper input proofs and other methodological analysis.
Without proper equal codification reappraisal, package bugs and defects in the codification could go portion of the application.

4.3 Software Patch Management

Software spots are holes for any Identified bugs and extinguish exposures in an application. Software sellers from clip to clip, as they diagnosed any issues with their merchandises, they release spots to repair them, so patch direction is critical when sing security of an application package or runing systems.
Main aim of spot direction is making a secure environment that provides protection against identified exposures in application packages and runing systems. Important portion of the spot direction is to place the security issues and spots relevant to place issues. These undertakings chiefly rely on system or security decision maker. They have to maintain alert attending on package seller ‘s presentment, bulletin and related newssheet. And place and use relevant spots every bit shortly as they are available to use. Almost every worms or viruses development could hold been prevented, if decision makers had applied relevant spots on clip.
Spot is updated version of the application package, consists merely constituents which has been fixed. It is non necessary to let go of whole application once more. Many package sellers got their ain package update characteristic shipped with their original merchandise, for a Microsoft Windows Update characteristics. It is of import to maintain Auto update on, so if there is any spots available for some critical bugs, system does automatic update on those spots.

5. Decision

This article presented with elaborate treatment of buffer overflow exposures, feats history and recommended good patterns to decrease the effects from developments.
Buffer overflow exposures are existent menace. Buffer overflow exposures can be easy evitable if coders hold on to good cryptography patterns. It is of import to increase the preparation and coaching capacity among the package developers about the buffer overflow exposure and other security related concerns, particularly bound look intoing, avoiding insecure maps etc.
Most worms and viruses exploited by known exposures, some of the exposures were known by sellers several months before and they have warned about them to client besides, and issued necessary spot and prevent any feats every bit good. But unluckily many system decision makers ignored these warnings and failed to use relevant spots. Result was serious break and immense losingss to the organisation after development the exposure by malicious codification. Timely update of package spots is really of import to maintain organisations information system safe. A best line of protection is timely application of package spots or holes as on exposure is identified or reported. To remain safe, it is of import to hold proper spot direction patterns in topographic point.


  1. Foster, C.J. , Osipov, V. , Bhalla, N & A ; Heinen, N. ( 2005 ) . Buffer Overflow Attacks -Detect, Exploit, Prevent. Retrieved 12th September 2009 from Electronic Book Library database ( Griffith University )
  2. Szor, P. ( 2005 ) . The Art of Computer, Virus Research and Defense. Upper Saddle River NJ: Pearson Education.
  3. Tipton, H. F, & A ; Krause M. ( 2007 ) . Information Security Management Handbook. New York: Auerbach Publications.
  4. McGraw G. ( 2006 ) . Software Security – Building Security In. Boston: Pearson Education.
  5. McGraw G. ( 2007 ) . Secure Programing with Inactive Analysis. Boston: Pearson Education.
  6. Gllagher, T. , Jeffries B. , & A ; Landauer L ( 2006 ) . Hunting Security Bugs. Washington: Microsoft Press.
  7. Pfleeger. C.P. , & A ; Pfleeger S.L. ( 2003 ) . Security in Computing ( Third Edition ) . New New Jersey: Parentice Hall.
  8. Harris S. ( 2002 ) . All in One CISSP Certification Exam Guide. California: McGraw-Hill/Osborne.
  9. Shaneck, M. ( n.d. ) An Overview of Buffer Overflow Vulnerabilities and Internet Worms. Retrieved September 25, 2009, from hypertext transfer protocol: //www-users.cs.umn.edu/~shaneck/MarkShaneck_BufferOverflows.pdf
  10. Chien E. , Szor P. ( 2002 ) . Blended Attacks Exploits, Vulnerabilities and Buffer-Overflow Techniques in Computer Viruses. Retrieved on 28th September 2009, from hypertext transfer protocol: //www.symantec.com/avcenter/reference/blended.attacks.pdf
  11. Daswani, N. , Kern, C. , Kesavan, A. ( 2007 ) . Foundations of Security: What Every Programmer Needs to Know.New York: Springer-Verlag
  12. Berghel, H. ( 2001 ) . The Code Red Worm: Communicationss of the ACM. New York: ACM. Retrieved on October 2, 2009 from ACM Digital Library.
  13. Alex, M. ( 2001 ) . Dynamic Graphs of Code Red Worm. Retrieved on on October 2, 2009, from hypertext transfer protocol: //www.caida.org/dynamic/analysis/security/code-red/
  14. Moore, D. , Paxson, V. , Savage, S. , Shannon, C. , Staniford, S. , Weaver, N. ( 2003 ) . Inside the Slammer worm Retrieved on October 2, 2009, from hypertext transfer protocol: //ieeexplore.ieee.org.ezp01.library.qut.edu.au/stamp/stamp.jsp? tp= & A ; arnumber=1219056 & A ; isnumber=27399
  15. Mackie, A. , Roculan J. , Russell R. , and Velzen, M. V. , ( 2001 ) . Nimda Worm Analysis Retrieved October 3, 2009 from hypertext transfer protocol: //dpnm.postech.ac.kr/research/04/nsri/papers/010919-Analysis-Nimda.pdf
  16. Buffer Overflow, Feats: The Why and How. ( 2005 ) . Retrieved on October 05, 2009, from hypertext transfer protocol: //www.mcafee.com/us/local_content/white_papers/wp_ricochetbriefbuffer.pdf

Hi there, would you like to get such a paper? How about receiving a customized one? Check it out