114
フリーでやろうぜ! セキュリティチェック! 2015/7/26 JTF2015

フリーでやろうぜ!セキュリティチェック!

  • Upload
    zaki4649

  • View
    15.356

  • Download
    10

Embed Size (px)

Citation preview

Page 1: フリーでやろうぜ!セキュリティチェック!

フリーでやろうぜ!セキュリティチェック!

2015/7/26JTF2015

Page 2: フリーでやろうぜ!セキュリティチェック!

Profile of Speakers

Page 3: フリーでやろうぜ!セキュリティチェック!

Shun Suzaki(洲崎 俊)Twitter: @tigerszk

ユーザ企業のセキュリティチームに所属する「とある診断員」

Satoshi Ogawa(小河哲之)Twitter: @number3to4

アルコール摂取に余念がないセキュリティエンジニア

Yuho Kameda(亀田勇歩)Twitter: @YuhoKameda

世界に羽ばたく OWASP ZAP Evangelist

I‘M A CERTAIN PENTESTER

NO DRINK, NO HACK!

I LOVEOWASP ZAP!

Page 4: フリーでやろうぜ!セキュリティチェック!

脆弱性診断

システムやアプリケーションの脆弱性を発見し、安全性について調査を行うもの

セキュリティベンダがサービスとして提供している最近は自前で商用ツールを導入して、自社内の開発物に検査しているケースも多い

Page 5: フリーでやろうぜ!セキュリティチェック!

一般的な手法~その1~

FW サーバ機器

診断環境 診断対象環境 Webアプリ

NW機器

ブラックボックステスト診断対象システムに対して、疑似攻撃を試行し、応答結果を分析して脆弱性を洗い出す

Attack!

×

診断実施者×

Internet

Page 6: フリーでやろうぜ!セキュリティチェック!

一般的な手法~その2~ホワイトボックステスト

設計書、仕様書、コンフィグファイル、ソースコードなどを分析して、脆弱性を洗い出す

Page 7: フリーでやろうぜ!セキュリティチェック!

ちなみにこんな取り組みもしています(宣伝)

「脆弱性診断士(Webアプリケーション)スキルマップ」http://isog-j.org/activities/result.html

Page 8: フリーでやろうぜ!セキュリティチェック!

やると色々良いことがあります!

• 現状のセキュリティリスクを把握できる

• 設定、実装時のミスを確認できる

• 発見した脆弱性を対策することで、セキュリティインシデントの発生を予防 …

etc

Page 9: フリーでやろうぜ!セキュリティチェック!

しかし現実には、、、

さまざまな諸事情によって、何もチェックされていないシステムやアプリなどがまだまだ多く散見されます…

• コストをかけられない• スケジュールに余裕がない• リソースが足りない• 何をすれば良いかわからない

orz...

Page 10: フリーでやろうぜ!セキュリティチェック!

じゃあそういう場合はどうしようもないのか?

OTEAGE?

Page 11: フリーでやろうぜ!セキュリティチェック!

出来ることはありますよ!

まずは簡単にチェックできることからやりましょう!

あからさまなセキュリティホールを潰すだけでも十分効果があります!

YesWeCan2 / cfishy

Page 12: フリーでやろうぜ!セキュリティチェック!

今回のセッションの主旨

以下をテーマにセキュリティチェックのTipsをご紹介

FREE(無料)

手間がかからない

Easy Button / GotCredit

Page 13: フリーでやろうぜ!セキュリティチェック!

ご注意!!本スライドに記載した行為を自身の管理下にないネットワーク/コンピューターに行った場合は、攻撃行為と判断される場合があります。

最悪の場合、法的措置を取られる可能性もあります。

このようなツールを利用して検査を行う場合は、くれぐれも許可を取った上で、自身の管理下にあるネットワークやサーバーに対してのみ行ってください。

※また、診断実施時には、後述する「脆弱性診断時における注意事項」をご参照していただき、各種準備を行った上で実施をするようにしてください。

Page 14: フリーでやろうぜ!セキュリティチェック!

インフラ編

zoomed in front of server / CWCS Managed Hosting

Page 15: フリーでやろうぜ!セキュリティチェック!

まず何をしないといけないのか

セキュリティ対策を実施するために、サーバやネットワーク機器のどこに問題があるか把握する必要があります。

問題を把握しないと、適切な対策が実施できない。

では、どうやって問題を把握すればいいのでしょうか。

Page 16: フリーでやろうぜ!セキュリティチェック!

