during our BlackHat US 2014 talk titled
“Evasion of High-End IPS Devices in the Age of IPv6”,
among others we discussed a Snort preprocessor rule (116:456) which, when
enabled (not the case by default), triggers an alert when an IPv6 datagram with
nine (9) or more IPv6 Extension Headers is used (such a header was used by us to
evade Snort). However, we mentioned that:
In the
“A Novel Way of Abusing IPv6 Extension Headers to Evade IPv6 Security Devices”
blogpost I described a way to evade a high-end commercial IDPS device, the
Tipping Point IDPS (TOS Tipping Point, Package 3.6.1.4036 and vaccine 3.2.0.8530
digital), by abusing a minor detail at the IPv6 specification. As I promised at
the end of that blogpost, this is not the end. In this blogpost I am going to
describe several new and different ways of evading another popular IDPS, an
open-source one this time, Suricata.
As it is well known to the IPv6 enthusiasts, one of the most significant changes
that IPv6 brings with it, apart from supporting a really huge address space, is
the improved support for Extensions and Options, which is achieved by the usage
of IPv6 Extension headers. According to
RFC 2460, “changes in the way IP
header options are encoded allows for more efficient forwarding, less stringent
limits on the length of options, and greater flexibility for introducing new
options in the future.” So, by adding IPv6 Extension headers, according to the
designers of the protocol, flexibility and efficiency in the IP layer is
improved.
We had a great day today at the
Troopers IPv6 Security Summit.
Good conversations, quite some technical discussion and a prevailing overall
will to improve actual IPv6 network security.
Here
are the slides of Antonios Atlasis’ great talk on extension headers and
these
are some of his accompanying Python/Scapy scripts. My own presentation on high
secure IPv6 networks can be found
here.
The slides of the
real-world capabilities workshop
will not be published yet as we first have to discuss some stuff with a vendor.
Marc Heuse – who happens to give
this workshop
at the
Troopers IPv6 Security Summit next
week – just sent
this email (subject:
“Remote system freeze thanks to Kaspersky Internet Security 2013”) to the
IPv6 hackers mailing list,
describing how a system running a certain flavor of Kaspersky security products
can be remotely frozen when receiving IPv6 packets with a specific combination
of extension headers and fragmentation (which in turn can be easily generated by
his IPv6 protocol attack suite).
IPv6 introduces a lot of new features and consequently, a lot of new
capabilities. Obviously, the most significant of them is the huge address space
that it offers. However, this is not the only one. IPv6 also introduces the use
of the IPv6 Extension Headers. The IPv6 header has been considerably simplified
in comparison with IPv4 one. On the other hand, the IPv6 Extension Headers, not
only do the “job” of most of the fields which were removed from the main header,
but, additionally, they add many more. However, any new “technology” creates new
attack opportunities and a “new” protocol, such as IPv6 could not be an
exception, especially since its design and implementation is more complicated
than it’s predecessor.