これは、このセクションの複数ページの印刷可能なビューです。 印刷するには、ここをクリックしてください.
システムセキュリティ基礎
- 1: 1.情報セキュリティ概論
- 2: 2.ハッキングの基礎知識
- 3: 3.情報収集
- 4: 4.DoS攻撃/DDoS攻撃
- 5: 5.Webアプリケーションへの攻撃
- 6: 6.ネットワークの盗聴
- 7: 7.マルウェア
- 8: 8.ソーシャルエンジニアリング
- 9: 9.ハニーポット
1 - 1.情報セキュリティ概論
1.1. 情報セキュリティ基礎
1.1.1. 情報セキュリティの3大要件
情報セキュリティが保たれている状態は以下状態を指す。
- 情報・インフラ環境が健全
- 情報やサービスに対して盗聴・改ざん・破壊などが起こる可能性が低い
具体的には情報セキュリティはCIA要件として規定されている。
- 機密性(Confidentiality) 「不正な読み取りをさせない」 - ユーザーは、読み取りが許可されている情報のみ読み取ることができる。
- 完全性(Integrity) 「不正な修正(書き込みや削除)をさせない」 - ユーザーは、修正することを許可された情報のみ修正することができ、修正には追加、変更、削除が含まれる。
- 可用性(Availability) 「攻撃を受けても動作し続ける」 - 攻撃を受けている間でもソフトウェアが動作し続けることを意味する。サービス妨害(Denial of Service:DoS)攻撃とは、ソフトウェアを利用できなくさせようとする攻撃のこと。
CIA要件のうち、CIをサポートするのが識別、認証、認可、監査(Auditing: ロギング)の機能となる。
1.1.2. セキュリティの要素と多層防衛
情報にアクセスするためには様々な要素を経由する。 それらの要素それぞれでセキュリティの対策を行うことは**DID(多層防衛)**と呼ばれる。
これらを適切に設定し運用するためにはセキュリティポリシを規定するのが一般的である。
セキュリティポリシ
組織やシステムに対するセキュリティに関する理想像を規定し、運用計画、プロセス、標準やガイドラインの手続き/手段の構成を要素ごとに明文化したものまた、セキュリティの検証と評価には以下の3つの項目を把握/管理することが基本となる。
- リスク … 情報資産に被害が及ぶ可能性
- 脅威 … 情報資産を危険に晒す事象/要素
- 脆弱性 … 情報資産を危険にさらすセキュリティホール
1.1.3. 情報セキュリティの防衛
またセキュリティの防衛には以下の3つのフェーズがある。
- 予防フェーズ … 初期設定とそのフィードバックによる設定変更等
- 運用フェーズ … 通常運用時におけるセキュリティレベルの維持
- 対処フェーズ … インシデント発生時の対処方法
1.1.3.1. 予防フェーズ
予防フェーズでは以下手順でセキュリティ防衛を実現する。
- 情報資産の設定/ラベリング … 守るべき対象とその基準をセキュリティポリシーにより決定する
- リスクの評価 … リスクレベルの設定とリスクの種類ごとに対応を定める(リスクマトリックスの策定)
- 防衛方法の検討 … 防衛機器の必要性の有無/手順の策定/多層防衛か/など
- 機器の選定と導入
- 機器の構築と設定
防衛機器の例
- NFW
- IPS/IDS
- UTM
- WAF
- SandBox/HoneyPot
1.1.3.2. 運用フェーズ
運用フェーズでは以下手順でセキュリティ防衛を実現する。
- 監視 … インシデントの兆候(アラート/ログ)
- 分析 … 誤検知/見落としの排除、セキュリティレベルの維持
- レポーティング … 上記2つをレポートする
- 評価・検証 … 脆弱性の検証を行う
1.1.3.3. 対処フェーズ
対処フェーズ(IH&R)では以下手順でセキュリティ防衛を実現する。
- 検出・分析 … インシデントを検知する
- 分類・優先順位付けと通知 … 対応やインシデントの分類と有線付けを行い、通知する
- 封じ込め … インシデントを起こした原因の根絶/システムの復旧を行う
- フォレンジック調査 … 証拠収集
- 事後処理
1.1.4. セキュリティに関する用語
セキュリティの概念を表す用語には以下のようなものがある。
用語 | 説明 |
---|---|
脆弱性 | プログラムの欠陥やシステム/ネットワーク上のセキュリティ上の欠陥全般のこと。 |
脅威 | 攻撃を与えうる存在。技術的脅威、人的脅威、物理的脅威に分けられる。 |
リスク | 情報セキュリティで危険な事象を起こすことにつながると判断されたもの |
インシデント | 情報セキュリティを脅かす発生した事件や事故のこと。 |
1.1.5. 脆弱性とリスク
脆弱性
脆弱性はコンピュータのOSやソフトウェアにおいてプログラムの不具合や設計上のミスが原因となって発生した情報セキュリティ上の欠陥のことを指す。
リスク
リスクは脅威、資産、脆弱性を組み合わせたものであるとJNSAは定義している。 つまり脆弱性が重大でも資産や脅威が0であるならばリスクは0ということになる。
1.1.6. 個人のアクセス権の付与と管理
個人が必要とする情報技術システムへのさまざまなレベルのアクセスを管理し、正しく定義することセキュリティの概念上重要になる。 個人に与えられるアクセスレベルは以下の2つの要素によって決定する。
- 組織内での個人の役割/機能
- システムに保存される情報の機密性
個人のアクセス権の付与と管理にはPIM(Privileged Identity Management)とPAM(Privileged Access Management)という2つの概念が使用される。
PIM
PIM(Privileged Identity Management)は組織内のユーザーの役割をシステム上のアクセス役割に変換するのに使用する管理概念のこと。 組織におけるユーザーの役割/責任に基づいたシステム役割を作成したい場合に使用する。
PAM
PAM(Privileged Access Management)はシステムのアクセス ロールが持つ権限の管理概念のこと。 システムアクセスロールが持つ権限を管理したい場合に使用する。
1.2. 攻撃的セキュリティ
1.2.1. 攻撃的セキュリティの概要
1.2.1.1. 攻撃的セキュリティとは
攻撃的なセキュリティはシステムへ侵入することに重点を置いたセキュリティのこと。 システムへの侵入は、バグの悪用、既存設定の悪用、制限されていないアクセス制御ポリシーの利用などを通じて行う。
攻撃的セキュリティのタスクは以下の通り。
- システムへの侵入
- レポートの作成
攻撃的セキュリティはレッドチームやペネトレーションテスタなどの部隊が専門とする。
1.3. 防衛的セキュリティ
1.3.1. 防衛的セキュリティの概要
1.3.1.1. 防衛的セキュリティとは
防衛的セキュリティはシステムへの侵入を防ぐことに重点を置いたセキュリティのこと。 システムへの侵入は、バグの悪用、既存設定の悪用、制限されていないアクセス制御ポリシーの利用などを通じて行われる可能性がある。
防衛的セキュリティのタスクは以下の通り。
- 侵入の防止
- 侵入の検知と対応
防衛的セキュリティはブルーチームやSOCなどの部隊が専門とする。 また防衛的セキュリティに関連するタスクには次のようなものがある。
- ユーザーのサイバセキュリティ意識の向上
- デジタル資産の文書化と管理
- システムの更新とパッチ適用
- IPS/IDSなどの予防セキュリティデバイスのセットアップ
- ログ記録および監視デバイスのセットアップ
1.3.1.2. 防衛的セキュリティのタスク
セキュリティ運用には保護を確保するためのさまざまなタスクがあり、具体的には以下のようなタスクがある。
- 脅威インテリジェンス
- デジタルフォレンジック
- インシデント対応
- マルウェア解析
1.3.2. 防衛的セキュリティの組織
1.3.2.1. SOC
SOC(Security Operation Center)はネットワークとそのシステムを監視して悪意のあるサイバセキュリティイベントを検出するチームのこと。 具体的には通常時は以下のようなことを24時間で行う。
- ネットワークセキュリティ監視(NSM) … ネットワークの監視とトラフィックの分析に焦点を当て侵入の兆候を検出する
- 脅威ハンティング … SOCは侵入がすでに行われたと想定し、この想定を確認できるかどうかを確認するために探索を行う
- 脅威インテリジェンス … 潜在的な敵対者とその戦術とテクニックについて学習する
なお侵入検知時は以下内容を行う。
- セキュリティ体制の監視 … セキュリティアラートと通知についてネットワークとコンピュータを監視し、必要に応じてそれらに応答することが含まる
- 脆弱性管理 … システムの脆弱性を発見しパッチを当てる
- マルウェア分析 … 制御された環境で実行することで基本的な分析を行う
- 侵入検出 … 侵入検出システム(IDS)を保守し、そのアラートを監視し必要に応じてログを調べる
- 報告 … インシデントやアラームを報告する
1.3.2.2. BlueTeam
BlueTeamはサイバー攻撃への防御力を検証するため、自組織を模擬的に攻撃するレッドチームに対し、それを防御するチームのこと。
1.3.3. 脅威インテリジェンス
脅威インテリジェンスは企業/組織が潜在的な敵に対してより適切に備えるのに役立つ情報を収集することを目的とする。 その目的は脅威に基づいた防御を実現することであり、企業/組織が異なれば敵も異なることとなる。
敵対者の例としては以下のようなものがある。
- 政治的理由で活動する国家サイバー軍
- 金銭目的で活動するランサムウェアグループ
インテリジェンスにはデータが必要であり、またデータは収集、処理、分析する必要がある。 データ収集はネットワークログなどのローカルソースおよびフォーラムなどのパブリックソースなどから行われる。 データの処理はデータを分析に適した形式に整理することを目的とし、分析フェーズでは攻撃者とその動機に関するさらなる情報の発見を目指す。 さらに推奨事項と実行可能な手順のリストを作成することもインテリジェンスの目的としている。
インテリジェンスを使って敵について学ぶことで、敵の戦術、テクニック、手順を知ることができる。 脅威インテリジェンスの結果として脅威アクター (敵対者) を特定し、その活動を予測することで、その攻撃を軽減し、対応戦略を準備することが可能となる。
1.3.4. デジタルフォレンジック
デジタルフォレンジックはデジタルシステムを応用して犯罪を調査し、事実を立証することを指す。
防御セキュリティでは、デジタルフォレンジックの焦点は、攻撃とその実行者の証拠の分析、および知的財産の盗難、サイバースパイ行為、未承認のコンテンツの所持などの他の分野に渡る。よってデジタルフォレンジックはさまざまな領域に焦点を当てることになる。
具体的には以下のようなものを分析することで実現する。
- ファイルシステム/ストレージ
- インストールされたプログラム、作成されたファイル、部分的に上書きされたファイル、削除されたファイルなどの多くの情報がわかる
- システムメモリ
- 攻撃者が悪意のあるプログラムをディスクに保存せずにメモリ内で実行している場合に有効となる方法
- システムログ
- ログ ファイルには、システムで何が起こったかに関する多くの情報が含まれる
- ネットワークログ
- ネットワークを通過したパケットのログは、攻撃が発生しているかどうか、および攻撃が何を引き起こすかについてのより多くのことを知るのに役立つ
1.3.5. インシデント対応(DFIR)
インシデントはデータへの侵害またはサイバー攻撃を指す。 インシデントへの対応は場合によって、構成ミス、侵入の試み、ポリシー違反など、それほど重大ではないことがある。
サイバー攻撃の例には、攻撃者によるネットワークやシステムへのアクセス不能化、公開 Web サイトの改ざん (変更)、データ侵害 (企業データの窃取) などがある。 サイバー攻撃に対処するには、インシデントによるダメージを軽減し、できるだけ短い時間でサービスを回復することにある。 具体的に言えば、インシデント対応に備えた計画を作成することが重要となる。
インシデント対応プロセスの4つの主要なフェーズは以下のとおり。
- 準備 … インシデントに対処できる準備ができているチームがインシデントの発生を最初から防ぐためにさまざまな対策が講ずる
- 検出と分析 … 検出されたインシデントをさらに分析して、その重大度を知る
- 封じ込め/根絶/回復 … インシデントが検出後に他のシステムへの影響を阻止し、排除し、影響を受けたシステムを回復することが重要となる
- 後処理 … 正常に回復した後にレポートを作成し、学んだ教訓が共有され、将来の同様のインシデントが防止する
1.3.6. マルウェアの解析
マルウェアとは悪意のあるソフトウェアの略。 ソフトウェアはディスクに保存したりネットワーク経由で送信したりできるプログラム、ドキュメント、ファイルを指す。 マルウェアには次のような種類が含まれる。
- ウィルス
- トロイの木馬
- ランサムウェア
またマルウェア解析の方法には以下の2通りが存在する。
- 動的解析 … 悪意のあるプログラムを実行せずに検査すること * 解析にはアセンブリ言語についての知識が必要
- 静的解析 … 制御された環境でマルウェアを実行しそのアクティビティを監視して検査すること
1.4. ハッカーに関して
1.4.1. ハッカーとは
ハッカーの本来の意味は以下の通り。
優れたコンピュータのスキルを持ち、ソフトウェア/ハードウェアの仕組みを理解し、その作成や調査が行える個人
また本来のハッキングの意味はハッカーがそのスキルを利用して何かすることを指している。
しかしながら今現在、ハッカーはこうしたコンピュータスキルを悪用し犯罪や不正行為を行う人という意味で使われるようになってしまった。
本来こうしたハッキングを不正行為に用いる者はクラッカー(クライムハッカー)、そしてクラッカーがする不正行為はクラッキングと呼ばれる。
1.4.2. ハッカーの種類
ハッカーやクラッカー、またそれに関する活動を行うものは以下のように呼ばれる。
種類 | 説明 |
---|---|
ブラックハットハッカー | ハッキングを犯罪や不正行為に用いるハッカー |
ホワイトハットハッカー | ハッキングをセキュリティのために用いるハッカー |
グレーハットハッカー | 犯罪行為を行った経験があるが改心しホワイトハッカーになったが、再び不成功をしてしまう、またはその可能性のあるハッカー |
サイバーテロリスト | ハッキングをテロリズムに用いるハッカー |
ハクティビスト | ハッキングを自分や組織の思想/理念や教義を公布するのに使うハッカー |
国営ハッカー | 国やその関連機関に雇用されたハッカー、諜報機関/軍事機関に所属する場合がある |
スーサイドハッカー | 身元特定を恐れないハッカー、(無敵の人ハッカー) |
スクリプトキディ | スキルもほとんどないが他人の生み出した攻撃手法を用いて攻撃を行う人 |
1.4.3. ホワイトハッカーに関して
ホワイトハッカーは前述の通り、ハッキングをセキュリティのために使う人を指す。 ホワイトハッカーの企業/組織での仕事は多岐にわたり以下のようなことを行う。
- 適切な対策方法の助言
- 監視におけるインシデントの判断
- フォレンジック
- 脆弱性の診断
- 組織のセキュリティ意識向上活動
またホワイトハッカーは持つ知識やスキルの悪用ができてしまうという特性上、知識や技術だけではなく高い倫理観が求められる。 ホワイトハッカーはセキュリティの各防衛フェーズに関して以下内容を提供する。
- 予防フェーズ
- 脆弱性評価によるリスク管理への参加
- 防衛方法検討時の知識提供
- 機器の構築/テストの支援
- 運用フェーズ
- 監視/分析の技術支援/知識提供
- 定期的な脆弱性の評価/検証
- 対処フェーズ
- 対応チームトレーニングへの参加
- インシデントに対する助言
- フォレンジック調査への助言
1.4.4. ホワイトハッキングの活用
ホワイトハッキングを脆弱性管理に応用する場合、以下フェーズで応用できる。
- 脆弱性の検出
- 資産の優先順位付け
- 評価とレポート
- 軽減・改善
- 検証
1.4.4.1. 脆弱性の検出 (スキャニング)
検出ではネットワーク機器の特定と特定した機器のフットプリンティングを行う。
フットプリンティング: 攻撃を行う前に攻撃対象の情報やネットワーク環境を事前調査すること
1.4.4.2. 資産の優先順位付け (列挙)
資産の優先順位付けでは脆弱性の検出された機器を識別しリストアップを行い対応の優先順位付けを行う。
1.4.4.3. 評価とレポート (疑似攻撃)
評価ではセキュリティ脆弱性の調査を行う。
- 攻撃が脅威になるか
- 新しい攻撃手法に対して脆弱性があるか
- 新機能に脆弱性があるか
これらの結果をまとめてリポートする。
1.4.4.4. 軽減・改善
軽減・改善では検出された脆弱性に対して改善するのが軽減するのかの判断を行う。 基本的には改善を行う。できない場合は軽減を行う。
1.4.4.5. 検証 (疑似攻撃)
検証では検出された脆弱性が解決しているかを確認する。 評価方法としては評価とレポートと同じことを行う。
1.4.5. フォレンジック
フォレンジックはIT分野においては不正アクセスや通信ログを分析する行為を指す。 フォレンジックの目的は以下の通り。
- 攻撃者の特定
- 攻撃の本質(攻撃の意図)の特定
1.4.6. ROE
ROE(Rules of Engagement: 関与規則)は侵入テスト作業の初期段階で作成するドキュメントのこと。 侵入テストの実施方法を定義する文書といえる。 この文書は3つの主要なセクションで構成され、これらのセクションが最終的に侵入テストの実施方法を決定する。
セクション | 説明 |
---|---|
許可 | 関与する実行内容を明示的に許可する。個人や組織が実行する活動を法的に保護するために必須といえる |
テスト範囲 | 侵入テストを適用する必要がある特定のターゲットに注釈を付ける。(ネットワーク,アプリ内,ホストなど) |
ルール | 侵入テストにて許可されるテクニックを正確に定義する |
1.5. サイバーセキュリティ業界の職業
ホワイトハッカー以外のサイバーセキュリティの職業について紹介する。
1.5.1. セキュリティアナリスト
セキュリティアナリストは企業ネットワークを調査および評価して、実用的なデータと、エンジニアが予防策を開発するための推奨事項を明らかにする職務。 この職務ではセキュリティ要件とセキュリティ環境を理解するためにさまざまな関係者と協力する必要がある。
職務内容は以下の通り。
- さまざまなステークホルダーと協力して全社のサイバーセキュリティを分析する
- ネットワークの安全性に関する継続的なレポートを作成し、セキュリティの問題とそれに対応して講じられた措置を文書化する
- 新しい攻撃ツールと傾向に関する調査、およびデータセキュリティを維持するためにチーム全体で必要な対策を組み込んだセキュリティ計画を作成する
1.5.2. セキュリティエンジニア
セキュリティエンジニアは脅威と脆弱性のデータを使用してセキュリティ ソリューションを開発および実装する職務。 Webアプリケーションへの攻撃、ネットワークの脅威、進化する傾向や戦術など、幅広い攻撃の回避に取り組む。 この職務の目標は、攻撃やデータ損失のリスクを軽減するためにセキュリティ対策を維持および導入することにある。
職務内容は以下の通り。
- ソフトウェア全体のセキュリティ対策のテストとスクリーニング
- ネットワークとレポートを監視してシステムを更新し、脆弱性を軽減する
- 最適なセキュリティに必要なシステムを特定して実装する
1.5.3. インシデント対応者
インシデント対応者はセキュリティ侵害に対して生産的かつ効率的に対応する職務。 職務にはインシデント中およびインシデント後に組織が制定する計画、ポリシー、プロトコルの作成が含まる。 企業のデータ、評判、財務状況をサイバー攻撃から守るのがメインの仕事となる。
職務内容は以下の通り。
- 徹底的で実行可能なインシデント対応計画を策定/採用する
- 強力なセキュリティのベストプラクティスを維持しインシデント対応措置をサポートする
- インシデントから得られる教訓と適応を考慮したインシデント後の報告と将来の攻撃への準備
1.5.4. デジタルフォレンジック検査官
デジタルフォレンジック検査官は警察関連機関などの法執行部門の一員としてサイバーセキュリティ業界で働く場合の職業。
職務内容は以下の通り。
- 法的手続きを遵守しながらデジタル証拠を収集
- デジタル証拠を分析して事件に関連する答えを捜査
- 調査結果を文書化し、ケースについて報告
1.5.5. ペネトレーションテスター
ペネトレーションテスタの仕事は企業内のシステムとソフトウェアのセキュリティをテストすること。 これは、システム化されたハッキングを通じて欠陥や脆弱性を発見するペネトレーションテストによって達成される。 ペネトレーションテスターはこれらの脆弱性を悪用して、各インスタンスのリスクを評価し、企業や組織に報告する。
職務内容は以下の通り。
- コンピュータシステム、ネットワーク、Webアプリケーションへの侵入テストの実施
- セキュリティ評価、監査、およびポリシーの分析
- 分析情報を評価してレポートし、攻撃を防ぐためのアクションを推奨
1.6. 情報セキュリティに関する関連法規と法令
日本国内の情報セキュリティに関わる者が概ね把握しておくべき関連法規/法令を記載する。
出典は総務省 | 国民のためのサイバーセキュリティサイトより。
1.6.1. 刑法
刑法とは「犯罪と刑罰に関する法律である」と定義される。
電磁的記録: 第七条の二 この法律において「電磁的記録」とは、電子的方式、磁気的方式その他人の知覚によっては認識することができない方式で作られる記録であって、電子計算機による情報処理の用に供されるものをいう。
1.6.1.1. 第161条の2 - 電磁的記録不正作出及び供用
第百六十一条の二 人の事務処理を誤らせる目的で、その事務処理の用に供する権利、義務又は事実証明に関する電磁的記録を不正に作った者は、五年以下の懲役又は五十万円以下の罰金に処する。
- 前項の罪が公務所又は公務員により作られるべき電磁的記録に係るときは、十年以下の懲役又は百万円以下の罰金に処する。
- 不正に作られた権利、義務又は事実証明に関する電磁的記録を、第一項の目的で、人の事務処理の用に供した者は、その電磁的記録を不正に作った者と同一の刑に処する。
- 前項の罪の未遂は、罰する。
関連犯罪: 私電磁的記録不正作出罪、不正作出電磁的記録供用罪
1.6.1.2. 第233条 - 信用毀損及び業務妨害
虚偽の風説を流布し、又は偽計を用いて、人の信用を毀損し、又はその業務を妨害した者は、三年以下の懲役又は五十万円以下の罰金に処する。
関連犯罪: 偽計業務妨害罪、信用毀損罪
1.6.1.2. 第234条の2 - 電子計算機損壊等業務妨害
第二百三十四条の二 人の業務に使用する電子計算機若しくはその用に供する電磁的記録を損壊し、若しくは人の業務に使用する電子計算機に虚偽の情報若しくは不正な指令を与え、又はその他の方法により、電子計算機に使用目的に沿うべき動作をさせず、又は使用目的に反する動作をさせて、人の業務を妨害した者は、五年以下の懲役又は百万円以下の罰金に処する。 2. 前項の罪の未遂は、罰する。
関連犯罪: 電子計算機損壊等業務妨害罪
1.6.1.3. 第246条の2 - 電子計算機使用詐欺
第二百四十六条の二 前条に規定するもののほか、人の事務処理に使用する電子計算機に虚偽の情報若しくは不正な指令を与えて財産権の得喪若しくは変更に係る不実の電磁的記録を作り、又は財産権の得喪若しくは変更に係る虚偽の電磁的記録を人の事務処理の用に供して、財産上不法の利益を得、又は他人にこれを得させた者は、十年以下の懲役に処する。
第二百五十条 この章の罪の未遂は、罰する。
関連犯罪: 電子計算機使用詐欺罪
1.6.1.4. 第618条の2 - 不正指令電磁的記録作成等
第百六十八条の二 正当な理由がないのに、人の電子計算機における実行の用に供する目的で、次に掲げる電磁的記録その他の記録を作成し、又は提供した者は、三年以下の懲役又は五十万円以下の罰金に処する。
一 人が電子計算機を使用するに際してその意図に沿うべき動作をさせず、又はその意図に反する動作をさせるべき不正な指令を与える電磁的記録 二 前号に掲げるもののほか、同号の不正な指令を記述した電磁的記録その他の記録
- 正当な理由がないのに、前項第一号に掲げる電磁的記録を人の電子計算機における実行の用に供した者も、同項と同様とする。
- 前項の罪の未遂は、罰する。
関連犯罪: 不正指令電磁的記録に関する罪
1.6.1.5. 第618条の3 - 不正指令電磁的記録取得等
第百六十八条の三 正当な理由がないのに、前条第一項の目的で、同項各号に掲げる電磁的記録その他の記録を取得し、又は保管した者は、二年以下の懲役又は三十万円以下の罰金に処する。
関連犯罪: 不正指令電磁的記録に関する罪
1.6.2. サイバーセキュリティ基本法
(目的) 第一条 この法律は、インターネットその他の高度情報通信ネットワークの整備及び情報通信技術の活用の進展に伴って世界的規模で生じているサイバーセキュリティに対する脅威の深刻化その他の内外の諸情勢の変化に伴い、情報の自由な流通を確保しつつ、サイバーセキュリティの確保を図ることが喫緊の課題となっている状況に鑑み、我が国のサイバーセキュリティに関する施策に関し、基本理念を定め、国及び地方公共団体の責務等を明らかにし、並びにサイバーセキュリティ戦略の策定その他サイバーセキュリティに関する施策の基本となる事項を定めるとともに、サイバーセキュリティ戦略本部を設置すること等により、高度情報通信ネットワーク社会形成基本法 (平成十二年法律第百四十四号)と相まって、サイバーセキュリティに関する施策を総合的かつ効果的に推進し、もって経済社会の活力の向上及び持続的発展並びに国民が安全で安心して暮らせる社会の実現を図るとともに、国際社会の平和及び安全の確保並びに我が国の安全保障に寄与することを目的とする。
(国民の努力) 第九条 国民は、基本理念にのっとり、サイバーセキュリティの重要性に関する関心と理解を深め、サイバーセキュリティの確保に必要な注意を払うよう努めるものとする。
1.6.3. 著作権法
著作権法は著作物などに関する著作者等の権利を保護するための法律。
1.6.3.1. 第112条 - 差止請求権
第百十二条 著作者、著作権者、出版権者、実演家又は著作隣接権者は、その著作者人格権、著作権、出版権、実演家人格権又は著作隣接権を侵害する者又は侵害するおそれがある者に対し、その侵害の停止又は予防を請求することができる。
- 著作者、著作権者、出版権者、実演家又は著作隣接権者は、前項の規定による請求をするに際し、侵害の行為を組成した物、侵害の行為によって作成された物又は専ら侵害の行為に供された機械若しくは器具の廃棄その他の侵害の停止又は予防に必要な措置を請求することができる。
1.6.3.2. 第113条 - 侵害とみなす行為
第百十三条 次に掲げる行為は、当該著作者人格権、著作権、出版権、実演家人格権又は著作隣接権を侵害する行為とみなす。 一 国内において頒布する目的をもって、輸入の時において国内で作成したとしたならば著作者人格権、著作権、出版権、実演家人格権又は著作隣接権の侵害となるべき行為によって作成された物を輸入する行為
二 著作者人格権、著作権、出版権、実演家人格権又は著作隣接権を侵害する行為によって作成された物(前号の輸入に係る物を含む。)を情を知って頒布し、又は頒布の目的をもつて所持する行為
プログラムの著作物の著作権を侵害する行為によって作成された複製物(当該複製物の所有者によって第四十七条の二第一項の規定により作成された複製物並びに前項第一号の輸入に係るプログラムの著作物の複製物及び当該複製物の所有者によって同条第一項の規定により作成された複製物を含む。)を業務上電子計算機において使用する行為は、これらの複製物を使用する権原を取得した時に情を知っていた場合に限り、当該著作権を侵害する行為とみなす。
次に掲げる行為は、当該権利管理情報に係る著作者人格権、著作権、実演家人格権又は著作隣接権を侵害する行為とみなす。
一 権利管理情報として虚偽の情報を故意に付加する行為
二 権利管理情報を故意に除去し、又は改変する行為(記録又は送信の方式の変換に伴う技術的な制約による場合その他の著作物又は実演等の利用の目的及び態様に照らしやむを得ないと認められる場合を除く。
三 前二号の行為が行われた著作物若しくは実演等の複製物を、情を知って、頒布し、若しくは頒布の目的をもつて輸入し、若しくは所持し、又は当該著作物若しくは実演等を情を知って公衆送信し、若しくは送信可能化する行為
第九十五条第一項若しくは第九十七条第一項に規定する二次使用料又は第九十五条の三第三項若しくは第九十七条の三第三項に規定する報酬を受ける権利は、前項の規定の適用については、著作隣接権とみなす。この場合において、前条中「著作隣接権者」とあるのは「著作隣接権者(次条第四項の規定により著作隣接権とみなされる権利を有する者を含む。)」と、同条第一項中「著作隣接権」とあるのは「著作隣接権(同項の規定により著作隣接権とみなされる権利を含む。)」とする。
国内において頒布することを目的とする商業用レコード(以下この項において「国内頒布目的商業用レコード」という。)を自ら発行し、又は他の者に発行させている著作権者又は著作隣接権者が、当該国内頒布目的商業用レコードと同一の商業用レコードであつて、専ら国外において頒布することを目的とするもの(以下この項において「国外頒布目的商業用レコード」という。)を国外において自ら発行し、又は他の者に発行させている場合において、情を知って、当該国外頒布目的商業用レコードを国内において頒布する目的をもつて輸入する行為又は当該国外頒布目的商業用レコードを国内において頒布し、若しくは国内において頒布する目的をもつて所持する行為は、当該国外頒布目的商業用レコードが国内で頒布されることにより当該国内頒布目的商業用レコードの発行により当該著作権者又は著作隣接権者の得ることが見込まれる利益が不当に害されることとなる場合に限り、それらの著作権又は著作隣接権を侵害する行為とみなす。ただし、国内において最初に発行された日から起算して七年を超えない範囲内において政令で定める期間を経過した国内頒布目的商業用レコードと同一の国外頒布目的商業用レコードを輸入する行為又は当該国外頒布目的商業用レコードを国内において頒布し、若しくは国内において頒布する目的をもつて所持する行為については、この限りでない。
著作者の名誉又は声望を害する方法によりその著作物を利用する行為は、その著作者人格権を侵害する行為とみなす。
1.6.4. 電気通信事業法
電気通信事業法は電気通信の健全な発達と国民の利便の確保を図るために制定された法律。
(秘密の保護) 第四条 電気通信事業者の取扱中に係る通信の秘密は、侵してはならない。
2 電気通信事業に従事する者は、在職中電気通信事業者の取扱中に係る通信に関して知り得た他人の秘密を守らなければならない。その職を退いた後においても、同様とする。
第百七十九条 電気通信事業者の取扱中に係る通信(第百六十四条第二項に規定する通信を含む。)の秘密を侵した者は、二年以下の懲役又は百万円以下の罰金に処する。
2 電気通信事業に従事する者が前項の行為をしたときは、三年以下の懲役又は二百万円以下の罰金に処する。
3 前二項の未遂罪は、罰する。
1.6.5. 電子署名及び認証業務に関する法律
電子署名及び認証業務に関する法律は、電子商取引などのネットワークを利用した社会経済活動の更なる円滑化を目的として、一定の条件を満たす電子署名が手書き署名や押印と同等に通用することや、認証業務(電子署名を行った者を証明する業務)のうち一定の水準を満たす特定認証業務について、信頼性の判断目安として認定を与える制度などを規定している。
詳細はコチラから。
1.6.6. 電子署名等に係る地方公共団体情報システム機構の認証業務に関する法律
電子署名等に係る地方公共団体情報システム機構の認証業務に関する法律(公的個人認証法)は、行政手続オンライン化関係三法のひとつ。
詳細はコチラから。
1.6.7. 電波法
電波はテレビや携帯電話、アマチュア無線などさまざま場面で利用されている。電波法はこの電波の公平かつ能率的な利用を確保するための法律で、無線局の開設や秘密の保護などについての取り決めが規定されている。
1.6.7.1. 第519条 - 秘密の保護
第五十九条 何人も法律に別段の定めがある場合を除くほか、特定の相手方に対して行われる無線通信(電気通信事業法第四条第一項 又は第九十条第二項 の通信たるものを除く。第百九条において同じ。)を傍受してその存在若しくは内容を漏らし、又はこれを窃用してはならない。
1.6.7.2. 第109条 - 罰則
第百九条 無線局の取扱中に係る無線通信の秘密を漏らし、又は窃用した者は、一年以下の懲役又は五十万円以下の罰金に処する。
1.6.8. 不正アクセス行為の禁止等に関する法律
不正アクセス行為の禁止等に関する法律(不正アクセス禁止法)は不正アクセス行為や、不正アクセス行為につながる識別符号の不正取得・保管行為、不正アクセス行為を助長する行為等を禁止する法律。
識別符号とは 情報機器やサービスにアクセスする際に使用するIDやパスワード等のことです。不正アクセス行為とは、そのようなIDやパスワードによりアクセス制御機能が付されている情報機器やサービスに対して、他人のID・パスワードを入力したり、脆弱性(ぜいじゃくせい)を突いたりなどして、本来は利用権限がないのに、不正に利用できる状態にする行為をいいます。
(目的) 第一条 この法律は、不正アクセス行為を禁止するとともに、これについての罰則及びその再発防止のための都道府県公安委員会による援助措置等を定めることにより、電気通信回線を通じて行われる電子計算機に係る犯罪の防止及びアクセス制御機能により実現される電気通信に関する秩序の維持を図り、もって高度情報通信社会の健全な発展に寄与することを目的とする。
(定義) 第二条 1~3略 4 この法律において「不正アクセス行為」とは、次の各号のいずれかに該当する行為をいう。 一 アクセス制御機能を有する特定電子計算機に電気通信回線を通じて当該アクセス制御機能に係る他人の識別符号を入力して当該特定電子計算機を作動させ、当該アクセス制御機能により制限されている特定利用をし得る状態にさせる行為(当該アクセス制御機能を付加したアクセス管理者がするもの及び当該アクセス管理者又は当該識別符号に係る利用権者の承諾を得てするものを除く。) 二 アクセス制御機能を有する特定電子計算機に電気通信回線を通じて当該アクセス制御機能による特定利用の制限を免れることができる情報(識別符号であるものを除く。)又は指令を入力して当該特定電子計算機を作動させ、その制限されている特定利用をし得る状態にさせる行為(当該アクセス制御機能を付加したアクセス管理者がするもの及び当該アクセス管理者の承諾を得てするものを除く。次号において同じ。) 三 電気通信回線を介して接続された他の特定電子計算機が有するアクセス制御機能によりその特定利用を制限されている特定電子計算機に電気通信回線を通じてその制限を免れることができる情報又は指令を入力して当該特定電子計算機を作動させ、その制限されている特定利用をし得る状態にさせる行為
(不正アクセス行為の禁止) 第三条 何人も、不正アクセス行為をしてはならない。
(他人の識別符号を不正に取得する行為の禁止) 第四条 何人も、不正アクセス行為(第二条第四項第一号に該当するものに限る。第六条及び第十二条第二号において同じ。)の用に供する目的で、アクセス制御機能に係る他人の識別符号を取得してはならない。
(不正アクセス行為を助長する行為の禁止) 第五条 何人も、業務その他正当な理由による場合を除いては、アクセス制御機能に係る他人の識別符号を、当該アクセス制御機能に係るアクセス管理者及び当該識別符号に係る利用権者以外の者に提供してはならない。
(他人の識別符号を不正に保管する行為の禁止) 第六条 何人も、不正アクセス行為の用に供する目的で、不正に取得されたアクセス制御機能に係る他人の識別符号を保管してはならない。
(識別符号の入力を不正に要求する行為の禁止) 第七条 何人も、アクセス制御機能を特定電子計算機に付加したアクセス管理者になりすまし、その他当該アクセス管理者であると誤認させて、次に掲げる行為をしてはならない。ただし、当該アクセス管理者の承諾を得てする場合は、この限りでない。 一 当該アクセス管理者が当該アクセス制御機能に係る識別符号を付された利用権者に対し当該識別符号を特定電子計算機に入力することを求める旨の情報を、電気通信回線に接続して行う自動公衆送信(公衆によって直接受信されることを目的として公衆からの求めに応じ自動的に送信を行うことをいい、放送又は有線放送に該当するものを除く。)を利用して公衆が閲覧することができる状態に置く行為 二 当該アクセス管理者が当該アクセス制御機能に係る識別符号を付された利用権者に対し当該識別符号を特定電子計算機に入力することを求める旨の情報を、電子メール(特定電子メールの送信の適正化等に関する法律(平成十四年法律第二十六号)第二条第一号に規定する電子メールをいう。)により当該利用権者に送信する行為
(罰則) 第十一条 第三条の規定に違反した者は、三年以下の懲役又は百万円以下の罰金に処する。
第十二条 次の各号のいずれかに該当する者は、一年以下の懲役又は五十万円以下の罰金に処する。 一 第四条の規定に違反した者 二 第五条の規定に違反して、相手方に不正アクセス行為の用に供する目的があることの情を知ってアクセス制御機能に係る他人の識別符号を提供した者 三 第六条の規定に違反した者 四 第七条の規定に違反した者
第十三条 第五条の規定に違反した者(前条第二号に該当する者を除く。)は、三十万円以下の罰金に処する。
1.6.9 特定電子メールの送信の適正化等に関する法律
特定電子メールの送信の適正化等に関する法律は利用者の同意を得ずに広告、宣伝又は勧誘等を目的とした電子メールを送信する際の規定を定めた法律。
詳細はコチラから。
1.6.10. 有線電気通信法
有線電気通信法は有線電気通信の設備や使用についての法律で、秘密の保護や通信妨害について規定されている。
詳細はコチラから。
1.7. 国際的なセキュリティ規格と関連法令
1.7.1. DMCA(デジタルミレニアム著作権法)
DMCAはアメリカ合衆国の法律で盗用コンテンツを運営するサイトのプロバイダーに対して、著作権保有者が著作権侵害の申し立てを通告することができるものとなっている。
この通告を受け取ったプロバイダーが当該コンテンツを迅速に削除した場合、著作権侵害の責任が免除されるというものとなる。 DMCAはGoogleの検索エンジンなどに適用されている。
ちなみに日本国内のDMCA類似法律としてはプロバイダ責任制限法などがある。
なおDMCAの申請は以下手順で行われる。
- 表示管理元の「著作権侵害による削除」のページにアクセスする
- 「連絡先情報」を入力する
- 「著作権侵害の内容」を記述する
- 「宣誓供述書」の内容を確認してチェックする
- 「署名」する
これにより認定されることでコンテンツが削除されるものとなる。
なおDMCA申請情報はLumonに掲載される。
1.7.2. ISO/IEC 27XXXシリーズ
ISO/IEC27000シリーズは、国際標準化機構(ISO)と国際電気標準会議(IEC)によって策定された情報セキュリティマネジメントシステムに関する規格群のことを指し、中核を成すISO27001を始めとしたISMSに関する第三者認証規格のこと。
ISO27000シリーズは情報セキュリティの管理・リスク低減に関するフレームワークとして国際的に活用されている。
内容 | 説明 |
---|---|
ISO27001 | 組織のISMSを認証するための要求事項が示されている |
ISO27002 | 情報セキュリティマネジメントの管理策を示した規格 |
ISO27003 | ISO27001の要求事項に従って構築したISMSを組織で実施するためのガイド |
ISO27004 | 実装されたISMS及びISO27001で規定されたマネジメントシステムの有効性を評価するための手段とリスクアセスメント/ガイド |
ISO27005 | リスク管理プロセスと情報セキュリティ管理に関わる作業や手順を規格化されている |
ISO27006 | ISO27001で規定された要求事項をもとに企業のISMSを審査する審査機関及び認証機関に対する要求事項が示されている |
ISO27007 | ISMS監査の指針が示されている |
ISO27008 | 審査のための規格(審査員のための規格) |
ISO27010 | 部門間あるいは組織間の通信(コミュニケーション)のための情報セキュリティマネジメントに関する規格 |
ISO27011 | 電気通信事業者におけるISMSの実装をサポートするガイドライン、通信事業者のISMS適用に関するガイドが示されている |
ISO27013 | ISO20000(ITサービスマネジメント規格)とISO27001の統合実装に関するガイドが示された規格 |
ISO27014 | 情報セキュリティガバナンス(内部監査)の枠組みを示したもの |
ISO27015 | 金融や保険などの商材を扱う企業を対象として具体的なISMSの管理策を示した規格 |
ISO27017 | クラウドサービスの利用者や提供者を対象として具体的なISMSの管理策を示した規格 |
ISO27018 | クラウドサービス提供事業者がクラウド上に存在する個人情報を保護する目的で行うべき管理策が示された規格 |
ISO27031 | IT-BCP(ITシステムの事業継続性)に必要な管理策が示された規格 |
ISO27032 | サイバーセキュリティに特化した具体的な管理策などを示した規格 |
ISO27033 | 情報技術ネットワークに関するセキュリティマネジメントシステムの規格 |
ISO27704 | アプリケーションセキュリティに関する管理策などが示された規格 |
ISO27701 | 組織が扱う個人情報について、プライバシーの観点で管理・保護していくことを目的とした2019年に発行された規格 |
ISO27729 | 医療機関などを対象とした個人の健康情報を保護することを目的とした規格 |
ISMS(Information Security Management System): 情報セキュリティマネジメントシステムのことで、企業や組織が保持している情報資産を守るための仕組み
1.7.3. PCI-DSS
PCI-DSSはクレジットカード決済を提供する加盟店やサービスプロバイダにおいて、クレジットカード会員データを安全に取り扱う事を目的として策定されたクレジットカード業界のセキュリティ基準を指す。
PCI-DSS遵守することは、ハッカーやクラッカー等による様々な不正アクセスからサイトを保護し、サイトの改ざんや悪用、情報盗用などのリスクを低減していることを示す。
2 - 2.ハッキングの基礎知識
2.1. ハッキングの基本フロー
ハッキングの基本フローは以下の3段階で行われる。
- 事前準備
- 攻撃
- 後処理
なおCEHではこの3段階には以下内容が含まれ、定義されている。
項目 | 内容 |
---|---|
事前準備 | 偵察、スキャニング |
攻撃 | アクセス権の取得、アクセス権の維持 |
痕跡の消去 | 事後処理 |
2.1.1. 事前準備
さらに事前準備は以下の3フローに分かれる。
- 偵察
- スキャニング
- 列挙
偵察
偵察では主に以下のような様な情報を収集する。
- 公開情報の収集
- ネットワーク情報の収集
公開情報の収集はOSINTと呼ばれる一般に公開されている情報源からアクセス可能なデータを収集、分析、決定する手法により行われる。 OSINTでは一般に公開され利用可能な情報を情報源に機密情報等を収集する手法と定義されている。 具体的には攻撃対象のシステムの運営元の組織/個人の情報から情報を得るものであり、情報源例は以下のとおりである。
- 公式サイトや人材採用サイト/会社案内パンフレットや営業資料
- 各種SNSなどの投稿など
スキャニング
スキャニングでは偵察で得られた情報を基にネットワーク/サーバにアクセスを行い、以下の情報を直接収集する。
- サーバの情報
- ネットワークの情報
この行為には不正アクセスに抵触する行動も含まれる。
列挙
列挙では以下のことを行い攻撃に必要な要素を収集する。
- 集めた情報の整理/確認
- 脆弱性情報の収集
なお上記を行っても攻撃のための情報が不十分な場合は偵察から再度行う。
2.1.2. 攻撃
さらに攻撃は以下の2フローに分かれる。
- アクセス権の取得
- 権限昇格
また、攻撃の対象にはホスト(サーバ自体)、ネットワーク、アプリケーションの3つが考えられる。
対象 | 攻撃と処理 |
---|---|
ホスト | サーバへの攻撃、後処理、マルウェアのインストール |
ネットワーク | Dos攻撃、ネットワークの盗聴 |
アプリケーション | Webアプリケーションへの攻撃 |
上記に分類できないのは各種スプーフィングやソーシャルエンジニアリングなどがある。
アクセス権の取得
アクセス権/管理者権限の取得は以下の2種類のことを指す。
- 脆弱性に対する攻撃
- パスワードクラッキング
実際にサーバにアクセスして脆弱性に対して攻撃をしたり、認証機能にパスワードクラックを仕掛けたりする行為も含まれる。
権限昇格
権限昇格では以下の内容を目指す。
- 内部での情報収集
- 権限昇格を行う
アクセス権の取得段階で試行錯誤をしないように事前準備段階で情報収集は徹底的に行う必要がある。 アクセス権の取得後は権限昇格に利用できる脆弱性を特定し管理者権限(root, admin)の奪取を行う。
このフェーズの状態により後処理の有無が決まる。
2.1.3. 後処理
さらに後処理は以下の2フローに分かれる。
- アクセス権の保持
- 痕跡の消去
アクセス権の維持
攻撃対象を自分が自由に制御できるようにするためにアクセス権の維持ができるようにすることを目指す。 具体的には以下内容を行うことで実現させる。
- バックドアの作成
- マルウェアのインストール
痕跡の消去
痕跡の消去ではバックドアの隠蔽やログの消去/操作を行い攻撃の痕跡を消す。 これによりシステム管理者のハッキングに対する追跡を困難にする。
2.1.4. ハッキングの防衛
攻撃性の高い攻撃に対してはスキャニングに対する監視を強化する必要がある。 一方スキャニングを行わず、ハッカーの既存知識をもとに攻撃する場合もある。 そもそも脆弱性がなければ攻撃はできないため、セキュリティのためには既存の脆弱性を以下に減らすかが重要となる。
2.1.5. 一般的なハッキングのフローに沿わない攻撃
通常のハッキングフローに沿わない攻撃は以下のようなものがある。 これらの攻撃はCEHなどで定義されたハッキングの一般的なフローに従わない。
- Dos攻撃 … 攻撃の特性上、後処理はほとんどの場合不要
- Webアプリケーションへの攻撃 … Webアプリケーションからサーバ自体への侵入は基本的には厳しいため痕跡の消去は難しい
- ソーシャルエンジニアリング … 実際に内部の人間からシステム情報を聞き出す。内部に入るなど
- マルウェアの使用 … 使用用途はいろいろあり「情報収集」「攻撃補助「バックドアの設置」など攻撃段階でも使用される場合もある。
最強の攻撃は「ソーシャルエンジニアリング」+「マルウェアの使用」と言われており、これは近年行われている攻撃でランサムウェアによるものなどはその一例としてあげられる。
2.2. スプーフィング
スプフィーング(偽装工作)は騙す/なりすます攻撃の総称。 基本的には送信元を偽装して身元を隠ぺいするために使用されるが、攻撃効果を高めるためにも使用される。
スプフィーングの種類はIPアドレスを偽装するIPスプフィーング、MACアドレスを偽装するMACアドレススプフィーングに分類さっれう。
2.2.1. IPスプーフィーング
IPスプフィーングはIPアドレスの偽装を行うこと。 スプーフィングが行われる対象は以下の通り。
- 実際に攻撃を行ったパケットの送信元アドレス
- 攻撃を受けたシステムが記録したログファイル上のデータ
攻撃に行ったパケットの送信元アドレスを偽装する場合、その通信に応答が必要な場合は応答が偽装したIPアドレスに行われるため攻撃者は受け取ることができない問題がある。 そのためIPスプフィーングはハッキング事前段階である「スキャニング」「列挙」には向かない。 またアクセス権の取得に関わる行動なども対象と接続する必要性があるためIPアドレスの偽装は困難となる。
そのためIPスプーフィングは返送が不要なDoS攻撃に使われる特徴がある。 これはDoS攻撃ではパケットを送りっぱなしてネットワークに負荷をかけるのが目的だからである。
IPアドレスの偽装
攻撃者はIPアドレスの特定を以下の方法を使って防ぐことを試みる。
- 囮としての使用 … 同じ攻撃を複数のIPアドレスを偽装して行うというもの
- 踏み台の使用 … 別のマシンをハッキングしてそのマシンを踏み台にして攻撃を行う
2.2.2. MACアドレススプフィーング
MACアドレススプフィーングはMACアドレスの偽装を行うこと。 MACアドレスはNICに紐づいてる固有値であり、工場出荷時にベンダーにより付けられる。 MACアドレスのスプフィーングは基本的に以下の方法を用いる。
- 攻撃を送るシステムの設定変更
- 攻撃のパケットの書き換え
またMACアドレススプフィーングは以下のようなものがある。
DHCPスタベーション攻撃
DHCPスタベーション攻撃では攻撃者はMACアドレスを偽装してDHCPサーバに要求を行う。 その結果DHCPサーバはIPアドレスを貸し出すが、DHCPサーバが貸し出せるIPアドレスの範囲を超えてしまった場合、新しい要求があってもIPアドレスの貸し出しができなくなる。これによりネットワーク接続を妨害するというもの。
対策: DHCPスヌーピングやDHCPガードなどのセキュリティ機能を有効にする
MACアドレスフィルタリングの回避
MACアドレスフィルタリングは接続端末をMACアドレスを使って制限する機能であり、WI-FI接続端末制限などによく使われる。 攻撃者は自身のMACアドレスを偽装してそれらを回避する。
ARPキャッシュポイズニング攻撃
ARPキャッシュポイズニング攻撃では攻撃者はARPを利用して、ネットワーク内のデバイスに対する偽のMACアドレス情報を提供し、トラフィックが自身のコンピュータに来るようにする。
内部的にはMACアドレスとIPアドレスの関係を紐づけるARP情報が保存されるARPキャッシュを汚染しパケットの送信先を変えるものとなっている。
対策: ARPキャッシュの監視やARPセキュア機能を有効にする
2.2.3. メールスプーフィング/フィッシング
2.2.3.1. メールスプーフィング
メールスプーフィングはメールを偽装して送信元のメールから来たように見せかける手法。 本文やメールヘッダ内の情報も偽装される。目的としては以下の通り。
- マルウェアを添付しそのファイルを安全なものであると見せかけ開かせる
- URLを記載しそのURLにアクセスするように仕向ける
2.2.3.2. フィッシング
フィッシングは悪意のあるWebサイトを用意しユーザをそこに誘導する攻撃のこと。 フィッシングの例は以下の通り。
- 個人情報を入力するサイトを装い入力された情報を盗む
- ログインページを装いログイン情報を盗む
- 正規のダウンロードページを装いマルウェアをダウンロードさせる
2.2.4. DNSスプフィーング
DNSスプーフィング攻撃はユーザが行ったDNSへの問い合わせに対しての返答を偽装する攻撃のこと。 ドメインに該当するIPアドレスを偽装する。ドメインは正規のドメインになるためユーザは怪しまずにアクセスする可能性が上がる。 これらはファーミングと呼ばれ、以下の方法を用いて行われる。
- DNSレスポンスポイズニング攻撃
- DNSキャッシュポイズニング攻撃
- 対象システムのHostsの書き換え
- DGWやProxyの変更
など。
2.3. スキャニング技術
スキャニングは攻撃対象のホストが開いているポートを特定するために行うもの。 ポートスキャンでは以下の内容が確認できる。
- 開いている/閉じているポート番号
- FWにアクセス制限されているポートの情報
- 開いているポートで稼働しているサービスに関する情報
- OSに関する情報
2.3.1. 接続スキャン(コネクトスキャン)
直接ポートに接続を試みるスキャン
特徴は以下の通り。
- 信頼性が高い
- ログに残る
2.3.2. SYNスキャン(ハーフポートオープンスキャン)
SYNスキャンはTCPの3Wayハンドシェイクの通信の際にサーバから以下の信号が返ってくることを利用したスキャン方法。
信号 | 意味 |
---|---|
SYN/ACK | ポートが開いている |
RST | ポートが閉じている |
この手法の特徴は以下の通り
- 接続が確立しない
- ログが残りにくい
2.3.3. TCPクローズドポートスキャン
TCPクローズドポートスキャンは接続開始時にSYNフラグ以外のフラグを付けたパケットを送りつけることによりスキャンする方法。 つまりRFCのTCPのルールを無視してパケット送信を試みる。
送信側が規定に沿わないパケットに立てられる制御フラグの種類によって種類分けできる。
この手法ではクローズドポートの反応を見てオープンポートを判別する。 つまり内部的には「クローズポートではない」=>「オープン」と判断する。
特徴としては以下の通り
- すべてにポートを調査する必要
- OSによりパケットに対する返送方法が異なる
- 時間がかかる
- パケットが通信経路で破棄される可能性があるため信頼性が低い
- Windows OSには使えない
NULLスキャン
制御フラグを全く立てずに送信する
FINスキャン
FINフラグを立てて送信する(通常はデータ終わりを示す)
Xmasスキャン
FIN、URG、PUSHフラグを立てて送信する
ACKスキャン
ACKフラグを立てて送信する
特徴は以下の通り
- FireWallの有無を調べることができる
- 返送されたRSTを調べて判断する
2.3.3. IPIDスキャン(Idleスキャン)
IPIDスキャンはIPパケットにIPIDと呼ばれる値があることを利用した攻撃対象のサーバにIPアドレスを知らせないスキャン方法。 つまり身元を隠したスキャンが可能。
IPIDはIPパケットを送信するたびに1つずつ増えていくもので、IPIDスキャンでは他のマシン(ゾンビマシン)にポートスキャンをさせる。 内部的にはSYNスキャン行い、ゾンビマシンのIPIDを調べることでポートスキャンでのオープン/クローズを調べるものとなる。
この手法はゾンビマシンが他のホストと頻繁に通信を行い場合、IPIDが予測通りにならない問題がある。
特徴は以下の通り。
- ゾンビマシンの選定が重要
- パケットを頻繁にやり取りしているマシンだとIPIDがずれやすいため
- IPIDはパケット送信のたびに増える
- ターゲットに攻撃機のログがほとんど残らない
2.3.4. UDPスキャン
UDPスキャンはポートが閉じている場合ICMPのPort Unreachableが到着する性質を使ってスキャンを行う。 あまり使用されない。
2.3.5. リストスキャン
リストスキャンはDNSの情報取集の代わりに使用できるもの。
2.4. 認証システムの突破
2.4.1. 認証の基礎知識
認証要素と多要素認証
認証する要素は知識要素、所有要素、生体要素の3つに分類される。 多要素認証は認証の際に上記3つのうちの2つを認証に用いる認証方法のこと。
- 知識要素 … パスワード、PINコードなど
- 所有要素 … SMS認証、アプリ認証、ワンタイムトークンなど
- 生体認証 … 指紋、虹彩など
パスワード認証
認証にユーザ名/パスワードの2つの知識要素を用いた単要素認証。
2.4.2. パスワードクラック
認証要素におけるパスワードを求めるハッキング手法。 方法は大きく分けると以下の3つがある。
- ブルートフォースアタック(総当たり攻撃)
- 推測攻撃
- 辞書攻撃
またパスワード認証を突破するには以下のことを考慮することが重要になる。
- 脆弱性を確定できないことが多い
- 直接認証突破の失敗はログとして残る
- 事前の情報収集が重要
ブルートフォースアタック(総当たり攻撃)
考えられるパスワードのすべての組み合わせからあたりを探す手法。
推測攻撃
パスワードで推測可能なものから認証を試していく手法。
辞書攻撃
ユーザ名やパスワードに使用される言葉一覧辞書などを用いて総当たりしていく手法。
ハイブリッド攻撃
ブルートフォースアタック(総当たり攻撃)、推測攻撃、辞書攻撃の3つを組み合わせた攻撃手法。
2.4.3. パスワードクラックの種類
パスワードクラックは認証方法によってオンライン、オフラインに分けられる。
- オンライン
- 実際のWEBの認証画面を用いる
- APIなどを利用した認証
- ネットワークの盗聴
- オフライン
- パスワード記録ファイルを盗み出しファイル解析を行う手法
- 解析にはレインボテーブル攻撃を使用する
2.4.4. レインボテーブル攻撃
レインボー攻撃は用意した辞書の語句を保存されたパスワードと同じ方式でハッシュ化して比較しパスワードを求める攻撃のこと。 これは通常、パスワードは暗号化されたハッシュという方式で保存されるという性質を利用した攻撃となる。
2.5. 脆弱性への攻撃
2.5.1. 脆弱性の有無の確認
脆弱性への攻撃は当然ながら攻撃対象システムの脆弱性を発見する必要がある。 判断は以下のステップで判断する。
- サーバのフットプリンティング
- 脆弱性の情報収集
- 攻撃が可能な脆弱性の発見
2.5.2. 脆弱性の攻撃方法
脆弱性の攻撃方法は攻撃によって異なる。
Metasploit Framework
Metasploit Frameworkはペネトレーションテストツールキット兼エクスプロイト開発プラットフォーム。 このソフトウェアはKali Linuxに付属している。
Metasploitは脆弱性情報の収集に利用可能でExploitモジュールなどもポータルサイトで検索可能となっている。
2.6. 権限の昇格
2.6.1. 権限昇格
権限昇格はアクセス権取得フェーズにおけるユーザ権限までしか取得できなかった場合の管理者権限取得を目指すことを指す。
権限昇格の必要性
権限昇格は以下の内容を行うために行う。
- バックドアの作成とその隠蔽
- 痕跡の消去
- ローカルからの攻撃
ローカルの攻撃の情報収集
ローカルにアクセスできるようになったら行うべき事は以下の通り。
- 行うべき情報収集
- 起動しているプロセスの確認(
ps -aux
) - 設定ファイルの確認
- コマンドによるバージョンの取得
- 起動しているプロセスの確認(
- ローカルで行える脆弱性に対する攻撃
- MetasploitよりもCVEなどに乗っている
- リモートではないローカルに関して見直す
- 攻撃スクリプトをローカルで実行する
2.7. アクセス権の維持
2.7.1. アクセス権の維持
アクセス権の維持はいつでもそのホストにアクセスできるようにすることことを指す。
アクセス権の維持の必要性
アクセス権の維持は以下の観点から行われる。
- 認証突破した場合に複雑な認証を再設定される可能性があるため
- 脆弱性突破した場合にその脆弱性が修正されてしまう可能性があるため
- 再攻撃か厳しい場合(バッファオーバフローなど)
- 権限昇格までの手順が複雑だった場合
2.7.2. バックドア
バックドアとは
正規の手続きを踏まずに内部に入ることのできる侵入口のこと。
バックドアのタイプ
バックドアのタイプは以下のようなものがある。
- 開発設計段階で組み込まれるもの(脆弱性) … 開発者がテスト/デバック用に組み込んだもの(リリース時に削除し忘れる)
- 開発者が意図して作ったもの … 仕様外のデバック用の目的に仕込んだもの
- 政府の諜報機関用のもの … CALEAという米国内の法律によりバックドアが設けられている
- 攻撃者に仕込まれたもの … 攻撃者がアクセス維持のために設けたもの
2.7.3.バックドアの種類
アクセス維持のために攻撃者が仕込むバックドアの種類は以下のようなものがある。
- ユーザアカウントの追加
- 既存サービスの起動
- サービスの追加
- ルートキット
ユーザアカウントの追加
認証系に新しいユーザの作成とそれに管理者権限を与えるというもの。
特徴は以下の通り。
- ファイルに記述が残るので隠ぺいが難しい
- ログインがログに残る
既存サービスの起動
すでにOSに用意されているサービスを利用してバックドアを作成するというもの。
サービス | 説明 | コマンド |
---|---|---|
Netcat | 汎用TCP/UDP接続CLIツール | nc -l -e /bin/sh -p <待ち受けポート> |
inted, Xinetdなど | スーパサーバデーモン | echo '7777 stream tcp nowait root /bin/sh sh -i > /tmp/.x;/usr/sbin/inetd -s /tmp/.x;rm -f /tmp/.x (intedで7777/tcpへのアクセスでrootで/bin/shを起動) |
認証系サービス(rsh, rlogin,rcmdなど) | 停止されているサービスを動かす | service --status-all で確認、service <サービス名> start で起動 |
ルートキット(rootkit)
ルートキットはアクセス維持のために使用されるツールセットのこと。 含まれるのは以下のようなものがある。
- バックドア
- スニファ
- キーロガー
- 隠ぺい手段
また種類にはアプリケーションレベル、カーネルレベルの2種に分けられる。
種類 | 説明 |
---|---|
アプリケーションレベル | バックドアを既存サービスに隠ぺいするもの(ps, netcatなど) |
カーネルレベル | カーネルを改変するもの(LKMなど)、システムカーネルの改変による隠ぺい |
サービスの追加
yum
、apt-get
などでサービスをインストールする。
2.7.4. バックドアの隠ぺい
バックドアは管理者に見つからないようにする必要がある。 そのためには名前をごまかす、既存サービスのファイルの改ざんなどを行う。
またLKM型ルートキットを使用する方法もある。
バックドアは特性上ポートのListenが必要となる。 そのためポートスキャンなどでわかってしまう場合がある。 その対策としてはトリガー時のみにポートをListenするなどの工夫が必要になる
ルートキットの検出
ルートキットの検出は以下のようなことで可能となる。
- HIDSなどによる整合性チェック
- ルートキットの検出プログラムの使用
- chkrootkit(Linux)
- rkhunter(Linux)
- BlackLight(Windows)
- RootkitReveler(Windows)
2.7. 痕跡の処理
2.7.1. 後処理の必要性
後処理はアクセスの際に残ったログの消去や、攻撃の際に作成した設定ファイルやツールの消去などが該当する。
- アクセスログの消去
- 作成ファイルや一時ファイルの削除
- Cookieなどの痕跡の消去
- 設定変更したファイルを元に戻す
これらにより露見した際の追跡阻害や完全犯罪を試みる。
2.7.2. 後処理の注意
後処理には管理者権限が必要となる。 注意点は以下の通り。
- 作業漏れ(触ったところを覚えておく)しないように
- ログの設定の確認
- 外部のサーバにログ転送しているケースもある
2.7.3. ログの種類
アプリケーションやOSのログの種類はテキストデータとバイナリデータの2種類がある。
テキストの例は以下の通り。
- syslog … ログメッセージをIPネットワークで転送する標準規格(Linuxではrsyslogが標準)
- Apacheログ
バイナリの例は以下の通り。
- lastlog
- Windowsイベントログ
ログ消去のポイント
- syslogの場合
- 該当IPアドレスに記載されているPIDを抜き出し、PIDに対してsedコマンドで削除する
- バイナリログの場合
- metasploitの場合はmeterpreterのログ消去コマンドを使用
2.7.4. カモフラージュ
権限昇格ができなかった場合ログを塗りつぶすことで調査の拡散を行う。
ログの塗りつぶし
まずログが記録するイベントを把握する必要がある。 またその際にIPアドレスは偽装できるとよいとされる。
3 - 3.情報収集
3.1. 情報収集の目的
情報収集では攻撃を行うために必要な情報を集める。
集める情報はターゲットにより異なり、集めるべき情報は何かその時々にならないとわからない。 そのため情報収集は繰り返し行い、情報を常に深堀して調べることが重要となる。
攻撃に必要な情報は以下のようにして集める
- 自ら公開されている情報/意図せずに第三者が公開している情報から集める
- 直接ホストにアクセスする
- 検索エンジン/SNSを駆使する
- ソーシャルエンジニアリングを用いる
3.2. 情報収集の手法
情報収集の手法は受動的情報収集、能動的情報取集の大きく2つある。
手法 | 説明 | 法的準拠 |
---|---|---|
受動的情報収集 | 攻撃対象が提供している情報を収集 | ほとんどの場合は合法 |
能動的情報収集 | 攻撃対象に直接アクセス/コマンドを打ち込む | 状況によって非合法 |
またハッキングではOSINT(Open-Source Intelligence)と呼ばれる合法的に入手できる資料を調べて突き合わせる手法が情報収集の基本となる。
3.3. 公開情報の収集
3.3.1. 公開している情報
公開している情報の例としては以下のようなものがある。
- ホームページ/ブログ
- DNS情報/WHOIS情報
- ドメイン/ネットワーク
- 会社の所在地/役員・社員名
- 電話番号/連絡用メールアドレス
- 取引先情報
- IR/投資家向け情報
- HTML/画像などのメタファイル
- SNS
- フォロワー
- 発信内容
- その他の媒体
- メディアの記事(ニュースサイト、まとめサイトなど)
- 第3者の運営するWebサービス(ネット掲示板など)
- ナレッジデータベース(Wikipediaなど)
- 求職情報
3.3.1.1. 検索エンジンの活用
検索エンジンでの「AND検索」「OR検索」「NOT検索」「フレーズ検索」などの活用はもちろん、Googleの検索エンジンを利用する場合はGoogle Dorkと呼ばれる特殊検索クエリによる検索なども利用される。
GoogleDorkは特定のウェブサイトの特定のページやドキュメント、特定のファイル形式(PDF、DOC、XLSなど)、ディレクトリ、脆弱性などを見つけるために使用される。
参考: https://www.exploit-db.com/google-hacking-database … Google Dorksでの使用に役立つ特殊検索クエリを紹介しているサイト
3.3.1.2. ソーシャルエンジニアリング
ソーシャルエンジニアリングは実際に関係者を装い情報を盗み出す手法。 パスワード入力の盗み見などのショルダーハッキングやごみ箱をあさって書類を盗み見ることなどが含まれる。
また、実際に物理的な移動を伴う場合や人物との接触なども含まれる。
3.4. ネットワークの情報収集
ネットワークの情報収集ではドメインやDNSサーバの情報、IPアドレスなどを取得する。
3.4.1. ドメインから得られる情報
ドメインからIPアドレスを調べるにはnslookup
コマンドなどで可能となる。
またWHOIS情報を取得する方法もある。
3.4.2. IPアドレスから得られる情報
IPアドレスはNICと呼ばれる団体が管理しており、そのドメイン傘下のJPNICが日本国内の.jp
を管理している。
WHOIS情報からは調べたサーバのIPアドレスを含むネットワーク範囲などを求めることができる。
JPNIC: https://www.nic.ad.jp/ja/whois/ja-gateway.html
ICANN Lookup:https://lookup.icann.org/en
3.5. サーバの情報収集
サーバへ直接アクセスするのはやり方によっては不正アクセスと認識される場合がある。 セキュリティの観点から直接サーバにアクセスすることは重要となる。
3.5.1. Ping/traceroute(tracert)
pingは疎通確認用のコマンドでtraceroute(tracert)は通信経路を調べられるコマンド。 traceroute(tracert)は接続経路を調べられるコマンド。
pingはICMPを利用する。 traceroute(tracert)はWindowsの場合はICMP、Linuxの場合はデフォルトではUDPが使用される。
3.5.2. コマンドを利用したネットワーク構成の推測
上記コマンドを駆使することでネットワーク構成の推測が行える。 ただし推測できるのは論理構成のみで物理構成は推測ができない
windowsとLinuxでの通信経路を調べる際に使用されるプロトコルの違いなどもその際に利用できる。
基本手順は以下の通り。
- traceroute/tracertでターゲットまでの経路を確認
- ターゲットホストとその1つ前のネットワークに注目
- その1つ前のネットワークのエッジ(最初のアドレス)内に境界ルータ/FWがある
- 各スキャンで得られるIPアドレスの情報(192.168.XXX.XXXや通常アドレスなどの構成)からネットワークやホストを推測する
- 1~4を様々なスキャンで繰り返す
3.5.2. ポートスキャン
ポートスキャンはサーバの提供するサービスのポートのどこが開いているかを探ること。
ポートの数は065535まであり、手動でやるのは得策ではない。(一般的にはWellknownPort(01023)を使用する)
そのためツールの類を使ってスキャンを行う。
しかしポートスキャンをかけると特徴的なログが残るためサーバ管理者に攻撃やスキャンの兆候を知らせることになる。
ポートに対して接続を試みる方法としてはコネクトスキャンというものが存在する。 この手法は対象サーバにログが残るため検出されやすいという欠点がある。
ポートスキャンでは以下の内容が確認できる。
- 開いている/閉じているポート番号
- FWにアクセス制限されているポートの情報
- 開いているポートで稼働しているサービスに関する情報
- OSに関する情報
またスキャンの際に察知されないようにスキャンする方法はいくつかあり以下のようなものがある。
- SYNスキャン(ハーフオープンスキャン)
- TCPクローズドポートスキャン
- IPIDスキャン
3.5.3. サーバのフットプリンティング
サーバにおけるフットプリンティングはサーバで提供しているサービスのホスト情報を収集することを言う。 フットプリンティングを行うには開いているポートの情報とIPアドレスが必要となる。
フットプリンティングの方法は以下の通り
- 開いているポートにtelnet/netcatでアクセスを試みる(
telnet <IPアドレス> <ポート番号>
) - 返ってきたバナーの情報からサーバ/サービスのバージョン情報などを取得する
なおバナーがでないポートなどもある。 またtelnetのアクセスでバナーが返却されるサービスは以下の通り。
サービス | ポート |
---|---|
ftp | 21/tcp |
ssh | 22/tcp |
telnet | 23/tcp |
smtp | 25/tcp |
pop3 | 110/tcp |
またHTTPでの接続でバナーを表示する場合はtelnet接続後にHEAD / HTTP/1.0
入力後に改行を2回送信する必要。
HTTPSでの接続でバナーを表示する場合はopenssl s_client -host <IPアドレス> -port <ポート番号>
をtelnetの代わりにに入力しHTTPと同じ手法でアクセスする必要がある。
3.6. 脆弱性診断の情報収集
3.6.1. 脆弱性情報の入手先
脆弱性情報の公開もとには以下のようなものがある。
- 開発/販売ベンダーが公開している情報
- JVN/CVEなどの機関が公開している情報
- Exploit DBやRapid 7などのセキュリティ企業/団体が公開している情報
- 有志/ハッカにより公開している情報
3.6.2. CVE(Common Vulnerabilities and Exposures)
CVEは米国の非営利団体MIRTEが運営する共通脆弱性識別子というインシデントに固有番号を付けて管理する仕組み。 管理方法はCVE、CANの2種類がある。
例) CVE-2018-21003
- CVE … 確定した脆弱性
- CAN … 脆弱性の可能性
3.6.3. CVSS(Common Vulnerability Scoring System)
CVSSはFIRSTが推進する脆弱性評価システムのこと。 CVSSにより脆弱性の深刻度を同一基準化で定量的に比較することが可能となっている。
評価基準は以下の3つある。
- 基本評価基準 … 脆弱性時代の特性評価
- 現状評価基準 … 上記に配布パッチの効果を含めた評価
- 環境評価基準 … ユーザへの影響度を含めた評価
共通脆弱性評価システムCVSS : https://www.ipa.go.jp/security/vuln/scap/cvss.html
共通脆弱性評価システム計算機 : https://jvndb.jvn.jp/cvss/ja/v31.html
基本評価基準
項目 | 内容 |
---|---|
攻撃元区分(AV) | ローカル / 隣接ネットワーク / ネットワーク / 物理 |
攻撃条件複雑度(AC) | 高 / 中 / 低 |
攻撃前認証認否(Au) | 複数 / 単一 / 不要 |
機密性への影響(C) | なし / 部分的 / 全面的 |
完全性への影響(I) | なし / 部分的 / 全面的 |
可用性への影響(A) | なし / 部分的 / 全面的 |
現状評価基準
項目 | 内容 |
---|---|
攻撃される可能性(E) | 未実証 / 実証可能 / 攻撃可能 / 容易に攻撃可能 |
利用可能な対策レベル(RL) | 正式 / 暫定 / 非公式 / なし |
脆弱性情報の信頼性(RC) | 未確認 / 未検証 / 確認済 |
環境評価基準
項目 | 内容 |
---|---|
緩和策後の攻撃元区分(MAV) | ローカル / 隣接ネットワーク / ネットワーク / 物理 |
緩和策後の攻撃条件複雑度(MAC) | 高 / 中 / 低 |
緩和策後の攻撃に必要な特権レベル(MPR) | 複数 / 低 / 高 |
緩和策後の利用者の関与(MUI) | 不要 / 要 |
緩和策後の影響の想定範囲(MS) | 変更なし / 変更あり |
機密性への要求度(CR) | なし / 部分的 / 全面的 |
完全性への要求度(IR) | なし / 部分的 / 全面的 |
可用性への要求度(AR) | なし / 部分的 / 全面的 |
3.6.4. NVD(National Vulnerability Database)
NVDは米国国立標準研究所(NIST)が管理する脆弱性データベース。 CVSSと呼ばれる危険度の採点があるのが特徴となっている。
3.6.5. JVN / JVN iPedia
日本国内の脆弱性管理基盤。JPCERT/CTTとIPAが共同運営している。 JVNとJVN iPediaは以下のような違いがある。
- JVN … 早期周知
- JVN iPedia … 蓄積と共有
3.6.6. Rapid 7 / Explot Database
Metasploitと呼ばれる脆弱性診断プラットホームのモジュールの検索と脆弱性検索が行えるデータベース
3.7. 情報収集ツール/サービス一覧
3.7.1. OSINTツール
OSINTで役立つWebサービスやツールを記載する。
名称 | URL | 分類 | 説明 |
---|---|---|---|
OSINT Framework | https://osintframework.com/ | Webサイト | OSINTツールの紹介ページ |
Google Hacking Database | https://www.exploit-db.com/google-hacking-database | Webサイト | Google Dorksでの使用に役立つ検索コマンドを紹介しているサイト |
Netcraft Site Report | https://sitereport.netcraft.com/ | Webサイト | Webサイトがどこのサーバーで管理されてるか調査・確認できるサービス |
Shodan.io | https://www.shodan.io/ | Webサイト | インターネットに公開されたデバイスの中からポートが開放されている機器を調べることのできるサイト |
Censys.io | https://search.censys.io/ | Webサイト | グローバルIPアドレスから該当サーバーで利用できるプロトコルを調査したり、サーバー証明書を検索することができる |
TinEye | https://tineye.com/ | Webサイト | ウェブ上で似た画像を特定しその情報や出典を調査できるサイト |
SPOKEO | https://www.spokeo.com/ | Webサイト | 人物情報を収集し提供するオンラインプラットフォーム |
Maltego | https://www.maltego.com/ | ソフトウェア | インターネット上の情報を収集して関連性を可視化するアプリ |
theHarvester | https://github.com/laramies/theHarvester | CLIツール | 主に電子メールアドレスやドメインに関連する情報を収集し組織や個人のデータを見つけることのできるツール |
Recon-ng | https://github.com/lanmaster53/recon-ng | CLIツール | ウェブ上から情報を収集し分析するためのツール。脆弱性評価や攻撃可能性の調査、組織や個人のプロファイリングなどで使用される。 |
SpiderFoot | https://github.com/smicallef/spiderfoot | CLIツール | インターネット上の情報を収集するツール。これで集めた情報はネットワークの脆弱性やリスクを評価するために使用される。 |
CREEPY | https://github.com/ilektrojohn/creepy | ソフトウェア | ソーシャルメディアを中心にインターネット上から個人の情報を収集するツール |
Metagoofil | https://github.com/opsdisk/metagoofil | CLIツール | ウェブ上からメタデータを収集するために使用されるツール。情報のリークや組織のデジタルフットプリントを評価するのに使用される。 |
FOCA | https://github.com/ElevenPaths/FOCA | CLIツール | ウェブサイトからメタデータを取得し組織や個人のプロファイリングするツール |
SKIPTRACER | https://github.com/xillwillx/skiptracer | CLIツール | 人物情報を収集して関連性を分析するツール |
その他の国内の情報取得に役立つサービス/情報源を以下に記載する。
名称 | URL |
---|---|
GoogleMaps | https://www.google.com/maps |
ネット電話帳 - 住所でポン! | https://jpon.xyz/ |
電話番号検索 | https://www.jpnumber.com/ |
ZipCode Japan | https://zipcode-jp.com/modules/zipcode/ |
3.7.2. ダークウェブ向けOSINTツール
ダークウェブ向けのOSINTツールは以下。
名称 | URL | 説明 |
---|---|---|
TorBot | https://github.com/DedSecInside/TorBot | .onionクローラとして動作しダークウェブ上から情報収集を行う |
DarkScrape | https://github.com/itsmehacker/DarkScrape | Torサイトでメディアリンクを見つけるためのOSINTツール |
FreshOnion | https://github.com/dirtyfilthy/freshonions-torscraper | 非表示サービスの発見などが行える |
Onion | https://github.com/k4m4/onioff | Deep Web URLを調査するために設計されたツール |
TorCrawl | https://github.com/james04gr/TorCrawl.py | Tor上の隠されたサービスをナビゲートとコード抽出に使用可能 |
Photon | https://github.com/s0md3v/Photon | ディープウェブのURLを探索するためのPythonベースの簡単なツール |
Hakrawler | https://github.com/hakluke/hakrawler | Web アプリケーションクローラ。Webアプリケーション内のエンドポイントを識別できる |
OSINT-SPY | https://github.com/SharadKumar97/OSINT-SPY | OSINTツール |
Gasmask | https://github.com/twelvesec/gasmask | ペネトレーションテスタ向けの包括的なOSINT情報収集ツール |
h8mail | https://github.com/khast3x/h8mail | 電子メールOSINTおよびパスワード侵害ハンティングツール |
Skiptracer | https://github.com/xillwillx/skiptracer | OSINTスクレイピングフレームワーク |
FinalRecon | https://github.com/thewhiteh4t/FinalRecon | Web偵察OSINTツール |
3.7.3. スキャニングツール
名称 | URL | 分類 | 説明 |
---|---|---|---|
ネットワーク系コマンド | - | CLIツール | ping,tracerouteなどのネットワーク系コマンド |
NetCat(コマンド) | https://github.com/opsdisk/metagoofil | CLIツール | TCP/UDP接続が行えるツール。Linux/Windowsに標準搭載されている。 |
NMap | https://nmap.org/man/ja/index.html | CLIツール | ポートスキャン用ツール |
3.7.4. 脆弱性情報源
脆弱性の情報を公開している情報源となるサイトを以下に記載する。
名称 | URL | 説明 |
---|---|---|
NVD | https://nvd.nist.gov/ | 脆弱性管理データの米国政府リポジトリ |
JVN | https://jvn.jp/ | 日本の全国的な脆弱性データベース |
CVE | https://cve.mitre.org/ | CVE(共通脆弱性識別子)に基づいた脆弱性のデータベース化したもの |
CVE List | https://www.cve.org/ | CVE List |
Exploit DB | https://www.exploit-db.com/ | 脆弱性エクスプロイト・アーカイブ |
Rapid 7 | https://www.rapid7.com/db/ | 脆弱性検索エンジン |
CX Security | https://cxsecurity.com/exploit/ | 最新のエクスプロイトに直接アクセスでき検索できるデータベース |
Vulnerability Lab | https://www.vulnerability-lab.com/ | エクスプロイトや PoC を備えた大規模な脆弱性データベース |
Packet Storm Security | https://packetstormsecurity.com/files/tags/exploit/ | 脆弱性や勧告の共有に特化したエクスプロイト コミュニティ |
4 - 4.DoS攻撃/DDoS攻撃
4.1. DoS攻撃の基礎
4.1.1. DoS攻撃とは
DoS(Denial of Service)攻撃(サービス拒否攻撃)はユーザによるシステムに対するアクセスを低下/制限、阻害する攻撃のこと。 攻撃対象はホストだけではなくネットワークも対象となる。
4.1.2. DoS攻撃の攻撃対象
DoS攻撃はターゲットに対する経済的損失や信用失墜を目的とした攻撃となる。 つまりサービス提供機能への損害を目的としている。 そのため企業などの営利組織のホストやネットワークが攻撃される傾向がある。
4.1.3. DoS攻撃の特徴
DoS攻撃は攻撃の有効性を上げるために通信が工夫されているため通信パターンにわかりやすいシグネチャ(特徴)がある。 そのためIDS/IPSやFWなどの侵入検知に引っ掛かりやすい。
そのためDoS攻撃は見つかりやすくとても防がれやすい。 この上記性質を生かして監視や分析(フォレンジック)を行う人員の目をごまかすのには使用できるという面もある。
運用監視者オペレータの対応への応用
システム運用監視オペレータは大規模なシステムだと24時間システムを監視している。
DoS攻撃などがあるとIDSなどが検知してアラートが鳴る
。
その際彼らは対応業務に追われることになり、その際の対応手順が複雑で頻度が多い場合は監視レベルを下げることをする可能性もある。(実際これを行うのは邪道) つまりアラートや該当する項目を監視しないようにするなどを行う可能性がある。これを繰り返すことでセキュリティホールの多いシステムとシステム管理者側にさせるという方法として使えたりもする。
また常にアラートを鳴らさせることによりカモフラージュとして使用するということも使えたりもする。
フォレンジック調査員の対応への応用
これは無意味なログでログを埋めることでフォレンジック調査の手間を増やすというもの。 またIPアドレスの偽装をすることで捜査を攪拌することもできる。
またこの際に捜査に時間をかけさせることによりログの保管期限を過ぎることを狙うこともできる。
後処理段階でDoS攻撃を活用する
DoS攻撃は権限昇格できない場合の痕跡消去としても利用できる。
これはログを塗りつぶすことでログを汚すことが根本になる。 そのためIPスプーフィングがとても重要となる。
4.2. DoS攻撃の種類
DoS攻撃は攻撃対象から以下のタイプに分類される。
- 帯域幅消費タイプ
- システムリソース消費タイプ
- アプリケーションのロジックエラータイプ
4.2.1. 帯域幅消費タイプ
帯域幅消費タイプではネットワークやサービスの帯域幅を大量のリクエストを送ることにより消費させるタイプの攻撃。
このタイプは現在では多くのシステムが対応されているため、そのまま使うのは難しい。 そのためこの手法で行う場合は様々な工夫が必要となる。
4.2.2. システムリソース消費タイプ
システムリソース消費タイプはシステムのリクエストを処理する能力やロジックの不備を突いてシステムのリソース/CPUに過剰負荷をかけるタイプの攻撃。
4.2.3. アプリケーションのロジックエラータイプ
アプリケーションのロジックエラータイプではアプリケーションのロジックエラーをついて無限ループや過剰な負荷をかけるタイプの攻撃。
4.3. DoS攻撃とIPスプーフィング
DoS攻撃においてIPスプーフィングはとても重要になる。 これは攻撃元の特定を阻害、攻撃の効果を増加させるのに効果的である。
またDoS攻撃は攻撃のカモフラージュや捜査誘導、痕跡の消去を目的として使われる場合がある。
4.4. DoS攻撃のメカニズム
4.4.1. 帯域幅消費型DoS攻撃
帯域幅消費型DoS攻撃は通常のリクエストやパケットを大量に送り付けることで帯域を消費させる攻撃のこと。 この手法は通常、1~2台の少ないホストでこの攻撃を試みても企業などの運営する大規模サーバでは対応されて攻撃が難しいという問題がある。 そこで攻撃を有効的にするためのアプローチとして以下の方法がある。
- 送信するパケットや送信方法を工夫する
- 1台ではなく複数台で送信する(DDos攻撃)
この攻撃には以下攻撃が含まれる。
- SYNフラッド攻撃
- ICMPフラッド攻撃
- UDPフラッド攻撃
- ARPフラッド攻撃
- IPアドレス増幅攻撃
- PING OF DEATH攻撃
4.4.2. SYNフラッド攻撃
SYNフラッド攻撃はTCPの3ウェイハンドシェイクを悪用した攻撃手法。
これはサーバ側がTCPの接続要求を受け取った際にTCP+ACK信号を返すが、そのときに接続テーブル上にACKが戻ってくるまでそこにバッファとして待機させることを悪用したものである。これはデフォルトでは75秒間保存される。 攻撃者側はこの際にACK信号を返さないようにするため、相手のサーバは接続テーブル上にデータを確保したままとなる。 この確保している間に攻撃者は新しくTCP+ACKを送り、同様に接続テーブルを確保させる。 これを繰り返すことにより接続テーブルを圧迫し、繋がらないようにするのがこの攻撃の仕組みとなっている。
そのためこの攻撃はSYNフラグを送り続ける必要とIPアドレスを偽装してSYNフラグを送り付ける必要がある。 これは接続テーブルが既存に確保したIPアドレスからのTCP通信要求だと接続を確保しないためである。
4.4.3. 増幅系攻撃
増幅系攻撃は偽装したIPアドレスにより特定のネットワーク内での応答を増幅させる攻撃手法。 この攻撃はICMPやUDP/TCPなどの様々なプロトコルに応用できる。
ICMP/ARP/UDPフラッド攻撃
ICMP/ARP/UDPフラッド攻撃はブロードキャストする性質を悪用した攻撃手法。 具体的にはICMP場合は攻撃対象の内部ネットワークのすべてに対して送信元をネットワークのエッジノードのIPアドレスに偽装したpingを送り、その際に返るエコー応答がネットワークのエッジノードに集中的に返ってくることを悪用したものとなる。 このときエコー要求/エコー応答合わせて要求の2倍パケットを生成できる。つまり1つの攻撃でパケットが内部ネットワークのホスト数2倍のパケットを生成するため非常に効率が良いものとなっている。
この場合は例えばネットワークのエッジノードが192.168.1.1
の場合、攻撃者は送信元IPアドレスを192.168.1.1
に偽装して192.168.1.0/24
などネットワーク全体(ネットワーク内部マシンすべて)にPingを送るということになる。
なおICMP/UDPフラッド攻撃はIPv6ではブロードキャストアドレスがないためこの攻撃はできない。
IPアドレス増幅攻撃
IPアドレス増幅攻撃は上記のフラッド系攻撃にIPアドレスを偽装することで効果を高めることを目指すもの。 代表的なものにはSmurf攻撃、Fraggle攻撃がある。
4.4.4. アプリケーションロジックエラータイプの攻撃
アプリケーションロジックエラーはアプリケーションの脆弱性を攻撃するもの。 この攻撃は基本的にアクセス権の取得を目的に使われることがある。
Ping of Death攻撃(現在使用不能)
pingとして送るパケットを65535Byteにして送る攻撃。 これはICMPのデータ格納領域を悪用して65535Byteを超えるICMPパケットを送り送信し、受け取った相手のホストをダウンさせるものであった。 この攻撃は現在ほとんどのOSで対応されているため利用不可能となっている。
WinNuke攻撃(現在ほとんど使用不能)
WinNuke攻撃は139/tcpにOOB(Out Of Bounds)というリクエストを送る攻撃。 受け取ったOSが古いWindows OSだとWindowsがハングアップするものとなっている。
E-mail Bombing攻撃
E-mail Bombing攻撃(メール爆弾攻撃)は大きなサイズのメール(添付ファイルを含む)を大量にメールサーバに送ることによりメールサーバのリソースを消費させる攻撃。
SLOW HTTP攻撃
SLOW HTTP攻撃はウェブサーバに対する攻撃手法。 この攻撃は攻撃者がウェブサーバに対して大量のHTTPリクエストを送り、そのリクエストを処理する際にサーバのリソースを消耗させることを目的としてる。 攻撃者はこの際に通常、サーバのリソースを過度に消費するリクエストを意図的に遅らせ、サーバーのリソース枯渇を引き起こすことを試みる。
特徴は以下の通り。
- 遅延されたリクエスト … 攻撃者はリクエストを遅らせるために、リクエストヘッダーの送信を遅くするか、リクエストボディのデータ送信を遅くして送信する
- 持続的な接続 … 攻撃者は通常リクエストを保持する持続的な接続を使用して攻撃を実行する
- リソースの消耗 … サーバはリクエストを待機中にリソース(CPU、メモリ、ネットワーク帯域幅)を浪費し、正規のクライアントへのサービス提供に支障をきたすことがある
またSLOW HTTP攻撃の対策は以下内容を目指すことで実現できる。
設定内容 | 説明 |
---|---|
リクエストタイムアウトの設定 | サーバー側でリクエストの最大処理時間を設定し遅延リクエストに対処できるようにする。 |
リクエスト数の制限 | 単一のIPアドレスからのリクエスト数を制限することで過剰なリクエストをブロックできる。 |
リクエストヘッダーの検証 | 異常なヘッダーを持つリクエストをフィルタリングすることで攻撃を検出および防御できる。 |
4.5. DDoS攻撃の基礎
4.5.1. DDoS攻撃とは
DDos攻撃(Distributed Denial Of Service Attack)は分散型サービス拒否攻撃とも呼ばれる複数台で行う帯域幅消費型DoS攻撃手法のこと。 特徴は以下の通り。
- 送るパケットは通常のパケット
- TCPリクエストを使う
- サービス運営側は通信を止めにくい(防衛が難しい)
- 複数のホストからタイミングを合わせて送信することで攻撃を実現する
4.5.2. DDoS攻撃の特徴
攻撃者はたくさんのボットを仕込んだマシン(ゾンビマシン)で構成されるボットネットを用意し、ハンドラ(C&Cサーバ)と呼ばれるツールを用いてボットネットに通信支持を行うことで攻撃を実現する。
そのため攻撃者のホストは直接攻撃を行わない。
4.5.3. DRDoS攻撃
DRDoS攻撃(Distributed Reflection Of Service Attack)は分散型反射サービス拒否攻撃とも呼ばれるDDoS攻撃とIPスプーフィングを混合した攻撃手法のこと。
この攻撃ではボットネットは中間標的にターゲットのIPアドレスでリクエストをする特徴がある。 中間標的はこのリクエストにこたえるためにレスポンスをターゲットに送り付けるものとなっている。
4.5.6. DDoS攻撃の要素
DDoS攻撃を構成する要素には以下のようなものがある。
- ボット
- DoS攻撃を行うように設定されたプログラム
- 外部からの指令やセットされたトリガーに基づき動作する
- マルウェアの一種
- ハンドラ
- 複数のボットを制御するプログラム
- 攻撃者の使用するボットに指令をするためのもの
- ボットネット
- ボットネットは複数のボットに感染したホストで構成されるネットワーク
4.5.6. DDoS攻撃を取り巻く現状
DDoS攻撃を行う攻撃者は組織化/エコシステム化していることが近年問題になっている。 これはボットネットを持つ攻撃者グループを犯罪組織/テロ組織/特定国家が支援していることが背景になる。 またそれらの団体は相互にボットネットを援助したりも行っている。
エコシステムは攻撃によって得られた情報をダークウェブ上の市場で共有したりする経済圏を指す。 これはダークウェブにおけるアンダーグラウンドが活性化する問題を孕んでいる。
5 - 5.Webアプリケーションへの攻撃
5.1. Webアプリケーションとは
WebアプリケーションはWebサーバとユーザのインターフェイスから提供されるシステムを指す。
5.2. Webアプリケーションのリスク増大
近年はネットワークによるサービスの普及、例えばショッピングや金融取引/故郷サービスなどがWebアプリケーションにより提供されている。 また使用ユーザや端末の多様化がますますそれを増大させている。 これによりWebアプリケーションのリスクが以前よりも増大している。
5.2.1. リスク増大の原因
リスクが増大するのは以下の要因が考えらえる。
- 動的サービスの必要性 … ユーザごとに異なる処理を提供する必要がある
- 取り扱いデータの重要性の増大 … 取り扱うデータの内容に決済情報や個人情報などデータそのものの重要性が増大している
- 構造的な問題 … そもそもHTTPSが重要なデータを扱った動的サービスの提供に向いている仕組みではないという問題がある
動的サービスの必要性
動的サービスを提供するには以下の内容を実装する必要がある。
- ユーザに合わせて表示内容を変える
- リアルタイムで情報を更新する
- 端末などに応じて表示内容やデザインを変える
また動的サービスの開発実装に使うフレームワーク/アーキテクチャの数が増えるほど、脆弱性を生じる可能性は増えていく。
具体的には以下のプロセスで動的サービスをユーザごとに実現する。
- ユーザからの入力をパラメータとして利用
- エンドポイント技術(JavaScriptなど)を利用
- 様々な形式によるデータ送信(XML, JSON, SOAPなど)を利用
取り扱いデータの重要性の増大
取り扱いデータの重要性は以下内容をWEBアプリケーションで扱うようになったため増大している。
- 個人情報
- 金融情報
- 損害/信頼失墜に結びつく情報
構造的な問題
そもそもHTTPは用意したファイルをWEBを通じて閲覧できることを目指したプロトコルであるため元の設計と現在求められている機能需要が構造的に乖離している構造的な問題がある。
- HTTPの問題
- デザインが古い
- セッションの維持が非考慮
- データの暗号化も非考慮
5.3. Webアプリケーション攻撃の種類
Webアプリケーションの攻撃の種類は大きく2つに分けられる。
- サーバサイド攻撃
- クライアントサイド攻撃
- 上記2つの複合攻撃
5.3.1. サーバサイド攻撃
サーバサイド攻撃はWebアプリケーションを利用してWebサーバに攻撃を行うもの。 この攻撃の目的は以下の通り。
- サーバのフットプリンティング
- 機密情報の閲覧
- アクセス権の取得
5.3.2. クライアントサイド攻撃
クライアントサイド攻撃はWebアプリケーションを利用してサービスを利用しているクライアントに攻撃を行うもの。 この攻撃の目的は以下の通り。
- ユーザの機密情報閲覧
- なりすまし
- フィッシング
- マルウェアの配布
5.4. Webアプリケーションの脆弱性の原因
Webアプリケーションの脆弱性が生じる原因のほとんどは開発者側のミスが原因となる。 例えば以下内容に関する知識や実装の不十分が脆弱性を引き起こさせる。
- 攻撃に対する理解
- CORS制約に対する理解
- 単純な実装ミス
- 開発言語の特性への理解
- 仕様
5.5. 攻撃につながるWebアプリケーションの脆弱性
攻撃につながるアプリケーションの脆弱性には以下のようなものがある。
- 入力値の検証(バリテーション)のミス
- ユーザから入力値/環境変数の検証
- バリテーションはフロントエンド/バックエンドともに実装する必要がある
- エラー情報の表示
- PHPなどのエラーメッセージが表示されその内容が流出
- 表示される不適切なメッセージで列挙が可能
- 表示時のエンコード
- ユーザからの入力値をHTMLに含める際に適切なエンコードが施されていない
- SQLの対策不備
- ユーザからの入力値からDBクエリを作成する際に適切な対策をしない
- 使用の不備/無計画な実装
- その他の要因
- 通信の暗号化
- SSL証明書の問題
5.6. Webアプリケーションへの攻撃手法
Webアプリケーションの脆弱性に対する攻撃を一部簡単に紹介する。
5.6.1. ヘッダ・インジェクション攻撃
ヘッダ・インジェクション攻撃はWebアプリケーションやネットワークサービスに対するヘッダを悪用した攻撃のこと。
攻撃者は不正なデータ(通常はHTTPヘッダー)を送信し、システムがそのデータをそのまま処理することによって、サーバやアプリケーションのセキュリティを破ろうとするものとなっている。またこれはHTTPヘッダ・インジェクションとも呼ばれる。 またHTTPヘッダ・インジェクションはセッションハイジャックやクロスサイトスクリプティング(XSS)攻撃などともに利用されることの多い攻撃となっている。
5.6.2. OSコマンド・インジェクション
OSコマンド・インジェクションはWebアプリケーションやシステムが外部から提供されたデータを利用してOSコマンドを実行する場合に発生する脆弱性を悪用した攻撃のこと。
攻撃者はこの攻撃で不正なOSコマンドを挿入し、システムを操作したり、機密情報を盗んだり試みる。 この攻撃は不適切な入力検証やエスケープ処理の不備によって可能となる。
5.6.3. SQLインジェクション
SQLインジェクションはWebアプリケーションやデータベースシステムに対しては不正なSQLクエリを注入して送信しようとする攻撃のこと。
SQLインジェクションが成功すると、攻撃者はデータベースから情報を盗んだり、データを改ざんしたりすることができるものとなっている。 この攻撃は入力検証(バリテーション)や適切なエスケープ処理が行われていない場合に発生する。
具体的にはプログラムが発行するSQL構文中に不正な入力値を含めてしまうことで攻撃者が任意にDBを操作できてしまうというもの。
想定される被害
- 認証の突破
- 機密情報の漏洩
- データの改ざん
- その他セキュリティ要素の侵害
認証突破
もっとも初歩的なSQLインジェクションの方法。
一般的にwhere句
が含まれるSQLに対して入力されるクエリとして' OR 1=1 --
や1' or '1' = '1';--
がある。
なおMySQLの場合は
これはBooleanを使用した命令となっている。上記例は有名な例であるためWAFで検知しやすい。
単純なWAFの場合は「2=2」などで検知を回避できるが「=」で検知している場合もある。
1=1
部の他の例は以下の通り。
7>1
'ab' LIKE 'a%'
5 BETWEEN 1 AND 7
対象にWhere句
でないもののが含まれる可能性がある場合(INSERTなど)は以下のようなものを使用する。
sleep()
などの時間遅延(MYSQL)a'||'b
などの文字列結合(Oracle DB)a/**/b
などのインラインコメント
5.6.4. ディレクトリ・トラバーサル
ディレクトリ・トラバーサル(Directory Traversal)はセキュリティの脆弱性の1つで攻撃者がアクセスの許可されていないディレクトリにアクセスできること。
攻撃者はWebアプリケーションやファイルシステム内のファイルにアクセスするために、通常許可されていないディレクトリに移動しようとする。 これにより機密情報への不正アクセスが可能ができる場合はディレクトリ・トラバーサルの脆弱性があることとなる。
5.6.5. オープンダイレクト
オープンダイレクト(Open Redirect)はWebアプリケーションのセキュリティの脆弱性の1つで攻撃者がリンクを介してユーザーを偽のウェブサイトに誘導することができる状況を指す。
攻撃者はリンクをクリックしたユーザを信頼性のあるウェブサイトから外部の不正なウェブサイトに誘導することができ、フィッシング攻撃や悪意のあるリダイレクトに悪用される可能性があるものとなっている。
5.6.6. クロスサイト・スクリプティング(XSS)
クロスサイト・スクリプティング(XSS)は攻撃者がウェブページに不正なスクリプトを挿入しユーザのブラウザで実行させることができることを可能にするもの。
具体的にはユーザの入力をレスポンスに含めるときにタグやスクリプトをそのまま表示する脆弱性を利用したものとなっている。 この攻撃によりユーザーのセッション情報やクッキーが盗まれたり、不正なアクションが実行されたりする可能性がある。
想定される攻撃
クロスサイト・スクリプティングはフロントエンドの場合、攻撃の個所により想定される攻撃文字列の形が大体決まっている。
場所 | 想定される攻撃文字列 |
---|---|
HTML本文内 | <script>alert(document.cookie)</script> または <img src=“x” onerror=alert(document.cookie)> |
タグ内の値 | “><script>alert(document.cookie)</script> または " onclick=alert(document.cookie)+” |
タグ内のイベント値 | “;alert(document.cookie)+” |
タグ内のイベントの引数 | );alert(document.cookie |
Javascript内 | ‘;alert(document.cookie);// |
またREST APIなどで渡されたJSONをデコードしている場合は、エンコードした文字列を内部に含めることで脆弱性となる場合もある。
想定される被害
- ホームページの改ざん
- フィッシングサイトへの誘導
- セッションIDの盗難
具体的な対策
- エンコードサニタイズを実装する
- 適切な入力検証やエスケープ処理の実装
またエンコードすべき文字は以下の通り。
文字列 | HTMLエンコード | URLエンコード |
---|---|---|
< | &lt; | %3C |
> | &gt; | %3E |
' | &#39; | %27 |
" | &quot; | %22 |
& | &amp; | %26 |
言語としてはシングルクオーテーションをサニタイズしないものが多い。 そのため開発の際はしっかりできているか確認/ドキュメントを必読する必要がある。
5.6.7. クロスサイト・リクエストフォージェリ(CSRF)
CSRFは攻撃者がユーザを騙してユーザの認識や同意なしに、別のウェブサイトで利用者の許可なしに不正なアクションを実行させる攻撃のこと。 この攻撃にはターゲットサイトにおけるユーザの認証セッションを悪用することが含まれる。
一般的には攻撃者はこの攻撃でユーザをだまして特定の操作(例:アカウントの設定変更、資金の送金など)を実行させることを目的とする。
5.6.8. クリックジャッキング
クリックジャッキングは悪意のあるウェブサイトやWebアプリケーションが、ある要素(ボタンなど)をユーザーから隠したり偽装したりして、別のウェブサイトの正規に見える要素と重ね合わせること。
ユーザが偽装された要素にアクセスすると、意図せずに隠された悪意のあるアクションを実行する。
5.6.9. MXインジェクション
MXインジェクションは攻撃者がメールサーバー(MX)設定に悪意のあるコードを操作または注入できるセキュリティ脆弱性を指す。 これは電子メールのトラフィックを傍受、変更、またはリダイレクトするために使用される可能性がある。 そのため、この攻撃はユーザの電子メール通信のセキュリティとプライバシを侵害する。
5.6.10. セッションハイジャック
セッションハイジャックは脆弱性を利用して他人のセッションIDを入手する攻撃を指す。 これはWebアプリケーションが基本的にはセッションIDでユーザを識別していることに由来する。
セッションIDの入手方法
基本的には以下の4つの手法がある。
- ブルートフォースアタック(効果極小)
- 推測攻撃(効果極小)
- セッションの固定化
- 盗み出し
セッション固定
セッション固定は複数の脆弱性から成り立つ脆弱性。 以下内容がそろったときにセッション固定の攻撃条件が整う。
- URL引数からセッションIDを付け替えできる
- ログイン成功時にセッションIDを変更しない
- フィッシングが成功する
このように条件が複雑なため成功の可能性は低いと思われる。
盗み出し
直接セッションIDを盗み出す手法。 具体的には以下箇所より盗み出す。
- Webサーバ(アクセス権の取得が必要)
- 通信経路上(ネットワークの盗聴が必要)
- クライアントPC(XSSやマルウェアの使用が必要)
5.7. Webアプリケーションの情報収集
Webアプリケーションの脆弱性に関する情報を収集する場合以下の点が基本となる。
- Webアプリケーションのフットプリンティング
- Webアプリケーションの攻撃情報
5.7.1. Webアプリケーションのフットプリンティング
Webアプリケーションのフットプリンティングの手法はいくつかあり、その基本内容を以下に示す。
- URL構造の確認
- エラーページへのアクセス(存在しないページへアクセスする)
- SSL証明書のチェック
- 隠されたコンテンツの閲覧
- ブラウザ拡張機能
Wapplyzer
の活用
URL構造の確認
URLから情報が入手できる場合もあり、その場合のような場合である。
https://www.bikinisuki.jp/topic.aspx?data=20201015$sort=desc
この場合以下の点が確認可能。
- SSLが使用されている
- aspxで開発されている => WebサーバはIIS
- データベースが使用されている可能性
- DBの並び替え語句が使用されている
エラーページへのアクセス
エラーページで特にApache標準の404エラーが出る場合、実行しているApacheのバージョンやホストOSを確認できる。
SSL証明書のチェック
SSL証明書を閲覧することで、証明書の中にサーバ運営者の情報が記載されている場合がありそれを確認できる。
隠されたコンテンツの閲覧
robots.txt
(クローラ用ファイル)などの隠しコンテンツからディレクトリ情報を確認する。
ブラウザ拡張機能 Wapplyzer の活用
WapplyzerはChromiumベースのブラウザ拡張機能であり、Webサイトに使用されている技術を確認できる機能を持つ。 これによりサイト構成技術を確認することができる。
5.7.2. Webアプリケーションの攻撃情報
Webアプリケーションへの攻撃情報の収集はアプリケーションごとに行う必要がある。 例えば以下の通り。
- エントリポイントの特定
- ファイルに関するパラメータ
- DBの使用有無
- 入力値検証の判断
エントリポイントの特定
エントリポイントの特定では以下の内容をチェックする
- リクエスト時のパラメータ(エントリーポイント)
- パラメータがアプリケーションに与える影響
- レスポンス内の入力値
エントリポイントの特定はBurp Suite
と呼ばれるツールが適している。
Burp Suite : リバースプロキシ機能(Webブラウザからのリクエストを送信前/レスポンスからの表示前にインタセプト)する機能がある。
またエントリポイントで確認すべき観点は以下の点がある。
- 入力値の戻り値の確認
- どこに戻るか
- どうエンコードされるか
- 特定文字列への反応
- シングルクオーテーション
- セミコロン
- 改行コード
- パラメータ値の使用方法の推測
- ファイル
- リダイレクト
- JavaScriptの利用
6 - 6.ネットワークの盗聴
6.1. ネットワークの盗聴(スニッフィング)
ネットワークの盗聴はスニッフィングと呼ばれる。
特徴としては受動/能動攻撃は同一ネットワーク上でしか行えない。
またいくつかの種類がある。
- 受動的盗聴
- 能動的盗聴
- ルーティング
- 無線盗聴
スニッフィングはインターネットで使われているイーサネットは同一のネットワークコリジョンでデータを共有している。そのためこの仕組みを悪用することで受動的盗聴が成り立つ。
通常はNICが自分宛て以外の通信を遮断するが、プロミスキャスモードに切り替えることで自分以外の通信を受信することができる。しかしながらこれはハブによるものの通信しか対象とできない。
近年ではスイッチングハブの普及により上記手法では困難になっている。
6.1.1. 受動的盗聴(パッシブスニッフィング)
ハブ接続ネットワークにおける、NICの処理をプロミスキャスモードに切り替えることで自分以外の通信を受信するようにしてスニッフィングを行う手法。
現在ではスイッチングハブの普及により困難。
6.1.2. 能動的盗聴(アクテイブスニッフィング)
この手法には以下の内容を組み合わせることで攻撃者のPCが正当であるとスイッチングハブなどに誤認させる。
- MACスプーフィング
- ARPスプーフィング
6.1.3. ルーティング
攻撃者の用意したホストを経由するようにターゲットを誘導しホスト上に流れるパケットを盗聴するもの。
以下の内容が含まれる。
- WIFIの不正アクセスポイントの設置
- 不正プロキシサーバの設置
- ユーザネットワークの設定書き換え
6.1.4. 無線の盗聴
無線盗聴は無線電波自体を傍受し盗聴するもの。
盗聴にはWEP,WPA/WPA2,WPA3などのWifiの暗号を解読する必要がある。
6.2. 盗聴の手法
6.2.1. 受動/能動的盗聴の場合
これらの攻撃の場合はいくつかの盗聴ツールが必要となる。
- スニファ
- パケットキャプチャ
- プロトコルアナライザ
具体的にはWireSharkやtcpdump/windumpなどがある。
スニファではフィルターをうまく使いこなせるテクニックがあるかで情報取得の度合いが変わる。
受動的盗聴
受動的盗聴の手順は以下の通り。
- NICのプロミスキャスモードに変更する
- 上記設定のマシンをハブに接続する
- スニファを起動してパケットを見る
能動的盗聴
能動的盗聴ではARPポイズニング攻撃を行うことで攻撃マシンを経由してターゲットが通信を行うように誘導するもの。
ツールとしてはKali Linux付属のCain&Abelの機能から利用可能。
6.2.2. ルーティングの場合
ネットワーク盗聴に利用可能なルーティングの応用は以下の通り。
- WIFIの不正アクセスポイント
- 不正プロキシサーバ
- ユーザネットワークの設定書き換え
WIFIの不正アクセスポイント
これはAPを立ててつないできたユーザの通信を盗聴するというもの。
コツとしてはSSIDを信頼できそうな名前にする。パスワードを付けないなど。
不正プロキシサーバ
プロキシサーバを準備し、無料プロキシとしてインターネット上で宣伝する。 そしてつないできたユーザの通信を盗聴するというもの。
ネットワーク設定の変更
ユーザのローカルマシンの設定を変更する。
具体的にはDGWの変更、プロキシの変更、ネームサーバの変更などを行う。
7 - 7.マルウェア
7.1. マルウェアとは
マルウェアは悪意のあるソフトウェアの総称。
これはユーザにとって不正/有害な動きをすることを表す。
7.2. マルウェアの種類
マルウェアには以下のような種類がある。
- ウィルス
- ワーム
- ランサムウェア
- ボット
- バックドア
- ルートキット
- スパイウェア
- アドウェア
7.2.1. ウィルスとワーム
ウィルスとワームの特徴を表にまとめると以下の通り。
特徴 | 感染方法 | |
---|---|---|
ウィルス | 自己複製してほかのプログラムに感染 | 感染したファイルやプログラムがコピーされることで拡散 |
ワーム | 自己複製するがほかのプログラムに寄生しない | 自己自身で感染経路を見つけ出し拡散 |
7.2.2. ランサムウェア
ファイルやフォルダを暗号化し使用を制限することで解除するために身代金を要求するプログラム。
有名なものには2017年に流行したWannaCryがある。
7.2.3. スパイウェア
スパイウェアはシステム上のユーザ挙動を盗むもの。
具体的には以下動作が対象になる。
- キーボードストロークロガー
- 通信盗聴
- カメラ起動
- 通話機能
- ファイルの転送
7.2.4. アドウェア
アドウェアは広告を表示するソフトウェア。
7.3. マルウェアの感染手法
7.3.1. マルウェアの感染手法の分類
マルウェアの感染手法を簡単に分類すると以下手順が考えられる。
- 送信する
- 通常の手法 … メールの添付やアダルトサイトや儲け話サイトなど開かさせる(フィッシング)
- 通常ではない手法 … 脆弱性をついて送り込む
- ダウンロードさせる … 人気のアプリに仕込む パッチを仕込む 人気アプリの追加モジュールを装う
- 直接インストールする
7.4. マルウェアの解説
7.4.1. Mirai
Miraiは2016年に確認されたIoT端末への脅威となるマルウェア。
過去最大級の規模のDDoS攻撃を引き起こしたと言われている。
工場出荷時の脆弱なパスワードが設定されたIPカメラやWIFIルータなどのIoT機器を狙いログインを何度も試行し感染を広げた。
感染した機器は攻撃者からの命令を受けターゲットに一斉リクエストを送り高負荷によるサーバダウン(DDoS)を引き起こさせた。
8 - 8.ソーシャルエンジニアリング
8.1. ソーシャルエンジニアリング
ソーシャルエンジニアリングは他人を操りその人が持っている情報を聞き出したり、その人の権限を勝手に使うことを指す。
多くの場合、人間の心理的な好きや行動のミスに漬け込むものとなっている。
8.2. ソーシャルエンジニアリング攻撃が容易な組織の特徴
ソーシャルエンジニアリングへの対策が十分ではない組織の特徴は以下のようなものがある。
- セキュリティの訓練不足
- 情報へのアクセス管理が不十分
- 組織単位で連絡が取れていない
- セキュリティポリシの欠如
8.3. ソーシャルエンジニアリングの有効性
ソーシャルエンジニアリングは以下の観点から有効的な攻撃であると言える。
- セキュリティの構成要素で最も漬け込みやすいのが人であるから
- 検出が困難
- 完全回避が困難
- 防衛機器がない
8.4. ソーシャルエンジニアリングの目的
ソーシャルエンジニアリングの目的はいろいろあるが以下の補助として使われる場合がある。
- ネットワーク攻撃の偵察フェーズとして
- マルウェアを直接送り込む手段として
- ネットワーク盗聴の準備として
8.5. ソーシャルエンジニアリングの手法
8.5.1. なりすまし
一般的には他人に成りすまして電話やメールで接触を行うもの。
またリバースソーシャルエンジニアリングと呼ばれるターゲットに話させるテクニックもある。
8.5.2. 現地に赴く
現地に赴くのは直接会話や情報を盗み見聞きできるのが特徴となる。
- セキュリティゲートを通る場合
- ピギーバッキングやテールゲーティングて侵入する
- ダンプスターダイビング … ごみ箱/郵便受けをあさり情報を盗み出す
- ショルダーハッキング … 後ろからのぞき見
- PCにアクセス … マルウェアのUSBからインストール/キーロガなどの不正な装置の追加
- 工作活動 … 電源/通信設備の破壊、監視カメラ/盗聴器の設置など
8.5.3. スピアフィッシング
メールなどのメッセージを用いたフィッシング。
特定サイトへの誘導や添付ファイルのDLと展開をさせることを目的とする。
8.5.4. SNS
SNSを使ってなりすましグループやコミュニティに参加する。
9 - 9.ハニーポット
9.1. ハニーポットの基礎
9.1.1. ハニーポットとは
ハニーポットは不正な攻撃者の行動・手法などを観察/分析する受動的/能動的な目的で設置される罠システムのこと。
仮想または実際のコンピューターシステムやネットワークを用いて構築する。
ハニーポット設置の目的は以下の通り。
- 攻撃検出 … ハニーポットは攻撃者の活動を引き寄せ、検出し、その情報を解析/分析する
- 研究と分析 … ハニーポットを攻撃のトレンドや攻撃手法の研究に使用する。
9.1.2. ハニーポットの分類
ハニーポットはその動作環境と仕組みの組み合わせによって種別を分類することができる。
動作環境ではサーバで動作するサーバ型、クライアントで動作するクライアント型がある。
仕組みでは実在環境を用意する高対話型、システムエミュレートする低対話型がある。
- 高対話型ハニーポット … 実際のOSやアプリケーションを利用し、そこに残存している脆弱性などをそのまま不正攻撃者に対して弱点として見せる形式のハニーポット
- 低対話型ハニーポット … 特定のOSやアプリケーションをエミュレーションして監視する形式のハニーポット
9.1.3. ハニーポットの種類
高対話型ハニーポットの特徴と種類
高対話型ハニーポットの特徴は以下の通り。
- 攻撃者に関する情報が多い
- システムやネットワークの構築に手間がかかる
- 実際にOSやアプリケーションが攻撃を受けてしまう可能性がある
高対話型ハニーポットは不正な攻撃者に関して詳細な情報を取得・分析したい場合や、効果的な対策を講じたいような場合に向いている。
また高対話型ハニーポットは以下の通り。
種類 | 説明 | URL |
---|---|---|
Dionaea | 脆弱性を模したサービスを展開して、マルウェアを収集するためのハニーポット | https://github.com/DinoTools/dionaea |
Honeyd | 仮想ネットワーク内で複数のハニーポットを展開 | https://github.com/DataSoft/Honeyd |
Glastopf | Webアプリケーション型のハニーポット | https://github.com/mushorg/glastopf |
低対話型ハニーポットの特徴と種類
低対話型ハニーポットの特徴は以下の通り。
- システムやネットワークの構築が比較的簡便
- 得られる情報量に限りがある
また低対話型ハニーポットは以下の通り。
種類 | 説明 | URL |
---|---|---|
Cowrie | 中規模の対話型SSHとTelnetのハニーポット。ブルートフォース攻撃やシェルの対話が記録されるようになっている。 | https://github.com/micheloosterhof/cowrie |
Honeytrap | ハニーポットの実行や監視をするためのハニーポット | https://github.com/honeytrap/honeytrap |
WOWHoneypot | Webハニーポット。日本製 | |
Kippo | SSHハニーポットで攻撃者がSSHにアクセスしようとする試行を記録する | https://github.com/desaster/kippo |
Snort | ネットワーク侵入検知システム兼ハニーポット | |
Thug | Webハニーポット | https://github.com/buffer/thug |
9.1.4. ハニーポットの分類ごとの特徴
サーバ型×低対話型ハニーポット
サーバ上にハニーポット環境を構築し、攻撃者からの攻撃を待ち受けるタイプのハニーポット。
特徴は以下の通り。
- 脆弱なサーバ環境をエミュレートしてログを記録しているため、不正なファイルを設置されたり、ファイルを盗まれたりする可能性が低い
- ハニーポット自体に脆弱性があった場合は攻撃を受ける可能性がある
- ハニーポットを検出する仕組みによって攻撃検出を回避される場合がある
サーバ型×高対話型ハニーポット
サーバ上に故意に脆弱な環境を構築し重要そうなファイルなどを設置し攻撃を待ち受けるタイプのハニーポット。
特徴は以下の通り。
- 低対話型のものよりも攻撃ログが正確に記録されやすい
- 攻撃された後のリカバリができるようにアウトバンド通信の制限や設定を適切にする必要がある。
- ハニーポット運用玄人向けの構成
クライアント型×低対話型ハニーポット
通常のPC上にインストールしたハニーポットソフトウェアを利用してさまざまな環境(ユーザーエージェントなど)をエミュレートして悪性のウェブサイトにアクセスしたり、脆弱なソフトウェア(Flash や Adobe Acrobat Reader など)のエミュレートをしてファイルを開き、どのようにマルウェア感染をするかなどのログを取得するタイプのハニーポット。
特徴は以下の通り。
- 脆弱なサーバ環境をエミュレートしてログを記録しているため、不正なファイルを設置されたり、ファイルを盗まれたりする可能性が低い
- ハニーポット自体に脆弱性があった場合は攻撃を受ける可能性がある
クライアント型×高対話型ハニーポット
故意にセキュリティパッチの当たっていないOSやソフトウェアを利用し、悪意のウェブサイトにアクセスしたり、悪性のファイルを開いたりするタイプのハニーポット。
運用のためには通常は利用していないPCを利用し、現状回復が容易にできるようにしておく必要がある。
9.1.5. ハニーポット運用の目的
ハニーポット運用のためには、まずは目的を明確にしてからハニーポットを選定する必要がある。 それは取得したい情報の種類や目的を明確化することにより、より効果的な運用を行うためである。
ハニーポット運用の目的と運用例は以下の通り。
例 | 運用対象 |
---|---|
ランサムウェアwanna cryが現在も活動しているか知りたい | ・Wannacry(pt)が観測できるよう改良された Dionaeaハニーポットを利用する |
Wordpressを運用しているため、Wordpressへの攻撃を観測したい | ・Dockerコンテナ上で動くHoneyPressハニーポットを利用する |
Wordpressプラグインとして利用できるwp-smart-honeypotを利用する | |
Apache Struts2を利用しているサービスを運用しているため、Struts2への攻撃を監視したい | CVE2017-5638 の脆弱性を悪性した攻撃を検出する StrutsHoneypotを利用する |
2016年に流行したIOTボットの活動の調査をしたい | telnet/sshへの攻撃観測できるCowrieハニーポットを利用する |
MongoDBなどのデータベースを狙った攻撃を知りたい | MongoDB-Honeyproxyを利用する |
目的が複数あるので複数のハニーポットを使用したい | 複合ハニーポットのT-Potを利用する |
9.2. 主要なハニーポット一覧
9.2.1. 低対話ハニーポット
Dionaea
攻撃者からマルウェアのコピーを手に入れることを目的としたマルウェア収集用ハニーポット。
可視化にはDionaeaFRを導入する。
提供サービスは以下の通り。
ポート | サービス |
---|---|
21/TCP | FTP |
42/TCP | NameServer |
80/TCP | HTTP |
135/TCP | MSRPC |
443/TCP | HTTPS |
445/TCP | Microsoft-ds |
1433/TCP | MSSQL |
3306/TCP | MySQL |
5060/TCP | SIP |
5061/TCP | SIP-TLS |
ログなどは以下のディレクトリに保存される。
ディレクトリ | 説明 |
---|---|
/opt/dionaea/binaries/ | マルウェアが配置されるディレクトリ |
/opt/dionaea/bistreams/ | 攻撃者からの通信の記録が保存されるディレクトリ |
/opt/dionaea/log/ | Dinaeaのログが保存されるディレクトリ |
/opt/dionaea/rtp/ | SIP のセッションデータが記録される |
/opt/dionaea/wwwroot/ | Webドキュメントルート |