まず何をしないといけないのか

2つの観点で、問題点を洗い出すことが可能です。

1. どのサービスが稼働しているのか?

2. 稼働しているサービスにセキュリティ上の問題は?

→ ポートスキャンによる稼働しているサービスの確認

→ 脆弱性スキャンによるセキュリティ上の問題点の確認

Page 17: フリーでやろうぜ!セキュリティチェック!

1. ポートスキャンについて

ポートスキャンにより、どのサービスが稼働しているのかを把握する。

TCP、UDPの各ポートに対して、パケットを送信しサービスの稼働を確認する。

スキャン対象

ポートスキャン

スキャン元

Page 18: フリーでやろうぜ!セキュリティチェック!

1. ポートスキャンについて

ポートスキャンを行う観点は2つあります。

②スキャン対象自体の問題を確認できます。※スキャン対象を操作可能ならnetstatの方が確実

スキャン対象社内NW

インターネットFW②社内から ①インタネット経由

①FWの設定を含めスキャン対象の問題を確認できます。

Page 19: フリーでやろうぜ!セキュリティチェック!

1. ポートスキャンについて

ポートスキャンはTCPとUDPで異なりますが、TCPの中でもいくつか方法があります。

DSTSRC

CONNECTスキャン SYNスキャンDSTSRC

Page 20: フリーでやろうぜ!セキュリティチェック!

1. ポートスキャンについて

ポートスキャンを行うためのアプリケーションとして Nmapがあります。https://nmap.org/ (英語)

Linux、Windows、Mac OS Xや多くのUNIXプラットフォームで実行が可能。NmapはCUIですが、GUIで操作が可能なアプリケーションとしてZenmapがあります。

Page 21: フリーでやろうぜ!セキュリティチェック!

1. ポートスキャンについて

Nmapは複数のオプションがあり、一部抜粋します。-sS ・・・ SYNスキャン -sT ・・・ CONNECTスキャン -sU ・・・ UDPスキャン-sP ・・・ PINGによるホストの探索(ポートスキャンは実施しない)-n ・・・ DNSによる名前解決を行わない-p ポート ・・・ 指定したポートに対してスキャン-A ・・・ アプリケーションのバージョンおよびOSの検出を行う-T 数値 ・・・ スキャンするタイミングを指定する数値(1から5)で実施する-oN ファイル名 ・・・ ファイル名にスキャン結果を出力する-iL ファイル名 ・・・ ファイル名に記載されたホストまたはネットワークを対象-v、-vv ・・・ 詳細情報が出力される

例: nmap -sS -P0 –n –p1-65535 –A –T4 –oN output –vv 対象IP参考サイト:https://nmap.org/man/jp/ (日本語)

Page 22: フリーでやろうぜ!セキュリティチェック!

1. ポートスキャンについて

オプションは状況にあわせて設定してください。

nmap -p1-65535 –sS –A 対象IP

・ TCPのすべてのポートへSYNスキャン。OS、サービス検出。

nmap -sU -P0 対象IP

・ UDPの主要ポートへスキャン。PINGでの確認を行わない。

nmap -sS -sU -p T:80,443,U:53,111 -T4 対象IP

・ TCP、UDPの特定ポートへスキャン。スキャンタイミングを早くする。

Page 23: フリーでやろうぜ!セキュリティチェック!

1. ポートスキャンについて

スキャンにかかる時間は、TCPよりもUDPの方が多くなってしまいます。

TCP: nmap --top-ports 100 対象IP⇒ スキャンにかかった時間:0.09s

UDP: nmap –sU --top-ports 100 対象IP⇒ スキャンにかかった時間:108.43s

※同一PC上に2つの仮想環境を構築し、スキャンを実施。

Page 24: フリーでやろうぜ!セキュリティチェック!

1. ポートスキャンについて

スキャンタイミングを早くすることで、検出精度が悪くなってしまう可能性があります。

タイムアウトの時間が短いため、検出漏れにつながる可能性があります。また、nmapのタイミング(-Tオプション)は「3」、zenmapは「4」ですが、「5」にした場合、スキャン対象の負荷が高まる可能性があります。

Page 25: フリーでやろうぜ!セキュリティチェック!

1. ポートスキャンについて

以下は「-A」オプションを付与した結果を抜粋したものです。53/tcp open domain ISC BIND 9.4.2| dns-nsid:|_ bind.version: 9.4.280/tcp open http Apache httpd 2.2.8 ((Ubuntu) DAV/2)~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~Device type: general purposeRunning: Linux 2.6.X

