プロフィール

大山恵弘

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

最近の記事

最近のコメント

最近のトラックバック

月別アーカイブ

ブロとも申請フォーム

ブログ内検索

RSSフィード

リンク

FC2カウンター

スポンサーサイト

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

【セキュリティ】 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をいうバイナリ変換ツールを利用。

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

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

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

【仮想化】 Unix as an Application Program 【マイクロカーネル】

In USENIX Summer Conference, 1990.
http://www.cs.cmu.edu/afs/cs/project/mach/public/www/doc/abstracts/mach3_intro.html

Machカーネルの上でBSDを動かす(マイクロカーネルの上で伝統的なOSを動かす)話。

Xenの論文を読んでいるような感覚。一つ一つの用語には古さが感じられるものの、現代に通じる問題をたくさん扱っていて、非常に楽しめる。

自分の研究の質を向上させるという面からは、この手の古典を読むことがどの程度の意味を持つかは微妙なところではある。現代の問題の解決に使えそうな手法が発見できたり、新しい研究ネタが思いつくかっていうと、ちょっと微妙。実験も、現代の感覚からすると、しょぼしょぼな印象。教養や楽しみのために読むなら良い論文かもしれない。

【セキュリティ】 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されるなどの話を期待して読むと肩透かしを食う。

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

| ホーム |


 BLOG TOP 


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