0
0

More than 1 year has passed since last update.

情報処理安全確保支援士に合格するためのアウトプット(4/n)

Posted at

Webアプリケーションファイアウォール(WAF)

IDS、IPSでNWを流れる不正なものを検知・防御できるようになったけれど、
アプリケーションの脆弱性を狙ったものは防御できない。
ただ、世の中にあるものはアプリケーションであり、そこも同様に防御する必要がある。
そんな時に近年利用されるものが、WAF(Webアプリケーションファイアウォールで、ワフと言われる)である。

WAFの種類

いくつか種類があるが代表的なものは3つほど

  • リバースプロキシ型
    • いわゆるプロキシ(PCからWANに行く時に代理でアクセスする)の逆(リバース)
    • なので、WANから来る通信をPCに代理で中に渡すもの
    • これにより、どこの誰かも分からないアクセスを、知った人からの通信に変更できる
  • ブリッジ型
    • IPSなどと同様インラインで接続するが、通信は代行しない
    • 橋のように単に架け橋となるだけ
  • ソフトウェア型
    • Webサーバーのプラグインとして利用されるもの
    • サーバーには通信が届いてしまうので、防げないことも多いよ

WAFが検知・防御する内容

  • XSS
  • インジェクション系の攻撃
    • OS、SQL
  • 不正アクセス
    • ディレクトリ、ファイル
  • セッションハイジャック
    • アプリ独自の仕様について検出・防御するのは困難
    • 複雑にするほどWAFの処理効率は落ち、システム全体の可用性が落ちることも有り得る

WAFのチェック内容

  • 接続元ホスト
  • HTTPリクエスト(コマンド)
  • クエリストリング(URLパラメータ)
  • HTTPヘッダ情報
  • POSTデータ
  • クッキーの内容
チェック条件やパラメタについては、サイト管理者が設定する必要があるよ

チェック後のアクションについて

  • リクエストの排除、エラーコードの返却
    • 安全ではあるが、誤って遮断した場合には不都合となることもある
  • 特定URLへのリダイレクト
    • 決まったページ(例えばセキュリティチームへの案内ページ)があるなら飛ばすもよし
  • アラートの通知
  • 特定プログラムの実行
  • ログへの記録
    • 少なくとも最低限これがないと今後の改善ができないので、ログは必須

付加機能

  • SSLアクセラレータ
    • ロードバランサ(LB)やIPS/IDSに機能が備わっていれば、そちらに任せることも可能
  • 負荷分散
  • Passiveモード
    • リバプロ型のWAFを経由した際に、通信元アドレスをそのまま引き継いで渡す機能

構成例

  • DMZに接続して公開Webサーバへの攻撃を防御する
    • IDS/IPSと同じ一般的な構成
  • クラスタ環境に接続
    • LB併設型
      • WAFはLB(+アクセラレータ)からの通信についてのみチェックを行う
      • それぞれ機能が分離するため負荷は高くなく、利用しやすい
      • 但し、機器は増えるので管理工数は増える
    • LB兼用型
      • 全てを担うことになるので、WAFの負荷が高くなってしまうことには注意
      • 機器は1つ2つで済むため、構成としてはシンプル
      • 全て統合されるのでどこかに問題があった場合、全体を停止する必要性が考えられる

総じて言うと

  • WAFを入れればいいってもんではなく、アプリ側でもセキュリティ対策は必要である
  • NW・FW・IPS(IDS)・WAF・アプリなど全体を見てどこをより守るのかなど検討が必要
    • 可用性とセキュリティは表裏一体
      • 家のセキュリティを高めるために鍵を10個も20個もつけてたら、出入りができない
      • とは言え鍵をかけないと、泥棒に入られてしまうので、最低限1-2個の鍵は必要だよね
  • どんな製品を入れればいいか
    • 環境や費用次第であるため、現状に合ったものを入れるのがよい
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0