ポートの稼働状況やアプリケーションの情報、スキャン対象のOSに関する情報を取得することが可能です。

Page 26: フリーでやろうぜ!セキュリティチェック!

1. ポートスキャンについて

スキャン結果を以下の観点で確認してみてください。

① 稼働するサービスの中で、必要なものとそうでないものを確認する。

② 不要なサービスは止める。止めることの影響が不明な場合、FWなどでアクセス制限をかける。

③ 稼働するサービスでアプリケーションのバージョンなどの情報は出力しないように、設定を見直す。

Page 27: フリーでやろうぜ!セキュリティチェック!

脆弱性スキャンは、稼働するアプリケーションのセキュリティ上の問題点を確認し、適切な対応を取るために利用します。一般的に2つの観点で問題の確認を行います。

実査

疑似攻撃を行い、挙動から問題点の有無を検査する。例:TCP25ポート(SMTP)でメールのリレーが可能か確認する。

バージョン情報のチェック

取得されたバージョン情報を基に既知の脆弱性を報告する。例:レスポンスの「Apache2.2.4」を基に報告。

2. 脆弱性スキャンについて

Page 28: フリーでやろうぜ!セキュリティチェック!

脆弱性スキャンを行うツールは複数存在します。今回は、オープンソースであるOpenVASをご紹介します。

2. 脆弱性スキャンについて

http://www.openvas.org (英語)

Page 29: フリーでやろうぜ!セキュリティチェック!

ログイン画面 トップ画面

2. 脆弱性スキャンについて

Page 30: フリーでやろうぜ!セキュリティチェック!

OpenVASで脆弱性スキャンを行う手順は以下です。

認証情報の設定

Portの設定

Targetの設定

Taskの設定

脆弱性スキャン

結果の確認

対策の実施

Immediately scanの設定

設定しない、またはテンプレートを用いることで省略可能です。

OpenVASを用いて実施可能です。

スキャン結果にあわせて実施する必要があります。

2. 脆弱性スキャンについて

Page 31: フリーでやろうぜ!セキュリティチェック!

Immediately scanは、トップ画面でIPアドレスまたはホスト名を入力し、「Start Scan」を押下すると脆弱性スキャンが開始されます。

UDPのチェックが行われないため、DNSなどのUDPに対するチェックを行いたい場合、別途設定する必要があります。

2. 脆弱性スキャンについて

Page 32: フリーでやろうぜ!セキュリティチェック!

認証情報を設定することで、より多くの項目をチェックできるようになります。

認証機能 アプリケーションやカーネルなど

認証情報を設定されていない場合

認証情報を設定されている場合

2. 脆弱性スキャンについて

Page 33: フリーでやろうぜ!セキュリティチェック!

同じ対象に対してスキャンを行った場合でも、認証情報の有無によりスキャン結果は変わってしまいます。

High Medium Low Log

認証情報あり 129 161 25 87

認証情報なし 26 37 8 74

0

20

40

60

80

100

120

140

160

180

検出数

2. 脆弱性スキャンについて

Page 34: フリーでやろうぜ!セキュリティチェック!

認証情報の設定方法は以下です。環境に合わせて実施を検討することが好ましいです。

2. 脆弱性スキャンについて

Page 35: フリーでやろうぜ!セキュリティチェック!

2. 脆弱性スキャンについて

Page 36: フリーでやろうぜ!セキュリティチェック!

Portの設定はテンプレートを利用することで割愛することも可能ですが、ポートスキャンの結果などからカスタマイズすることも可能です。

2. 脆弱性スキャンについて

Page 37: フリーでやろうぜ!セキュリティチェック!

カスタマイズする場合、テンプレートをコピーして修正する方が手間が少ないです。

ベースとするテンプレートの「clone」を押下する。

2. 脆弱性スキャンについて

Page 38: フリーでやろうぜ!セキュリティチェック!

2. 脆弱性スキャンについて

Page 39: フリーでやろうぜ!セキュリティチェック!

「Start」と「End」で入力された数値を含む間にあるポートを対象として設定することが可能です。

2. 脆弱性スキャンについて

Page 40: フリーでやろうぜ!セキュリティチェック!

スキャン対象に関する情報を設定します。

2. 脆弱性スキャンについて

Page 41: フリーでやろうぜ!セキュリティチェック!

2. 脆弱性スキャンについて

Page 42: フリーでやろうぜ!セキュリティチェック!

