What is Penetration Testing?
- Find a Vulnerability
- Design an attack
- Appoint team of ethical hackers
- Determine what kind of data they could steal
- Act on the findings
- Software (Operating system, services, application)
- Hardware
- Network
- Processes
- End-user behavior
Causes Of Vulnerabilities
- Design and development errors: There can be flaws in the design of hardware and software. These bugs can put your business-critical data at the risk of exposure.
- Poor system configuration: This is another cause of vulnerability. If the system is poorly configured, then it can introduce loopholes through which attackers can enter into the system & steal the information.
- Human errors: Human factors like improper disposal of documents, leaving the documents unattended, coding errors, insider threats, sharing passwords over phishing sites, etc. can lead to security breaches.
- Connectivity: If the system is connected to an unsecured network (open connections) then it comes in the reach of hackers.
- Complexity: The security vulnerability rises in proportion to the complexity of a system. The more features a system has, the more chances of the system being attacked.
- Passwords: Passwords are used to prevent unauthorized access. They should be strong enough that no one can guess your password. Passwords should not be shared with anyone at any cost and passwords should be changed periodically. In spite of these instructions, at times people reveal their passwords to others, write them down somewhere and keep easy passwords that can be guessed.
- User Input: You must have heard of SQL injection, buffer overflows, etc. The data received electronically through these methods can be used to attack the receiving system.
- Management: Security is hard & expensive to manage. Sometimes organizations lack behind in proper risk management and hence vulnerability gets induced in the system.
- Lack of training to staff: This leads to human errors and other vulnerabilities.
- Communication: Channels like mobile network, internet, telephone opens up security theft scope.
Why Penetration Testing?
- Financial or critical data must be secured while transferring it between different systems or over the network.
- Many clients are asking for pen testing as part of the software release cycle.
- To secure user data.
- To find security vulnerabilities in an application.
- To discover loopholes in the system.
- To assess the business impact of successful attacks.
- To meet the information security compliance in the organization.
- To implement an effective security strategy in the organization.
Penetration Testing Tools And Companies
- It should be easy to deploy, configure and use.
- It should scan your system easily.
- It should categorize vulnerabilities based on severity that needs an immediate fix.
- It should be able to automate the verification of vulnerabilities.
- It should re-verify exploits found previously.
- It should generate detailed vulnerability reports and logs.
Penetration Testing Sample Test Cases (Test Scenarios)
- Check if the web application is able to identify spam attacks on contact forms used on the website.
- Proxy server – Check if network traffic is monitored by proxy appliances. The proxy server makes it difficult for hackers to get internal details of the network thus protecting the system from external attacks.
- Spam email filters – Verify if incoming and outgoing email traffic is filtered and unsolicited emails are blocked.
- Many email clients come with inbuilt spam filters which need to be configured as per your needs. These configuration rules can be applied to email headers, subject or body.
- Firewall – Make sure the entire network or computers are protected with Firewall. A Firewall can be software or hardware to block unauthorized access to a system. A Firewall can prevent sending data outside the network without your permission.
- Try to exploit all servers, desktop systems, printers, and network devices.
- Verify that all usernames and passwords are encrypted and transferred over secured connection like https.
- Verify information stored in website cookies. It should not be in a readable format.
- Verify previously found vulnerabilities to check if the fix is working.
- Verify if there is no open port in the network.
- Verify all telephone devices.
- Verify WIFI network security.
- Verify all HTTP methods. PUT and Delete methods should not be enabled on a web server.
- Verify if the password meets the required standards. The password should be at least 8 characters long containing at least one number and one special character.
- Username should not be like “admin” or “administrator”.
- The application login page should be locked upon a few unsuccessful login attempts.
- Error messages should be generic and should not mention specific error details like “Invalid username” or “Invalid password”.
- Verify if special characters, HTML tags, and scripts are handled properly as an input value.
- Internal system details should not be revealed in any of the error or alert messages.
- Custom error messages should be displayed to end user in case of web page crash.
- Verify use of registry entries. Sensitive information should not be kept in the registry.
- All files must be scanned before uploading to the server.
- Sensitive data should not be passed in URLs while communicating with different internal modules of the web application.
- There should not be any hard coded username or password in the system.
- Verify all input fields with long input string with and without spaces.
- Verify if reset password functionality is secure.
- Verify application for SQL Injection.
- Verify application for Cross Site Scripting.
- Important input validations should be done at server side instead of JavaScript checks at the client-side.
- Critical resources in the system should be available to authorized persons and services only.
- All access logs should be maintained with proper access permissions.
- Verify user session ends upon log off.
- Verify that directory browsing is disabled on the server.
- Verify that all applications and database versions are up to date.
- Verify URL manipulation to check if a web application is not showing any unwanted information.
- Verify memory leak and buffer overflow.
- Verify if incoming network traffic is scanned to find Trojan attacks.
- Verify if the system is safe from Brute Force Attacks – a trial and error method to find sensitive information like passwords.
- Verify if system or network is secured from DoS (denial-of-service) attacks. Hacker can target network or a single computer with continuous requests due to which resources on the target system gets overloaded resulting in the denial of service for legit requests.
- Verify application for HTML script injection attacks.
- Verify against COM & ActiveX attacks.
- Verify against spoofing attacks. Spoofing can be of multiple types – IP address spoofing, Email ID spoofing,
- ARP spoofing, Referrer spoofing, Caller ID spoofing, Poisoning of file-sharing networks, GPS spoofing.
- Check for uncontrolled format string attack – a security attack that can cause the application to crash or execute the harmful script on it.
- Verify XML injection attack – used to alter the intended logic of the application.
- Verify against canonicalization attacks.
- Verify if the error pages are displaying any information that can be helpful for a hacker to enter into the system.
- Verify if any critical data like the password is stored in secret files on the system.
- Verify if the application is returning more data than it is required.
· Open-box pen test - In an open-box test, the hacker will be provided with some information ahead of time regarding the target company’s security info.
· Closed-box pen test - Also known as a ‘single-blind’ test, this is one where the hacker is given no background information besides the name of the target company.
· Covert pen test - Also known as a ‘double-blind’ pen test, this is a situation where almost no one in the company is aware that the pen test is happening, including the IT and security professionals who will be responding to the attack. For covert tests, it is especially important for the hacker to have the scope and other details of the test in writing beforehand to avoid any problems with law enforcement.
· External pen test - In an external test, the ethical hacker goes up against the company’s external-facing technology, such as their website and external network servers. In some cases, the hacker may not even be allowed to enter the company’s building. This can mean conducting the attack from a remote location or carrying out the test from a truck or van parked nearby.
· Internal pen test - In an internal test, the ethical hacker performs the test from the company’s internal network. This kind of test is useful in determining how much damage a disgruntled employee can cause from behind the company’s firewall.
Comments
Post a Comment