洸樹(119)18マネージドルールを使うことでユーザー側でルールを作成する必要がなくなり、安く早くWAFを利用できるようになりました。WAFでは要件を満たせないため、パートナー製品のWAFを使うこともよくあります。WAFマネージドルール導入時にどのようなことに気をつけたり、どのような運用が必要になるかをご紹介します。導入マネージドルールを購入します。ルールの選定基準ですが、一覧から用途に合うものを選ぶと良いかと思います。(Apache、Nginx)」といった形です。ACLのルールに、マネージドルールを追加します。デフォルトのアクションを許可、マネージドルールをカウントにします。マネージドルールを初めからブロックで導入するとアプリケーションに影響が出る可能性があります。開発環境と本番環境で同じマネージドルールの導入しましょう。開発環境で見つかった誤検知を本番環境に適用できるからです。Firehoseを利用してS3に出力するように設定します。ログ記録を有効にするにはルール最適化の手法WAFのルールの最適化というと、アプリケーション個別のルールを作り込むイメージを持たれる方が多いと思います。マネージドルールでは良くも悪くも作りこみはできません。マネージドルールに具体的にどのようなルールがあるのかユーザー側では確認できません。マネージドルールでは誤検知が発生したルールを除外できます。カウントモードで導入し、しばらく様子をみてからルールIDを指定する形で除外する対応になります。除外するとマネージドルールをブロックにしていても、そのルールIDについてはカウント(ブロックしない)される動きになります。WAFマネージドルールで誤検知対応できる例外ルールの設定が可能になりましたCloudWatchメトリクスによる概要の確認マネージドルールに一致した通信数をざっくりと確認するには、CloudWatchメトリクスが適しています。1日に何回もカウントされているのであれば、ルールの除外が必要な可能性があります。以下はサンプルですが、1分間で最大87カウント発生しています。仮に開発環境でこのような状況であれば、ルールの除外が必要かと思います。開発環境のカウントログを抽出する開発環境からの接続であれば、正常なユーザーのアクセスと見なせるケースがほとんどかと思います。Athenaでカウントする例を紹介します。データベースの作成Athenaのコンソールから、データベースを作成します。's3://bucketname/2019/07/といった形で作成します。's3://bucketname/2019/07/';カウントログの抽出カウントログを抽出します。DESC;ログは以下のように見えます。ダウンロードを押すとCSVでダウンロードできます。開発環境のカウントログを分析するCSVファイルを分析します。除外候補となるIdはruleGroupList中のterminatingRuleに含まれるruleIdです。マネージドルール内のルールIDというとわかりやすいでしょうか。CSVファイルをエクセルで開いた場合は、以下のように確認できます。「01ee3d34-5247-4b83-b586-017a2edb4009」がルールIDです。HTTPリクエスト(httprequest)は以下のように確認できます。curlでXSSルールに一致することを狙った通信を発生させたところ、マネージドルールに一致しました。ログからIPアドレス、国、ユーザーエージェント、args、メソッドなどを確認できます。requestid=null}ルールを例外に登録するルールIDを例外に登録します。WebACLを選択します。確認したIDを追加します。ACLどちらにも例外登録します。本番環境のカウントログを抽出するカウントした通信を抽出します。開発環境のカウントログを抽出すると同様です。本番環境のカウントログを分析するダウンロードしたCSVファイルから、ルールIDでユニークな物を抽出します。エクセルで集計する場合は、ruleGroupList中のterminatingRuleをカンマ区切りでわけ、ユニークをとるとわかりやすいです。ルールIDごとに国別に通信を見ていきます。日本向けのサービスの場合、JPの通信がある場合は例外登録の候補になります。海外からのIPの場合、怪しい通信である可能性が高いです。海外からもアクセスが多いサイトの場合、この方法は使えません。この作業を許容できない場合は、お金をかけてパートナー製品のWAFを使いセキュリティオペレーションセンターと契約すると良いでしょう。実際にマネージドルールで防げた攻撃マネージドルールを導入することで、防げた攻撃の例を一部ですがご紹介します。著名な攻撃や攻撃コードが出回っている脆弱性について、守れることを確認できました。2における脆弱性をついたと思われる攻撃Content-Typeに#cmds=(#iswin?{'cmd.exe'(略))のようなアプリケーションで使用していないコマンドが書かれていました。CVE-2017-5638に関する攻撃と思われます。特定のファイルをPUTする攻撃FxCodeShell.jspをPUTしようとした通信がありました。put」で調べると、Tomcatの脆弱性をついた攻撃として著名なようです。XSSと思われる攻撃XSSが成立するか確認するようなリクエスト<script>alert(1)</script>がありました。WAFマネージドルールの導入時にどのようなことに気をつけたり、どのような運用が必要になるかをご紹介しました。マネージドルールはカウントモードで導入します。最初からブロックで導入するとアプリケーションに影響が出る可能性があります。導入後はCloudWatchメトリクスで概要を確認しつつ、開発環境で得られた誤検知を除外していきます。Athenaでご紹介したような攻撃が発生しているか確認できます。チューニングはルールの除外になる点やログからはボディを確認できない点はご留意ください。マネージドルールはお金をかけずにライトに使う用途に適しています。リモート】クラスメソッドの会社説明会を開催しますクラスメソッドでは、AWS・AI・ビッグデータ・モバイルなどの技術職や営業のメンバーとして一緒にお仕事をする仲間を大募集しています。#cmdevio新型コロナウイルスの感染拡大を受け、本イベントを延期させていただくことになりました(開催時期未定)。お申し込みいただいた皆様には大変申し訳ございませんが、何卒ご理解いただけますようよろしくお願いいたします。AWSについてライトに色んな情報交換をしましょう。カフェ店長のオカノです。今日はオフィスに用があるので、通勤ラッシュを避けて出社しました。この子は新メンバーのさめくんです。在宅勤務が推奨されているのでオフィスが閑散としており、すこしさみしそうです。使いたいときの注意点を書きました。本が出ていたので読んでみたところよかったので紹介させていただきます。