2014年7月12日土曜日

VMMを使ったルートキット検知の論文(メモ)

おどろくほどやる気が出ないので論文を読む機械になった.

Scholoar アラートにより以下の論文を知った.

Hwang, Tongwook, Youngsang Shin, Kyungho Son, and Haeryong Park. "Virtual Machine Introspection Based Rootkit Detection in Virtualized Environments." In International Conference on Advanced Computing and Services (ACS). 2014.

代表的な既存手法を挙げている点は参考になる.新規性があるのかは,この論文からだけでは,よく分からなかった.SIEMに興味を持った.

以下,簡単なまとめ.


  •  APTはルートキットの能力に依存しているので,ルートキットの検知が大事
  • VMMを使うことで,Out-of-the-box なルートキット検知システムを実現
  • クラウド環境でルートキット検知を実現する場合の要件
    • agentless virtual security appliance
    • hypervisor independence
    • performance
    • usability
      • SIEM との連携
  • 著者らの既存研究である vIPS を利用
  • ルートキット検知に使う情報は,LibVMIを使って取得


6ページと短いからか,細かい話は著者らの既発表論文を参考にしろという感じで書かれていた.Table 1 と Table 2 は参考になる.Table 1 は,ルートキットを分類して,それぞれのルートキットの検知手法を示している.Table 2 は,VMIライブラリを三つ(LibVMI, LibGuestFS, VMSafe)紹介している.LibVMIしか使ったことはないけど,VMSafeが機能的にはもっとも充実している.ただし,利用できるVMMはVMWareだけだ.VMMとしてXenやKVMを使いたいなら,LibVMIとLibGuestFSを使うのが良い.

図は,ルートキット検知エンジンを動作させるVMについてしか書かれておらず,検査対象のVMが書かれていないのでよくわからなかった.

肝心のルートキット検知については,VMMと使ったよくあるマルウェア検知と何が違うのかは分からなかった.in-the-box な検知手法では,対象のホスト内にエージェントを挿入して情報を集め,集めた情報をもとに,ルートキットを検知する.しかし,ルートキットはカーネルレベルで動作するものもあって,エージェントを攻撃される場合がある.そこで,T. Garfinkel らの論文でout-of-the-boxな手法としてVMIが提案されていて,それをルートキット検知に使いましょう,という論文だった.おそらく,著者の業績のまとめのような位置付けの論文なので,細かいところは著者の既発表論文を読むしかない.

2014年6月12日木曜日

ipsjunsrt.bstを使うときに名前を省略形にしたくない場合

かなり対象が限定される話ではあるが,情報処理学会論文誌のLaTeXフォーマットでBibTeXを使う場合には,author フィールドに文献の著者を与える.BibTeX用のフォーマットであるipsjunsrt.bstでは,authorは,省略形で.bblファイルに整形して出力される(例えば,author={Sato, Masaya}やauthor={Masaya Sato}と与えれば,Sato, M.となる).

これは,どうも,名前の間のスペースをもとに判別しているようで,スペースがない場合には,省略形されない.しかし,企業名や団体名などにスペースが混在する場合には,省略形で出力されると困る.

その場合は,企業名を{}(ブレース)で囲むと,省略されずに,与えた文字列がそのまま出力されるようだ.

2014年5月23日金曜日

論文を書くときの環境

