[アップデート]AWS WAFのBot Controlに機械学習を用いて分散的に配置された高度なBOTによる攻撃を検出するためのルールが追加されました

2023.09.08

初めに

先日のアップデートにてAWS WAFに機械学習を用いてトラフィックを分析し分散かつ個々からは少数アクセスというアクセスパターンにおけるBOTの検出ができるルールが追加されました。

流石に今回は機械学習に基づいていることやルールの目的を考慮すると再現させるのは非常に困難な可能性が高く、下手すると本当に攻撃に近い形になりかねないので追加機能のドキュメントから読み取れる範囲でのご紹介で実践はなしという形とさせていただきます。

追加されたルール

マネージドルール自体は新規ではなく既存のBot ControlのTargetedルールに追加される形となります。

これまでTargeted向けのルールとしてTGT_プレフィックスがついたルールが提供されていましたが、今回はそれに加えTGT_ML_というルールが追加されTargetedに関するルールのうち更に機械学習に基づく対応ルール区分となります。

今回された追加されたルールは根本的には1つでアクティビティ中(Medium)と高(High)の2段階のラベルでそれぞれアクションを変更できるようになっているため上記のように分かれています。

AWS WAF Bot Control rule group
Machine learning capabilities are enabled by default, but you can disable them in your rule group configuration. When machine learning is disabled, AWS WAF does not evaluate these rules.

このルールについてはBot ControlをTargetedで有効にすると合わせて自動的に有効化されるため、もし不要な場合はルールグループの設定として無効化する必要があります。

There is no additional cost for this feature, however standard Targeted Bot Control and WAF charges still apply. See pricing page for more details.

料金としても今回追加のルール自体による追加料金はなくBot ConrolのTargeted分の料金だけで良さそうなので、あえてこれを無効化する理由もないかと思います(強いていうならマネジメントコンソールのSampled Requestsの部分で見えて邪魔くらい?)。

自分の環境でTargetedを利用しているWeb ACLを保持していないため確認できないのですが、新しい区分があるわけではなく既存のTargetedのルールの1つとして追加されてるので既にBot ControlのTargeted利用されてる方は特に何もせずとも有効となっている状態となるのでしょうか?
(もしご利用されている方がいたら確認してみてください)。

ルールのデフォルトアクションとしてはCountとなるため仮に有効となってもアクセスを止めるような影響を及ぼすことはないかと思われます。

何が嬉しいか

単独のIPからの大量アクセスや、複数のIPからの大量アクセスといったDoSやDDoSに対してはレート制限やIPの評価などを用いて防御することができました。

一方で非常に多くの拠点に分散しており各拠点からのアクセス量自体は少なく拠点の物量で仕掛けるような攻撃に対しての防御は非常に難しいものとなりました。例えばECサイト売り出しの時に大量のアクセスがあり個々のデバイスからのアクセスが少量でかつ1ページしっかり1~5分かけて遷移している場合その場で人間とBOTの区別がつくのは非常に難しいと思います。

とはいえBOTであれば分析すればもしかしたらBOTパターンとして判別できるかもしれませんが、それには専門知識が必要ですし管理等を考えると自力で対策をするのも難しいでしょう。

今回はそういった攻撃に対してトラフィックの統計やパターンを分析しそれに基づいて対策ができるようになります。

注意点

このルールは設定してから最大24時間かけてアクセスを学習し有効化されるルールとなるため即時有効化となるルールではありません。

AWS WAF Bot Control rule group
These rules might match on a very small number of requests before determining that a coordinated attack is not underway. So if you see just a match or two, the results might be false positives. If you see a lot of matches coming out of these rules however, then you're probably experiencing a coordinated attack.

また各デバイスからのアクセスが少ない場合に対する攻撃に対する対策となっているためか(パターンの判別素材が少ない場合偶然一致することが増える)、多量に発生している場合は組織的に攻撃を受けている可能性があるが少量の検出の場合誤検出である可能性があるということが明記されています。

誤検出であることをあえて明記しているルールというのは記憶上他になかったかと思いますので、それだけ正常なアクセスを巻き込む可能性があるルールであることは認知しましょう。

Blockを行うのではなくChallengeやCAPTCHA等を用いて追加の認証を求めるぐらいが無難でしょう。

高度な分散的で低強度の攻撃について

近年IoT機器を中心とてネットワークに繋ぐ機器が家庭に普及し、これまで以上に多くの人が管理を意識しないようなデバイスが今まで以上に増えてきました。

PCやスマホ等は比較的管理されておりファームウェア等の更新が行っている人が多いですが、それに比べるとIoTデバイスに関してはそういったアップデートということを意識されることも少なく使えるからそのまま使って以降特別に管理していないという方も多いんじゃないかと思います。ものによってはアップデートの機構すらないものもあるのではないでしょうか。

(IoT機器として分類するか微妙ですか)特に(Wifi)ルータを買ってセットアップしてからトラブルがないと管理画面すら入らないというケースがわかりやすいのではないでしょうか。

