テスト全般
■脆弱性テスト
SEが気づきにくいWebサイトの脆弱性の見つけ方 | イー・アルゴリズム
http://web.archive.org/web/20190809115933/https://e-algorithm.xyz/vulnerability/
■負荷テスト
負荷試験ガイド - withgod's blog
https://withgod.hatenablog.com/entry/2020/11/09/131930
abツールやec2-benchなど、負荷テストに関しては「Tuning.txt」も参考にする
Qualys SSL LabsでSSLの設定状況や信頼性を確認
SSL Server Test (Powered by Qualys SSL Labs)
https://www.ssllabs.com/ssltest/
Let's EncryptでHTTPSサーバを建てたついでにSSL LabsでA+評価をめざす - sonickun.log
http://sonickun.hatenablog.com/entry/2015/12/19/212517
OWASP ZAPで脆弱性テスト
※Windowsアプリケーションをインストールすることで、GUIな画面で脆弱性テストを行える
OWASP ZAPで開発中にセキュリティ診断!
https://codezine.jp/article/detail/9504
脆弱性診断ツール OWASP ZAP vs 脆弱性だらけのWebアプリケーションEasyBuggy - Qiita
https://qiita.com/tamura__246/items/9c70ddc1c03cf623cf8d
SEが気づきにくいWebサイトの脆弱性の見つけ方 | イー・アルゴリズム
https://e-algorithm.xyz/vulnerability/
https://github.com/zaproxy/zaproxy/wiki/Downloads
からダウンロード&インストールすると、はじめから日本語になっていた
使い方は要勉強
■操作メモ
https://codezine.jp/article/detail/9504?p=2
プロテクトモードにし、
https://codezine.jp/article/detail/9504?p=3
プロキシポートの設定を行い、Firefoxなどブラウザ側でそのプロキシポートを使うように設定し、
https://codezine.jp/article/detail/9504?p=4
ブラウザで対象サイトにアクセスし、スキャン対象として登録してからスキャンを行う
スキャンが完了すると、アラートのタブに診断結果が表示された
わざと脆弱性のあるページを作って、XSS脆弱性などを検出できるか試したい
OpenVASで脆弱性テスト
※現状動作させられていない
※過去にあった脆弱性データベースの内容をもとにテストを行える
CentOS 7に脆弱性スキャンツール「OpenVAS」をインストールする
https://orebibou.com/2016/08/centos-7%E3%81%AB%E8%84%86%E5%BC%B1%E6%80%A7%E3%82%B9%E3%82%AD%E3%83%A3...
脆弱性スキャナ「OpenVAS」でのセキュリティチェック
http://knowledge.sakura.ad.jp/tech/342/
”OpenVAS”のインストールと初期設定手順
http://tech.lecume.net/linux/openvas-install
# yum -y install bzip2 … bzip2が必要なのでインストール
# wget -q -O - http://www.atomicorp.com/installers/atomic |sh … リポジトリを追加
# yum -y install openvas … OpenVASをインストール
# openvas-setup … OpenVASをセットアップ(時間がかかる)
https://<IP>:9392
https://192.168.33.10:9392/
■Vagrant環境
インストールできたが、何故かログインできない。原因不明
【OpenVAS】CentOS6.5へのインストールと使い方
http://www.fwoabw.info/entry/2014/03/13/173637
■AWS
以下のエラーが表示されてリポジトリを追加できない。原因不明
Error: Unable to determine distribution type. Please send the contents of /etc/os-release to support@atomicrocketturtle.com
■さくらVPS
以下などのエラーが表示されてインストールできない。原因不明
エラー: パッケージ: openvas-smb-1.0.1-1.el6.art.x86_64 (atomic)
要求: libgssapi.so.3(HEIMDAL_GSS_2.0)(64bit)
以下、色々試したが駄目だった
# yum --enablerepo=atomic install openvas
# yum install epel-release
# yum install openvas-cli openvas-gsa openvas-scanner openvas-manager
Nessusで脆弱性テスト
※マルチプラットフォーム対応の脆弱性スキャナ「Nessus」で、ポートスキャンなどができる
Windowsでも使える脆弱性スキャナ「Nessus」を使う
http://knowledge.sakura.ad.jp/tech/356/
Nessus Home
http://www.tenable.com/products/nessus-home
Download Nessus
http://www.tenable.com/products/nessus/select-your-operating-system
インストールして以下からアクセスする
http://localhost:8834/WelcomeToNessus-Install/welcome
https://localhost:8834/nessus6.html#/
ログイン後、
New Scan → Advanced Scan
を選択してスキャン対象の名前とアドレスを登録する
Name: refirio.net
Targets: 203.0.113.0
スキャンが完了したら結果を一覧表示できるので、必要に応じて対処する
ネットワーク速度計測
※2台のサーバにiperf(アイパーフ)をインストールして計測できる
※未検証
# sudo yum install iperf --enablerepo=epel … iperfをインストール
iperfの通信で使用するポートを開ける。(デフォルトでは5001番)
TCP 5001 from:203.0.113.0/32 … 設定例。お互いの通信を許可する
TCP 5001 from:203.0.113.1/32
# iperf -s … 一方をサーバモードにして待機する
------------------------------------------------------------
Server listening on TCP port 5001
TCP window size: 85.3 KByte (default)
------------------------------------------------------------
# iperf -c 203.0.113.0 -t 60 … もう一方をクライアントモードにして計測する
------------------------------------------------------------
Client connecting to 203.0.113.0, TCP port 5001
TCP window size: 95.2 KByte (default)
------------------------------------------------------------
[ 3] local 203.0.113.1 port 50948 connected with 203.0.113.0 port 5001
[ ID] Interval Transfer Bandwidth
[ 3] 0.0-10.0 sec 1.18 GBytes 1.01 Gbits/sec
# iperf -s … サーバ側にも結果が表示される
------------------------------------------------------------
Server listening on TCP port 5001
TCP window size: 85.3 KByte (default)
------------------------------------------------------------
[ 4] local 127.0.0.1 port 5001 connected with 127.0.0.1 port 32853
[ ID] Interval Transfer Bandwidth
[ 4] 0.0-10.0 sec 16.8 GBytes 14.5 Gbits/sec
その後、サーバとクライアントを逆にして再度計測する
EC2 でネットワークスループットを計測
http://lapped-lapped.blogspot.jp/2014/01/ec2.html
EC2でiperfを使ってネットワークスループットを計測してみた。
http://dev.classmethod.jp/etc/ec2-iperf/
Iperfでネットワークのスループットを測定しよう!
http://qiita.com/tossh/items/6f6abea54b30551622a5
■結果の例(Web1とWeb2はAWS。ExternalはさくらVPS)
以下を前提とする
・サーバとしてWeb1とWeb2を使用する
・一気に600〜1200くらいが見に来ても大丈夫かどうかを調べたい
・ページの容量は2MByteとする
以下が調査結果
※矢印はデータの送信方向
条件:Web1 → Web2
結果:1回目 441Mbps
2回目 461Mbps
3回目 459Mbps
条件:Web2 → Web1
結果:1回目 156Mbps
2回目 173Mbps
3回目 165Mbps
条件:Web1 → External
結果:1回目 87.1Mbps
2回目 90.1Mbps
3回目 85.1Mbps
条件:Web2 → External
結果:1回目 80.1Mbps
2回目 90.2Mbps
3回目 92.7Mbps
条件:External → Web1
結果:1回目 96.6Mbps
2回目 94.1Mbps
3回目 92.3Mbps
条件:External → Web2
結果:1回目 86.6Mbps
2回目 94.4Mbps
3回目 92.2Mbps
以下所見
web1 → External の結果から、Outgoingとして85〜90Mbps出ている
つまり1秒間に85Mbit転送できているので、Outgoingは1秒間に11Mbyte
前提条件より、1分間に1200PVを捌くとしたら、1秒間に20PV捌く必要がある。
計測結果より、2Mbyteのページを表示するなら、1秒間に5PV程度までとなる。
20÷5 で、アクセスを捌ききるまで4秒程度かかるので、通信により最大4秒程度のウェイトがかかることになる
よって、サーバは同時に5人以上を捌けるスペックである必要がある
※AWS内のインフラでは、各インスタンス間のデータ通信量に制限はない模様
一方、AWS外のインフラへの入出力には帯域制限が掛かっている模様
(とは言え、90Mbps前後は出ているので十分ではある)
その他ツール
以下も試したい
手軽にウェブサイトを脆弱性診断 - nikto
http://lab.tricorn.co.jp/kicco/1138
OWASP ZAPの基本的な使い方(手動診断編)
http://securitymemo.blogspot.jp/2014/12/owasp-zap.html
LOAD IMPACT
https://loadimpact.com/
EC2でサーバーに負荷を発生させる stress ツールを使ってみる
http://dev.classmethod.jp/server-side/server/use-stress-tool-on-ec2/
ELBの負荷テストを行う場合の注意
http://qiita.com/takudo/items/1e4dac976cfbd3c775d2