<?xml version="1.0" encoding="US-ASCII"?>

<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [

<!ENTITY RFC6480 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.6480.xml">
<!ENTITY RFC6482 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.6482.xml">
<!ENTITY RFC6811 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.6811.xml">
<!ENTITY RFC8205 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.8205.xml">
<!ENTITY I-D.ietf-sidrops-aspa-verification SYSTEM "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.ietf-sidrops-aspa-verification.xml">
]>

<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>
<?rfc strict="yes" ?>
<?rfc toc="yes"?>
<?rfc tocdepth="4"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes" ?>
<?rfc compact="yes" ?>
<?rfc subcompact="no" ?>
<rfc category="std" docName="draft-sriram-sidrops-as-hijack-detection-01" ipr="trust200902">
  <front>
    <title abbrev="AS Hijack Detection and Mitigation"> AS Hijack Detection and Mitigation</title>

    <author fullname="Kotikalapudi Sriram" initials="K."  surname="Sriram">
      <organization abbrev="USA NIST">USA National Institute of Standards and Technology</organization>
      <address>
         <postal>
          <street>100 Bureau Drive</street>
          <city>Gaithersburg</city>
          <region>MD</region>
          <code>20899</code>
          <country>United States of America</country>
        </postal>
        <email>ksriram@nist.gov</email>
      </address>
    </author>

    <author fullname="Doug Montgomery" initials="D."  surname="Montgomery">
      <organization abbrev="USA NIST">USA National Institute of Standards and Technology</organization>
      <address>
         <postal>
          <street>100 Bureau Drive</street>
          <city>Gaithersburg</city>
          <region>MD</region>
          <code>20899</code>
          <country>United States of America</country>
        </postal>
        <email>dougm@nist.gov</email>
      </address>
    </author>

    <date year="" />

    <area>Routing</area>

    <workgroup>IDR and SIDR</workgroup>

    <keyword>BGP, AS hijack, AS hijack detection, RPKI, BGP Security</keyword>

    <abstract>
      <t>

        This document proposes a method for detection and mitigation of AS hijacking. In this mechanism, an AS operator registers a new object in the RPKI called 'ROAs Exist for All Prefixes (REAP)'. REAP is digitally signed using the AS holder's certificate. By registering a REAP object, the AS operator is declaring that they have Route Origin Authorization (ROA) coverage for all prefixes originated by their AS. A receiving AS will mark a route as Invalid if the prefix is not covered by any Validated ROA Payload (VRP) and the route origin AS has signed a REAP. Here Invalid means that the route is determined to be an AS hijack.
      </t>

     
<!--
        This document proposes methods for detection and mitigation of AS hijacking. The central idea is that the legitimate AS conveys information indicating that ROAs exist for all prefixes originated by it. This information is labeled 'ROAs Exist for All Prefixes (REAP)'. REAP can be conveyed in a new signed RPKI object or by attaching a new BGP Path Attribute or Community. An AS that is processing a received BGP update elsewhere in the Internet will use the REAP information to mark the update as Invalid if the prefix is not covered by ROA and the origin AS in the update is included in REAP. Here Invalid means that the update involves an AS hijack. This method detects all AS hijacks that invlove announcing a third-party prefix with the hijacked origin AS. 
     
-->
    </abstract>

  </front>

  <middle>
    <section title="Introduction">
      <t>
AS hijacking occurs when one AS accidentally or maliciously uses of another AS's AS number (ASN) as the origin ASN in a BGP announcement. The offending AS typically inserts its own ASN as the second ASN in the path after the hijacked origin ASN. The prefix in the announcement may sometimes belong to the hijacker. But AS hijacking is often done in conjunction with hijacking a third-party prefix. The hijacker would typically choose a third-party prefix that does not have Route Origin Authorization (ROA) <xref target="RFC6482"/> coverage. Then the route would receive NotFound rather than Invalid validation result when RPKI-based Origin Validation (RPKI-OV) <xref target="RFC6811"/> is performed. This benefits the hijacker because NotFound routes are commonly included in route selection by the receiver. 
</t>
<t>
This document proposes a method for detection and mitigation of AS hijacking. In this mechanism, an AS operator registers a new object in the RPKI called 'ROAs Exist for All Prefixes (REAP)'. REAP is digitally signed using the AS holder's certificate. By registering a REAP object, the AS operator is declaring that they have Route Origin Authorization (ROA) coverage for all prefixes originated by their AS. A receiving AS will mark a route as Invalid if the prefix is not covered by any Validated ROA Payload (VRP) and the route origin AS has signed a REAP. Here Invalid means that the route is determined to be an AS hijack. It is assumed that a router that supports REAP is also RPKI <xref target="RFC6482"/> and RPKI-OV <xref target="RFC6811"/> capable.
</t>
<t>
To review some related work, the BGPsec protocol <xref target="RFC8205"/> effectively prevents AS hijack attacks but its adoption does not seem likely in the near future. The ASPA method <xref target="I-D.ietf-sidrops-aspa-verification"/> is designed principally for detection of route leaks. In conjunction with checking peer ASN with BGP OPEN message (e.g., enforce-first-as <xref target="Cisco-IOS"/> or "peer_lookup_with_open" <xref target="Quagga"/>), ASPA also addresses AS hijacking in part. However, due to its vulnerability to cut and paste attacks in partial deployment, ASPA will often label such attacks as Unknown rather than Invalid. That gives leeway to an attacker to conduct AS hijacks in partial deployment. Even when an AS creates its ASPA object, if its transit provider does not, then the attacker can conduct the cut and paste attacks involving the AS.
<!-- (see slide 10 in <xref target="Sriram"/>). --> On the other hand, the proposed REAP method for detecting AS hijacks works much better even in partial deployment. If AS A creates its REAP object, then a REAP-enabled AS Z (anywhere in the Internet) can perform AS hijack detection for AS A independent of the adoption status of any other ASes. In other words, REAP can be deployed incrementally and the benefits accrue immediately for the REAP object creator and the ASes that have REAP-based AS hijack detection. Of course REAP and ASPA work in a complementary manner.
</t>
<t>
RPKI-OV is known to be vulnerable to forged-origin hijacks (see Section 4.3.1 in <xref target="NIST-800-189"/>), where a prefix and an origin AS that appear in a ROA are used together. However, in that case the attacker is likely competing with the legitimate Valid announcement for the prefix, and that makes the attack more conspicuous. Generally, the hijacker would seek to remain under the radar. So AS hijacks occur more commonly with a third-party prefix that does not have ROA coverage. The REAP method effectively detects and mitigates this form of attack.
</t>

