体系的に学ぶ安全なWebアプリケーションの作り方 1

これね。第2版の方。
1章 Webアプリケーションの脆弱性とは
脆弱性とは悪用できるバグである
脆弱性があるとなぜダメなのか
- Webサイト運営者の経済的損失があったり
- 法的な要求がもちろんあり
- 個人情報保護法とか
- Webサイト利用者が回復不可能なダメージを受ける場合が多く
- 個人情報とか、なりすましとか
- デジタルタトゥーってやつかな
- Webサイト利用者にたいしてサイトの安全性について嘘をつくことになり
- 攻撃インフラ構築に荷担したり
- ボットネットワークとか

脆弱性があるということは生まれる(作られる)理由があるわけで
その理由は大きく2つあって
- バグによるもの
- 具体的な脆弱性はSQLインジェクションとか、XSSとか
- チェック機能不足によるもの
- 具体的な脆弱性はディレクトリ・トラバーサルとか
SQLインジェクションとかXSSとかCSRFとかそれ単体は脆弱性の名前で攻撃のことではなくて
それらの脆弱性を使った攻撃の場合、XSS攻撃とかCSRF攻撃となるわけか

Webアプリケーションのセキュリティだけを確保するだけではだめで
通信にも気を付けないといけなくて
本書では積極的に安全性を強化する機能のことを「セキュリティ機能」(=
=セキュリティ要件)と呼んでいくそうで
ただ実際に開発するときはこの辺りは費用との相談なわけで

本書の構成は以下のようになっていて
1章は上記の通りで
2章は実習環境のセットアップで
3章はWebアプリケーションの基礎知識やセキュリティ機能の説明で
4章は本書のメインで、Webアプリケーションの機能ごとに発生しやすい脆弱性の説明があって、それの原理や対策があって
5章は代表的なセキュリティ機能の説明で
6章は文字コードとセキュリティの話題で
7章は脆弱性診断の入門的解説で
8章はWebアプリ以外の側面からWebサイトの安全性を高めるための施策の話しで
9章は安全なWebアプリ開発のための開発プロセスについての説明で

セキュリティ対応のガイドラインがあって
実務でセキュリティ対応をする場合はこれに沿うことが多くて
例えばIPAとかOWASPがガイドラインを公開してて

2章 実習環境のセットアップ
本書記載の手順に従ってVirtualBoxに実習用仮想マシン(実習マシン)をインストールして起動して
実習マシンのIPを確認すると 192.168.56.101 で
VirtualBoxのParrotで実習マシンに接続できることが確認できて
┌─[parrot@parrot-virtualbox]─[~]
└──╼ $ping 192.168.56.101
PING 192.168.56.101 (192.168.56.101) 56(84) bytes of data.
64 bytes from 192.168.56.101: icmp_seq=1 ttl=63 time=0.885 ms
64 bytes from 192.168.56.101: icmp_seq=2 ttl=63 time=1.05 ms
64 bytes from 192.168.56.101: icmp_seq=3 ttl=63 time=0.944 ms
64 bytes from 192.168.56.101: icmp_seq=4 ttl=63 time=0.907 ms
64 bytes from 192.168.56.101: icmp_seq=5 ttl=63 time=0.618 ms
^C
--- 192.168.56.101 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4039ms
rtt min/avg/max/mdev = 0.618/0.881/1.052/0.143 ms
firefoxでアクセスできて
シャットダウンするときは↓で
$ sudo shutdown -h now

/etc/hosts
を編集して
┌─[root@parrot-virtualbox]─[/etc]
└──╼ #cat hosts
# Host addresses
127.0.0.1 localhost
127.0.1.1 parrot-virtualbox
::1 localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
192.168.56.101 example.js api.example.net trap.example.com
http://example.jp/
でアクセスできることが確認できて

ParrotにOWASP ZAPはもともとインストールされてて
FireFoxにFoxyProxyをインストールして設定ファイルをインポートするともともとあったburp用の設定が消されてしまったので改めて追加して

OWASP用のProxy設定にパターンが設定されていて

OWASP ZAPで通信が確認できて
Webメールも確認できて