メモ的なもの.TeX環境は入っている前提.Windows.ツールへのリンクは,面倒なので,しない.
  • 執筆
    • Vim (kaoriyaさんの)
      • vim-latex (プラグイン)
        • YaTeX でもいいけど,Vimなので.
      • neocomplete (プラグイン) (固有名詞とかの補完に)
      • JpFormat (プラグイン)
      • foldCC
        • 折り畳みの行数カウントを表示するところに顔文字を仕込むと和む.
        • (´・_・`) 
    • SKKFEP
      • 定義した用語は辞書にのっていないのでSKKで辞書に登録している.
  • 図の作成
    • PowerPoint
    • Metafile to EPS Converter (図の変換)
      • 簡単
      • PowerPointで作成した図を選択して Metafile to EPS Converter のバッファ上へ貼り付けて変換ボタン押すだけ
    • Excel
      • グラフとか
  • 表の作成
    • Excel2LaTeX
      • 完璧ではないので,Excel2LaTeXで作成した table をVimのバッファに貼り付けて,適宜修正する.
      • 基本的には測定,データをsed/awkあたりで整形してtsvにしたものをExcelに貼り付けて,微調整してExcel2LaTeXにかける.
      • tabular手書きとかマジキチ
    • multirow.sty
      • TeXでtabularな環境の中で複数行にまたがる場合に便利.
      • 使わなくても表の書き方次第でなんとかなるような気もする.
  • その他
    • JabRef, Mendeley (文献管理)
    • jbibtex (文献リストの作成)
    • dvipdfmx (pdfの生成)
    • pdffonts (フォント埋め込みの成否の確認)
      • Adobe Reader でも可
    • Word
      • 英語のスペルミスとか校正に.
      • とても強い.
      • LaTeX2RTFにかけてからWordで開く.
    • SumatraPDF
      • Adobe Readerだとファイルをロックするので,PDFファイルを生成するたびにAdobe Reader を再起動する必要がある.
      • 一方,SumatraPDF は,ファイルをロックせずに,ファイル読み込み時にすべてメモリ上に保持するみたい.
      • しかも,元のファイルが更新されたらリロードしにいって更新してくれる.
      • 最終確認は,Adobe Reader でします.標準かつ綺麗なので.

2014年5月14日水曜日

Linuxでソケットの状態を表示する

ls を実行しようとしてタイポして ss というコマンドを実行してしまった。ところが、これは、一見便利そうなツールだった。man ss を実行すると、
ss - another utility to investigate sockets
と書いてある。実行すると、sshのセッションが表示されて、State, Recv-Q, Send-Q, Local Address:Port, Peer Address:Port が表示された。詳細な分析もできるのかもしれないが、ソケットの状態を簡単に確認したいときには便利かもしれない。

2014年4月28日月曜日

読みたい論文リスト

だいぶ遅くなってしまったけど,2014年2月に開催されたNDSS2014の読みたい論文リスト.そのうち読む.

  • Session 1: Network Security
    • CyberProbe: Towards Internet-Scale Active Detection of Malicious Servers
    • Amplification Hell: Revisiting Network Protocols for DDoS Abuse
  • Session 2: Software and System Security
    • ROPecker: A Generic and Practical Approach For Defending Against ROP Attacks
    • Hybrid-Bridge: Efficiently Bridging the Semantic-Gap in VMI via Decoupled Execution and Training Memoization
  • Session 5: Privacy
  • Session 9: New Applications, Attacks, and Security Economics
    • Power Attack: An Increasing Threat to Data Centers
  • Session 11: Malware
    • Persistent Data-only Malware: Function Hooks without Code
ASPLOS2014 もまだチェックできていない.こちらは2014年3月開催.ASPLOS2014の読みたい論文リスト.
  • Session 2A: Security
    • Using ARM TrustZone to Build a Trusted Language Runtime for Mobile Applications
    • Virtual Ghost: Protecting Applications from Hostile Operating Systems
    • Sapper: A Language for Hardware-Level Security Policy Enforcement
    • Finding Trojan Message Vulnerabilities in Distributed Systems
  • Session 3A: Software reliability and testing I
    • RelaxReplay: Record and Replay for Relaxed-Consistency Multiprocessors
    • Prototyping Symbolic Execution Engines for Interpreted Languages
  • Session 4A: Virtualization
    • I/O Paravirtualization at the Device File Boundary
    • KVM/ARM: The Design and Implementation of the Linux ARM Hypervisor
    • VSwapper: A Memory Swapper for Virtualized Environments
    • Cider: Native Execution of iOS Apps on Android
Virtual Ghost はざっと読んだ.Linuxカーネルのアセンブリ部分をLLVM IRに書き換えてIRを解釈するプログラム側でアクセス先メモリをポリシベースでアクセス制御している.アクセス可能な領域を制御することで,カーネルから見えないメモリ領域(これがVirtual Ghostという名前の由来)を作り出す.すごいけど,カーネルの改修コストが高すぎる.著者の自己引用が3編もあり,2009年から似たような研究をしているみたい.

まだ読んでないけど,Virtualizationセッションは結構面白そう.

2014年4月16日水曜日

環境整備: i3-wm, xmodmap, xrandr

備忘録として.

環境

  • Debian Wheezy (Debian 7.4), Linux 3.2.0-amd64

i3-wm

  • Window Manager としてタイル型 Window Manager の i3-wm を利用
    • % sudo apt-get install i3-wm
  • ランチャ
    • % sudo apt-get install suckless-tools
    • mod4 + d でコマンド名を入力するタイプのランチャが起動
  • i3-wmの設定ファイルは,~/.i3/config

xmodmap

  • capslock -> ctrl したかった
    • 以下を~/.xmodmaprcに追記
      • remove Lock = Caps_Lock
      • keycode 66 = Control_R
      • add Control = COntrol_R
    • 以下を~/.i3/configに追記
      • exec xmodmap ~/.xmodmaprc

xrandr

  • ディスプレイを時計回りに90℃回転したかった
    • 以下を~/.i3/configに追記
      • exec xrandr --output HDMI1 --rotate left
    • --output で指定するディスプレイはxrandr --currentすれば見える
    • --rotate left で反時計回りに回転(ディスプレイを時計回りに回転させたので)

2014年3月2日日曜日

stirlingのビットイメージの色付けについて

そういう方面の人にとっては有名なバイナリエディタ stirling には,ファイルをバイナリ列としてとらえて,一バイトずつ色分けして表示するビットイメージ機能がある.この色の定義がどうなってるのか調べたので,メモ.

strling に同梱されているヘルプファイルを読むと,以下のように書いてあった.

「ビットイメージに指定色を反映させる」チェックボックス

この項目をチェックするとビットイメージにデータ文字色、データ背景色、強調表示コード及び色が反映されます。チェックしない場合には以下のデフォルト色でビットイメージが表示されます。

00h
01h~19h 水色
20h~7Fh
80h~FFh
メインウィンドウのメニューから「設定」→「拡張子別設定」→「(ファイル種別)」→設定→「色・フォント」からビットイメージの指定色を変更できるようだ.