スキャン対象のIPアドレスまたはホスト名を設定します。

「Port List」でカスタマイズしたPortの設定を選択可能です。また、認証情報は「SSH」、「SMB」、「ESXi」で選択可能です。

2. 脆弱性スキャンについて

Page 43: フリーでやろうぜ!セキュリティチェック!

Taskを設定し、スキャン対象に対してスキャンを実施します。

2. 脆弱性スキャンについて

Page 44: フリーでやろうぜ!セキュリティチェック!

「Scan Targets」にTargetで設定したものを選択します。

「Scan Config」では、スキャンパターンを選択します。 「Full andvery deep」を推奨します。

2. 脆弱性スキャンについて

Page 45: フリーでやろうぜ!セキュリティチェック!

「Start」を押下するとスキャンが開始されます。

2. 脆弱性スキャンについて

Page 46: フリーでやろうぜ!セキュリティチェック!

スキャンの進捗は「Status」に表示されます。

2. 脆弱性スキャンについて

Page 47: フリーでやろうぜ!セキュリティチェック!

スキャンの結果を確認します。

2. 脆弱性スキャンについて

Page 48: フリーでやろうぜ!セキュリティチェック!

2. 脆弱性スキャンについて

Page 49: フリーでやろうぜ!セキュリティチェック!

検出された脆弱性ごとに、適切な対策を行う必要があります。

2. 脆弱性スキャンについて

Page 50: フリーでやろうぜ!セキュリティチェック!

優先度に応じて対策を実施していくのが好ましいです。優先度は「Severity」を指標として選定することも可能です。

リンクなどの参考情報を総合的に判断されることを推奨いたします。

2. 脆弱性スキャンについて

Page 51: フリーでやろうぜ!セキュリティチェック!

スキャン結果を指定する形式で出力すること可能です。

2. 脆弱性スキャンについて

Page 52: フリーでやろうぜ!セキュリティチェック!

検出された脆弱性については、以下のサイトなどで内容を確認することができます。各サイトに記載されるCVSSの値も含めて、総合的に判断されることがいいかもしれません。※CVSSとは脆弱性の深刻度を評価するための手法です。

2. 脆弱性スキャンについて

JVNDB(日本語)http://jvndb.jvn.jp/index.htmlSecurity Focus(英語)http://www.securityfocus.com/vulnerabilities

Page 53: フリーでやろうぜ!セキュリティチェック!

検出された脆弱性の管理を行うための機能があります。

はメモを残せる機能になっており、 は脆弱性を再評価するための機能になっています。

2. 脆弱性スキャンについて

Page 54: フリーでやろうぜ!セキュリティチェック!

は検出された脆弱性に対して、引き継ぎ事項などのメモを残すことで複数名で対応する場合にミスの軽減が期待できます。

2. 脆弱性スキャンについて

Page 55: フリーでやろうぜ!セキュリティチェック!

は検出された脆弱性が、誤検知であった場合などのようにリスクを再度評価する必要があるときに便利な機能となっています。

2. 脆弱性スキャンについて

Page 56: フリーでやろうぜ!セキュリティチェック!

Nmapにも脆弱性スキャンの機能が実装されています。

nmap --script [カテゴリ名|ファイル名|など] 対象IP

カテゴリ名は、auth、broadcast、brute、default、discovery、dos、exploit、external、fuzzer、intrusive、malware、safe、version、vulnの14つカテゴリおよびallを指定できます。参考サイト:http://nmap.org/book/nse.html (英語)

2. 脆弱性スキャンについて

Page 57: フリーでやろうぜ!セキュリティチェック!

2. 脆弱性スキャンについて

カテゴリを複数指定することも可能です。

nmap --script auth,vuln,safe,version 対象IP

結果の一部抜粋ssl-heartbleed:VULNERABLE:The Heartbleed Bug is a serious vulnerability in the popular OpenSSL

nmap --script ssl-heartbleed.nse 対象IP

特定のスキャン項目をファイル名で指定することも可能です。

Page 58: フリーでやろうぜ!セキュリティチェック!

スキャン頻度について

どこまでスキャンをすればいいのでしょうか。

<理想>すべての環境に対して、4半期に1回スキャンを実施し、新規構築環境は公開前にスキャンを実施する。検出された問題をすべてクリアする。

※PCI DSSを参考にしています

Page 59: フリーでやろうぜ!セキュリティチェック!

スキャン頻度について

<推奨>を状況に合わせてカスタマイズいただければと思います。

