IT・技術研修ならCTC教育サービス

サイト内検索 企業情報 サイトマップ

研修コース検索

コラム

ウェブ・セキュリティ学習のため徳丸本を読んでみた

CTC 教育サービス

 [IT研修]注目キーワード   Python  UiPath(RPA)  最新技術動向  Microsoft Azure  Docker  Kubernetes 

第3回 M1/M2 Mac に対応!Docker 環境で実習環境を構築しよう (三雲 勇二) 2023年1月

みなさん、こんにちは。 エンジニアをしております、三雲と申します。

普段は初心者エンジニアに Web セキュリティについて教えることがあります。
ウェブセキュリティの分野は徳丸本(安全なWebアプリケーションの作り方 第2版)をオススメしております。
今回も初心者の気持ちで徳丸本を読んで、気になった部分について確認していきたいと思います。

第1回で実習環境を準備したのですが、M1/M2 Mac では実習環境が構築できないという点がありました。
ですが、なんと徳丸先生から M1/M2 Mac 対応 Docker 版の実習環境公開のアナウンスがありました!

毎回、実習環境を作ってばかりな気がしますが、徳丸本では実習することが非常に大事なので、今回は M1/M2 Mac で Docker 実習環境を用意するところを進めたいと思います!
個人的には今までの VirtualBox 版よりも構築が簡単になっています。

今回は紙書籍版 p.12 ~ p.72 の部分と安全なWebアプリケーションの作り方 第2版 サポートサイト - Docker版実習環境をあわせた内容になります。
Docker では作業工数がぐんと減っているのでスクリーンショットで丁寧に解説されているのでスイスイ読み進められます。

テーマは「Docker を使った実習環境の準備」です。

せっかくですので私も初心に戻り、新人エンジニアやこれからエンジニアを目指している方の「Webセキュリティは大事なので改めて勉強してみよう!」という視点で、分かりやすい記事になればと思います。 どうぞよろしくお願いいたします。

さっそく Docker 実習環境を準備

2022/12に「安全なWebアプリケーションの作り方 第2版 サポートサイト - Docker版実習環境」にて、 Docker 実習環境が公開されました。
こちらのページに構築方法は書いてあるので、さっそく1から実習環境を構築してみましょう。

サポートサイトでは次の2通りの方法が案内されています。

  1. 一般的な使い方(PROXY経由)
  2. PROXYを経由しない利用法

今回は「一般的な使い方(PROXY経由)」で実習環境を構築します。

構築する実習環境の全体的なイメージは、次のとおりです。
Firefox と OWASP ZAP が通信して、OWASP ZAP と Docker が通信します。
つまり、OWASP ZAP が通信を仲介するような構成です。

fig01

今回の構築する実習環境の Mac

今回は私の M1 Mac で確認しました。

  • MacBook Air (M1, 2020)
  • macOS Monterey 10.6
  • CPU: M1 (Apple シリコン)

自分の Mac が M1/M2 CPU であるかわからない場合は Apple の公式サポートページで確認してください。

Apple シリコン搭載の Mac コンピュータ https://support.apple.com/ja-jp/HT211814

M1/M2 Mac の実習環境の構築

サポートサイトと書籍に書いてある手順通りに実行していくと、きちんと実習環境が構築できました!
作業のポイントを書いていきます。
どちらの情報を確認すればよりにわかりやすいように、【書籍】と【サポートサイト】どちらを参照するとよいか書いておきます。

【書籍 p.14】
まず Firefox をダウンロードしインストールします。

Firefox
https://www.mozilla.org/ja/firefox/new/

ここでポイントです。ここから先のブラウザを使った作業は、すべて Firefox で作業するようにしたほうが混乱しません。

【サポートサイト】
続いて Docker Desktop をダウンロードしインストールします。

Docker
https://www.docker.com/

ここでポイントです。M1/M2 Mac では 「Apple Chip」 を選択してください。

fig02

インストールが完了したら、Docker Desktop を起動しておいてください。

【サポートサイト】
続いて『実習用仮想マシン (Docker版 Ver 1.1.0) 』をダウンロードし解凍します。

安全なWebアプリケーションの作り方 第2版 サポートサイト
https://wasbook.org/download/

