<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd">
<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>
    <!-- try to enforce the ID-nits conventions and DTD validity -->
<?rfc strict="no" ?>    <!-- items used when reviewing the document -->
<?rfc comments="no" ?>  <!-- controls display of <cref> elements -->
<?rfc inline="no" ?>    <!-- when no, put comments at end in comments section,
                                otherwise, put inline -->
<?rfc editing="no" ?>   <!-- when yes, insert editing marks -->

    <!-- create table of contents (set it options).
           Note the table of contents may be omitted
         for very short documents -->

<?rfc toc="yes"?><?rfc tocompact="yes"?>
<?rfc tocdepth="2"?>

    <!-- choose the options for the references. Some like
         symbolic tags in the references (and citations)
         and others prefer numbers. --> 
<?rfc symrefs="yes"?><?rfc sortrefs="yes" ?>
    <!-- these two save paper: start new paragraphs from the same page etc. -->
<?rfc compact="yes" ?><?rfc subcompact="no" ?>
<!-- end of list of processing instructions -->
    <!-- Information about the document.
         categories values: std, bcp, info, exp, and historic
         For Internet-Drafts, specify attribute "ipr".
         (ipr values are: full3667, noModification3667, noDerivatives3667),
         Also for Internet-Drafts, can specify values for
         attributes "iprExtract", and "docName".  Note
         that the value for iprExtract is the anchor attribute
         value of a section that can be extracted, and is only
         useful when the value of "ipr" is not "full3667". -->
    <!-- TODO: verify which attributes are specified only
            by the RFC editor.  It appears that attributes
            "number", "obsoletes", "updates", and "seriesNo"
            are specified by the RFC editor (and not by
            the document author). -->

<rfc    
    category="info"
    ipr="trust200902"
    docName="draft-gont-opsec-ipv6-addressing-00" >

<front>
    <title abbrev="IPv6 Addressing &amp; Security Operations">Implications of IPv6 Addressing on Security Operations</title>

    <!-- add 'role="editor"' below for the editors if appropriate -->    

    <author fullname="Fernando Gont" initials="F." surname="Gont">

      <organization abbrev="SI6 Networks">SI6 Networks</organization>
      <address>
        <postal>
          <!-- I've omitted my street address here -->

          <street>Evaristo Carriego 2644</street>

          <code>1706</code>

          <city>Haedo</city>

          <region>Provincia de Buenos Aires</region>

          <country>Argentina</country>
        </postal>

        <email>fgont@si6networks.com</email>

        <uri>https://www.si6networks.com</uri>
      </address>
    </author>
     

    <author fullname="Guillermo Gont" initials="G." surname="Gont">
      <!-- abbrev not needed but can be used for the header
         if the full organization name is too long -->

      <organization abbrev="SI6 Networks">SI6 Networks</organization>

      <address>
        <postal>
          <!-- I've omitted my street address here -->

          <street>Evaristo Carriego 2644</street>

          <code>1706</code>

          <city>Haedo</city>

          <region>Provincia de Buenos Aires</region>

          <country>Argentina</country>
        </postal>

        <email>ggont@si6networks.com</email>

        <uri>https://www.si6networks.com</uri>
      </address>
    </author>	



<date /> 
<!-- month="May" is no longer necessary note also, day="30" is optional -->
    <area>Operations and Management (ops)</area>    <!-- WG name at the upperleft corner of the doc,
         IETF fine for individual submissions -->
    <workgroup>opsec</workgroup>

<abstract>
<t>
   The increased address availability provided by IPv6 has concrete implications on security operations. This document discusses such implications, and sheds some light on how existing security operations techniques and procedures might need to be modified accommodate the increased IPv6 address availability.
</t>
</abstract>

</front>

<middle>

<section title="Introduction" anchor="intro">
<t>The main driver for the adoption of the IPv6 protocol suite is its increased address space, which can provide a virtually unlimited number of public addresses for every device attached to the public Internet.
</t>

<t>IPv6 addresses <xref target="RFC4291"/> can differ in a number of properties, such as address scope (e.g. link-local vs. global), stability (e.g. stable addresses vs. temporary addresses), and intended usage type (outgoing communications vs. incoming communications).</t>

<t>IPv6 hosts may configure and use multiple addresses with different combinations of the aforementioned properties, depending on the local host policy and the local network policy. For example, in network where SLAAC is employed for address configuration, host will typically configure one stable address and one (or more) temporary addresses per network interface, for each prefix advertised advertised for address configuration. On the other hand, for networks that employ stateful configuration, it is quite common for hosts to configure one address per network interface.
</t>

