2. 2. Path manipulation techniques. The original RPO attack has a few ... (1) A vulnerable HTML and the stylesheet loaded by the HTML must be the same file.
Dynamic Program Analysis and Software Exploitation. From the crash to the exploit code. Rodrigo Rubira Branco (BSDaemon)
By Karlheinz Kronauer, Director Product Management, Software AG. When Dr. Peter ... computer scientist and Turing Award
through actual executions, i.e., with real data and under real (or simulated) ... In this paper, we focus on the technol
1 University of Heidelberg, Institute of Computer Science .... a phone call on a mobile phone does not pre-empt the execution of an arbitrary function when a .... But, there is no advice on how to derive test cases which .... Department of Computer S
The testing carried out at different stages in software development life cycle is
described by the various testing methods. Keywords: Test cases, integration, ...
Although the editor tried to conform to the original presentation, certain changes
were necessary, .... 5.1.3 The electronic switching system . ... 7.10 R. M.
Needham: Software engineering techniques and operating system ..... in Artificial
Intell
Aug 28, 2016 - from the sheer size and complexity of large software systems. Day by .... reverse of agglomerative hierarchical clustering algorithm by beginning with all objects in one .... Where is a cluster and is the total number of clusters.
We can't just throw few dozens of programmers to start programming without any
detailed plans. Design is ... The output of the architectural design process is.
exploitation of spatial databases: a case study in landslide ... using the prediction rate index and critically discussed, to evaluate the possibility of using readily.
for Software Timing Analysis ... of a program is important for real-time embedded software. .... data flow analysis, our infeasible path detection technique handles ...
DM/6000, the time to recover from a failure may ... cess to something like a disk, and the server operates .... stable-storage RAM disk, and PCACHE, which pro- .... A hard- ware call gate could be used; it would be unspoofable, though slow.
Apr 9, 2016 - Keywords Metallogeny; Ore deposits; Dill's classification; Software; ... Fig. 5. Display of the MetClass User Interface in the " Data visualization ".
as a challenge to the domination of such behemoth firms as Microsoft and. IBM, and is portrayed as having a revolutionary ultimate goal: 'to provide free software ...
Apr 22, 2016 - Issue DRAFT. Revision 3. Reason for change. Paragraph(s). Addition of interactive development tools. 2.4.
Apr 22, 2016 - Graphical User Interface. HPC. High Performance Computing. HTC ...... CPU, GPU, Network, Disk and other r
approaches that support stakeholders in requirements-related activi- ties such as ... 1 Graz University of Technology, Austria, email:{gerald.ninaus, alexan- der.felfernig ... For example, if a customer of amazon.com bought books related to the ...
Dec 1, 1994 - for removing defects in software, though performing them does not always reduce the number of customer-discovered defects. We present a ...
Even though a wide range of techniques are presently available to aid software development process, the actual adoption of these techniques in the industry ...
Software reading techniques such as Checklist-Based Reading (CBR) and ... pattern papers; some items were not applicable and other important items were missing. .... Two types of checklists can be used in WWs: general and specific checklists. .... ea
Indian Institute of Information Technology, Design and Manufacturing, Jabalpur, INDIA ... are pressing software developers to come up with better ways to create ...
In servers, the temperature of the DRAM can exceed 95°C .... these monitoring schemes, dynamic thermal management ..... apache. Apache HTTP Server v2.0.
Hardware-Software Debugging Techniques for Reconfigurable Systems-on-Chip. G. Talavera1 ..... A sniffer is a network monitor tool that captures data packets ...
A major contributor to improved EMC performance in microcontroller-based ...
This application note describes software techniques divided into two categories:.
What sort of software errors are security relevant. â¡ The theory of stack ... How it Works #1 ... and your potential c
Software Exploitation Techniques Gianni Tedesco "I can tell you I wish those people just would be quiet. It would be best for the world. That's not going to happen, so we have to work in the right fashion with these security researchers." -- Steve Balmer CTO/CEO Microsoft Corporation, 2003
Introduction You will learn:
What sort of software errors are security relevant.
The theory of stack based buffer overruns.
The animated-cursor vulnerability in Microsoft Windows USER32.DLL
But I will not explain:
How to write shellcodes
Methods for ”getting away with it”
Why UNICODE.NLS is so damn l33t :)
Errors and ”Bugs”
Practically all software has errors. Errors lead to program behaviour unanticipated by the developers.
Hard to say when errors can be used.
Depends on all the little details.
H4x0r d00ds have a little tool-bag of common techniques though.
Smashing the Stack
Discovered in 1972. Computer Security Planning Study. Exploited in 1986. Morris worm. Published in phrack in 1994. Aleph one. ”Smashing the Stack for Fun and Profit.” Childs play these days! More complicated and obscure attacks exist now.
How it Works #1
Parameters in parent stack frame Locals in current stack frame To return, a function pops the return address in to the instruction pointer
How it Works #2
”Hello” fits in there no problems!
How it Works #3
Oh dear Whoever wrote this string can overwrite the return address They can manipulate the control flow But what value should they overwrite RET with?
LoadCursorFromFile Vulnerability
Vulnerability exists in windows XP and Vista.
Was patched, but the patch didn't fix it.
Eventually after bad ANI files were spreading like the clap, a working patch was released. ANI is a type of riff file, like a WAV, AVI and other windows formats. It's a pretty complicated format. LoadCursorFromFile in USER32.DLL doen't validate it properly
Spot the Vulnerability void ReadAniFile(char *file, size_t len) { struct riff_hdr *tmp; struct ani_hdr hdr; tmp = (struct riff_hdr *)file; memcpy(&hdr, tmp, tmp->chunk_size); /* Do some stuff */ }
Exploiting the Error
If you can get someone to use an animated cursor. You can take over the program that loads it. I think the easiest way to do this is via Internet Explorer. It's easy to get someone to click on a URL. We can design a web page that tells IE to load our crafted cursor file whenever the mouse is over our web page.
IE Memory Layout
So we return to the problem of what to overwrite RET with... Let's look at IE memory layout after it has loaded a cursor file.
Actually the position of ”file” changes each time
Making an Evil Animated Cursor
So, when the vulnerable function returns, the whole ANI file is in memory. Let's just jump in to the ANI file and put some machine code in there. Decided to put the evil machine code in to the Copyright string section of the ANI file.
Putting it All Together
Countermeasures
Just write correct software :)
Formal methods on the design
Meta-programming for repetetive parts of programs
Static analysis
Non executable stack
Hardware assist (NX bit aka DEP)
Canary words
Adress space layout randomisation (ASLR)
Conclusions Errors like this are everywhere.
There may be many kinds of exploitable errors which are not even known about.
Computers are far too complicated to be able to say with certainty that they work as expected.
Programmers first need to verify their design.
Then they need to pay attention to every small detail when implementing.
Oh, almost forgot... Don't be naughty now! :)
Thanks For Listening "If you do publish then, worst case, all that will be accomplished is that you may cause a business somewhere to be compromised, and they may turn to you or your company for compensation for their financial losses. In the best case, due to September 11, 2001, you may end up on various government agencies' watch lists, and your potential career in the computer business may be altered in ways you did not intend." -- Dan Grove. Hewlett Packard Software Security.