IPAの資料によると2018年ごろでは実際IoT機器に対する攻撃のうち半分くらいはルータであったようです。

こういったデバイスはファームウェアが古いことで非常に脆弱なものとなっている可能性が高いため攻撃のターゲットとされやすく、かつ気づきにくいというのもあり乗っ取りのターゲットとして狙われることも多くなっています。

これを用いて直接自身の拠点から攻撃するのではなくC&Cサーバと呼ばれる指示元から指示を出してこういったデバイスを通して攻撃を行うようなケースがあります。

有名なものとして2016年の主にMiraiと呼ばれるマルウェアを元に乗っ取られたIoT機器によるKrebs on Securityに対するDDoSがありますがこの時でさえ数十万件規模のデバイスによる攻撃であったようです。

ここ何年かでは更に家電操作デバイスであったりスマートスピーカーであったりインターネットに繋ぐ機器が普及しているためこの危険はその時以上に高まっているものと考えられます。

乗っ取ったIoT機器を用いた攻撃

イメージがつかない方は1度総務省の出している以下のPDF資料の21ページの図が非常にわかりやすいので一度見ていただくのがいいかと思います。

乗っ取り自体も乗っ取られたデバイスが行うパターンっもあり非常に厄介でねずみ算式に増えていく可能性すらあります。

こういったデバイスが一斉に多量に攻撃してくるのではなく、そのうちの一部がランダムにかつ個々のデバイスとしてはDoSとならないような少量のアクセスしかない攻撃を仕掛けてきたらどうでしょうか。

前述したMiraiの例のようにが何万〜何十万のような規模で行われることもありますし、高度なものであればパターンも多量に用意されておりランダムな組み合わせにより実際に確認しても一見では特定のパターンがあることすら見抜けない可能性も出てきます。

これらのデバイスは特定の攻撃者が持つ拠点ではなく一般家庭に設置されているデバイスなのでこの国から攻撃が多いから防御しようというのも難しく、ログからIPを調べても国内の一般家庭のものとなるアクセスかもしれません。

例えば国内通販サイトで以下のようなアクセスがあった場合アクセスがBOTによるものか機械的に判別可能でしょうか。

  • 多量のアクセスによりサイト負荷が大きく上がりハングしてる
  • デバイスごとのアクセス量はごく少量で一般ユーザと大差はない
  • アクセスパターンは多岐にわたる
    • 分析すると一定のパターンはあるかもしれないが一見はデバイスごとに異なるページ遷移を行っている

俗に言うバズったということもあり得るためそういった確認は必要ですし、仮にDDoSと判別できた場合でもどうブロックすれば良いのでしょうか?XSSのように特定の不正なシグネチャがあるわけでもなく、特定のIPから大量のアクセスがなく、接続元も乗っ取りデバイスですので一般ユーザと同じかもしれません。

国内向けの通販サイトであれば海外のIPを封鎖することで一定軽減することができるかもしれませんが、国内の乗っ取られたデバイスが主に使われている場合十分な軽減とならないため全遮断をするしかないようなケースもあるかもしれませんし、スケーリングする機構があっても従量課金であればサービス利用料を消費させられるEDoSとなるかもしれません。

また今回のルールの対象となるか不明ですが負荷をかけない攻撃はどうでしょうか?明確にXSSのような脆弱性を狙うわけではなく不正に取得したカードが利用可能かを試すために購入フローを踏み人間らしく見せるために1ページ1~5分程度とランダムに時間をおいて遷移を繰り返し、かつそれをさまざまなIPで入れ替え行われた場合人間かBOTかをどう検出すれば良いのでしょうか。

分析することで一定のパターンは見つけ出せるかもしれませんが、一定の専門的な知識は必要ですし分析にも時間がかかってしまいます。

今回のルールの常日頃の管理として専門的な知識や管理を要することなくマネージドなサービス上で自動的に学習を行いその負荷を軽減するものとなります。

ベースラインが学習されるとはいえ外れ値や不審なパターンをあくまで機械的に行う関係で専門家による分析が不要というものではなく、予防線としてのものとなるかと思いますので過信しすぎないようにはしましょう。機械学習は全てを解決する銀の弾丸ではありません。

終わりに

今回は新規に追加された分散的かつ各デバイスからのアクセスが低強度といったアクセスに対する新規の追加ルールをご紹介させていただきました。

ものがものというのもあり実際に試しどういったものがブロックされるか試すことが難しいため紹介だけとなったことにくわえ、そもそも機械学習という特性上具体的なアクセスパターンついてはなかなか述べるのが難しいのが心残りではあります。

すでに標的型攻撃対策用のBot ControlのTargetedの設定をしている場合は追加料金なしで利用できますので、導入されており興味のある方はしばらくデータが溜まった後にログの分析をかけてどういうアクセスパターンが検出されるか等をぜひ確かめてみてください。