<t><xref target="semantics"/> discusses the semantics of IPv6 addresses in terms of the entity or entities the identify, according to the deployed Internet.  <xref target="sec-ops"/> discusses the usage of IPv6 addresses in security operations. <xref target="impli"/> discusses the implications of IPv6 addressing on security operations.</t> 
</section>


<!--
<section title="Terminology" 
    anchor="terms">


<t>This document employs the definitions of "public address", "stable address", and "temporary address" from Section 2 of <xref target="RFC7721"/>.</t>

<t>This document employs the definition of "globally reachable" from Section 2.1 of <xref target="RFC8190"/>.</t>
</section>
-->


<section title="The Semantics of IPv6 Addresses and IPv6 Prefixes" anchor="semantics">
<t>As noted in <xref target="intro"/>, IPv6 hosts typically configure multiple addresses with different properties. One of the most common deployment scenarios is that in which the subnet employs SLAAC <xref target="RFC4862"/> for address configuration, and where hosts configure both stable <xref target="RFC8064"/> <xref target="RFC7217"/> and temporary <xref target="RFC8981"/> addresses. From this perspective, it is clear that multiple addresses may correspond to the same IPv6 host. </t>

<t>While rather uncommon for legitimate use cases, an IPv6 host may actually employ a larger address block. For example, it is common for ISPs to lease a /56 or /48 to each subscriber, and thus a skilled user could readily employ the leased prefix in a single or multiple IPv6 hosts (whether virtual or not). 
</t>
<t>On the other hand, while one might assume an IPv6 address would correspond to at most one host (strictly speaking, to one network interface of a host), this is not necessarily the case in the deployed Internet since e.g. deployments that employ "Network Address Port Translation + Protocol Translation" (NAPT-PT) <xref target="RFC2766"/> for IPv6 are not uncommon, whether along with technologies such as Kubernetes, or in IPv6-enabled VPNs. Thus, a single IPv6 address may actually correspond to or identify multiple IPv6 systems.
</t>
</section>


<section title="Security Operations" anchor="sec-ops">

<section title="Access Control Lists (ACLs)" anchor="ops-acls">
<t>It is common for network deployments to implement any of these types of ACLs:
<list style="symbols">
<t>Allow-lists</t>
<t>Block-lists</t>
</list>
</t>

<t>
Allow-lists are typically employed as part of a defense-in-depth strategy, where access to specific resources is allowed only when requests originate from specific IP addresses or prefixes. For example, an organization may employ a Virtual Private Network (VPN), and require that certain resources be accessed via the VPN, by enforcing that requests originate from the IP address (or addresses) of the VPN concentrator.
</t>

<t>On the other hand, block-lists are typically implemented to mitigate threats. For example, a network firewall might be fed with an IP reputation block-list that is dynamically updated to reflect the IP address (or addresses) of known or suspected attackers.
</t>

<t>Both types of ACLs have a similar challenge in common: identifying the minimum set of addresses that should be employed in the ACLs definition such that the ACLs can successfully enforce the controls they are expected to enforce. For example, in the case of allow-lists, the corresponding ACLs should encompass possible legitimate changes in the set of "valid"/allowed addresses, thus avoiding false negatives (i.e., incorrectly preventing access to legitimate users). On the other hand, in the case of block-lists, the ACLs should encompass the attacker's ability to use different addresses (or vantage points), while minimizing false positives (i.e., incorrectly blocking legitimate users).
</t>
</section>

<section title="Network Activity Correlation" anchor="ops-correlation">
<t>Another fundamental aspect of security operations is that of network activity correlation (at times with the goal of attribution). That is, an analyst may want or need to infer the relationship among different network activities, and possibly assess whether they can be attributed to the same entity or attacker. This may be necessary for security investigations, but also to e.g. subsequently mitigate a threat by enforcing ACLs that block the alleged attacker.</t>
</section>

</section>


<section title="Implications of IPv6 Addressing on Security Operations" anchor="impli">

