| technology | networking - Ross Heintzkill
What is Black vs Gray vs White Box Testing?
Imagine you're a bank manager and you're trying to test how secure your bank vault is. Maybe you hire a team to try and break in and get the cash. But how much do you tell them? Do you tell them how many guards you have and where they're posted? Do you give them blueprints of the building? Do you explain what sort of safe it is and when its automatic locks get turned on? If you tell the team none of that, you'll be testing different parts of your security than if you told them all of that.
The same is true in network security. In network security, there are different ways of stress-testing the security of a system, network or application based on how much information you have about the target. There's black box testing, white box testing, and gray box testing. In this blog post, we cover some of the fundamentals of these different categories of penetration testing and how they differ in understanding a network's security.
What is Penetration Testing?
Quick definition: A penetration test, also known as pen test, is a simulated cyberattack on a network or a system. Penetration tests are authorized cyberattacks. Although they're using hostile methods, their aim is beneficial: evaluate the network or system's security. It being an authorized cyberattack means that the target of the penetration test has authorized the cyberattack. Usually they've solicited and hired the team doing it — with the hope they'll uncover weaknesses or vulnerabilities. How much the target knows about the penetration test before and during the simulated cyberattack is different for every penetration test.
What is Black Box Testing in Penetration Testing?
Quick definition: Black box testing is a term used in any software testing — not exclusively penetration testing. The name comes from the idea that a user's inputs go into a "black box" and the software's outputs come out: the user doesn't know what happens inside the black box to produce those outputs. In a broad sense, usually in software testing, black box testing is a method of testing for functionality without any knowledge of what the internal code looks like. In penetration testing, black box testing is searching for vulnerabilities without any credentials or intimate knowledge of the system's or network's set-up.
What is White Box Testing in Penetration Testing?
Quick definition: White box testing is also a term that's used in any software testing. In white box testing, the internal structure and design of the code itself is being tested. The name comes from the idea that it's the exact opposite of black box testing: the detailed workings of the code, programming, network connections and system details are not only known, but being manipulated during the test. In a broad sense, white box testing is a method of testing for internal details about the code. In penetration testing, white box testing is searching for vulnerabilities with full access to all components of the target network, system, or application's source code.
What is Gray Box Testing in Penetration Testing?
Quick definition: Simply put, gray box testing is somewhere in-between white box testing and black box testing. Gray box testing is harder to define than white box testing and black box testing because different gray box tests have different levels of access, but the commonality is that they don't have full access, and they don't have zero access. In penetration testing, gray box testing is searching for vulnerabilities with some level of credentialed access or knowledge of the system in question.
An Overview of Black vs Gray vs White Box Testing [VIDEO]
In this video, Keith Barker covers black, gray, and white box testing as it relates to vulnerability scanning and penetration testing. He clarifies the difference between box testing and hat testing. For example, how black box penetration testing is an entirely different concept from black hat activity.
When to Perform Black, Gray or White Box Testing
Organizations looking for certainty that their security practices are up to snuff often choose to do penetration tests. Doing a penetration test can reveal security holes before an attacker can find them. Pen tests can find vulnerabilities in an entire network or specific computer programs. They can also provide lots of metrics and data that security teams can use for mitigating future vulnerabilities.
When you're doing a test against a system — and that could be against a network or against a specific application running on a server — there are different categories of testing that can be done. Like with broader software testing, the different categories of penetration testing reveal different things about the network being tested. Those categories are black box, white box, and gray box tests.
The tests reveal different things about a network or system, and knowing what you're trying to uncover is important before selecting which box test you'll undertake. Are you interested in the functional aspects and requirements of your security procedures, or are you looking to validate the internal structure of your underlying security-based code?
Are you looking for the equivalent of a security guard patrolling the doors and windows of the building, or are you looking for a full-blown and thorough investigation, equivalent to doing background checks on each employee and studying building blueprints for vulnerable areas? The former is a black box test, the latter is closer to white box testing.
Is Black Box Testing Illegal?
No, black box testing is not illegal. Don't confuse black box testing with black hat hacking. Black Hat is a broad term that generally refers to any illegal or unauthorized activity, especially hacking and intruding on networks and systems. Black box refers to authorized penetration testing.
The intent of a black box test is to find vulnerabilities and bring them to light of day so that they can be remedied. The intent of black hat hacking is to exploit vulnerabilities for illegitimate means. Black hat and black box don't mean the same thing.
Black box testing is done by a trained and authorized group or individual. Sometimes pen test teams are contracted by a company, and some organizations have penetration test teams on staff. Either way, black box testing is always done with the knowledge and consent of the target.
Differences Between Black Box Testing and White Box Testing
Black box testing is a penetration test in which the pen testing team has no prior knowledge of the details of the network, the systems or the servers that are currently in the system. They're basically starting from scratch without any prior knowledge.
On the far other side of the scale is white box Testing. With white box testing, the person doing the testing has full knowledge and access. They have a username and password, they're familiar with and likely have a working copy of the source code.
During white box testing, the penetration testing team has full knowledge of the system. They have all the details regarding the system, the server, or the application that they're going to test against. So with White Box Testing, with full knowledge beforehand, the tests are going to be more specific in nature.
For example, if we looked at every line of the source code and we know that certain parts of the code are totally solid, we're not going to waste our time testing against those. However, if we do look at the source code with white box testing and see a gaping hole wide enough to drive a truck through, that's absolutely part of the code that we're going to test during our white box test.
What is Gray Box Testing in Penetration Testing?
Last, but not least, is gray box Testing. Gray box testing falls somewhere between white box testing and black box testing. For example, during a gray box test, maybe the tester was given a username and password. Or maybe they were provided with a general overview of how the system works, but they weren't given the details.
It's not unheard of for gray box testers to be told what the application they're testing against does and what it interacts with, but not be given the source code for the application. In the case of network penetration testing, maybe they're given a network schema, but not given detailed data about the devices on the network.
Gray box testing is the broadest category of penetration test because it refers to a pen test where the team has some, but not all, the information about the target. How much information they have usually reflects what the security team is trying to uncover about the target.
Are White Box Testing and White Hat Hacking the Same Thing?
No, white box testing is not the same as white hat hacking. Just like black box testing is different from black hat hacking, white box testing is also different from its hacking equivalent. That said, there's more overlap between them than with black hat hacking and black box testing.
White hat hacking refers to an authorized individual attempting to uncover security vulnerabilities. That's not the same thing as white box testing, which refers to testing for vulnerabilities with full knowledge of the target network.
But it is sort of a square-rectangle comparison. A white hat hacker uses tools to investigate and discover a target network, then test the network in an authorized fashion. A white box test involves full access and knowledge of a system before they begin. So a white hat hacker could be but doesn't necessarily have to be operating in a white box testing environment.
What would someone with full knowledge of the system and is fully authorized to use hacking tools against the network be called? Maybe a White Hat, White Box Hacker Tester? Or a White-White Hat-Box Hacker-Tester? That much we'll leave to you.
The difference itself between black box testing and white box testing is simple enough, but the details about when you might choose one over the other, and most importantly, how to do either is much more complicated. If ethical hacking appeals to you, and you're looking for ways to learn how and make it your job, check out various training offered by CBT Nuggets.
The International Information System Security Certification Consortium – or (ISC)2 – offers a certification called the CISSP, CBT Nuggets has 95 videos and 8 hours of training to help you prepare for it. There are over 23 hours of training and 110 videos in our CompTIA Security+ training. And if that's not enough, there's also White Hat Hacking training for you to explore.