プロフィール

大山恵弘

  • Author:大山恵弘
  • 公式なサイトはこちら

最近の記事

最近のコメント

最近のトラックバック

月別アーカイブ

ブロとも申請フォーム

ブログ内検索

RSSフィード

リンク

FC2カウンター

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

【異常検知】Profiling Users in GUI Based Systems for Masquerade Detection 【セキュリティ】

In 2006 IEEE Workshop on Information Assurance.
http://www.cse.buffalo.edu/~ashish/research.html

Windows XPのGUI動作を学習して異常検知。

シェルコマンドを使った異常検知はたくさん研究されているが、GUIコマンドについても異常検知が必要という問題意識。

マウスの動き、クリック、キータイプ速度などを利用。

サポートベクタマシンを利用して特徴ベクタを学習、分類。

GUIに関する公開されたデータセットはないので、研究室のユーザ3人を対象にログを収集。

いかにも既存研究ありそうな気がする研究だが、確かにたくさんある。差分は、たくさんのGUI情報を扱うことと、認証でなくなりすまし検出に使っているところらしい。
スポンサーサイト

【ルートキット】 A Methodology to Detect and Characterize Kernel Level Rootkit Exploits Involving Redirection of the System Call Table 【OS】

In IEEE IWIA '04.
http://users.ece.gatech.edu/~owen/Research/Conference%20Publications/conference_publications.htm

いわゆるプログラム置き換えルートキットを分類する枠組みを提案。既存のルートキットか、既存のものの修正か、新しいものかに分類。観測される挙動の集合が、元の正常プログラムとルートキットでどういう関係にあるかを元に分類。

いちおうこの論文の貢献はその分類の枠組みの提案ってことになってると思う。でも、多くの人にとっては、それ以外の部分のほうが、おもしろいように思う。論文のかなりの部分がルートキットチュートリアルみたいな文章。実際のルートキットであるSuckITの動作を細かに説明する付録もついてる。

【異常検知】 Anomaly Detection of Web-based Attacks 【Webアプリケーション】

In CCS '03.
http://doi.acm.org/10.1145/948109.948144

Webアプリケーションのための学習ベース異常検知システムの提案。

Webサーバのアクセスログが対象。各要求に異常スコアを与える。
複数の異常検知手法による異常スコアを重みづけ加算して、全体の異常スコアを決定する。

述べられている手法は6個。

その1。属性の長さ。属性の文字列の長さは、ふつう、固定長だったり、短かかったり、そう大きく変化しない。正常な要求の属性文字列はだいたい標準的な分散にしたがう。変に長い文字列は攻撃の可能性が高い。

その2。属性の文字列の分散。属性に読めない文字が含まれてるのはあやしいとか、アルファベットの各文字の出現確率を利用するとか。

その3。正常な属性の構造を推論。パラメタの構造を確率的正規文法で表現。そして非決定性有限オートマトンを作る。

その4。値集合から選ぶタイプの属性については、ちゃんとその集合の中の値になっているかどうかをチェック。

その5。属性があるかないかをチェック。攻撃者による要求は、脆弱性に関係ない属性を省略して埋めないことがあるので。

その6。属性の順番をチェック。その5と関係。

一つ一つはスタンダードな方法だし小ネタという気がするが、たくさん集めて組み合わせて、実験もしてるあたりがすごいかも。合わせ技一本か。文章も読みやすいと思う。

【セキュリティ】 Secure and Practical Defense Against Code-injection 【乱数化】

In VEE '06.
http://dependability.cs.virginia.edu/info/Publications/

命令セット乱数化によるセキュリティ実現手法の近況。

アプリケーションを暗号化。アプリケーションをエミュレータ上で動かす。エミュレータがアプリケーションを復号して実行。コード注入攻撃によって注入されたコードは復号に失敗する。よってそういうコードを実行前に発見できる。

てのがCCS03あたりまでの状況。私の理解では。

今回の進展をまとめると以下の通り。
・AESを使った
・AESを使う実装の実装方式と性能を示した
・攻撃コードを実行前に検出できるようにした。各命令に「命令タグ」をつける。複合された命令列にそのタグがついているかどうかをチェック。これまでは、復号された無効なコードが実行された結果高確率でエラーに至ることを利用していた。

AESを使ったことを主要な貢献と位置づけている(!)が、それがどの程度の技術的困難を伴うものなのかは、私はよくわかってない。

注目すべきは性能。Apacheの性能が実機に比べて2-15%しか落ちてない。その秘密は動的コード変換技術にあるようだ。人々がエミュレータと言われて想像する性能をはるかにこえている。これはすごい。

セキュリティに関して。この手法で実在の攻撃が防止できることを実験で示している。でも、他の手法でも防止できるかどうかの実験結果はない。

ある程度の割合のコード注入攻撃はスタックなどのメモリ配置の乱数化でも防げるような気がしますが、どうなんでしょうね。あとは、ここにあるみたいに、システムコール情報だけ暗号化しても、結構うまくいくような気がします。

【システムコールサンドボックス】 Authenticated System Calls 【バイナリ変換】

In DSN '05.
http://www.cs.arizona.edu/solar/

「認証つきシステムコール」の提案。システムコールに引数を追加する。追加引数には、その呼び出しのポリシーと、そのポリシーのインテグリティを保証するMACを与える。

カーネルは追加引数の情報を利用して、システムコールの安全性を検査する。

信頼できるインストーラが、アプリケーションのバイナリを静的解析してポリシーを生成する。そして、バイナリを、認証つきシステムコールを呼び出すようなものに変換する。

ポリシーとしては記述できるものは、各システムコールを呼び出してよいプログラムポイントとか、各システムコールで許される/許されない引数とか。

実装はLinux上。PLTOをいうバイナリ変換ツールを利用。

