Jtest -Java対応自動テストツール-
今月のピックアップ
Parasoft Jtest 8.3 技術資料
セキュアコーディングのすすめ 2
WebGoat Example プロジェクト
今回もWebGoat プロジェクトを使ってJtestの静的解析における脆弱性の検出例を見ていくことにします。(WebGoat はOWASPが提供しているセキュリティ学習用のWebアプリケーションであり、Jtest8.3ではサンプルプロジェクトとして簡単に取り込む事ができます。)
- スレッドの安全性の例
今回もWebGoatプロジェクトを使ってJtestの静的解析における脆弱性の検出例を見ていくことにします。(WebGoat はOWASPが提供しているセキュリティ学習用のWebアプリケーションであり、Jtest8.3ではサンプルプロジェクトとして簡単に取り込む事が出来ます。)
アプリケーションの説明- スレッドの安全性に関するサンプルを動かしてみます。
このサンプルは入力されたユーザ名をキーにデータベースを検索し、パスワードなどのユーザ情報を表示するWebアプリケーションです。
図 2 WebGoat Concurrency - Thread Safety Problems
脆弱性の確認- このアプリケーションにはスレッドの安全性に関して脆弱性があるので、それを確認するために同時に2ユーザが同時にログインを試みます。
2人で別のマシンからテストを実行するか、ひとつの端末でブラウザを2つ立ち上げて、ひとつはEnter user nameにjeffを、もうひとつはdaveを入れて同時にSubmitボタンを押下します。(ひとつの端末から2つブラウザを立ち上げている場合はなるべく間隔を開けずにSubmitボタンを押下する)
図 3 ブラウザ1
図 4 ブラウザ2
成功すると図 4 ブラウザ2の様に赤字で成功の旨を伝えるメッセージが表示されます。
タイミングが合わないと成功しないので、赤字でメッセージが表示されない場合は何回か試してみてください。
図 3 ブラウザ1ではdaveというユーザ名でログインし、daveのユーザ情報が表示されています。
図 4 ブラウザ2ではjeffというユーザ名でログインし、jeffのユーザ情報が表示されるはずなのですが、daveのユーザ情報が表示されてしまいました。