<!--
        <xref target="RFC7908"/> 
<xref target="I-D.ietf-idr-bgp-open-policy"></xref>.
<xref target="I-D.ietf-grow-route-leak-detection-mitigation"/> 
-->


    </section>

    <section anchor="method" title="AS Hijack Detection and Mitigation Method">
<t>
This document specifies a new RPKI object called 'ROAs Exist for All Prefixes (REAP)'. As stated before, REAP is digitally signed using the AS holder's certificate. It contains only an AS number that belongs to the signer. By registering REAP, the AS operator is declaring that they have ROA coverage for all prefixes originated by their AS. REAP extends normal RPKI-OV processing to check if any NotFound route has an origin AS with a valid REAP object. If so, the NotFound result is changed to Invalid.

      </t>
      <t>
The algorithm to be followed in a receiving BGP router for validating a route is as follows:
<list style="numbers">
      <t>
Perform the RPKI-OV process <xref target="RFC6811"/> as normal.  
      </t>
      <t>
If the result of RPKI-OV is NotFound and the origin AS has a valid (per X.509) REAP object, then replace NotFound with Invalid. 
      </t>
</list>
      </t>
       <t>
The operator SHOULD apply policy to reject routes with Invalid outcome in order to perform AS hijack mitigation along with prefix hijack mitigation. 
      </t>

</section>


    <section anchor="IANA" title="IANA Considerations">
<t>
IANA is requested to register the following RPKI Signed Object:
</t>

      <figure>
        <preamble></preamble>

        <artwork><![CDATA[
           
     Name      OBJECT IDENTIFIER (OID) value    Reference
     -------   -----------------------------    ---------
     REAP      1.2.840.113549.1.9.16.1.TBD      [This document]

      	]]></artwork>

        <postamble></postamble>
      </figure>

    </section>

    <section anchor="Security" title="Security Considerations">
      <t>
The security considerations that apply to RPKI, ROAs, and RPKI-OV (see <xref target="RFC6480"/> <xref target="RFC6482"/> <xref target="RFC6811"/>) also apply to the procedure described in this document.
</t>
 
    </section>
  </middle>


  <back>

<references title="Normative References">
      &RFC6480;
      &RFC6482;
      &RFC6811;
</references>

    <references title="Informative References">
 
      &RFC8205;

      &I-D.ietf-sidrops-aspa-verification;

<reference anchor="NIST-800-189" target="https://doi.org/10.6028/NIST.SP.800-189">
        <front>
          <title>Resilient Interdomain Traffic Exchange: BGP Security and DDoS Mitigation</title>
      	  <author initials="K." surname="Sriram">
          <organization></organization>
          </author>
	  <author initials="D." surname="Montgomery">
          <organization></organization>
          </author>
	  
          <date month='December' year='2019' />
        </front>
        <seriesInfo name='NIST Special Publication' value='NIST SP 800-189' />
	<seriesInfo name="" value="" />
</reference>

<reference anchor="Cisco-IOS" target="https://www.cisco.com/c/en/us/td/docs/ios-xml/ios/iproute_bgp/command/irg-cr-book/bgp-a1.html#wp1026344430">
        <front>
          <title>Cisco IOS IP Routing: BGP Command Reference (enforce-first-as)</title>
	  <author initials="" surname="">
          <organization></organization>
          </author>
	  
          <date month='' year='' />
        </front>
        <seriesInfo name='Cisco IOS information webpage' value='' />
	<seriesInfo name="" value="" />
</reference>

<reference anchor="Quagga" target="https://nowhere.ws/dump/quagga-srcdest-coverage/bgpd/bgpd.c.func.html">
        <front>
          <title>LCOV - code coverage report (peer_lookup_with_open)</title>
	  <author initials="" surname="">
          <organization></organization>
          </author>
          <date month='' year='' />
	  
        </front>
        <seriesInfo name='Quagga information webpage' value='' />
	<seriesInfo name="" value="" />
</reference>
<!--
<reference anchor="Sriram" target="https://www.nist.gov/programs-projects/robust-inter-domain-routing">
        <front>
          <title>Design Analysis of the ASPA Proposal</title>
	  <author initials="K." surname="Sriram">
          <organization></organization>
          </author>
          <date month='July' year='2020' />
	  
        </front>
        <seriesInfo name='NIST RIDR Project webpage' value='' />
	<seriesInfo name="" value="" />
</reference>
-->

    </references>



    <section title="Acknowledgements" numbered="no">
      <t>
        The authors wish to thank Oliver Borchert and Kyehwan Lee for their review and comments.
      </t>
    </section>


  </back>
</rfc>