ポリシーをシステムコールの引数にのせるってアイデアが新しいのと、ポリシーのインテグリティを守るための暗号情報もシステムコールの引数にのせるってアイデアが新しいと思う。それ以外は普通のシステムコールフックサンドボックスといったかんじ。

第一著者はアリゾナの人。といってもデブレイ氏は著者に入ってない。からんでるのはトレバージム。サイクロンの人がこんな研究もしてますみたいな。

ユーザプログラムとカーネルが暗号的な情報を共有し、攻撃コードが変なやり方でシステムコールを呼び出すと復号が失敗して攻撃が検出される、という方法は、このへんにもあります。

【セキュリティ】 Retrofitting Legacy Code for Authorization Policy Enforcement 【プログラム解析】

In 2006 IEEE Symposium on Security and Privacy.
http://www.cs.wisc.edu/~vg/papers/ieee-sp2006/

セキュリティを考えてないレガシーなコードに、アクセス制御ポリシーを強制するコードをどうはさむか。一般に、コードのどこに何をはさむかは、単純な問題ではない。

提案は2つ。1つはポリシー強制コードを呼び出すべき場所を自動的に求めるツールAID。もう一つはその結果にしたがってコードをinstrumentするツールARM。

AIDは、セキュリティセンシティブな処理をする特徴的なコードパターンを「指紋」として認識する。指紋を得るには、実行トレースを利用する。基本的なアイデアは、目に見える副作用を伴う処理をセキュリティセンシティブな処理とみなすってこと。Xサーバで言えば、CreateWindowを呼ぶとウィンドウが出るので、CreateWindow関数が、「ウィンドウを作る」というセキュリティセンシティブな処理に関係付けられる。で、コードを静的に解析し、指紋が出現する場所を見つける。出現する各場所が、ポリシー強制コードをはさむ場所となる。

ARMは上記の解析結果にもとづいて、リファレンスモニターを呼び出すコードを、元のプログラムに挿入する。

Cのソースコードを解析する。バイナリは扱えない。

IDSなどでいい仕事をしているジャ氏と、ポリシー分野で有名なジャエガー氏がコラボすると、こういう論文が出てきますっていう。そういう味わい深さもある論文。二人の個性がそれぞれ光っている。コラボもいいのうって気分になる。

【セキュリティ】 Security Design in Online Games 【オンラインゲーム】

In ACSAC 2003.
http://www.acsac.org/2003/abstracts/114.html

オンラインゲームを作るにあたって、どんなセキュリティ脅威を考えなければいけないか、また、それらの脅威への対策は何かを論じた論文。一般論を述べるのではなく、オンラインのトランプのブリッジを題材に、ケーススタディに徹しているのが特徴。

セキュリティといってもチート対策の話が主。オンラインゲームのサーバが乗っ取られるとかDoSされるなどの話を期待して読むと肩透かしを食う。

ていうかすごいなこの論文。図とグラフが一個も出てこない。ビブも特徴的。サイエンスにおける普遍的真理を追究した論文てよりは、問題提起しました的な印象。

【異常検知】 Anomalous System Call Detection 【統計的手法】

In ACM Transactions on Information Systems Security, 9(1), 2006.
http://www.cs.ucsb.edu/~vigna/publications/

システムコール列に統計的な手法を適用して異常検知する新しい方法の提案。Forrestの論文から12年。2006年もまだこの手の研究は続いてますよ!

ポイントは、複数の検知手法を組み合わせて、システムコールの引数を検査するってこと。複数の手法を使うことにより、精度が上がる。複数の手法から得られた各異常スコアを全体異常スコアとしてまとめ、それにもとづいてイベントが攻撃かどうかを判断する。

複数の異常スコアを単に重み付けして加算するだけではうまくいかないので、ベイジアンネットワークを利用する(!)。

定石通り地道にやるべきことをやってジャーナルに通したって感じの論文。それにしても、この論文タイトルは何というか。ううむ。

【セキュリティ】 Taint-Enhanced Policy Enforcement: A Practical Approach to Defeat a Wide Range of Attacks 【プログラミング言語】

In USENIX Security 2005.
http://seclab.cs.sunysb.edu/seclab1/pubs/papers.htm

Sekarグループ最新作。

セキュリティポリシーの記述にtaint情報も付加できるようにしましたって話。たとえばフォーマットストリング攻撃を検出するポリシーでは、vfprintfの引数のフォーマット部分のマッチパターンに、「この文字列はtaintされている」みたいな情報を付加する。taintされてればマッチ。されてなければマッチしない。ていうか論文のFigure 4がすべてを物語るって感じ。

CILを使ってCプログラムを変換して、taintの流れを追跡。

Sekarさんは私が見たところ10年間芸風が変わっていない。これだけ同じ芸風を続けてもネタ切れにならず、一流学会に通せるネタを今も着々と編み出しているところがすごい。

【VM】 Collapsar: A VM-Based Architecture for Network Attack Detention Center 【ハニーポット】

In USENIX Security 2004.
http://www.usenix.org/events/sec04/tech/jiang.html

最近VMおよびセキュリティ方面でよく名前を見るシューシアンさんによる、ちょっと前の論文。

VMによる仮想環境をハニーポットに利用する。VMベースハニーポットをたくさん作り、集中管理するためのシステムの提案。全部の仮想環境がLAN内にあったとしても、攻撃者からは、それらは分散環境に散らばっているように見える。複数のハニーポットから得られる情報を関連づけ・データマイニングすることもできる。

このアイデアは多くの人が思いつくような気がするが、複数のVMM/OS向けに実装を作り、性能評価・実際の攻撃コードを用いた解析までこのタイミングで終えられる人は、なかなかいないのではないか。

| ホーム |


 BLOG TOP  » NEXT PAGE


上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。