tixture55’s diary

主にプログラミング関係の日記です。

WAFとHyper-Vの構成とかSMB通信キャプチャとか

今回は、WAFとかHyper-Vとか学習した内容のごった煮です。関連は特にないです。

 

WAF製品の検証

WAFにもいろいろ種類があり、ベンダ・製品によって検知の方法が異なります。大別すると、下記2パターン。

例えば、ジェイピー・セキュアの「SiteGuard」はブラックリストを重視している。ジェイピー・セキュアの「SiteGuard」はブラックリストを重視している。 米Citrix Systemsの「Citrix Application Firewall(以下,Citrix)」,米Impervaの「SecureSphere」はホワイトリストを重視

今回はCITRIXのWAFの機能をみながら、高度化した攻撃への対処を紹介する。

 

高度化する攻撃

  •  SQLインジェクションのための文字列がcookieに埋め込まれている場合があります。従来はpostメソッドやgetメソッドなどのパラメータ部分に攻撃用文字列を埋め込むことでwebアプリケーションに渡していましたが、cookieで渡すことでwebアプリの種類によってSQLインジェクションが成功してしまう恐れがあります。
  • IIS/ASPの仕様を利用してSQLインジェクション用の文字列を仕込むパターン。IISでは%をエスケープしてしまうので、下記のような文字列でインジェクションが成功する恐れがある。uni%on se%lect password from data whe%re '1 =' 1 
  • 文字コードが担保されていないwebアプリにXSS用の文字列がutf-7エンコードされた結果、攻撃が成功してしまうパターン

Citlix WAFの機能

  • ページ内のHTMLの解析をして、次に遷移できるURLを限定できる
  • サーバから返されたHTMLの中身を全てチェック。hidden typeのパラメータが次のリクエストに含まれているかなどをチェック
  • Cookieの一貫性をチェック。サーバから送られてきたクッキーとクライアント側のクッキーが一致するかどうかの確認(Citlix WAF限定機能らしい)一致しないときは、クライアントとサーバの間にあるWAFが不正なクッキーを削除する
  • 想定していない直打ちのファイルアクセスを遮断(適切な認証ファイルを経由しているかをチェック)

このように、URLやcookie、パラメータといった複雑な要素が絡みあうwebアプリでもCitlix WAFなら検知できます。これらをブラックリスト型で検知するにはパターンが多すぎるため、限界があり、実質不可能です。

Hyper-Vの構成

Hyper-Vのネットワークはシンプルな構成です。ネットワークでよく初心者がはまる理由は、どのようなコンポーネントで構成され、ネットワークでよく初心者がはまる理由は、どのようなコンポーネントで構成され、 どのような役割を持っているのか、UIがどのコンポーネントを設定しているのかが よくわからないため。

 Hyper-Vのネットワークは「仮想NIC」と「仮想スイッチ」として提供されています。Hyper-Vのネットワークは「仮想NIC」と「仮想スイッチ」として提供されています。 仮想NICVMに接続されたNICです。

 仮想スイッチは仮想NICを接続するためのL2スイッチです。家庭で使われる仮想スイッチは仮想NICを接続するためのL2スイッチです。家庭で使われる L2スイッチより少しインテリジェンスになっていますが、基本的には一緒

 以下は仮想スイッチの作成方法です。

  ●紐付ける物理NICを指定して、デフォルトでチェックされている紐付ける物理NICを指定して、デフォルトでチェックされている 「管理オペレーティングシステムにこのネットワークアダプターの共有を許可する」 のチェックを外して、仮想スイッチを作成

  NICのプロパティをみると、Hyper-V拡張可能仮想スイッチだけにチェックが入っています。 これは、NICの通信機能が剥奪され、VMの通信を通すだけのNICに役割が 変わったことを意味します。

 

MS17-010

リモートからSMBv1を使ったサーバに対し送信すると、リモートでコードが実行される可能性があります。リモートからSMBv1を使ったサーバに対し送信すると、リモートでコードが実行される可能性があります。 OSはwindows Vistawindows server2008  windows7など

 metasploitというツールを使うと、対策されてないマシンだと侵入されてしまうようです。

 

SMB通信のキャプチャ

SMBの通信をwiresharkでキャプチャしても、Encrypted SMB3と表示されるだけです。当然ながら暗号化されています。しかし、SMBのクライアントマシンから管理者権限でコマンドプロンプトを開いて、

netsh trace start provider=Microsoft-Windows-SMBClient 

 として、キャプチャすることができます。キャプチャしたファイルをMessage Analyzerで開くと、SMBで通信したファイル名、通信の成功の可否、ファイルの中身を見ることができます。