Google App Engineセットアップ
Eclipse3.6 Heliosにセットアップしました。
プラグインを次のURLにてインストールします。
Migrating from the Google Plugin for Eclipse | Cloud Tools for Eclipse | Google Cloud
AppEngine1.6.1とWebToolKit2.4を設定する。WTKは使わないと思うがとりあえず正しくセットアップしておきました。
セットアップができたら新規プロジェクトを作成する。Web Application Projectを作成する。
デフォルトのままでコンパイルと実行するが、コンパイルエラーになる場合がある。
Jreの設定の変更が必要になる場合がある。Eclipse > 環境設定 > Java > Installed Jre の設定をインストールしてあるJDK1.6を以下のように設定する。
Web脆弱性診断ツール Parosの使い方
ParosはWeb脆弱性自動検査ツールですが、全てのページを自動的に検査してくれるものではありません。あらかじめ検査するページを登録した上での検査になります。
以下にインストールから利用方法までを順に説明します。
ツールを「ダウンロードファイル一覧 - Paros - OSDN」からダウンロードします。Windows版とUnix版というものがあります。Unix版であればMacでも使えます。
適当なディレクトリに解凍して、startserver.shを起動します。Windowsの場合はstartserver.batか起動アイコンをクリックしてください。
実行はJavaVM上になってますが、Java8、Java7では起動できませんでした。JDK5で実行するのが安全です。
$JAVA_HOME/bin/javaw -jar paros.jar で起動できますので、適切なバージョンのJAVA_HOMEを指定して実行してみてください。
Paros側の設定は特にありません。ParosがProxyサーバとして動きますので「Tools > Option > Local Proxy」にてProxyサーバとなるホスト名とポートが指定されていることを一応確認します。
ブラウザの設定を行います。ブラウズのプロキシ設定からサーバにlocalhost、ポート番号を8080として設定します。
ブラウザでアクセスした内容を元にParos(Proxy Server)を経由したRequest、Responseの内容の脆弱性検査を行います。
次にデモ用にXSSを検出できるような簡単なHTMLを用意します。POSTした内容をHTML上に表示するというXSS対策していないCGIを用意しました。
test.pl
#!/usr/bin/perl print "Content-type: text/html\n\n"; print "<HTML><BODY><form action='post.pl' method='POST'><input type='text' name='goo' value=''><input type='submit' value='Go'></form></BODY></HTML>";
post.pl
#!/usr/bin/perl if ($ENV{'REQUEST_METHOD'} eq 'POST') { read(STDIN, $alldata, $ENV{'CONTENT_LENGTH'}); } else { $alldata = $ENV{'QUERY_STRING'}; } foreach $data (split(/&/, $alldata)) { ($key, $value) = split(/=/, $data); $value =~ s/\+/ /g; $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack('C', hex($1))/eg; $value =~ s/\t//g; $in{"$key"} = $value; } print "Content-Type: text/html\n\n"; print "<html>\n"; print "<head><title>TEST</title></head>\n"; print "<body>\n"; print $in{'goo'}; print "</body>\n"; print "</html>\n"; exit;
検査するページが用意できたら、プロキシ設定したブラウザからtest.plのフォームからデータを入力してpost.plに入力した内容をPOSTします。
実行した内容はParosに記録されます。
検査したい画面の読み込みができたら、Siteツリーの検査するURLを選択して、メニューの「Analyze > Scan」を実行します。
実行した結果は下部ウィンドウに検出した脆弱性の内容が出力します。またこの結果についてはメニューの「Report > Last Scan Report」を選択してHTMLで保存ができます。
検査結果のさらなる調査のために手動での検査がツールを使って行えます。
ツールバーの「Trap」を選択して、「Trap Request」にチェックをして、検査したい画面をブラウザで実行します。
実行するとRequestパラメータがParos画面に表示されますので、ここでRequest Parameterを書き換えることができます。
書き換えたらContinueボタンでPOSTを継続します。
HTML画面からの入力ではJavaScriptチェックでどうしても入力できない内容が発生しますので、手動で実行したい場合もこのツールは有効です。
OpenVAS セットアップ on Ubuntu10
リポジトリと配布先サイトの公開鍵を追加します。
$ sudo sh -c "echo \"deb http://download.opensuse.org/repositories/security:/OpenVAS:/STABLE:/v4/xUbuntu_10.10/ ./\">> /etc/apt/sources.list" $ sudo apt-key adv --keyserver hkp://keys.gnupg.net --recv-keys BED1E87979EAFD54 Executing: gpg --ignore-time-conflict --no-options --no-default-keyring --secret-keyring /etc/apt/secring.gpg --trustdb-name /etc/apt/trustdb.gpg --keyring /etc/apt/trusted.gpg --primary-keyring /etc/apt/trusted.gpg --keyserver hkp://keys.gnupg.net --recv-keys BED1E87979EAFD54 gpg: requesting key 79EAFD54 from hkp server keys.gnupg.net gpg: key 79EAFD54: public key "security OBS Project" imported gpg: no ultimately trusted keys found gpg: Total number processed: 1 gpg: imported: 1
パッケージソフトをインストールします。
$ sudo apt-get update $ sudo apt-get install greenbone-security-assistant gsd libmicrohttpd10 libopenvas4 openvas-administrator openvas-manager openvas-scanner openvas-cli sqlite3
SSL通信に使うデジタル署名を用意します。
$ test -e /var/lib/openvas/CA/cacert.pem || sudo openvas-mkcert -q $ test -e /var/lib/openvas/users/om || sudo openvas-mkcert-client -n om -i
データベース更新とプラグインの更新をします。
$ sudo openvas-nvt-sync $ sudo /etc/init.d/openvas-manager stop $ sudo /etc/init.d/openvas-scanner stop $ sudo openvassd $ sudo openvasmd --migrate $ sudo openvasmd --rebuild
サービスを起動します。
$ sudo /etc/init.d/openvas-scanner start Starting OpenVAS Scanner: openvassd. $ sudo /etc/init.d/openvas-manager start Starting OpenVAS Manager: ERROR. $ sudo /etc/init.d/openvas-administrator start Starting OpenVAS Administrator: openvasad. $ sudo /etc/init.d/greenbone-security-assistant start Starting Greenbone Security Assistant: gsad.
OpenVAS用のアカウントを作ります。
$ test -e /var/lib/openvas/users/admin || sudo openvasad -c add_user -n admin -r Admin Enter password: ad main:MESSAGE:1614:2011-11-17 14h58.46 UTC: No rules file provided, the new user will have no restrictions. ad main:MESSAGE:1614:2011-11-17 14h58.46 UTC: User admin has been successfully created.
Ubuntu Desktopが使えるようにパッケージをインストール。結構時間掛かります。
$ sudo apt-get install ubuntu-desktop
vncのインストールをします。
$ sudo apt-get install vnc4server $ vncserver :1 $ rm /home/ubuntu/.vnc/xstartup $ ln -s /etc/X11/Xsession /home/ubuntu/.vnc/xstartup $ vncserver -kill :1 $ vncserver :1
AWS EC2 CentOSセットアップ
yumによるモジュールのアップデートとPostgreSQLのソースからのインストールコマンド。
yum install yum-fastestmirror yum -y update yum -y install wget yum -y install make yum -y install gcc yum -y install readline-devel yum -y install zlib-devel wget ftp://ftp2.jp.postgresql.org/pub/postgresql/source/v9.0.5/postgresql-9.0.5.tar.gz
readline-develとzlib-develをインストールしていないとreadlineとzlibをインポートできないので注意が必要です。
flexというコマンドが無い場合は入れておいてください。
$ flex --version
PostgreSQLはデフォルトで/usr/local/pgsql にインストールされます。
./configure make make install
環境設定
export POSTGRES_HOME=/usr/local/pgsql export PGLIB=$POSTGRES_HOME/lib export PGDATA=$POSTGRES_HOME/data export MANPATH="$MANPATH":$POSTGRES_HOME/man export LD_LIBRARY_PATH="$LD_LIBRARY_PATH":"$PGLIB"
DBの初期化
initdb -D /usr/local/pgsql/data -E utf-8 --lc-collate=C createdb <データベース名>
ユーザの追加とパスワード変更
SQL>create user xxxxxx with password 'パスワード'; SQL>alter role postgres with password 'パスワード';
Javaのダウンロードとインストール
wget http://download.oracle.com/otn-pub/java/jdk/6u29-b11/jdk-6u29-linux-x64.bin chmod a+x jdk-6u29-linux-x64.bin mkdir /usr/local/java mv jdk-6u29-linux-x64.bin /usr/local/java cd /usr/local/java ./jdk-6u29-linux-x64.bin ln -s ./jdk1.6.0_29 java
JBoss AS 6.1をインストール。ダウンロードして適当な場所に解凍します。unzipもインストールしておきます。
jbossのモジュールはアプリケーションの実行ユーザを作り、そのオーナーにパーミションを書き換えておきます。
yum -y install unzip wget http://download.jboss.org/jbossas/6.1/jboss-as-distribution-6.1.0.Final.zip unzip jboss-as-distribution-6.1.0.Final.zip mv jboss-6.1.0.Final /opt/ cd /opt ln -s jboss-6.1.0.Final jboss
JBoss4.2.3 GAを使う場合はこちらからダウンロード。
http://jaist.dl.sourceforge.net/project/jboss/JBoss/JBoss-4.2.3.GA/jboss-4.2.3.GA-jdk6.zip http://jaist.dl.sourceforge.net/project/jboss/JBoss/JBoss-4.2.3.GA/jboss-4.2.3.GA.zip
Apacheをインストールします。
yum -y install httpd chkconfig --level 345 httpd on service httpd start
EBSでディスクの増設を行います。6GのAMIテンプレートを使用したので必要に応じてディスクを増設します。EBSのVolumeメニューから「Create Volume」でディスクを作成します。
作成したら「Attach Volume」でmountさせるインスタンスを指定します。
EBSではデバイス名は、/dev/sdf 〜 /dev/sdp の指定しかできません。最近のLinuxカーネルのデバイス名は、/dev/xvdf 〜 /dev/xvdp なので、/dev/sdf で指定したデバイス名は、/dev/xvdf になるので気をつけましょう。Attachするときのダイアログに説明書きがあったプチはまりポイントでした。
次にデバイスのフォーマットを行います。
mkfs /dev/xvdf
いちおうマウンドができる確認を行います。
mount /dev/xvdf /mount_point
最後に/etc/fstab にデバイスマウントの記述を追加します。