<推奨>外部に公開されている環境に対して、1年に1回スキャンを実施し、新規構築環境は、公開前にスキャンを実施する。Severityが4(Medium)以上をクリアする。対応が困難な脆弱性が存在する場合は、代替案によるリスク軽減を実施する。 ※PCI DSSを参考にしています

Page 60: フリーでやろうぜ!セキュリティチェック!

お願い

定期的に実施することが非常に難しいです・・・。

ですが、ちょっとでもセキュリティに興味を持っていただき、運用に組み込んでいただけると、すごくうれしいです!!

Page 61: フリーでやろうぜ!セキュリティチェック!

お願い

もしも、夜叉の構えでバットを振り回す人がいればその間にスキャンを回してもらうように、お伝えてください。

Page 62: フリーでやろうぜ!セキュリティチェック!

Webアプリ編

HTTPS / Christiaan Colen

Page 63: フリーでやろうぜ!セキュリティチェック!

Webアプリ診断について

• なぜWebアプリ診断が必要なのか?

– Webアプリに存在する脆弱性の発見

–バグや設定不備の残存を確認

• Webアプリに脆弱性があるとどうなるのか?

–サーバ内に存在するデータの流出

– Webページ改ざんによるマルウェアの拡散

Page 64: フリーでやろうぜ!セキュリティチェック!

Webアプリ診断に使えるフリーツール

• OWASP ZAP (Zed Attack Proxy)– 簡単に使えるフリーの脆弱性診断ツール

– ローカルProxyツール• https://github.com/zaproxy/zaproxy/

• https://www.owasp.org/index.php/OWASP_Zed_Attack_Proxy_Project

– ユーザコミュニティが活発• Developer Group / User Group

• 日本語翻訳チーム など

Page 65: フリーでやろうぜ!セキュリティチェック!

どのように診断するのかPOST /confirm.php HTTP/1.1Host: example.jp(以下略)Cookie: PHPSESSID=xxxxxxxxxx

name=username&mail=user%40example.jp”>xss&gender=1

正常なリクエストを改ざんし、診断用文字列を送り付けた応答結果を確認する

Page 66: フリーでやろうぜ!セキュリティチェック!

Webアプリ診断で検出できること

• 攻撃に繋がる危険性のある脆弱性の検出

– SQLインジェクション

– クロスサイトスクリプティング

– コマンドインジェクション

–ディレクトリ・トラバーサル

– HTTPヘッダインジェクション など

Page 67: フリーでやろうぜ!セキュリティチェック!

簡単にできるWebアプリ自動診断

• ZAPを使って自動診断してみる

1. 診断範囲の設定

2. スパイダー機能

3. 動的スキャン機能

4. ディレクトリ探査機能

5. アラート機能(レポート)

6. 検出結果を分析

Page 68: フリーでやろうぜ!セキュリティチェック!

今回の診断対象

• OWASP BWA(The Broken Web Applications)

• Bodge It

–様々な脆弱性が残っているWebアプリケーション

– 「about」ページから、どの脆弱性を見つけることが出来たかチェックできる (トレーニング機能)

Page 69: フリーでやろうぜ!セキュリティチェック!

診断範囲の設定

• 診断対象を認識し、外部への通信を行わない

この場合、「bodgeit」ディレクトリ配下へ設定

Page 70: フリーでやろうぜ!セキュリティチェック!

動的スキャン機能• 開始URLを選択し、動的スキャンを行う

• ページアクセス時のリクエストを改ざんし検査

Page 71: フリーでやろうぜ!セキュリティチェック!

動的スキャン機能各パラメータに対して診断用文字列を埋め込み送信し、レスポンス内容を分析し脆弱性の存在を判定する。

ここでは、「’”<script>alert(1);</script>」を送信している。

Page 72: フリーでやろうぜ!セキュリティチェック!

スパイダー機能

• 診断対象内のリンク情報をクローリングする機能

Page 73: フリーでやろうぜ!セキュリティチェック!

スパイダー機能

Page 74: フリーでやろうぜ!セキュリティチェック!

スパイダー機能

ページ内のリンクを順に辿ってページ収集する機能

Page 75: フリーでやろうぜ!セキュリティチェック!

ディレクトリ探査機能

• 存在するディレクトリを総当たりチェック

• チェックする種類– デフォルトで存在しやすい名前

– 狙われやすいサービス名

など

Page 76: フリーでやろうぜ!セキュリティチェック!

アラート機能(レポート)

