■目次
テスト全般Qualys SSL LabsでSSLの設定状況や信頼性を確認OWASP ZAPで脆弱性テストOpenVASで脆弱性テストNessusで脆弱性テストネットワーク速度計測負荷テストその他ツール
■テスト全般
SEが気づきにくいWebサイトの脆弱性の見つけ方 | イー・アルゴリズム https://e-algorithm.xyz/vulnerability/
■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をセットアップ(時間がかかる) パスワード qazwsxedc 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前後は出ているので十分ではある)
■負荷テスト
※未検証 ec2-benchを利用し、t2.microのインスタンスを同時に10インスタンス起動させ、 各WebサーバのPHPプログラムに対し、一斉にApache Benchを実行して計測を実施。 ※以下の条件は、全て1インスタンスあたりのもの。(x10インスタンスで同時にリクエスト) 条件:同時リクエスト数:10 全リクエスト数:200 instance_type="t2.micro" instance_count="10" request_number="200" client_number="10" 結果:CPU使用率:90% ディスクスワップ:秒間約2.3MByte程度のスワップが発生。 条件:同時リクエスト数:5 全リクエスト数:200 instance_type="t2.micro" instance_count="10" request_number="200" client_number="5" 結果:CPU使用率:75% ディスクスワップ:部分的に、秒間30kbyte程度のスワップが発生。 所見:瞬間同時アクセス数が100になると、Apacheの起動中プロセスだけでは追いつかず、 新たなプロセスの追加起動が必要な分、一気にディスクスワップが発生してしまい、 CPU使用率が90%を超えてしまうため少々危険。 ただし同時アクセス50の場合は、ある程度落ち着いており、 計測中のブラウザアクセスでも、体感的な表示の遅延がないことから、 サーバダウンの心配はないと考えられる。 ※上記結果は全て、ロードバランサを通していない1インスタンスでのものなので、実運用においてはほぼ問題ない。 以上のことから、インスタンスタイプを保険でt2.smallにしておくことで、 問題無くサーバダウンの回避は可能だと判断できる。 Amazon EC2 を使った負荷テストツール "ec2-bench" を作りました http://blog.manabusakai.com/2014/07/ec2-bench/
■その他ツール
以下も試したい 手軽にウェブサイトを脆弱性診断 - 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