■自宅「Red Team Testing」をmetasploit2+KaliLinuxで試すための準備をする。 レッドチームについての説明はFireEyeの下記が分かりやすい。 Red Team Operations Video Training https://www.fireeye.jp/services/red-team-operations/red-team-operations-video-training.html ■やられサーバとしてMetasploitable2、攻撃サーバとしてkali linuxをダウンロード。 ダウンロードに随分と時間を必要とするようなので、準備についてまとめてみる。 Download metasploitable-linux-2.0.0.zip (873.1 MB) https://sourceforge.net/projects/metasploitable/files/Metasploitable2/ Download Kali Linux Images https://www.kali.org/downloads/ ■アプリケーションの10大脅威はOWASP(Open Web Application Security Project)から発行されている。 OWASP Top 10 Application Security Risks - 2017 $ w3m -dump "https://www.owasp.org/index.php/Top_10_2017-Top_10" | grep ^A A1-Injection A2-Broken Authentication and Session Management A3-Cross-Site Scripting (XSS) A4-Broken Access Control A5-Security Misconfiguration A6-Sensitive Data Exposure A7-Insufficient Attack Protection A8-Cross-Site Request Forgery (CSRF) A9-Using Components with Known Vulnerabilities A10-Underprotected APIs ■OWASPの日本語訳はセキュリティの老舗であるLACの情報が多い。 DB、Webサーバ、認証といったキーワードに対する攻撃がほとんど。 $ w3m -dump "https://www.lac.co.jp/lacwatch/people/20170424_001276.html" | grep "^A[0-9]*:" A1: Injection(インジェクション) A2: Broken Authentication and Session Management(認証とセッション管理の不備) A3: Cross-Site Scripting(クロスサイトスクリプティング) A4: Broken Access Control(アクセス制御の不備) A5: Security Misconfiguration(セキュリティ設定のミス) A6: Sensitive Data Exposure(機密データの露出) A7: Insufficient Attack Protection(不十分な攻撃保護) A8: Cross-Site Request Forgery(クロスサイトリクエストフォージェリ) A9: Using Components with Known Vulnerabilities(既知の脆弱性を持つコンポーネン A10: Underprotected APIs(保護されていないAPI) ■JPCERT CCからは、「OWASPアプリケーションセキュリティ検証標準」として日本語訳が出ている。 https://www.jpcert.or.jp/securecoding/materials-owaspasvs.html ■他にもOWASPの日本語の情報は適切なキーワードで探すと結構見つかる。 OWASP Top 10 - 2017 の紹介 http://www.ogis-ri.co.jp/otc/hiroba/technical/intro-owasp-top10-2017/ ■IPAから発行されている10大脅威について $ w3m -cols -dump "https://www.ipa.go.jp/security/vuln/10threats2017.html" | \ grep -A 30 "「情報セキュリティ10大脅威.2017」\$" ■「情報セキュリティ10大脅威 2017」 ┌────┬──────────────────────────────────────────┬────┬──────────────────────────────────────────┬────┐ │昨年│ 個人 │順位│ 組織 │昨年│ │順位│ │ │ │順位│ ├────┼──────────────────────────────────────────┼────┼──────────────────────────────────────────┼────┤ │1位 │インターネットバンキングやクレジットカード│1位 │標的型攻撃による情報流出 │1位 │ │ │情報の不正利用 │ │ │ │ ├────┼──────────────────────────────────────────┼────┼──────────────────────────────────────────┼────┤ │2位 │ランサムウェアによる被害 │2位 │ランサムウェアによる被害 │7位 │ ├────┼──────────────────────────────────────────┼────┼──────────────────────────────────────────┼────┤ │3位 │スマートフォンやスマートフォンアプリを狙っ│3位 │ウェブサービスからの個人情報の窃取 │3位 │ │ │た攻撃 │ │ │ │ ├────┼──────────────────────────────────────────┼────┼──────────────────────────────────────────┼────┤ │5位 │ウェブサービスへの不正ログイン │4位 │サービス妨害攻撃によるサービスの停止 │4位 │ ├────┼──────────────────────────────────────────┼────┼──────────────────────────────────────────┼────┤ │4位 │ワンクリック請求等の不当請求 │5位 │内部不正による情報漏えいとそれに伴う業務停│2位 │ │ │ │ │止 │ │ ├────┼──────────────────────────────────────────┼────┼──────────────────────────────────────────┼────┤ │7位 │ウェブサービスからの個人情報の窃取 │6位 │ウェブサイトの改ざん │5位 │ ├────┼──────────────────────────────────────────┼────┼──────────────────────────────────────────┼────┤ │6位 │ネット上の誹謗・中傷 │7位 │ウェブサービスへの不正ログイン │9位 │ ├────┼──────────────────────────────────────────┼────┼──────────────────────────────────────────┼────┤ │8位 │情報モラル欠如に伴う犯罪の低年齢化 │8位 │IoT機器の脆弱性の顕在化 │ラン│ │ │ │ │ │ク外│ ├────┼──────────────────────────────────────────┼────┼──────────────────────────────────────────┼────┤ │10位│インターネット上のサービスを悪用した攻撃 │9位 │攻撃のビジネス化 │ラン│ │ │ │ │(アンダーグラウンドサービス) │ク外│ ├────┼──────────────────────────────────────────┼────┼──────────────────────────────────────────┼────┤ │ラン│IoT機器の不適切な管理 │10位│インターネットバンキングやクレジットカード│8位 │ │ク外│ │ │情報の不正利用 │ │ └────┴──────────────────────────────────────────┴────┴──────────────────────────────────────────┴────┘ ■IPAでは対策についてもまとめられている。 対策のしおり https://www.ipa.go.jp/security/antivirus/shiori.html 攻撃シナリオと対応機器の概要(別紙) https://www.ipa.go.jp/files/000037516.pdf 「高度標的型攻撃」対策に向けたシステム設計ガイド https://www.ipa.go.jp/files/000046236.pdf ■標的型攻撃のシナリオの例 $ w3m -cols 160 -dump https://www.trendmicro.com/ja_jp/security-intelligence/research-reports/threat-solution/apt.html | \ grep -A 8 "段階に分類" 攻撃開始から目的達成まで、標的型サイバー攻撃の攻撃手順は、以下の段階に分類できます 1. 事前準備:攻撃標的の決定、標的とその周辺への偵察による情報入手、初期潜入用不正プログラムやC&Cサーバの準備 2. 初期潜入:標的型メールの送信、受信者による添付不正プログラム実行、公開サーバへの脆弱性攻撃による侵入 3. 端末制御:感染環境と所属するネットワーク情報の確認、バックドア型不正プログラムによる標的内端末への感染 4. 情報探索:内部活動ツールのダウンロード、ネットワーク内の情報探索 5. 情報集約:重要情報の収集 6. 情報送出:収集した重要情報の外部入手 ■上記のうち、「初期潜入」の「公開サーバへの脆弱性攻撃による侵入」について検証する。 スキャン(nmapやOpenVAS/Nessus)で出来る範囲で、 FW(iptables)/IPS/IDS(snort)/WAF(modsecurity)/smtppostfix+clamav+Spamassasin/squid+SquidGuardなど、 入口、出口対策は行ってきた。 DebianSqueezeにOpenVASの導入 http://d.hatena.ne.jp/labunix/20121024 Fortigate-80CのWAN側の待ち受けポートについて http://labunix.hateblo.jp/entry/20150223/1424702993 ■対策してきた入口、出口対策とは、「攻撃者が難易度が高いので諦める」ことを目的として、 脆弱性情報を使った侵入や、認証情報の奪取、バックドアの作成などの手前の 以下の4つの段階のスキャン行為に無用な情報を開示しない方法についてだった。 IPやDNS名の特定 外部に開放されているポート番号の特定 ポート番号が出力する使用しているシステムやアプリケーションのバージョン等の情報 バージョン等の情報から既知の脆弱性情報との紐付け ■実際に侵入された場合を想定したサンドボックスを導入するようになり、 内部セキュリティについても自分自身ですら忘れると大変な環境にはしてきたつもりだが、 例えばtripwireを導入していても、正規と同じ手順なら意味をなさないはず。 仮想マシンdebian stretchのプロキシ環境でCuckoo Sandboxを導入する http://labunix.hateblo.jp/entry/20171009/1507550774 chkrootkit、tripwire、clamavチェック http://d.hatena.ne.jp/labunix/20120830 ■「攻撃者が難易度が高くて諦めない」場合に侵入された後、 どの程度の攻撃に耐えられるのかを検証したい。 具体的には脆弱性の利用、リモートでのファイルコピーや操作についてであり、 認証が「anonymous」なのは問題外だし、そのような設定はしていないので、 認証情報を必要とする環境を想定。 「国内標的型サイバー攻撃分析レポート 2016年版」を公開 http://sp.trendmicro.co.jp/jp/about-us/press-releases/articles/20160509023452.html 「国内標的型サイバー攻撃分析レポート 2017年版」を公開 https://www.trendmicro.com/ja_jp/about/press-release/2017/pr-20170427-01.html ■余談ながら、SplunkやElasticserchの有用性も確認したい。 Splunk評価版をdebパッケージでインストールしてみた。 http://labunix.hateblo.jp/entry/20151118/1447785292 splunk評価版をdebパッケージでdebian stretchに導入する。 http://labunix.hateblo.jp/entry/20170822/1503346155 「Splunk Universal Forwarder」for Windows7x64を導入してみる。 http://labunix.hateblo.jp/entry/20151119/1447941593 debian strechにElasticsearchを導入してみる。 http://labunix.hateblo.jp/entry/20170919/1505756664 ■やられサーバのリスト バックアップについても色々対策しているとはいえ、 いきなり本番環境を壊すのも困るし、 脆弱性に対策済みだったり、そもそも危険だと思って稼働させていないサービスの検証は出来ないので、 評価のためのやられサーバが必要になる。 armitage http://www.fastandeasyhacking.com/download armitage manual http://www.fastandeasyhacking.com/manual metasploitable3 https://github.com/rapid7/metasploitable3 DVWA http://www.dvwa.co.uk/ 脆弱性体験学習ツール AppGoat https://www.ipa.go.jp/security/vuln/appgoat/ OWASP Broken Web Applications Project https://sourceforge.net/projects/owaspbwa/files/ owaspbwa - UserGuide.wiki https://code.google.com/archive/p/owaspbwa/wikis/UserGuide.wiki WebGoat 8.0 https://github.com/WebGoat/WebGoat What is WebGoat? https://github.com/WebGoat/WebGoat/wiki OWASP Mutillidae II https://sourceforge.net/projects/mutillidae/ OWASP Mutillidae 2 Project https://www.owasp.org/index.php/OWASP_Mutillidae_2_Project ■やられサーバには、armitageのようなmetasploitのGUIではなく、 metasploitable2を選択したので、 「脆弱性の利用」に関するテストを行う手順は英語ながら、 以下の情報を参考にしながら行う。 Metasploit Auxiliary Modules http://www.carnal0wnage.com/papers/msf_aux_modules.pdf Metasploit tutorialspoint https://www.tutorialspoint.com/metasploit/metasploit_tutorial.pdf