Overview
In the world of information security, threats are constantly changing and attack vectors are always moving. Security is tightened on servers, networks are more closely monitored, so attackers look for other ways to infiltrate the network. This is evidenced by the recent attack on Google (and other companies). The intrusion was accomplished by targeting specific users and compromising their workstation using a web browser 0day. The breach was most likely initiated through links sent in IM or email. As security on servers and networks is locked down, it becomes more apparent what a weak spot the workstation can be. The workstation is often a far more complex environment than a server, at least as far as getting it locked down. This is the place where the employee must work... must have certain software installed to do their job. There are often many third party components installed on the workstation, and patch management on third party components is not generally given much attention.
In order for SimWitty to be an effective security appliance, it must be able to detect and alert on this type of workstation based behavior. One way to test this ability is through penetration testing. The penetration test must be able to simulate this type of client side based attack. This will be the main goal of my internship with the SimWitty project: to simulate client side type attacks through penetration testing and determine how the SimWitty appliance handles this traffic/behavior.
Problem
- Prevention is hard. There will always be new vulnerabilities discovered, and thus 0day attacks generated. For this reason, a solution that relies solely on trying to prevent attack and intrusion is likely doomed to fail.
- Detection is the next best thing. Since prevention of every type of attack is impractical, it is vital to be able to at least detect when an attack has succeeded. Only by knowing a breach has occurred can it be stopped.
Solution
- Prevent what you can and detect everything else. Preventing known attacks through patch management and signature based detection is the start of any good security program. The trickier question is how to detect 0day attacks on your assets.
- Use pen testing to verify detection. Through the proper setup and execution of a pen testing exercise, detection can be verified.
- Analyze, Adjust, and Re-Test. Only through various tests and adjustments can detection be perfected within a system.
Plan
In order for a pen testing exercise to be successful, it must be planned beforehand and documented afterwards. The SimWitty project has decided to use the Matriux security distribution for it’s security testing suite, so the plan will start with Matriux.
- Explore the Matriux Arsenal. The Matriux distribution will have in the neighborhood of 300 different tools/utilities/libraries. With this much to choose from, it becomes essential to decide which tools will be useful to the test.
- Explore VirtualBox and it’s networking capabilities. My testing will be against a virtual network that simulates a small business. My virtualization software of choice is VirtualBox. One advantage of the VirtualBox platform is the ability of its simulated network interfaces to operate in promiscuous mode. To analyze the test results, the operator must understand and be familiar with how the test platform works.
- Build an example network. For the testing to be relevant, it must operate against a target that resembles reality as closely as possible. I will attempt to create a representation of a small business network using virtual machines consisting of a Windows 2008 Server, a couple of Windows XP workstations, and either a SimWitty appliance or a Snort server.
- Execute an attack simulation. Having decided on which tools from Matriux will be most useful, I will attempt an attack against my virtual network. The goal will be to simulate some sort of a client side attack that an employee at a small business might face, such as email phishing for login credentials, a malicious file attachment, or phishing with redirection to a malicious website.
- Document how the attack is detected and reported on. I will observe the behavior of SimWitty/Snort device to see whether the attack is detected, and how the device alerts about the attack. I may also employ another machine that will sit on the network and record all traffic passively. This could allow me to create pcap files that would be useful to those developing the detection and reporting engines of SimWitty.
- Document the process and results. As I am working on the internship, I intend to keep copious notes throughout the process. After I am done, I will use these notes to do a write-up of the entire process. This should prove helpful to any interns that may follow by allowing them to recreate beginning steps, then proceed to deeper research topics.
Summary
I look forward to the SimWitty internship being not only a great challenge, but a great learning opportunity. It will test (and build) my ability to plan, my ability to think through problems, my ability to adapt and adjust, and my ability to document and communicate with others. I believe that this work should give me a firm understanding of the basics of penetration testing, and a glimpse into the kind of real world problems that an information security professional must be able to react to and deal with.