• 自動検出した脆弱性の結果を確認

Page 77: フリーでやろうぜ!セキュリティチェック!

検出した結果を再現して確認

送信時のリクエストを確認可能

Page 78: フリーでやろうぜ!セキュリティチェック!

検査したい箇所を手動で診断

診断用リクエストを手動で入力することができる

Page 79: フリーでやろうぜ!セキュリティチェック!

実際に検出する脆弱性の事例

• SQLインジェクション

– 脅威例

• データベース内の改ざん、漏えい

• 認証を回避した不正ログイン

– 対策例

• 適切なエスケープ処理、バインド機構の利用

• システムエラーの非表示

• その他の対策はAppendix[安全なウェブサイトの作り方]を参照!

顧客の情報を扱ってるな…

管理画面も…‼

Page 80: フリーでやろうぜ!セキュリティチェック!

実際に検出する脆弱性の事例

• クロスサイト・スクリプティング

– 脅威例

• 悪意があるスクリプトの挿入

• Cookie漏えいによる「なりすまし」

– 対策例

• 適切なエスケープ処理

• ダブルクォート(“)で囲う

• その他の対策はAppendix[安全なウェブサイトの作り方]を参照!

資料請求や質問掲示板を

実装したばかり…

Page 81: フリーでやろうぜ!セキュリティチェック!

検出結果を分析

• 検出した脆弱性が再現するか確認

• 検出した脆弱性がサービスに与えるリスクを把握

–管理する個人情報データの漏えい

–管理画面への侵入や乗っ取り など

• 修正できる脆弱性は対策を検討する

–危険度の高い脆弱性について関係者へ報告

– Webエンジニアへ検出した内容を伝え修正依頼

Page 82: フリーでやろうぜ!セキュリティチェック!

スキャン頻度について

どこまでスキャンをすればいいのでしょうか。

<理想>すべてのサイトに対して、1年に1回スキャンを実施し、新規Webサービスは公開前にスキャンを実施する。検出された問題をすべてクリアする。

※PCI DSSを参考にしています

Page 83: フリーでやろうぜ!セキュリティチェック!

スキャン頻度について

<推奨>を状況に合わせてカスタマイズいただければと思います。

<推奨>リリース時にリリースする機能のみ診断し、危険度の高い脆弱性を修正する。対応が困難な脆弱性が存在する場合は、代替案によるリスク軽減を実施する。

※PCI DSSを参考にしています

Page 84: フリーでやろうぜ!セキュリティチェック!

参考情報

• ZAPに関する過去の発表資料– https://www.owasp.org/index.php/User:Yuho_Kameda

• OWASP ZAP Japan Group– https://groups.google.com/forum/#!forum/owasp-zaproxy-japan

• OWASP ZAP User Group(英語)– https://groups.google.com/forum/#!forum/zaproxy-users

• OWASP ZAP (Zed Attack Proxy)関連記事– http://www.pupha.net/owasp-zap/

Page 85: フリーでやろうぜ!セキュリティチェック!

最後に

Page 86: フリーでやろうぜ!セキュリティチェック!

出来ることからコツコツと!それが安全へとつながります!

Page 87: フリーでやろうぜ!セキュリティチェック!

Enjoy Vulnerability Scanning!

Page 88: フリーでやろうぜ!セキュリティチェック!

Appendix

知っておくとお役に立ちそうな参考情報をまとめました!もしご興味があればご参照ください。

Page 89: フリーでやろうぜ!セキュリティチェック!

脆弱性診断時における注意事項

Page 90: フリーでやろうぜ!セキュリティチェック!

診断の注意事項 ー診断対象のプラットフォームに関することー

診断対象プラットフォームが、ホスティング環境やクラウドサービスを利用しているような場合には、不正アクセスとして判断されないために、事前に必ず管理元に許可を取得するようにしてください。クラウドサービスによっては以下のように専用の申し込み窓口があるものもあります。

• 侵入テスト AWS セキュリティセンターhttps://aws.amazon.com/jp/security/penetration-testing/

• Microsoft Azure での侵入テスト (ペネトレーションテスト) の申請についてhttp://blogs.msdn.com/b/dsazurejp/archive/2014/10/15/microsoft-azure-penetration-test-request.aspx

また、診断対象をIDS、IPSなどで監視をしている場合には、脆弱性診断作業によってアラートが上がってしまう可能性があります。そのため関係者に対して、事前に脆弱性診断を実施する旨の通知と一時的にアクセス元IPからの通信を非監視にしていただくなどの対応をお願いすべきでしょう。

