[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[stalk:01224] AppShield (Re: クロスサイトスクリプティングの検出)



はじめまして。
国分 @ *元*日立情報関係者 です。
# ちょっと古い話題でしたが反応します。

> CodeRedの時にも話題になりましたけど、攻撃のパターンが多岐に及ぶ場合
> は既存のシグネチャベースのIDSだと、無理じゃないけど、かなり苦労する
> と思いますよ。
> 
> で思い出したんですが、昨年のセキスタで日立情報さんが紹介してたApp
> Shieldはこういう攻撃に有効だと思うんですが。
> 
> http://www.shield.ne.jp/appshield/index.html
>
>このMLに関係者さんいないのかな?詳しい話希望ヽ(´ー`)ノ

現在の会社で取り扱っているわけではないので、何の営業的メリットもありませんが、
モノとしては良い物だと思うので紹介します。


一番知っておいて欲しいのは、
「AppShield は IDS のような攻撃パターンを全く持っていません」
非常に単純なロジックで不正アクセスかそうでないかを判断しているため、
ホントに「未知の攻撃」に対応します。

まずネットワーク構成ですが、

browser -- internet -- F/W - AppShield - WWW

というように配置して、リバースプロキシとして動作します。
外から見ると、AppShield が Web サーバに見えるはずです。

この構成で、AppShield のロジックですが、
(1) Webサーバから送られるHTTPレスポンスに含まれる情報を AppShield が解析し、
    その中に含まれるリンク、<INPUT...>、Set-Cookie などを
    内部データベースに記録します
(2) ブラウザには、ASINFO という名前の cookie を付けて、
    ページをそのまま渡します。
(3) ユーザがブラウザのリンクをクリックしたり、POST 用のボタンを押して、
    GET あるいは POST メソッドのリクエストを送ると、AppShield が受け取ります。
(4) AppShield は、受け取ったリクエストを解析し、
    それを内部データベースに保存してある値と照合します。
(5) 内部データベースとマッチすれば、リクエストから
    ASINFO な cookie を取り除いて、WWW に通常の HTTPリクエストを送り、
    (1) からの動作を繰り返します。
(6) (5)以外の場合には、設定してあるエラーページへのリダイレクト(3xx)を
    ブラウザに返し、ログに記録します。

上記のような動作をしていますので、リンク通りしかたどれないようになります。
また、リクエスト中に含まれて良い文字やリクエスト長を設定してあるので、
例えば「<」や「"」が含まれていたり、
異常に長い文字列、「NNNNNNNNNNNNNNNNNNNNNNNNN...」があると
無条件に(6)のエラーページへのリダイレクトを返します。

HTML ページを解析して許可するリクエストのルールを生成するので、
ページを更新したからといって、ルールを変更する必要はほとんどありません。

ちなみに、
http://www.shield.ne.jp/
http://www.sanctuminc.com/
には AppShield が導入されていますので、
不正アクセスにならない範囲で動作を見てみても良いかも知れません。

ちなみに、日立情報のエラーページはちょっと過激ですが、
単にカスタマイズをサボっている(?)だけで、
日本人的には「操作間違いしてませんか?」のような緩いページにすることも、
または強制的にトップページに飛ばしてしまうことも可能です。


色々とご質問(or つっこみ)お待ちしてます。
# もう仕事ではないので営業トークはせずに、本音を吐きます ^^

--
// Yutaka Kokubu <bun@xxxxxxxxxx>
--
- このメイリングリストに関する質問・問い合せ等は
- <security-talk@xxxxxxxxxx>までお知らせください
--
------------------------------------------------------------------------
          アイツはココで探したらしい・・・
  http://car.www.infoseek.co.jp/CarTop?pg=cartop.html&sv=KA&svx=971122