Font Size: a A A

Research On Automatic Detection Of Buffer Overflow For C Language

Posted on:2005-05-31Degree:MasterType:Thesis
Country:ChinaCandidate:D Z ZhangFull Text:PDF
GTID:2168360125950733Subject:Computer software and theory
Abstract/Summary:PDF Full Text Request
With the development of technology of the computer, the application in national product and people's lives of software is popularized and deepened day by day. Even as big as the government bodies, spaceflight military affairs, are even as small as the personal family, word processing, various software with different complexity is running all the time. Meanwhile, with the increase of the scale of the software, hundreds of thousands up to a million lines of codes has already been seen everywhere. With the enlargement of the kind of scale, it is higher and higher to make the complexity of the software corresponding. All these have caused defect and mistake in the software to be more and more directly. At the same time, many system level programs are written in C, but there are many vulnerabilities in C with the string library function, these are the factors that there are many buffer overflow vulnerabilities in today's software.At the same time, according to the statistic of CERT, in the invasion incident in the present network,50% has utilized buffer overflow at least. Undoubtedly, in this networked information era, this kind of attack is very easy to propagate, threaten the systematic security greatly.No doubt, if can adopt effective means and method to take precautions against this kind of attack, make this kind of attack unable to go on or not cause serious danger to the system at all, it will have very important meanings to the security of the software system. So, the research in this aspect has caused people's great attention.Methods that detect buffer overflow are generally divided into two kinds at present: dynamic method and static method.The dynamic method is to change the running time environment of the program in order to detect the possible attack and once any attack is detected the system will be aborted. This kind of precaution is in running time, not at the source code level, the vulnerabilities are still there. Only under this running time environment, the operation of the procedure can be safe. Now several protection tools that using such method have already been reported, such as Stack Guard, Stack Shield, Return Address Defender(RAD), propolice etc. But the dynamic detection method has the conspicuous shortcomings of two respects: First, the system spending of dynamic analysis has increased greatly while the software is running. it is impracticable to some systematic procedures; secondly, the dynamic analytical method simple abort the running of the software while detecting certain attacks, this is very apt to transform such attack to the denial of service(DOS) attacked.On the contrary ,static detection method can remove the buffer overflow vulnerabilities before the software is handed over, the vulnerabilities of the software will never be there after is has been delivered This is the method that eliminate the buffer overflow vulnerabilities from essence. So it has got people's general attention. The present static detection method is still very unripe, some just made lexical analysis, then carry on the match of the pattern, some have done syntactic analysis, but need to join the explanatory note by hand. There is no real actual complete automatic detection tools.In this thesis, various kinds of means to detect the buffer overflow vulnerabilities have been studied, then introduced some existing tools that do such detection at present and analyze their pluses and minuses. On this basis , an abstract machine model that undertake buffer overflow detection is proposed, it belongs to static method. Mainly want to make a formalized description of the problem in term of operation semantic aspect. There are also documents that provide the formal description of the string buffer overflows, but has not adopted the method of operate semantics, so it is not very easy to realized it in practical.The idea of the abstract machine description is: Set up a code area, a reserved area, a buffer stack, a pointer stack, dynamic environment ,static environment, adopt grammar guided analys...
Keywords/Search Tags:Automatic
PDF Full Text Request
Related items