Page 91: フリーでやろうぜ!セキュリティチェック!

診断の注意事項 ーWebアプリケーションに関することー

ご紹介したWebアプリケーションの脆弱性診断はアプリケーションに対して色々な値を送信し、処理させてみて、その挙動を確認していく手法となります。

診断するアプリケーションの作りによっては、多量なDBへの書き込み、メール送信など副次的影響を及ぼす可能性があります。

このため、システムへの影響を鑑み、下記2点について推奨いたします。1. テスト環境やステージング環境などで診断を実施2. 診断事前のデータバックアップ

Page 92: フリーでやろうぜ!セキュリティチェック!

ホワイトボックステスト系お役立ちツール

Page 93: フリーでやろうぜ!セキュリティチェック!

OWASP Dependency Check

https://www.owasp.org/index.php/OWASP_Dependency_Check

• 指定したディレクトリとファイルをスキャンし、脆弱性が報告されているようなライブラリを利用していないかチェックしてくれるツール

• 指定した範囲内のファイルを解析し、NVD CVEデータベース情報を利用して、脆弱性が報告されているライブラリの利用があるかをレポート出力してくれる

• 実行するにはJava環境が必要であり、コマンドライン以外にも、以下のような連携プラグインが用意されている– Maven Plugin– Ant Task– Jenkins Plugin

• 現在はJava・.Net・pythonアプリケーションをサポートしているとのこと

Page 94: フリーでやろうぜ!セキュリティチェック!

スキャン対象範囲から脆弱性が報告されているライブラリの利用を検出

Page 95: フリーでやろうぜ!セキュリティチェック!

検出したライブラリに報告されている脆弱性情報の詳細を出力

Struts 1.x系に報告されているStruts: ClassLoaderの操作を許してしまう脆弱性(CVE-2014-0114)を指摘

Page 96: フリーでやろうぜ!セキュリティチェック!

Microsoft Baseline Security Analyzer(MBSA)

https://technet.microsoft.com/ja-jp/security/cc184924.aspx

• Windows OSにおける以下項目についてスキャンして状態をレポートしてくれるマイクロソフトが提供しているツール

– セキュリティ更新プログラムの適用状況– 脆弱性があるWindowsの構成上の問題– IISの状態– SQL Serverの状態– IE及びOffice製品の状態

Page 97: フリーでやろうぜ!セキュリティチェック!

未適用のセキュリティ更新プログラムの一覧を表示

Page 98: フリーでやろうぜ!セキュリティチェック!

設定上の問題なども検出してくれる

Page 99: フリーでやろうぜ!セキュリティチェック!

検証やトレーニングに使えるもの

※注 ご紹介するシステムは本当に脆弱性が盛り込まれたものとなっておりますので、公開範囲を限定した形で利用するようにしてください。

Page 100: フリーでやろうぜ!セキュリティチェック!

OWASP BWA(The Broken Web Applications)

https://www.owasp.org/index.php/OWASP_Broken_Web_Applications_Project

• 意図的に脆弱性が盛り込まれたWebアプリケーションが動作しているサーバの仮想マシンイメージを配布している

• 以下のカテゴリに分かれた複数の様々な練習用Webアプリケーションを利用できる– Training Applications– Realistic, Intentionally Vulnerable Applications– Old Versions of Real Applications– Applications for Testing Tools– Demonstration Pages / Small Applications

Page 101: フリーでやろうぜ!セキュリティチェック!

用途ごとに分かれた多数の検証用Webアプリを利用できる

Page 102: フリーでやろうぜ!セキュリティチェック!

AppGoat

http://www.ipa.go.jp/security/vuln/appgoat/

• IPA(独立行政法人情報処理推進機構)が公開している開発者をターゲットとして公開されている脆弱性体験学習ツール

• 実習形式で脆弱性の発見方法や対策の取り方を学習できる• ローカルPC上で演習を行うことを前提にした形式にて配布されている• 以下の二種類がある

– ウェブアプリケーション版– サーバ・デスクトップアプリケーション版

Page 103: フリーでやろうぜ!セキュリティチェック!

実習形式で脆弱性の発見方法や対策を学習できる

Page 104: フリーでやろうぜ!セキュリティチェック!

Metasploitable

http://sourceforge.net/projects/metasploitable/files/Metasploitable2/

• MetasploitFrameworkによるペネトレーションテストのトレーニングやテストに使用するための脆弱性が沢山盛り込まれているサーバシステム

