{"id":489,"date":"2018-09-02T11:29:40","date_gmt":"2018-09-02T15:29:40","guid":{"rendered":"http:\/\/puluka.com\/home\/?p=489"},"modified":"2018-09-02T11:51:34","modified_gmt":"2018-09-02T15:51:34","slug":"dots","status":"publish","type":"post","link":"http:\/\/puluka.com\/home\/networking\/dots\/","title":{"rendered":"DOTS:  DDoS Open Threat Signaling"},"content":{"rendered":"<p>DDoS is a problem for more than the target. The attack traffic is carried by many AS along the way and nobody is interesting in assisting illegitimate traffic. Frequently the target at the final destination has a circuit overwhelmed by the volume so the mitigation must occur upstream of the target device.<\/p>\n<p>As a result the detection of the DDoS attack can occur at a different point in the traffic path than where mitigation efforts need to happen to be effective. Communications between two companies and network domains need to occur to effectively both detect and mitigate an attack.<\/p>\n<p>Today most of this communications occurs manually offline unless the target and scrubbing center deploy equipment from the same vendor that has developed a proprietary method to pass the detection information to the upstream scrubbing center. The market for DDoS scrubbing centers is now diverse and mature enough that standards are appropriate for this type of signaling.<\/p>\n<p>Enter the IETF standards working group DOTS &#8211; DDoS Open Threat Signaling. As with other network communications standards representatives from the DDoS space both as operators and manufacturers come together to define a framework for the necessary communications. The working group home page and current draft documents are linked below.<\/p>\n<h2>Architecture<\/h2>\n<p>DOTS is a communications standard. The entities performing the communications are:<\/p>\n<p>DOTS clients &#8211; that are reporting the detected DDoS issue<br \/>\nDOTS Servers &#8211; that receive the reports on behalf of entities that can potentially act on these reports<br \/>\nDOTS gateway &#8211; optional entity that can translate internal DOTS clients that only understand RFC1918 addressing into requests that communicate the appropriate public ip addresses involved as the DDoS target.<\/p>\n<p>The simplest basic DOTS architecture<\/p>\n<p><a href=\"http:\/\/puluka.com\/home\/wp-content\/uploads\/2018\/09\/DOTS1.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-490 size-full\" src=\"http:\/\/puluka.com\/home\/wp-content\/uploads\/2018\/09\/DOTS1.png\" alt=\"\" width=\"362\" height=\"166\" srcset=\"http:\/\/puluka.com\/home\/wp-content\/uploads\/2018\/09\/DOTS1.png 362w, http:\/\/puluka.com\/home\/wp-content\/uploads\/2018\/09\/DOTS1-300x138.png 300w\" sizes=\"auto, (max-width: 362px) 100vw, 362px\" \/><\/a><\/p>\n<p>When the DOTS client is some server running in RFC1918 space and scope the gateway architecture looks like this.<\/p>\n<p><a href=\"http:\/\/puluka.com\/home\/wp-content\/uploads\/2018\/09\/DOTS2.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-491 size-full\" src=\"http:\/\/puluka.com\/home\/wp-content\/uploads\/2018\/09\/DOTS2.png\" alt=\"\" width=\"370\" height=\"148\" srcset=\"http:\/\/puluka.com\/home\/wp-content\/uploads\/2018\/09\/DOTS2.png 370w, http:\/\/puluka.com\/home\/wp-content\/uploads\/2018\/09\/DOTS2-300x120.png 300w\" sizes=\"auto, (max-width: 370px) 100vw, 370px\" \/><\/a><\/p>\n<p>The protocol also allows for multiple clients signaling a single upstream or a single client signaling multiple multiple servers for assistance. Or the DOTS gateway can be used to consolidate multiple clients for the upstream signaling requests to either single or multiple servers. In short the communication combinations and permutations are well covered.<\/p>\n<p>The idea is that detector clients can be deployed by any vendor and at any point that makes sense to detect the malicious DDoS attack. The vendor need not have any mitigation ability at all to be a detector. They can even be completely out of the traffic path itself and operating on data streams of any sort at all.<\/p>\n<p>Likewise the DOTS server can be communicating to mitigation tools that have no detection ability at all. There is no need for the mitigator to detect the DDoS attack as the signal is requesting the mitigation.<\/p>\n<p>Naturally there is a significant value in having both detection and mitigation working hand in hand but the standard allows for vendors to specialize in one or the other more easily.<\/p>\n<h2>Use Cases<\/h2>\n<p>There are two primary use cases for DOTS, communications between the target and the immediate upstream provider and from the target to 3rd party mitigation services outside the initial connection to the target.<\/p>\n<p><a href=\"http:\/\/puluka.com\/home\/wp-content\/uploads\/2018\/09\/DOTS3.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-492 size-full\" src=\"http:\/\/puluka.com\/home\/wp-content\/uploads\/2018\/09\/DOTS3.png\" alt=\"\" width=\"476\" height=\"377\" srcset=\"http:\/\/puluka.com\/home\/wp-content\/uploads\/2018\/09\/DOTS3.png 476w, http:\/\/puluka.com\/home\/wp-content\/uploads\/2018\/09\/DOTS3-300x238.png 300w\" sizes=\"auto, (max-width: 476px) 100vw, 476px\" \/><\/a><\/p>\n<p>When signaling the immediate transit provider the nature of the traffic path means they will already have the malicious packets on their network. So no route diversions are needed in the overall internet table for the transit provider to mitigate the issue. The DOTS server mitigation can use \/32 addressing and the built in infrastructure of the transit provider to provide mitigation service with no need for any other internet routing changes to occur.<\/p>\n<p><a href=\"http:\/\/puluka.com\/home\/wp-content\/uploads\/2018\/09\/DOTS4.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-493 size-full\" src=\"http:\/\/puluka.com\/home\/wp-content\/uploads\/2018\/09\/DOTS4.png\" alt=\"\" width=\"519\" height=\"391\" srcset=\"http:\/\/puluka.com\/home\/wp-content\/uploads\/2018\/09\/DOTS4.png 519w, http:\/\/puluka.com\/home\/wp-content\/uploads\/2018\/09\/DOTS4-300x226.png 300w\" sizes=\"auto, (max-width: 519px) 100vw, 519px\" \/><\/a><\/p>\n<p>With 3rd party DDoS Mitigation service they need to first divert the global internet table to receive the traffic before they can provide mitigation. So part of the process is to identify the \/24 route that will need to be inserted into the global internet routing table for this to occur. The other major difference is that the good traffic that is then sent to the target needs a delivery path. This is typically a tunnel of some sort created between the enterprise and the DDoS service.<\/p>\n<h2>Signaling Standards<\/h2>\n<p>Communications between DOTS nodes is separated into a signal channel and data channel. This allows the clean separation of data from communications infrastructure and more ability to simply ignore messages not understood and extend messages in the future. Security of communications is paramount as well. We don\u2019t want this channel of communications becoming a new method of DDoS attack.<\/p>\n<p>Further the existing communications protocol coap is used as the foundation for the channel. This takes advantage of an existing mature communications standard that is also resilient by nature. The working group understands that when the DOTS client is under attack the channel of communications may also be impacted.<\/p>\n<p>The standard also makes use of the existing standard of YANG to describe the data structure of messages passed in the system. By using a small set of required data elements and an extended set of optional ones that can be safely ignored by any DOTS element, the system becomes easily extendable and resilient for backwards compatibility.<\/p>\n<h2>Conclusion<\/h2>\n<p>The current drafts are now in the final stages of review and comment and should start to be implemented by vendors this year or early next year. I am encouraged that the framework seems to be a robust standard. It uses existing signaling mechanism where practical. It separates a basic message from detailed data that makes it easy for vendors to extend without breaking cross vendor signaling. And the structure allows for future feature extensions in a fully backward compatible way that won\u2019t break older nodes when new features are added.<\/p>\n<p>I look forward to seeing the implementation details as they emerge from the major vendors in the space.<\/p>\n<h2>References:<\/h2>\n<p>DOTS working group home<br \/>\n<a href=\"https:\/\/datatracker.ietf.org\/wg\/dots\/documents\/\">https:\/\/datatracker.ietf.org\/wg\/dots\/documents\/<\/a><\/p>\n<p>DOTS Architecture Draft March 2018<br \/>\n<a href=\"https:\/\/datatracker.ietf.org\/doc\/draft-ietf-dots-architecture\/\">https:\/\/datatracker.ietf.org\/doc\/draft-ietf-dots-architecture\/<\/a><\/p>\n<p>DOTS Use Cases Draft July 2018<br \/>\n<a href=\"https:\/\/datatracker.ietf.org\/doc\/draft-ietf-dots-use-cases\/\">https:\/\/datatracker.ietf.org\/doc\/draft-ietf-dots-use-cases\/<\/a><\/p>\n<p>DOTS Threat Signaling Requirements Draft August 2018<br \/>\n<a href=\"https:\/\/datatracker.ietf.org\/doc\/draft-ietf-dots-requirements\/\">https:\/\/datatracker.ietf.org\/doc\/draft-ietf-dots-requirements\/<\/a><\/p>\n<p>DOTS Signal Channel Specification August 2018<br \/>\n<a href=\"https:\/\/datatracker.ietf.org\/doc\/draft-ietf-dots-signal-channel\/\">https:\/\/datatracker.ietf.org\/doc\/draft-ietf-dots-signal-channel\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>DDoS is a problem for more than the target. The attack traffic is carried by many AS along the way and nobody is interesting in assisting illegitimate traffic. Frequently the target at the final destination [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[8],"tags":[],"class_list":["post-489","post","type-post","status-publish","format-standard","hentry","category-networking"],"_links":{"self":[{"href":"http:\/\/puluka.com\/home\/wp-json\/wp\/v2\/posts\/489","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/puluka.com\/home\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/puluka.com\/home\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/puluka.com\/home\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/puluka.com\/home\/wp-json\/wp\/v2\/comments?post=489"}],"version-history":[{"count":3,"href":"http:\/\/puluka.com\/home\/wp-json\/wp\/v2\/posts\/489\/revisions"}],"predecessor-version":[{"id":496,"href":"http:\/\/puluka.com\/home\/wp-json\/wp\/v2\/posts\/489\/revisions\/496"}],"wp:attachment":[{"href":"http:\/\/puluka.com\/home\/wp-json\/wp\/v2\/media?parent=489"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/puluka.com\/home\/wp-json\/wp\/v2\/categories?post=489"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/puluka.com\/home\/wp-json\/wp\/v2\/tags?post=489"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}