CTC 教育サービス
[IT研修]注目キーワード Python UiPath(RPA) 最新技術動向 Microsoft Azure Docker Kubernetes
みなさん、はじめましてこんにちは。
エンジニアをしています、三雲と申します。
普段は初心者エンジニアにWebのセキュリティについて教えることがあります。
といいますのも、セキュリティをおろそかにしてしまうと個人情報が漏洩したり、データの書き換えや消去、サービスが使用できなくなるなど、大きな問題が発生する恐れがあるからです。
セキュリティに問題あるプログラムは基本的に動作はする場合が多いので、初心者エンジニアが今まで勉強してきたような「動かないから問題がある」というプログラムの作り方ではセキュリティの問題は解決が難しいところがあります。
そこで、「安全なWebアプリケーションの作り方 第2版」を読んで、実際にWebアプリケーションを動かしてせるよう実習環境を準備しました。
この実習環境を使って、学習して感じたポイントや疑問を共有していきたいと思います。
今回は p.12 ~ p.42 の部分になります。(紙書籍版)
少しページ数が多いように見えますが、スクリーンショットで丁寧に解説されているのでスイスイ読み進められます。
テーマは「実習環境の準備」です。
せっかくですので私も初心に戻り、新人エンジニアやこれからエンジニアを目指している方の「Webセキュリティは大事なので改めて勉強してみよう!」という視点で、分かりやすい記事になればと思います。
どうぞよろしくお願いいたします。
例えば p.157 でログインパスワードを知らなくてもログインできる脆弱性の実習があります。
この画面の正しいパスワードは「pass1」のはずですが、ちょっとやってみましょう。
正しいパスワードではなくてもログインできました...
実際に少し動かすだけで、なんだかハッカーみたいなことが簡単にできました。
これは、自分の作ったウェブアプリケーションのセキュリティ対策をしっかりしないといけませんね。
※実習は必ず今回用意する実習環境のみに対して行ってください。自身の管理していないウェブアプリケーションに対して行ってはいけません。不正アクセス禁止法等に抵触します。
「安全なWebアプリケーションの作り方 第2版」では、実習環境VMをダウンロードして、実際に脆弱性の攻撃側と防御側のシミュレーションを通じて理解を深めることができます。
実際に動かしてみると理解度がぜんぜん違うので、ぜひ実習環境は用意してみてください。
書籍を見ると、Windows 10 / 8.1 / 7 と macOS でセットアップできるようです。
macOS は書籍リリース時の状況から Intel CPU 版のことだと思います。
新しい PC / Mac 環境で試されたい方もいるかもしれないので、せっかくなので書籍販売後の最新 PC / Mac 環境で実習環境を構築してみます。
PC の最新環境として Windows 11、Mac の最新環境として Mac (Apple シリコン搭載) を準備しました。
書籍に書いてある手順通りに実行していくと、きちんと実習環境が構築できました!
作業のポイントを書いていきます。
まず Firefox をダウンロードしインストールします。
ここでポイントです。ここから先のブラウザを使った作業は、すべて Firefox で作業するようにしたほうが混乱しません。
続いて VirtualBox をダウンロードしインストールします。
VirtualBox
https://www.virtualbox.org/
ダウンロードページが英語ですが、書籍に書かれているとおりに実行すると簡単でした。
インストールするところからは日本語表示になるので安心できます。
ここでホストネットワークマネージャーの設定値を確認してみました。
書籍通りで特に変更しなくてよかったです。
ただ、DHCP サーバーにチェックがついていませんが、私の環境ではチェックが付いていました。有効のままでも問題なかったです。
続いて 実習環境VM をダウンロードしインストールします。
安全なWebアプリケーションの作り方 第2版 サポートサイト
https://wasbook.org/download/
ダウンロードには ID とパスワードが必要です。p.667 に書いてあります。
実習用仮想マシン をダウンロードしてください。ダウンロードされるファイル名は wasbook.ova です。
ダウンロードした wasbook.ova ファイルを、VirtualBox で「仮想アプライアンスのインポート」で取り込みます。
インポート後はネットワークのアダプターの設定を確認しますが、書籍の通りで特に設定を変更することはなかったです。
ここでいよいよ実習環境VMを起動します。
ログイン ID とパスワードは今後よく使いますので、メモしておいたほうが良いでしょう。
p.42 にログイン ID とパスワード一覧が書かれていたので、付箋を付けておくと便利です。
実習環境VMへの接続確認で、Windows のコマンドプロンプトを使うところがあります。
Windows 11 では「ターミナル」というアプリを使用します。
ここでポイントです。実習環境VMを終了するように書籍で書いてありますが、この後もそのまま使いますので、もう一度実習環境VMを起動しておきます。
次に一番難しいポイントです。hosts ファイルの書き換えは少し手順が複雑なので、手順を一つずつ確認しながら進めました。
hosts ファイルの書き換えがうまくできていないケースが多いので。。。
まず、hosts ファイルは普通にメモ帳で開くと上書き保存ができません。メモ帳を右クリックして「管理者として実行」で開いてください。
また、hosts ファイルのに記載するときには、IPアドレスとホスト名の区切りはタブもしくは半角スペースです。全角スペースでうまく動作しないのはよくあるミスですので気をつけましょう。
保存時に拡張子をつけたりしないようにしてください。hosts という名前で上書き保存します。hosts.txt では無いので気をつけてください。
書籍には紹介されていませんが、メモ帳を使わず hosts ファイルを書き換えるアプリがあります。
メモ帳で書き換えるのが難しいと感じたり、よく hosts ファイルを書き換える場合はアプリを使うと便利です。
hosts の編集でよく使われるアプリは「SwitchHosts」や「Hosts File Manager」などです。
このアプリも、もちろん管理者権限で実行する必要あります。
続いて Java 実行環境をダウンロードしインストールします。
Java SE Development Kit 17
https://www.oracle.com/java/technologies/downloads/#java17
続いて OWASP ZAP をダウンロードしインストールします。
ここでポイントです。書籍のダウンロードURLはリンクが切れています。下記のリンクをご利用ください。
OWASP ZAP
https://www.zaproxy.org/download/
ZAP のオプション画面ですが、新しいバージョンになって表記が異なるところがありました。
英語と日本語カタカナを置き換えて探せばOKでした。
例えば、p.33 図2-37 「Local Proxies」と書かれていますが、私の環境だと「ローカル・プロキシ」と翻訳されていました。
また、p.33 図2-38 「ブレークボタン モード:」と書かれていますが、私の環境だと「Break Button Mode:」と翻訳されていませんでした。
あと、フォント設定部分が General Font と Work Panels Font の 2 つに分かれているので、両方とも同じように設定しました。
続いて Firefox 拡張機能 FoxyProxy Standard をダウンロードしインストールします。
Firefox 拡張機能 FoxyProxy Standard
https://addons.mozilla.org/ja/firefox/addon/foxyproxy-standard/
設定ファイルのダウンロードは、追加の設定を実習環境VMからダウンロードします。
もちろん実習環境VMが起動していることが必要となります。
実習環境VM のアドレス
http://example.jp/
設定をインポートした後、FoxyProxy アドオンの設定画面が変わっていますが、設定画面を確認していく限り、特に設定を変更しなくてよかったです。
OWASP ZAP を使って確認してみましょう。
ここでポイントです。p.40 の OWASP ZAP のレスポンス表示で、p.34 のフォント名の設定を正しく行っているのに、日本語が表示されない(豆腐文字になっている)場合は、一度アプリケーションもしくはコンピュータの再起動を試してみてください。
これで実習環境の準備が完了しました!
さっそく冒頭で私が試した内容をぜひお試しください!
Apple シリコン搭載の Mac には VirtualBox のインストールができませんので、残念ながら実習環境が作成できませんでした。
最近の macOS なのですが、Apple シリコン (チップ Apple M系) に移行中なので、Mac に搭載されている CPU の種類 (アーキテクチャ) が 2 つあります。
Mac をお使いの方で実習環境の作成ができなかったときは、Apple シリコン搭載 Mac であるか確認してみてください。
Apple シリコン搭載の Mac の見分け方は、下記の Apple 公式サポートページから確認できます。もしくは「Apple シリコン 見分け方」でウェブ検索する方法もあります。
Apple シリコン搭載の Mac コンピュータ
https://support.apple.com/ja-jp/HT211814
以前私が Intel 系 CPU の Mac を所有していたときは VirtualBox も使えたので、そちらの機種のお持ちの方は書籍にある通り Mac でも使えると思います。
「安全なWebアプリケーションの作り方 第2版」では、書籍に書かれている内容をお手元で試せる環境がダウンロードできます。
こちらの書籍、著者の徳丸先生がサポートサイトを公開しています!
安全なWebアプリケーションの作り方 第2版 サポートサイト
https://wasbook.org
実習環境VMのダウンロード、正誤表のリンクなど、必要な情報がまとめて手にいれられます。
こちらブックマーク(お気に入り)に追加しておいてください。
今回のコラムはいかがでしたでしょうか?
ウェブセキュリティを短期間で正しく理解するにはウェブセキュリティ研修が有効です。
興味がある方は以下の研修ページをご覧の上、是非ご受講ください。
https://www.school.ctc-g.co.jp/websecurity/
[IT研修]注目キーワード Python UiPath(RPA) 最新技術動向 Microsoft Azure Docker Kubernetes