セキュリティ学習環境をお手軽に作ってみた

本書の目的

ウェブセキュリティを手軽に学びたいひと向けに、簡単な学習環境の構築方法を紹介する

材料

  • Java
  • ウェブブラウザ(今回はFirefoxで解説します)
  • ローカルプロキシ「Burpsuite」
  • アドオン「HakoniwaBadStore」

(https://github.com/ankokuty/HakoniwaBadStore/releases/download/v1.0.2/HakoniwaBadStore.jar)

この時点で想像がつく人は、「まとめ」以降を参照ください。

概要

こんにちは、ウェブ共同開発部の堀井です。

東京オリンピックが近くにつれ、「サイバーセキュリティ」というキーワードを目にする機会が増え、「SQLインジェクションによる情報漏洩」や「クロスサイトスクリプティングによるサイト改ざん」といった専門用語を目にする機会も多くなってきました。

開発者がセキュリティを気にしなければいけない時代の中で、脆弱性を手軽に学んで見たい方もおられるかと思います。

そこで今回は、ローカルプロキシツールとそのAdd-onを利用して、簡単にセキュリティを学習できる環境が作成する方法をご紹介します。

環境構築手順

最初にJava公式サイトhttps://java.comを参考に、Javaをインストールしましょう。

次にローカルプロキシ「Burpsuite」をhttps://portswigger.net/burp/communitydownloadからダウンロードします。

今回はJarファイルをダウンロードします。

f:id:fenrir_engineers:20180614102637p:plain

「HakoniwaBadStore」をhttps://github.com/ankokuty/HakoniwaBadStore/releasesからダウンロードします。

f:id:fenrir_engineers:20180614103423p:plain

BurpsuiteのJarファイルを実行し、以下の画面が出るまで進めます。

f:id:fenrir_engineers:20180614103429p:plain

許可条項を許諾し、デフォルト設定のままBurpsuiteの起動を完了するとホーム画面が表示されます。

f:id:fenrir_engineers:20180614103445p:plain

そこで「Extender」タブに移動後に「Add」ボタンをクリックし、jarファイルを指定してHakoniwaBadStoreを導入します。

f:id:fenrir_engineers:20180614103451p:plain

f:id:fenrir_engineers:20180614103503p:plain

導入に完了すると、以下のようなタブが新たに表示されます。

f:id:fenrir_engineers:20180614103515p:plain

そこでそのタブに移動し、「Stopped」と表示されているボタンを押してみましょう。

f:id:fenrir_engineers:20180614103523p:plain

すると、「Running」の状態になります。これで起動は成功です。

f:id:fenrir_engineers:20180614103529p:plain

起動に成功したら、ブラウザのURLに以下内容を入力してアクセスします。

http://127.0.0.1:8528/

以下の画面が表示されたら、設定は成功です。

f:id:fenrir_engineers:20180614103538p:plain

テスト

では、環境を用意できたので、実際に色々試してみましょう!

今回は、ブラウザ上からの操作でクロスサイトスクリプティングという脆弱性のテストを試してみます。

以下の図は商品検索画面です。ここで「test」と入力します。

f:id:fenrir_engineers:20180614103543p:plain

すると、商品検索の結果と今入力したキーワードを表示する画面が出てきます。この「キーワードを表示する」処理は、前画面で入力したキーワードをそのまま出力するようになっています。

f:id:fenrir_engineers:20180614103636p:plain

そこで以下のようなキーワードを入力して検索を行ってみます。

<script>alert(document.domain)</script>

すると、「キーワードを表示する」処理で入力した内容をそのまま出力するため、レスポンスに検索時に設定したjavascriptが含まれてしまい、 結果として攻撃者が入力したjavascriptが実行されてしまいます。今回はドメインが表示されています。

f:id:fenrir_engineers:20180614103643p:plain

今回はクロスサイトスクリプティングについて試してみましたが、このサイトには色々な脆弱性が含まれています。 TOPページから「guidebook」のリンクにアクセスすると手がかりとなるPDFファイルが確認できます。

f:id:fenrir_engineers:20180614103651p:plain

その内容を頼りに、一つ一つ試していただけると幸いです。

中には、ローカルプロキシの機能を利用して通信を変更しなければならないケースもありますので、その際は以下のリンクを参考に試してみてください。

「いろいろなWebブラウザでHTTPプロキシを使ってみよう!」
https://www.securesky-tech.com/column/naruhodo/03.html

「HTTP通信の中身を覗いてみよう!Burp Suite Free Edition 1.6編」
https://www.securesky-tech.com/column/naruhodo/02.html

まとめ

今回、手軽にセキュリティリスクを学べるツールの導入とその確認テストまでを紹介しました。

本記事を参考に「試しに環境を作ってみようかな」と思えていただければ幸いです。

また、このツールを利用してセキュリティエンジニアがウェブセキュリティを解説するイベントも頻繁に開催されています。

HakoniwaBadStoreに触れセキュリティエンジニアに触れて、セキュリティに対する好奇心を得ることができればこれ以上の喜びはありません。

謝辞

今回、記事作成にあたり以下の方に御礼を申し上げます。

  • 「HakoniwaBadStore」の掲載を許可いただいた国分様
  • ローカルプロキシ利用法を公開したブログのリンク掲載を許可いただいた株式会社セキュアスカイ・テクノロジー様