ダウンロードには ID とパスワードが必要です。p.667 に書いてあります。
実習用仮想マシン (Docker版) の最新版をダウンロードしてください。ダウンロードされるファイル名は wasbook-docker.zip です。
このファイルを適当なところで解凍してくださいとあるので、今回はデスクトップに解凍しました。

【サポートサイト】
このまま Docker 実習環境を構築します。
ターミナル アプリを起動して、デスクトップの wasbook-docker ディレクトリへ移動します。

cd ~/Desktop/wasbook-docker

そしで、Docker 実習環境を起動します。

docker compose up -d

【書籍 p.27 〜 p.34】
続いて OWASP ZAP をダウンロードしインストールします。
ここでポイントです。書籍のダウンロードURLはリンクが切れています。下記のリンクをご利用ください。

OWASP ZAP
https://www.zaproxy.org/download/

ZAP のオプション画面ですが、新しいバージョンになって表記が異なるところがありました。
英語と日本語カタカナを置き換えて探せばOKでした。

fig03

例えば、p.33 図2-37 「Local Proxies」と書かれていますが、私の環境だと「ローカル・プロキシ」と翻訳されていました。

fig04

また、p.33 図2-38 「ブレークボタン モード:」と書かれていますが、私の環境だと「Break Button Mode:」と翻訳されていませんでした。

fig05

あと、フォント設定部分が General Font と Work Panels Font の 2 つに分かれているので、両方とも同じように設定しました。

【サポートサイト】
ここから OWASP ZAP について、書籍版にはない追加設定が 2つあります。

fig06

サポートサイト: OWASP ZAPのバージョン 2.8.0 以降でエラー表示になる場合
https://wasbook.org/owaspzap_2.8.0.html

OWASP ZAP 2.8.0 以降では、追加で設定が必要になったようです。
[オプション] - [HUD] - [Enable when using the ZAP Desktop] のチェックを外します。

fig07

こちらが Docker 版で追加になった設定です。
[オプション] - [Network] - [Connection] を開き、[HTTP Proxy] タブに切り替え、次の3つの設定を行います。

  • [Enabled:] にチェック
  • [Host:] に 127.0.0.1 を入力
  • [Port:] に 13128 を入力

OWASP の設定はコレで完了です。
ここで OWASP ZAP を再起動しておきましょう。

【書籍 p.35 〜 p.39 & サポートサイト】
続いて Firefox 拡張機能 FoxyProxy Standard をダウンロードしインストールします。

Firefox 拡張機能 FoxyProxy Standard
https://addons.mozilla.org/ja/firefox/addon/foxyproxy-standard/

設定ファイルのダウンロードは、追加の設定を実習環境からダウンロードします。
もちろん実習環境が起動していることが必要となります。

実習環境 のアドレス
http://127.0.0.1:13128/

設定をインポートした後、FoxyProxy アドオンの設定画面が変わっていますが、設定画面を確認していく限り、特に設定を変更しなくてよかったです。

OWASP ZAP を使って確認してみましょう。

ここでポイントです。p.40 の OWASP ZAP のレスポンス表示で、p.34 のフォント名の設定を正しく行っているのに、日本語が表示されない(豆腐文字になっている)場合は、一度アプリケーションもしくはコンピュータの再起動を試してみてください。

これで実習環境の準備が完了しました!
さっそく冒頭で私が試した内容をぜひお試しください!

サポートサイトも確認

安全なWebアプリケーションの作り方 第2版」では、書籍に書かれている内容をお手元で試せる環境がダウンロードできます。

こちらの書籍、著者の徳丸先生がサポートサイトを公開しています!

安全なWebアプリケーションの作り方 第2版 サポートサイト
https://wasbook.org

実習環境VMのダウンロード、正誤表のリンクなど、必要な情報がまとめて手にいれられます。
今回の Docker 対応実習環境もこちらで情報を入手することができました。
こちらブックマーク(お気に入り)に追加しておいてください。

今回のコラムはいかがでしたでしょうか?
ウェブセキュリティを短期間で正しく理解するにはウェブセキュリティ研修が有効です。
興味がある方は以下の研修ページをご覧の上、是非ご受講ください。
https://www.school.ctc-g.co.jp/websecurity/

 


 

 [IT研修]注目キーワード   Python  UiPath(RPA)  最新技術動向  Microsoft Azure  Docker  Kubernetes