Weâ€™ve heard a bit of â€œnoiseâ€ about how IPv6 may impact network penetration testing and how networks may or may not be more secure because of IPv6.Â Lets be clear, anyone telling you that IPv6 makes penetration testing harder doesnâ€™t understand the first thing about real penetration testing.
Whats the point of IPv6?
IPv6 was designed by theÂ Internet Engineering Task Force (â€œIETFâ€)Â to address the issue of IPv4 address space exhaustion.Â IPv6 uses a 128-bit address space while IPv4 is only 32 bits.Â This means that there are 2128Â possible addresses with IPv6, which is far more than the 232addresses available with IPv4. Â This means that there are going to be many more potential targets for a penetration tester to focus on when IPv6 becomes the norm.
What about increased security with IPv6?
The IPv6 specification mandates support for theÂ Internet Protocol Security (â€œIPSecâ€)Â protocol suite, which is designed to secure IP communications by authenticating and encrypting each IP Packet. IPSec operates at the Internet Layer of the Internet Protocol suite and so differs from other security systems like theÂ Secure Socket Layer, which operates at the application layer. This is the only significant security enhancement that IPv6 brings to the table and even this has little to no impact on penetration testing.
What some penetration testers are saying about IPv6.
Some penetration testers argue that IPv6 will make the job of a penetration testing more difficult because of the massive increase in potential targets. They claim that the massive increase in potential targets will make the process of discovering live targets impossibly time consuming. They argue that scanning each port/host in an entire IPv6 range could take as long as 13,800,523,054,961,500,000 years. Â But why the hell would anyone waste their time testing potential targets when they could be testing actual live targets?
The very first step in anyÂ penetration testÂ is effective and efficient reconnaissance. Reconnaissance is the military term for the passive gathering of intelligence about an enemy prior to attacking an enemy. Â There are countless ways to perform reconnaissance, all of which must be adapted to the particular engagement. Â Failure to adapt will result bad intelligence as no two targets are exactly identical.
A small component of reconnaissance is target identification. Â Target identification may or may not be done with scanning depending on the nature of theÂ penetration test. Â Specifically, it is impossible to deliver a true stealth / covertÂ penetration testÂ with automated scanners. Â Likewise it is very difficult to use a scanner to accuratley identify targets in a network that is protected by reactive security systems (like a well configured IPS that supports black-listing). Â So in some/many cases doing discovery by scanning an entire block of addresses is ineffective.
A few common methods for target identification include Social Engineering, DNS enumeration, or maybe something as simple as asking the client to provide you with a list of targets. Â Not so common methods involveÂ more aggressive social reconnaissance, continued reconnaissance after initial penetration, etc. Â Either way, it will not take 13,800,523,054,961,500,000 years to identify all of the live and accessible targets in an IPv6 network if you know what you are doing.
Additionally, penetration testing against 12 targets in an IPv6 network will take the same amount of time as testing 12 targets in an IPv4 network. Â The number of real targets is what is important and not the number of potential targets. Â It would be a ridiculous waste of time to test 2128Â IPv6 Addresses when only 12 IP addresses are live.Â Â Not to mention that increase in time would likely translate to an increase in project cost.
So in reality, for those who are interested, hacking an IPv6 network wonâ€™t be any more or less difficult than hacking an IPv4 network. Â Anyone that argues otherwise either doesnâ€™t know what they are doing or they are looking to charge you more money for roughly the same amount of work.