proptr.net

Wednesday, November 19, 2008

Using Taint Analysis for Security Checks and more...

Preventing Format String Attacks

A class of attacks that were started by June 2000 was format-string attack in which hostile inputs are passed on directly triggering format strings function calls such as printf. The main problem that arises here is that any directive (such as %n) will execute, with remote (root) privileges. Attempts were made to resolve the problem by removing such directives from the list of directives or allowing static format strings, but this would ultimately render many programs unfit to run. FormatGuard was proposed to solve this issue accounts for variation in the number of arguments. This count is then sent to the function (printf for instance) wrapper, and whenever it finds a difference in the number of arguments it kills the process.


Preventing Input Validation Attacks

Taint analysis can be effective in preventing input validation attacks, especially with command injection in web applications. In such cases, unwanted system commands that are like pseudo system shell gets executed as an authorised system user. This grant the inputs, the same privileges and environment the normal application would run. Improper input validation, mostly system commands like “rm”, “ls”, “chroot”, “kill” etc. which could affect the entire execution flow. In web applications, popen(), unlink(), execve() are commonly used functions which are sensitive operations which are vulnerable to command injection attacks. A simple policy to prevent this attack using taint analysis is “no commands should be tainted” and “no tainted strings should contain special characters (like ;)”. By identifying the untrusted input and security-sensitive operations by generic annotations on relevant functions, taint analysis helps in first secluding the command attacks from normal execution cycle. After that, the arguments are realized in fine level of granularity for runtime tracking of information to obtain a high degree of accuracy necessary for a proactive approach for attack prevention. This provides a stage for the creation of complex access policies for different data or variables. Taint tagging is done on the variables for easy creation and identification of “taintedness” in different part of the program. The byte level source-to-source transformation technique helps easier tracking of the untrusted data flow.


Other approaches or possible ideas

Although TBFD is a hardware approach, it also concurrently checks for software errors. Particularly whenever there is an attack on the source code that is being executed on the core, by checking it on another core, the software vulnerability is ascertained when the error persists. This trace based method can be further improved by continuously taking periodic traces, thereby finding for software failures, and double checking them in case of an attack. It is interesting to note that whenever there are different parts of the application running in different nodes or processor core, (imagine a virtualized platform) certain variables pertaining the part of code running in one core might affect the variables executed in another core. Whenever, there is hardware vulnerability in either of these cores, they do not properly communicate the patching information among one another causing the variable to remain permanently tainted.

Sunday, November 16, 2008

What is Taint Analysis

Introduction

The definition of taint checking is “a feature designed to increase the security of host computers by preventing malicious users from SQL injection and buffer overflow attacks”. Taint analysis is the approach to track information flow and states of the variable in order to counter program exploits. During an occurrence of a security risk, the taint checking tool looks for any tainted variable that might cause SQL injection, memory error, command or format string injection errors. The variables that are changed or affected by the tainted variable in the course of the program are also considered vulnerable, and hence the taint procedure is repeatedly applied to them. It is used in automated fault identification at the production side, like Triage, without any human intervention. Combining it with simple checkpoint mechanism, heavy-weight code bug detection and analysis tools become feasible for onsite diagnosis.


1.1 Several Techniques of Taint Analysis

There are several taint analysis approaches suggested which includes parallelization of the taint computation to efficiently trace the source of any vulnerability by running them in idle cores of multicore machines apart from running actual data computations. TaintCheck is a dynamic taint analysis approach in which works by using binary rewriting during the execution time. Xu et al. approaches this problem by a source to-source transformation of C programs to perform runtime taint-tracking. The untrusted/ malicious input operations are given a specific marking which is reflected in the transformed program. This method considers memory error more pronounced than error propagation due to tainted variables. Format string problems have been first addressed by FormatGuard that imitates the C PreProcessor to use the properties of GNU CPP and estimate the number of arguments expected. If the format string requires a high number of arguments, it alerts the program and kills its execution. Chen et al. aims at decoupling of the analysis and execution flow of the system and parallelize sequential invocations of security checks by running later checks in parallel with earlier ones.


2. Applications of Taint Analysis

From the applications and analysis taint analysis in several instances, it is understood that the technique can be used to protect vulnerable programs in general. Program vulnerabilities occur due to several factors of which some prominent ones are buffer overflows which constitute about 27%, Input Validation attacks like automatic cookie updates in web pages or command or code injection attack where malicious user can execute system level commands with root privileges, SQL injection, and format string attacks. Other errors that could potentially be prevented or eliminated are directory traversal attacks in which the pointer is shifted to a different location so that it will return null or trash value. Cross-site scripting errors (XSS), config errors and tempfile vulnerabilities could be resolved using taint checking with methods similar to input invalidation and pop-up prevention techniques.

Tuesday, November 11, 2008

Car Insurance My Free Quotes

Blog title must include the words "Car Insurance My Free Quotes." NOTE: IF YOU DO NOT FOLLOW THIS INSTRUCTION I WILL DISPUTE!!!!

free quotes car insurance
Blog title must include the words "Car Insurance My Free Quotes." NOTE: IF YOU DO NOT FOLLOW THIS INSTRUCTION I WILL DISPUTE!!!!Blog title must include the words "Car Insurance My Free Quotes." NOTE: IF YOU DO NOT FOLLOW THIS INSTRUCTION I WILL DISPUTE!!!!

free car insurance quote
Blog title must include the words "Car Insurance My Free Quotes." NOTE: IF YOU DO NOT FOLLOW THIS INSTRUCTION I WILL DISPUTE!!!!Blog title must include the words "Car Insurance My Free Quotes." NOTE: IF YOU DO NOT FOLLOW THIS INSTRUCTION I WILL DISPUTE!!!!
free online car insurance quotes

Blog title must include the words "Car Insurance My Free Quotes." NOTE: IF YOU DO NOT FOLLOW THIS INSTRUCTION I WILL DISPUTE!!!!Blog title must include the words "Car Insurance My Free Quotes." NOTE: IF YOU DO NOT FOLLOW THIS INSTRUCTION I WILL DISPUTE!!!!
 
ss_blog_claim=1951bd01da8182d1e3875e203fad10f3
ss_blog_claim=1951bd01da8182d1e3875e203fad10f3 ss_blog_claim=1951bd01da8182d1e3875e203fad10f3