• Ubuntuベースで構築されたシステムで仮想イメージにて配布されている

• 複数の脆弱性が存在サービスが起動しており、インフラ系の脆弱性診断ツールなどの検証に最適

Page 105: フリーでやろうぜ!セキュリティチェック!

Webアプリ診断に関するドキュメント

Page 106: フリーでやろうぜ!セキュリティチェック!

安全なウェブサイトの作り方

http://www.ipa.go.jp/security/vuln/websecurity.htmlhttp://www.ipa.go.jp/files/000017316.pdf

• IPA(独立行政法人 情報処理推進機構)には、脆弱性の届け出を受け付けるシステムが存在し、届け出が多かった情報をもとに作成されている

• 全部で3章構成となっており、それぞれで安全なウェブサイトを作るための例が紹介されている– 第1章: ウェブアプリケーションのセキュリティ実装– 第2章: ウェブサイトの安全性向上のための取り組み– 第3章: 失敗例

Page 107: フリーでやろうぜ!セキュリティチェック!

ウェブ健康診断仕様

http://www.ipa.go.jp/security/vuln/websecurity.htmlhttps://www.ipa.go.jp/files/000017319.pdf

• 地方公共団体が運営するウェブサイトの改ざん防止等を目的として作成された

• 具体的な診断仕様が取り上げられており、「基本的な対策」ができているかを診断するもの– この診断仕様に記されている検査パターンは絞り込まれたものであるため、脆弱性が存在しないことを約束するものではありません。

• 診断仕様– 各脆弱性の危険度、総合判定基準– 診断項目毎の検出パターン(目安)、判定基準、対象画面

Page 108: フリーでやろうぜ!セキュリティチェック!

開発を外部委託する際などに利用できるもの

Page 109: フリーでやろうぜ!セキュリティチェック!

Webシステム/Webアプリケーション要件書

https://www.owasp.org/images/8/88/Web_application_security_requirements.pdf

• OWASP Japanのプロジェクトとして公開された安全なWebアプリケーションの開発に必要なセキュリティ要件記載された文書

• 開発時の要求仕様やRFP(提案依頼書)に盛り込むべき要件がまとめられている

• 開発言語やフレームワークには依存しないで利用可能

Page 110: フリーでやろうぜ!セキュリティチェック!

セキュリティ情報の収集

Page 111: フリーでやろうぜ!セキュリティチェック!

IPA・ JPCERT/CCメーリングリスト

IPA:独立行政法人情報処理推進機構 メールニュース

http://www.ipa.go.jp/about/mail/index.html

JPCERT/CCメーリングリスト

https://www.jpcert.or.jp/announce.html

• 緊急性の高いセキュリティ情報(重大な脆弱性、流行している攻撃やマルウェア情報など)についての情報配信しているメーリングリスト

Page 112: フリーでやろうぜ!セキュリティチェック!

JVN:Japan Vulenability Notes

https://jvn.jp/index.html

• IPAとJPCERTが共同で運営する、日本で使用されているソフトウェアその他の脆弱性とその対策情報を提供するサイト

• 発見された脆弱性の内容や対応状況、ユーザー側の対策をデータベースから確認できる

JVN iPedia 脆弱性対策情報データベース

http://jvndb.jvn.jp/

Page 113: フリーでやろうぜ!セキュリティチェック!

piyolog

http://d.hatena.ne.jp/Kango/

• 日々発生するセキュリティインシデントの情報を迅速かつ正確にまとめていらっしゃる@piyokangoさんのサイト

• セキュリティ業界の方々も情報源として注目して見ている• インシデント情報以外にも、緊急性の高い脆弱性についても、現時点で判明している概要・影響範囲・他情報サイトへのリンクなどの情報を、かなり早いタイミングにてまとめてくださっている非常に貴重なサイト

Page 114: フリーでやろうぜ!セキュリティチェック!

Twitterセキュリティネタまとめ

http://twitmatome.bogus.jp/

• dailyでセキュリティ関連の気になったtweetをまとめてくれている@yousukezanさんのサイト

• Twitter上の情報は速報性が高いため、流行っている話題などを追いかけたい方はこちらのまとめを参照するのが良い思われる

• ちなみに@ITで一ヶ月単位での「まとめのまとめ」の記事も連載

「セキュリティクラスターまとめのまとめ」最新記事一覧http://www.atmarkit.co.jp/ait/kw/matomematome.html