Transcall v1.0

概要
----
TranscallはオフロードしたIDSに修正を加えることなく動作させられる実行環境
であるVM Shadowを提供するシステムです。VM Shadow内で動作させることによって
容易にオフロードを可能にします。

動作環境
--------
・Xen 3.4.0
・domain0 linux-kernel 2.6.18.8
・domainU linux-kernel 2.6.27.35

インストール
------------
1. 下記に示すスクリプトに実行権限を与えて下さい。
   ルート権限でしか使えないコマンドを使用してますので、使う時にはルートで
   使用して下さい。
   ・mount_vdi
   ・umount_vdi
   ・get_type/get_type.sh
   ・vm_shadow.sh

2. get_type/get_type.shを使って型情報の取得を行って下さい。
   domainUのvmlinuxを指定する必要があります。
   (このスクリプトを使えば型情報を再帰的に取得可能なので、対応していない
    カーネルバージョンであっても必要な情報を取得すればオフロード可能になる
    かもしれません。)

   #cd get_type
   #./get_type.sh /usr/src/linux/vmlinux "struct task_struct"

   get_typeディレクトリ以下に"linux_types.h"というファイルが作成されますので
   エディタ等で開き、末尾に記載されているアドレスをtranscallディレクトリ以下
   のlinux_types.hの値と置き換えて下さい。

   置き換える値
   ・INIT_TASK_ADDR
   ・SOCKET_FILE_OPS
   ・UNIX_SOCKET_TABLE
   ・UDP_HASH
   ・TCP_HASHINFO
   ・JIFFIES

3. コンパイルして下さい。
   プログラムにFUSEを使用しているため、別途FUSEのパッケージが必要になります。

   #make

4. domainUを起動した状態でvm_shadow.shスクリプトを使って実行環境を整えます。
   このスクリプトには引数としてdomainUの仮想ディスクのパスとdomainUのIDが必要
   になります。

   #./vm_shadow.sh /var/lib/xen/images/disk.img 1

   仮想ディスク内でパーティションが行われている場合、どの領域をマウントするのか
   選択するようになっています。

           デバイス Boot      Start         End      Blocks   Id  System
	1: /dev/loop0p1   *          63      401624      200781   83  Linux
	2: /dev/loop0p2          401625    41929649    20764012+  8e  Linux LVM
	Input mount number
 
   Input mount numberという表示が出ますので、番号を入力して選択します。
   (domainUでLVMを使っている場合には別途lvm2パッケージが必要となります。)

5. 正常にTranscallシステムが動作するとディレクトリ移動しているはずです。
   domainUにリモートログインしているのと同様に作業を行うことが可能です。

マッピングファイル
------------------
安全のために重要なファイルはdomai0上のファイルを使用することが可能です。
そのようなファイルがある場合にはマッピングファイルに記述することによって可能に
なります。例としてTripwireのマッピングファイルを紹介します。

ファイル名：mapping.cfg
記述例
/etc/tripwire/tw.pol 		/etc/tripwire/vm1/tw.pol        ポリシファイル
/etc/tripwire           	/etc/tripwire                   鍵などのファイル
/var/lib/tripwire/report    /var/lib/tripwire/vm1/report    レポート
/var/lib/tripwire       	/var/lib/tripwire/vm1           レポート以外

左側に記述するのがIDSがアクセスするパス、右側に記述するのが実際にdomain0上の
ファイルにアクセスするパスになります。仮想マシンごとに違うファイルを使う場合には
異なるパスを指定し、同じファイルを使う場合にはディレクトリで一括指定することが
できます。

注意事項
--------
このソフトウェアを使用することによって生じた損害等につきまして、当方では一切の
責任を負いかねます。個人の責任において使用して下さい。
