Penetration testing PeT appendix B has always been an important first-step in any security life cycle. By doing penetration testing, the Hospitals IT team can obtain many invaluable information about the Hospital's newly developed security system. Basically the process of penetration testing will be involved with gathering information. Using these information to identity and then try to exploit the security vulnerabilities.
1/ Why do we need to perform penetration testing:
Penetration testing is one of the oldest and effective method to evaluate the security of a computer system. Nowadays many organizations are using penetration testing in order to discover and fix security weakness before the get exposed. And for General Hospital after the process of creating a new security system, it is important that we do penetration testing, not only to find out about any potential vulnerability, but also to demonstrate the effectiveness of the new system, these are just a few points on why General Hospital should do penetration testing:
The main purpose still for greater understanding of the current security system and finding any gap in security. This help the Hospital's IT team to have proper action plans to minimize the threat of attack or misuse.
The penetration test will be documented carefully (more information on this bellow), and these well documented results will help the managers in making a strong business case to the Hospital board, explaining, justifying all the budget had been use for creating this new security system.
Security is not a one-time solution, it's actually a long process of maintaining and upgrading along the way, as new threads are being discovered. This pen-test maybe the first that SGH have, but it'll definitely not be the last. By doing a proper pen-test, the result will act as a good foundation for future testing.
2/ Quality of the test:
Like any big project, before we actually committed to complete the task, we have to have a very clear picture of the final product as well as the strategy, and every steps of the way, committing without planning is one way to ensure to achieve failure (more information on planning in the next part). As we go on later in this document, we'll see that the Hospital will cooperate with a security partner in order to carry the testing, the more reason for two party to sit down and agreed on the standard quality of this test. So, what makes a good penetration testing?
Scope of the test: defying a clear scope, that will be most suitable for the Hospital that will be the first and most important task, for a good scope will help to prevent wasting of resource at the same time able to cover every potential vulnerability (the scope defying will be in the next section, the planning stage).
Reliable partner : after the planning, sketch out a good strategy, it's the security partner job to implement, launch the test, that's why we have to chose a skilled and experienced partner, the one who know what they are doing, in the fourth section, we will chose a partner that:
Can abide the non disclosure agreement, and this is especially important, for we a hospital, working with highly sensitive information.
Choosing correct and adequate series of test, this depends heavily on the scope that we decide on. Also the executing of the test must follow strict methodology, every test must be planned carefully, followed the plan, and the well documented. This is very important because if we treat the test just like a guessing game, to see where the weaknesses are, it's very likely that we are going to miss something, and that alone make the purpose of doing penetration testing completely voided.
Result oriented: the only thing we care for it's the result of the test, that's why the results should be well documented, the team should pay attention also to make the result understandable, so that the Hospital board can easily understand the problems, the consultant of the security partner company should also be ready to present and explain the results.
With that set of quality in mind, we are going to proceed to the planning and further steps accordingly. However, because we are not going to actually perform the test, so we are only going through: planning, defying scope, chose a strategy, choosing the tests, and lastly defying methodology and standard for these series of test, we are going to explain what do we chose and why, as for the definition and how to execute please refer to the appendix.
II/ The planning stage:
In this part, we will cover the planning, defying scope, that lead to a strategy plant, which will be the back bone guide line for any further tests to follow.
The security priorities of different target are different, for a service net work it is important to have a high stability, availability, or in case of an e-business network, it requires high authenticity. However none of that can be apply to SGH, for a hospital the utmost priority are confidentiality, data integrity, we are dealing with patient's data here, there is no point in taking the Hippocratic Oath to keep the patient's information confidential while on the other hand slacking off In putting effort to protect those information. Not only that we are dealing with much higher stake game here, which involve human's lives. This is no longer just protecting data for data mean money. When I were young, I remember a movie where a patient with a broken jaw put back together by metallic platting, years latter he has cancer, and his doctor without knowing about the platting still send him to the MRI machine (highly magnetic), and lead to his gruesome death. All of which cause by lack of dental documentation in his medical history. So in a nut shell, SGH highest priority is data Integrity and confidentiality, but in the mean time we still have to do minimum checking on every other aspect, leave out nothing.
The second as part of SGH network system is the personnel, which in this case are doctors and nurses mostly. They are among the most highly trained employees, however not in IT. Nowadays almost every hospital in Singapore has been completely digitalized, dealing with database instead of paper files, also with many medical devices are being monitored by computer programs. The combination of high tech with unexperienced user leads to a very high chance of application misuse, data input wrongly. That put application security testing (appendix B application security testing) priority a bit higher than normal.
So as a conclusion for the strategy of this penetration test: we are going to do a penetration test follow Blind Testing strategy (Bind testing strategy Appendix B) to stimulate the action like a real hacking attempt by hacker to obtain confidential data, or to modify, deleteâ€¦etc. In the same time we will combine with certain Internal testing (Internal testing strategy), mostly focus on application security, misuse..etc, and of course a few basic test again common threat however we are not going to deep in that.
After decided on a plan and testing strategy, the next step will be vulnerability assessment
III Vulnerability assessment (VA):
Why should we do VA (VA appendix B)? In fact there are some confusion between VA and pen-test, sometime people lable them as the same. Pen-test mostly consis of VA, but then take one step futher, find out the weak spot then attack it. So basically before we do pen-test, the first step would be VA.
For the detail of how to do VA please refer to "VA Appendix A ". But basically we are going to series of techniques that can be considered as "research" before attack.
Passive research: learn as much as we can about SGH, from out site point of view.
Open source monitoring: utilizes Internet meta-searches focus on specific keywords, or sensitive information to see if there are any leaking.
Network mapping and OS fingerprinting: from out side view, figuring out the structure of the network, even able to draw out a network diagram from the information gatherd through different tools
Spoofing: trick the targeted computer in side the Hospital, sending out packets pretending that they are from trusted source.
Network sniffing: capture data as it travel in and out the network, especially we have the different site between Clinics and Hospital, this can be a good check to see if our VPN is working properly.
Trojan attack: and yes the traditional, butter and bread Trojan attack, Even though it's basic, but because it's so popular, it'll be a mistake to think that our fire wall can do all the job, when Trojans combine with social engineering can be devastating.
Brute force attack: this can be optional as we mention before the availability of the network may not be our highest priority, however if the resource allow, we can still do it, as a better safe than sorry.
Vulnerability scanning: finally we can use automated tools to scan the whole database looking for potential vulnerability (the how, and what tool can be found in "VA appendix A")
After all those test, it's very likely that we may able to discover a few holes in our security system. However in order to make sure that in all those vulnerabilities we've just discover none are false positive we will go to the next step is exploit testing, meaning actually attack to see if any got through.
IV penetration testing, different types of test:
Exploit testing (exploit testing appendix B) normally is the final stage in the whole process of penetration testing. There are many type of test, each with different level of commitment. We have to chose which test, and how far do we want to push. This decision is based on two aspects. One is the predefined scope that everybody agreed on earlier, we will conduct the test accordingly to that scope, to the strategy. The second is based on the result of VA, attack on every potential vulnerability that we've just found. In this scenario, because we have not actually performed the test, so we are going to chose based on the scope only.
1/ Database Integrity:
As we discussed in the previous section, the integrity and confidentiality of SGH database is our highest priority. The fact that in the process of VA, we have done many test and checking, sniffing, mapping, Trojan, brute force, those are not only VA testing but actually a part of testing the confidentiality and integrity level of the data base also. That's the fine line between VA and penetration testing as many of the assessment can actually be consider as exploitive. In the same manner in this stage of exploitive testing there still are test that could be done that may very well have been a part of VA like:
War dialling: (war dialling appendix B): by calling a wide range number of telephone inside SGH, we may catch a modem, remote access devices, and maintenance connection that may leave an open on the hospital network. Why do we even consider this method? The fact that nowadays not only user, but even IT staff have very high ignorance when considering the phone network, while in fact they are the very primate assess point that possible for hacker to exploit, you don't actually need to be ignorance, just careless is enough, like leaving an open modem on a critical node of the network is enough to create an opening.
There are many tools we can use for war dialling:
ToneLoc from Minor Threat and Mucho Maas, or its alternative ModemScan , they both can be use for Microsoft window platform.
TeleSweep for Microsoft also, and it's free.
For Macintosh use Assault Dialer.
Unix try PAWS, THC-SCAN NG, Telescan, IWAR (intelligent war dialler), or ShokDial
2/ Social engineering testing:
Social engineering test (appendix B SE) is part of the blind strategy testing. The environment we are working on is SGH, where most of the employee don't have in-depth training in IT, an other point is the helpful nature, answering question is kind of comes with the job description, all in one word: gullible nurses. For any cunning hacker, this is a big fat moving target for social engineering attack.
For that reason, basic training in social attack is required, in the same time several test can be conduct, mainly in two forms:
Non face-to-face: the test can be done over mail, or phone, pretending to be somebody who have authority, or who needs help to tricks the user to use account, password, or giving out sensitive information.
Face-to-face: this is a more advance kind of social engineering, by posting as an employee of authorized personnel , gaining physical access to restricted areas getting information, from intercepting mail to dumpster divingâ€¦etc
Social engineering maybe no as technical as other test, but it has equal importance if not more, for the fact that there are actually no fool proof method to prevent social engineering attack other than out smart the attacker, which Is ironically we don't usually put the smartest people of the organization to the reception desk , the only thing we can do is to raise the level of awareness of the employee (there are books on this matter like: the art of deception, the art of intrusion both by Mitnick Simon ) .
3/ Application security testing:
The second point from the scope as we discussed earlier is Application security: there are a series of test for application security (technical detail on appendix A AppT): Code view, Authorization testing, Input validation, cookie security, Lockout testing, there are also some test for the functionality of the application as well like: input validation, Transaction testingâ€¦etc
For why we need application testing we have discussed above, but then again, do we really need to do all those test? Yes, we do. The objective of doing so many test on Application alone is to fully evaluate the control we have over our application (medical application, network applicationâ€¦). The focus of those test still focus mainly on protecting the confidentiality and integrity of information, how to authenticate user, and also on the using of cookies (appendix B cookies)
4/ other test:
There are some other test like: denial of service testing, resource..etc but as we mention above, these are not compulsory, not that they are not important, but there are higher priority test that need to be done. But since these are common attack and easy to carry out, it's recommended that if the resources allow, we should go ahead and perform the tests, even at basic level. (the detail of the test can be found at DoS testing appendix A).
V Other detail of a penetration test:
1/ methodology and standards:
Methodology actually is a very important factor of a penetration test. A test that acts without a formal methodology has no real meaning, just poking around. But on the other hand, methodology should only acts as a framework, a discipline guideline to follow, we should not restrict the tester rather than let him/her fully explore his/her intuitions, while acting accordingly to the guideline. There are several methodology and standards, as for their technical detail, please refer to "appendix A Metho"
2/ Security partner:
The reason why we needs to pay money for a third party to perform the test for us is :
Un unbiased point of view: like a beta tester, sometime the programmer, or in this case the SGH IT team, cannot see one's own mistake clearly, so we need to hire trained professional to look for us.
Highly experienced and highly trained: for the member of the IT team, some may have done a penetration test before, some may not. But for a company that specialize in penetration testing. They have done it hundreds of time, even done it for some big organization, that's why with the experience and the training, it's more likely that they can discover things that the IT team cannot.
Certified result: a Certified penetration testing company will have to satisfies certain level of standards (refer to appendix A Metho). If a test done by a Certified party, it can become a potential strong legal argument for future conflicts (for example: Insurance conflicts).
With all those reason we've decided to hire a security partner to perform the test for us. In Singapore there are many company that have the certification and standards to perform such test, most trustworthy must be:
IBM (with the express penetration testing service)
Obtech's Certified penetration testing specialist
3/ Risks in doing penetration testing:
While doing penetration testing, there are certain risks that we should consider and be careful for:
Risk of exposure: there are many sensitive data in the hospital, sometime these data can be expose during a pen-test it can be unintentionally or intentionally, we have to have strong agreement of the conditions and responsibility of the security partner.
Time delay: Pen-test take time, and for Hospital environment we cannot simply lock down our data base for testing, that's why a strict time-frame. For the size of our Hospital system, the testing should not take more than a month.
As we all know security is continuum, no absolute. Through the penetration tests we should be able to not only find out there are flaws in the security system, but we have to go further to understand the process failures that lead to those flaws. Through the test, we can see that even a brand new developed security system can have many vulnerability, it's a reminder to us so that we never have a false sense of security!.
1/ VA (Vulnerability assessment):
As documented by SANS, "Vulnerabilities are the gateways by which threats are manifested". In other words, a system compromise can occur through a weakness found in a system. A vulnerability assessment is a search for these weaknesses/exposures in order to apply a patch or fix to prevent a compromise.
How do these weaknesses occur? There are two points to consider:
· This newly developed security system for SGH were born with it, means while underdeveloping by mistake the developing team creat the weakness.
· Many vulnerabilities occur as a result of misconfigurations by system administrators. Misuse by user, all can lead to the result of making a hole in the security system.
There are many ways to search for vulnerability, however in our scenario, it is best to do it as a out side hacker would do it, before attacking a system, the hacker also have to perform a vulnerability assessment test on the system, only different would be we are going to do it on full scale, not only from outside looking in but also from the insider view. There are however certain number of technique that could effectively point out the weaknesses if the system have one.
Passive research: As the name suggests, a passive research is a method used to gather as much information about an organization's systems configuration from public domain sources such as:
o DNS (domain name service)
o RIPE (Réseaux IP Européens)
o USENET (newsgroups)
o ARIN (American Registry for Internet Numbers)
Passive research is generally performed at the beginning of an external penetration test.
Open source monitoring: This service is an associated technique that utilizes Internet meta-searches (multiple searches of Web sites, newswires, newsgroups and other sources) targeted on keyword that are important to the organization. The data is collected and discoveries are highlighted to the organization. This helps identify whether organization's confidential information has been leaked or whether an electronic conversation involving them has taken place. This enables an organization to take necessary measures to ensure confidentiality and integrity.
Network mapping and OS fingerprinting: Visualization of network configuration is an important part of penetration testing. Network mapping is used to create a picture of the configuration of the network being tested. A network diagram can be created which infers the logical locations and IP addresses of routers, firewalls, Web servers and other border devices.
Additionally, this examination can assist in identifying or "fingerprinting" operating systems. A combination of results from passive research and tools such as ping, traceroute and nmap, can help create a reasonably accurate network map.
An extension of network mapping is Port Scanning. This technique is aimed at identifying the type of services available on the target machine. The scan result reveals important information such as function of a computer (whether it is a Web server, mail server etc) as well as revealing ports that may be serious security risks such as telnet. Port scans should include number of individual tests, including:
o TCP (Transmission Control Protocol) scan
o Connect scan
o SYN (or half open) scan
o RST (or Xmas-tree) scan
o UDP (User Datagram Protocol) and ICMP (Internet Control Message Protocol) scans. Tools such as nmap can perform this type of scan.
o Dynamic ports used by RPC (Remote Procedure Call) should be scanned using tool such as RPCinfo.
Spoofing: Spoofing involves creation of TCP/IP packets using somebody else's Internet addresses and then sending the same to the targeted computer making it believe that it came from a trusted source. It is the act of using one machine to impersonate another. Routers use the "destination IP" address in order to forward packets through the Internet, but ignore the "source IP" address. The destination machine only uses that source IP address when it responds back to the source. This technique is used in internal and external penetration testing to access computers that have been instructed to only reply to specific computers. This can result in sensitive information be released to unauthorised systems. IP spoofing is also an integral part of many network attacks that do not need to see responses (blind spoofing).
Network sniffing: Sniffing is technique used to capture data as it travels across a network. Sniffing is an important information gathering technique that enables capturing of specific information, such as passwords and also an entire conversation between specific computers, if required. To perform sniffing, the network card of computer needs to be put in promiscuous mode, so that it captures all data being sent across the network.
Sniffing is extensively used in internal testing where the sniffer or the computer in promiscuous mode is directly attached to the network enabling capturing of a great deal of information. Sniffing can be performed by a number of commercial tools such as Ethereal, Network Associates SnifferPro and Network Instruments Observer.
Trojan attack: Trojans are malicious programs that are typically sent into network as e-mail attachments or transferred via IM chat rooms. These programs run in stealth mode and get installed on the client computer without the users knowledge. Once installed, they can open remote control channels to attackers or capture information. A penetration test aims at attempting to send specially prepared Trojans into a network.
Brute force attack: A brute force attack involves trying a huge number of alphanumeric combinations and exhaustive trial and error methods in order find legitimate authentication credentials. The objective behind this time consuming exercise is to gain access to the target system. Brute force attacks can overload a system and can possibly stop it from responding to legitimate requests. Additionally, if account lockout is being used, brute force attacks may close the account to legitimate users.
Vulnerability scanning/analysis: Vulnerability scanning/analysis is an exhaustive examination of targeted areas of an organization's network infrastructure aimed at determining their current state. The targets range from a single system or only critical systems to scanning the entire network. It is usually performed using automated tools that test for a multitude of potential weaknesses in a system against a database of known vulnerabilities and report potential security holes. And although they don't actively prevent attacks, many scanners provide additional tools to help fix found vulnerabilities. Some of the commonly used vulnerability scanners include: the open-source Nessus Project's Nessus, ISS Internet Scanner, GFI Software's GFI LANguard Network Security Scanner, eEye Digital Security's Retina Network Security Scanner, the BindView RMS vulnerability-management solutions and Network Associates CyberCop.
2/ application testing ( AppT )
For the purpose of application testing there are several test that can be done:
* Code review: Code reviews involve analysing all the application-based code to ensure that it does not contain any sensitive information that an intruder might use to exploit an application. For example: Publicly available application code may include test comments, names or clear text passwords that will give an intruder a great deal of information about the application.
* Authorization testing: Involves testing the systems responsible for the initiation and maintenance of user sessions. This will require testing:
o Input validation of login fields - bad characters or overlong inputs can produce unpredictable results;
o Cookie security - cookies can be stolen and legitimate sessions can be used by an unauthorised individual; and
o Lockout testing - testing the timeout and intrusion lockout parameters set in the application, to ensure legitimate sessions cannot be hijacked.
This is performed to discover whether the login system can be forced into permitting unauthorised access. The testing will also reveal whether the system is susceptible to denial of service attacks using the same techniques.
* Functionality testing: This involves testing the systems responsible for the application's functionality as presented to a user. This will require testing:
o Input validation - bad characters, specific URLs or overlong inputs can produce unpredictable results; and
o Transaction testing - ensuring that the application performs to specification and does not permit the user to abuse the system.
3/ DoS testing:
Denial of service testing involves attempting to exploit specific weaknesses on a system by exhausting the target's resources that will cause it to stop responding to legitimate requests. This testing can be performed using automated tools or manually. The different types of DoS can be broadly classified into software exploits and flooding attacks. Decisions regarding the extent of Denial of Service testing to be incorporated into a penetration testing exercise depend on the relative importance of ongoing, continued availability of the information systems and related processing activities. Denial of service can take a number of formats; those that are important to test for are listed below:
* Resource overload - these attacks intend to overload the resources (i.e. memory) of a target so that it no longer responds.
* Flood attacks - this involves sending a large amount of network requests with the intention of overloading the target. This can be performed via:
ICMP (Internet Control Message Protocol), known as "smurf" attacks
UDP (User Datagram Protocol), known as "fraggle" attacks
* Half open SYN attack - this involves partially opening numerous TCP connections on the target, so that legitimate connections could not be started.
* Out-of-band attacks - these attempt to crash targets by breaking IP header standards:
o Oversized packets (ping of death) - the packet header indicates that there is more data in the packet than there actually is.
o Fragmentation (teardrop attack) - sends overlapping fragmented packets (pieces of packets) which are under length.
o IP source address spoofing (land attack) - causes a computer to create a TCP connection to itself.
o Malformed UDP packet header (UDP bomb) - UDP headers indicate an incorrect length.
4/ Methodology and standards (Metho):
The Open Source Security Testing Methodology Manual (OSSTMM) by Pete Herzog has become a de-facto methodology for performing penetration testing and obtaining security metrics. According to Pete Herzog, "The primary goal of the OSSTMM is to provide transparency. It provides transparency of those who have inadequate security configurations and policies. It provides transparency of those who perform inadequate security and penetration tests. It provides transparency of the unscrupulous security vendors vying to sponge up every last cent of their prey's already meager security budget; those who would side-step business values with over-hyped threats of legal compliancy, cyber-terrorism, and hackers. The OSSTMM covers the whole process of risk assessment involved in a penetration test, from initial requirements analysis to report generation. The six areas of testing methodology covered are:
* Information security
* Process security
* Internet technology security
* Communications security
* Wireless security
* Physical security
The OSSTMM focuses on the technical details of exactly which items need to be tested, what to do before, during, and after a security test, and how to measure the results. New tests for international best practices, laws, regulations, and ethical concerns are regularly added and updated.
The National Institute of Standards and Technology (NIST) discusses penetration testing in Special Publication 800-42, Guideline on Network Security Testing. NIST's methodology is less comprehensive than the OSSTMM however it is more likely to be accepted by regulatory agencies.
Standards in penetration testing
Let's take a look at some of the standards and guidelines available:
Standards for Information Systems Auditing (ISACA): ISACA was established in 1967 and has become a pace-setting global organization for information governance, control, security and audit professionals. Its IS auditing and IS control standards are followed by practitioners worldwide and its research pinpoints professional issues challenging its constituents. CISA, the Certified Information Systems Auditor is ISACA's cornerstone certification.
CHECK: The CESG IT Health Check scheme was instigated to ensure that sensitive government networks and those constituting the GSI (Government Secure Intranet) and CNI (Critical National Infrastructure) were secured and tested to a consistent high level. The methodology aims to identify known vulnerabilities in IT systems and networks which may compromise the confidentiality, integrity or availability of information held on that IT system. CHECK consultants are only required when the assessment for HMG or related parties, and meets the requirements above. In the absence of other standards, CHECK became the de-facto standard for penetration tests and penetration testing in the UK. Companies belonging to CHECK must have employees that are security cleared and have passed the CESG Hacking Assault Course. However, open source methodologies such as the following are providing viable and comprehensive alternatives, without UK Government association.
OSSTMM: The aim of The Open Source Security Testing Methodology Manual is to set forth a standard for Internet security testing. It is intended to form a comprehensive baseline for testing that, if followed, ensures a thorough and comprehensive penetration test has been undertaken. This should enable a client to be certain of the level of technical assessment independently of other organization concerns, such as the corporate profile of the penetration-testing provider.
OWASP: The Open Web Application Security Project (OWASP) is an open source community project developing software tools and knowledge based documentation that helps people secure Web applications and Web services. OWASP is an open source reference point for system architects, developers, vendors, consumers and security professionals involved in designing, developing, deploying and testing the security of Web applications and Web Services. In short, the Open Web Application Security Project aims to help everyone and anyone build more secure Web applications and Web services.
1/ penetration testing (PeT): Penetration Testing is a process used to probe the security of a system or application to determine if there are any security vulnerabilities which could be exploited by an attacker or stumbled upon by a person not authorized to access that system or application. Penetration testing often involves the use of the same tools an attacker might use to find "holes" in a system's security, but with improving rather than exploiting the system's security as a goal. Penetration testing usually yields a list of potential vulnerabilities and recommendations for how the associated risks might be mitigated. (from: http://www.queensu.ca/its/glossary.html ).
2/ war dialling (WDL): War dialling, also called scanning, is dialling a large number of telephone numbers in the hope of finding anything interesting. Interesting items often include test tones, computers, Voice Mail Boxes (VMB's), Private branch exchanges (PBX's). A common technique is to find one telephone number owned by a target and then to war dial the entire prefix. (from: http://www.tech-faq.com/war-dialing.html)
3/ cookies: a block of data stored on a computer in the hospital that is used by the Web server application
4/ Social engineering:
Social engineering is the act of manipulating people into performing actions or divulging confidential information, rather than by breaking in or using technical cracking techniques; essentially a fancier, more technical way of lying. While similar to a confident trick or fraud, the term typically applies to trickery or deception for the purpose of information gathering, fraud, or computer system access; in most cases the attacker never comes face-to-face with the victim.