CLDAP Reflection DDoS(アカマイ・テクノロジーズ レポートWebサイト)

アカマイ・テクノロジーズ(Akamai Technologies, Inc.)のSecurity Intelligence Response Team(SIRT)では、新しいリフレクション攻撃手法を観測したことをレポートしている。具体的な攻撃の紹介のまえに、リフレクション攻撃について紹介しよう。

DDoS攻撃の新たな手法-リフレクション攻撃

DoS攻撃は、英文の「Denial of Services attack」に由来する。そのまま訳せば、サービス拒否攻撃となる。その名の通り、攻撃者がなんらかの方法を使い、公開されたサーバーが提供するサービスを使用不能な状態に陥れる。DDoS攻撃(こちらは「Distributed Denial of Service attack」)は、攻撃者が多数の無関係なコンピュータを操り、それらのコンピュータから一斉に、攻撃対象となるサーバー攻撃を行う。これらの攻撃を行うコンピュータ群を、ボットネットとも呼称する。

もっとも単純な攻撃であるF5アタックでは、[F5]キーを連打するものである。ブラウザは、[F5]キーが押されると、表示しているWebページをリロードする。たったこれだけのことであるが、千や万の単位で行われると、Webサーバーのサービスがほとんど提供できない状態となる。

リフレクション攻撃は、直接攻撃目標となるサーバーを攻撃するのではなく、間に踏み台となるサーバーを介する。

図1 リフレクション攻撃

リフレクション攻撃は攻撃者やボットネットから送ったパケットよりも大きなパケットが、標的となるサーバーに送られる。具体的には、DNSサーバーやNTPサーバーを反射に利用することが多い。攻撃によっては、40倍以上の増幅率になることもある。

Connection-less Lightweight Directory Access Protocol(CLDAP)リフレクション攻撃

今回、観測されたのは、Connection-less Lightweight Directory Access Protocol(CLDAP)を悪用したものである。LDAPは、ディレクトリサービスへとアクセスするためのプロトコルである。LDAPはTCP上で動作し、コネクション指向である。つまり、コネクションを確立するためのオーバーヘッドとそれに伴う遅延が発生する。この負荷を軽減するために、コネクション確立を行わない、つまり「Connection-less」なLDAPを意味する。認証がないため、有効なアクセス制御が行えない。そのため、具体的には、公の情報を見るというような単純な操作などに使われる。

今回の攻撃では、UDPの389ポートが使われた。攻撃の初期段階では、次のようなCLDAPクエリーをLDAPサーバーに向けて送信する。この時点では、52バイトしかない。

 13:55:57.962697 IP X.X.X.X.57852 > X.X.X.X.389: UDP, length 52
 13:55:57.963784 IP X.X.X.X.33850 > X.X.X.X.389: UDP, length 52
 13:55:57.964392 IP X.X.X.X.47097 > X.X.X.X.389: UDP, length 52
 13:55:57.965226 IP X.X.X.X.47728 > X.X.X.X.389: UDP, length 52

LDAPサーバーでは、これらのクエリーを受け取り、レスポンスを返す。それが、以下のようになる。

 11:37:04.281079 IP linux_host.23424 > windows_server.389: UDP, length 52
 11:37:04.282207 IP windows_server.389 > linux_host.23424: UDP, bad length 2962 > 1472
 11:37:04.282223 IP windows_server > linux_host: ip-proto-17
 11:37:04.282227 IP windows_server > linux_host: ip-proto-17

この例では、Windows 2012 Serverをテストに使用している。2962バイトと56倍以上になっている。実際には、以下のようなデータである、

 Packet 1
 2[`0vdm0e0&currentTime120170213163705.0Z0WsubschemaSubentry1><CN=Aggregate,CN=Schema,CN=Configuration,DC=locallab,DC=local0
 dsServiceName1zxCN=NTDS
 Settings,CN=WIN-U5K3VOF1HE3,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,D-C=locallab,DC
 <snip>

 Packet 2
 <snip>
 WIN-U5K3VOF1HE3.locallab.local0GldapServiceName10.locallab.local:win-u5k3vof1he3$@LOCALLAB.LOCAL0{
 serverName1igCN=WIN-U5K3VOF1HE3,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=locall
 ab,DC=local0supportedCapabilities11.2.840. 113556.1.4.8001.2.840.113556.1.4.16701.2.840.113556.1.4.17911.2.840.
 113556.1.4.19351.2.840.113556.1.4.20801.2.840.113556.1.4.22370isSynchronized1TRUE0”isGlobalCatalogReady1TR
 UE0domainFunctionality160forestFunctionality160(domainControllerFunctionality160

実際の攻撃と対策

SIRTによれば、2016年10月以降、合計50回のCLDAPリフレクション攻撃を検出した。そのうちの33回はCLDAPリフレクションのみを使用する単一ベクトルの攻撃であったとのことである。2017年1月7日に観測された24Gbps規模の攻撃は、SIRTが観測した中で、CLDAPリフレクションを単一ベクトルとして使用した最大のDDoS攻撃であった。攻撃の概要は以下の通りである。

  • 業種:インターネット & 電気通信
  • ピーク帯域幅:24ギガビット/秒
  • ピークパケット/秒:2,000,000パケット/秒
  • 攻撃ベクトル:CLDAP
  • ソースポート:389
  • 宛先ポート:ランダム

きわめて少ないホスト数で、大規模な攻撃帯域幅を生成していることが特徴になる。対策であるが、他のリフレクション攻撃や増幅攻撃のベクトルと同様に、会社や組織内で内向きのフィルタリングを導入していればCLDAP攻撃は防げる。攻撃の対象となる可能性のあるホストは、インターネットスキャンおよびUDP宛先ポート389を使用して検出可能である。適切な対策を施すことが、重要となるだろう。