<section title="Access-Control Lists">
<t>When implementing an allow-list, it may be necessary to specify it with a granularity of /64 -- that is, an entire /64 might need to be "allowed", since the target host(s) might employ multiple addresses from the same /64 over time (e.g., as a result of temporary addresses <xref target="RFC8981"/>). However, since sunch IPv6 prefix would be shared by other hosts in the same subnet, this would mean that the ACL would have coarse-granularity (i.e., all hosts (or none) would be part of the allow-list -- which is probably unacceptable in many cases.</t>

<t>In some scenarios, a network administrator might be able to disable the use of temporary addresses <xref target="RFC8981"/> via e.g. group policies <xref target="GPO"/>, or request/enforce the use of DHCPv6 <xref target="RFC8415"/>, thus having more control on the addresses employed by local hosts. In these specific cases, it might be possible to implement an allow-list for a host by specifying a single IPv6 address (i.e., a /128).
</t>

<t>On the other hand, implementing block-lists can be tricky. For example IP reputation lists (whether commercial or not) are commonly employed in the deployed Internet. However, these lists generally specify offending addresses as /128, as opposed to a network prefix. This means that an attacker could simply regularly change his/her IPv6 address, thus reducing the effectiveness of these lists. Additionally, a side effect of an attacker regularly changing his/her address is that the block-list might grow to such an extent that the list might have to be trimmed (as a result of implementation constraints), with the aforementioned transient addresses consuming available "slots" in the IP reputation block-list.</t>

<t>Similarly, tools of the kind of <xref target="fail2ban"/> are commonly employed by system administrators to mitigate e.g. brute-force authentication attacks by banning IP addresses after a certain number of failed authentication attempts. These tools might ban IPv6 addresses on a /128 granularity, thus meaning that an attacker could easily circumvent these controls by changing the attacking address every few attempts (e.g. before an address becomes blocked). Additionally, as with the IP reputation lists previously discussed, an attacker performing a brute force attack *and* regularly changing his/her address could make the block-list grow to an extent where it might negatively affect the system enforcing the block-list, or might cause other valid entries to be discarded in favor of the transient IPv6 addresses.
</t>

<t>One might envision that IPv6 reputation lists might aggregate a large number of offending IPv6 addresses into a prefix that encompasses them. However, this practice is really not widespread, and might also increase the number of false positives. Thus, it is possibly a topic for further research.
</t>
</section>

<section title="Network Activity Correlation">

<t>Performing IPv6 network activity correlation can be very tricky, since the semantics of an IPv6 address in terms of what it might correspond to (see <xref target="semantics"/>) can be complex. As discussed before, a single IPv6 address could correspond to either a single host, or multiple hosts behind an IPv6 NAPT-PT device -- in a way, this being similar to IPv4 scenarios.</t>

<t>However, multiple IPv6 addresses might or might not represent multiple systems. In some cases, some heuristics might help infer whether a group of addresses belonging to a /64 correspond to the same node. However, as the addresses become more sparse (e.g., a user or attacker leverages a /48), this may be more challenging. And, while some heuristics could be employed to perform network activity correlation across multiple addresses, most tools commonly used in the deployed Internet do not implement this kind of features.
</t>

</section>
</section>

<section title="Security Considerations">

<t>This entire document is about the implications of IPv6 addressing on Security Operations. It analyzes the impact of IPv6 addressing on a number of security operations areas, raising awareness about the associated challenges, and hopefully fostering developments in these areas.
</t>

</section>


<section title="Acknowledgements">
<t>The authors of this document would like to thank (in alphabetical order) [TBD] for providing valuable comments on earlier versions of this document.</t>
<t>This document borrows some text and analysis from <xref target="I-D.gont-v6ops-ipv6-addressing-considerations"/>, authored by Fernando Gont and Guillermo Gont.</t>

<t>Fernando would also like to Nelida Garcia and Jorge Oscar Gont for their love and support.</t>
</section>


</middle>

<back>
<references title="Normative References">
    <?rfc include="reference.RFC.4291" ?>
    <?rfc include="reference.RFC.4862" ?>
    <?rfc include="reference.RFC.7217" ?>
    <?rfc include="reference.RFC.8064" ?>
    <?rfc include="reference.RFC.8415" ?>
    <?rfc include="reference.RFC.8981" ?>
</references>

<references title="Informative References">
    <?rfc include="reference.RFC.2766" ?>
    <?rfc include="reference.I-D.gont-v6ops-ipv6-addressing-considerations" ?>
<!--    <?rfc include="reference.RFC.7721" ?> -->
<!--    <?rfc include="reference.RFC.8190" ?> -->

      <reference anchor="GPO"
                 target="https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2012-r2-and-2012/hh831791(v=ws.11)">
        <front>
          <title>Windows Server 2012 R2 and Windows Server 2012</title>

          <author fullname="">
            <organization>Microsoft</organization>
          </author>

          <date year="2016"/>
        </front>

      </reference>

      <reference anchor="fail2ban"
                 target="https://www.fail2ban.org/">
        <front>
          <title>fail2ban project</title>

          <author fullname="">
            <organization>fail2ban</organization>
          </author>

          <date/>
        </front>

      </reference>
      
      
</references>

</back>
</rfc>
