Vulnerability Assessment Tools
A Solution for Protecting Vulnerability at Networked System
Introduction
In computer security, the term vulnerability is applied to a weakness in a system which allows an attacker to violate the integrity of that system. Vulnerabilities may result from weak passwords, software bugs, a computer virus, a script code injection, a SQL injection, a Blue Pill, or malware. Vulnerability may exist only in theory, or may have a known instance of an exploit.
A construct in a computer language is said to be a vulnerability when many program faults can have their root cause traced to its use.
Password Management Flaws The computer user uses weak passwords that could be discovered by brute force. The computer user stores the password on the computer where a program can access it. Users re-use passwords between many programs and websites.
Fundamental Operating System Design Flaws – The operating system designer chooses to enforce sub optimal policies on user/program management. For example operating systems with policies such as default permit grant every program and every user full access to the entire computer. This operating system flaw allows viruses and malware to execute commands on behalf of the administrator.
Software Bugs – The programmer leaves an exploitable bug in a software program. The software bug may allow an attacker to misuse an application through (for example) bypassing access control checks or executing commands on the system hosting the application. Also the programmer's failure to check the size of data buffers, which can then be overflowed, causing corruption of the stack or heap areas of memory (including causing the computer to execute code provided by the attacker).
Unchecked User Input – The program assumes that all user input is safe. Programs that do not check user input can allow unintended direct execution of commands or SQL statements (known as Buffer overflows and SQL injection).
The method of disclosing vulnerabilities is a topic of debate in the computer security community. Some advocate immediate full disclosure of information about vulnerabilities once they are discovered. Others argue for limiting disclosure to the users placed at greatest risk, and only releasing full details after a delay, if ever. Such delays may allow those notified to fix the problem by developing and applying patches, but may also increase the risk to those not privy to full details. This debate has a long history in security; see full disclosure and security through obscurity. More recently a new form of commercial vulnerability disclosure has taken shape, see for example Tipping Point's Zero Day Initiative which provides a legitimate market for the purchase and sale of vulnerability information from the security community.
From the security perspective, a free and public disclosure is only successful if the affected parties get the relevant information prior to potential hackers, if they did not the hackers could take immediate advantage of the reveled exploit. Obscurity the same rule applies, but this time rests on the hackers finding the vulnerability themselves, as opposed to being 'told' the information. The disadvantage here is that there is a lower number of people with full knowledge of the vulnerability who can aid in finding similar or related scenarios.
It should be unbiased to enable a fair dissemination of security critical information. Most often a channel is considered trusted when it is a widely accepted source of security information in the industry (e.g. CERT, Security Focus, Secunia and FrSIRT). Analysis and risk rating ensure the quality of the disclosed information. The mere discussion on a potential flaw in a mailing list or vague information from a vendor does therefore not qualify. The analysis must include enough details to allow a concerned user of the software to assess his individual risk or take immediate action to protect his assets.
The time of disclosure of vulnerability is defined differently in the security community and industry. It is most commonly referred to as "a kind of public disclosure of security information by a certain party". Usually, vulnerability information is discussed on a mailing list or published on a security web site and results in a security advisory afterwards.
The time of disclosure is the first date security vulnerability is described on a channel where the disclosed information on the vulnerability has to fulfill the following requirement:
the information is freely available to the public
the vulnerability information is published by a trusted and independent channel/source
the vulnerability has undergone analysis by experts such that risk rating information is included upon disclosure
Many software tools exist that can aid in the discovery (and sometimes removal) of vulnerabilities in a computer system. Though these tools can provide an auditor with a good overview of possible vulnerabilities present, they can not replace human judgment. Relying solely on scanners will yield false positives and a limited-scope view of the problems present in the system.
Vulnerabilities have been found in every major operating system including Windows, Mac OS, various forms of UNIX and Linux, OpenVMS, and others. The only way to reduce the chance of a vulnerability being used against a system is through constant vigilance, including careful system maintenance (e.g. applying software patches), best practices in deployment (e.g. the use of firewalls and access controls) and auditing (both during development and throughout the deployment lifecycle).
Common types of vulnerabilities include:
Memory safety violations, such as:
Buffer overflows
Dangling pointers
Input validation errors, such as:
Format string bugs
Improperly handling shell meta characters so they are interpreted
SQL injection
Code injection
Directory traversal
Cross-site scripting in web applications
Race conditions, such as:
Time-of-check-to-time-of-use bugs
Symlink races
Privilege-confusion bugs, such as:
Cross-site request forgery in web applications
Privilege escalation
User interface failures, such as:
Warning fatigue or user conditioning
Blaming the Victim Prompting a user to make a security decision without giving the user enough information to answer it
Race Conditions
Blue Pill (malware)
Some commercial vulnerability tools and its characteristics features
figure 1 shown the ajor comecial vulnerability assessent tools and its characteristic features.