アジャイルしかやったことのない人間の覚書

日々の考えを記録するためにブログをつけ始めました。

やられサイトの作成

本番環境やステージング環境をインターネット環境上とするアジャイル開発の場合、アプリケーションの脆弱性対策が常に求められる。開発者として、自身のアプリケーションの脆弱性診断は自身で出来るようになりたいので、今日から少しずつ勉強することにした。

脆弱性診断の方法は別途まとめるとして、今回はやられサイト(脆弱性のあるサイト、脆弱性診断を行うための練習用サイト)を手早く用意するための方法を紹介する。

諸注意

やられサイトは自身で準備すべきである。インターネット上に公開されている一般のサイトに対して、脆弱性診断を決してしてはならない。脆弱性診断を行う際には、実際にそのサイトを攻撃してみてセキュリティホールを探す操作を行うので、自身の管理下にないサイトに対して脆弱性診断を行うと、最悪サイバーテロと誤解されかねない。

また、すでに本番環境リリースを行っているアプリケーションの場合、ステージング環境やテスト環境があるのであれば、そちらの環境で脆弱性診断を行うべきである。本番環境で脆弱性診断を行う場合、本番環境を壊しかねないからである。

事前準備

やられのダウンロード&インストール

BadStore:今回用意するやられサイト。ショッピングサイトの体裁を取っていて、一昔前のWebサイトっぽい感じ。

「BadStore (links to version 2.1.2)」というリンクをクリックして.isoファイルをインストールする。

VirtualBoxを起動し、「新規」アイコンをクリックする。新しい仮想マシンを下図のようにセットアップする。 f:id:Mizuki901:20170814174942p:plain

メモリサイズは「128MB」を選択。

ハードディスクは「仮想ハードディスクを追加しない」を選択し「作成」をクリックする。「仮想光学ディスクからしか起動できない」旨の傾向が出るが「続ける」をクリックして仮想マシンの作成を完了する。

続いて、作成した仮想マシン「BadStore」を選択し「設定」アイコンをクリックし、設定から「ストレージ」を選択し「ストレージツリー」から「空」と表示されている光学ドライブを選択する。ウインドウ右側の「属性」の光学ドライブのアイコンをクリックし「仮想光学ディスクファイルを選択」をクリックし、「BadStore_212.iso」をクリックする。さらに、「属性」にある「Live CD/DVD」にクリックを入れる。最終的に、下図のような設定になればOK。
f:id:Mizuki901:20170814180149p:plain

続いて、「設定」から「ネットワーク」を選択し「アダプター1」の「割り当て」を「ブリッジアダプター」に変更する。
f:id:Mizuki901:20170814180327p:plain

作成した「BadStore」の仮想マシンを「起動」する。「ifconfig」コマンドを実行し表示されるIPアドレスを、VirtualBoxをインストールしている端末のhostsファイルに「www.badstore.net」でFQDN設定をしておく。

hostsを設定変更後、www.badstore.netにブラウザでアクセスすると、BadStoreのトップページが開くことを確認できる。
f:id:Mizuki901:20170814180634p:plain

BadStoreでは、いい感じに多くの脆弱性を確認することができる(笑)。例えば、BadStoreでアカウント作成&ログイン後、左上部の「Quick Item Search」のテキストエリアに、 alert(document.cookie); をhtmlのスクリプトタグで囲んで記述し検索アイコンを押下してみよう。すると見事に、下図のようにダイアログが表示され、いとも簡単にCookieの値にアクセスすることに成功してしまう。このBadStoreには、明らかにXSSCookieのHttpOnly属性欠如の脆弱性が存在することがわかる。
f:id:Mizuki901:20170817145201p:plain

より詳細にBadStoreを使って脆弱性診断の練習を行うのはまた次回とする。

参考:その他のやられサイト紹介

上記で紹介したBadStore以外にも、有名なやられサイトがあるらしいのでリンクだけ貼っておく。今後時間があればスキルアップのためこれらにも手を出してみたい。