セキュリティコンサルタントの日誌から

セキュリティに関するエッセイなど

翻訳本『初めてのマルウェア解析』が12月15日に発売されます!

翻訳本『初めてのマルウェア解析~Windowsマルウェアを解析するための概念、ツール、テクニックを探る ~』(オライリージャパン)の発売日が12月15日に決定しました!!

 本書は、 Cisco Systems社のエンジニア Monnappa K A氏の著書『Learning Malware Analysis』の翻訳本です。私が翻訳を担当し、北原さん、中津留さんに技術監修をご担当いただきました。

マルウェア解析の技術書としては、非常に平易かつ体系的に書かれており、これからマルウェア解析を学ぶ方にも、マルウェア解析の知識を再確認したい方にもオススメの一冊です。 翻訳者としてのオススメポイントの点を紹介していきます。

  • 著者がすごい!!
  • マルウェア解析を体系的に学習できる!
    • マルウェア解析に必要な基礎技術の理解に非常に重点を置いており、表層解析、動的解析、静的解析(IDA Pro・x64dbgの使い方)、メモリ解析など必要な技術を網羅的かつ丁寧に解説しています。特に、マルウェア解析を基礎から丁寧に解説している日本語書籍は少ないため、本書を読むことでマルウェア解析に必要な基礎技術を習得することができると思います。
    • 特に初めてマルウェア解析に挑戦される方々にとっては、細かいテクニックよりもまずは体系的なアプローチを学ぶことが重要だと思います。その点でも、本書は基礎を重視して書かれています。
    • 実際、原書はAmazonでも高い評価を受けています。
  • 最新の動向が丁寧に解説されている!
    • マルウェアの最新動向と分析手法について丁寧に解説されています。これにより、新しい動向についてもキャッチアップできると思います。

良い書籍なので、ぜひ書店やAmazonで手に取っていただけると嬉しいです。

『脅威インテリジェンスの教科書』を公開しました!

2015年頃に脅威インテリジェンスという概念に出会ってから、色々調べて、講演・ブログで調査結果や自分の考えを公開してきましたが、一度その内容を体系的な資料として整理したいと考え、『脅威インテリジェンスの教科書』という形で執筆・整理したので、公開します。

www.slideshare.net

 

先日公開した金融ISACの講演では、時間制約上、概要しかお話しできませんでした。それぞれの内容について、より詳細が知りたいという方は上記資料をご覧ください。

www.scientia-security.org

なにかのご参考になれば幸いです。

金融ISACの講演を公開しました!

先日オンラインで開催された『金融ISAC アニュアルカンファレンス 2020』において、『2019年度金融ISACアワード(個人賞)』を頂戴しました。ありがとうございます!!

 受賞に伴い、アワード受賞記念講演として、『Intelligence Driven Securityの<ことはじめ>』と題して、脅威インテリジェンスの活用についてお話させていただきました。金融ISACはクローズドなカンファレンスのため、講演は会員企業に限定されますが、資料の共有について、金融ISACと会社の許可が下りましたので公開します。

www.slideshare.net

今回の講演では、これから脅威インテリジェンスの活用を開始する金融機関を想定し、脅威インテリジェンスの分類や、活用手法などについてお話しさせていただきました。既に脅威インテリジェンスの活用に取り組まれている企業にとっては、基本的な内容かもしれませんが、ご参考になれば幸いです。 

「リスク分析・管理」再考(その3)

前回(その2)は、リスク分析について深くご紹介しました。

www.scientia-security.org

大きく、6種類のステップでやることをご紹介します。

  • Step 1 : 資産の特定
  • Step 2 : 脅威の特定
  • Step 3 : 脆弱性の特定
  • Step 4 : 残存リスクの特定
  • Step 5 : 発生確率・影響度の決定
  • Step 6 : アウトプット作成

上記のプロセスは、上記のプロセスは、NIST SP800-30 "Managing Information Security Risk"におけるリスクマネジメントプロセスにおいて、「Assess」フェーズに該当します。今回は、残りの二つのプロセス「Respond」と「Monitor」をご紹介します。

f:id:security_consultant:20191214174550p:plain

リスク管理プロセス:Respondフェーズ

リスク分析を経てリスクを特定した後は、リスクへの対応を行います。リスク対応戦略は大きく4種類存在します。一般的には、リスク低減 → リスク受容をすることが一般的な戦略となります。

  • リスク低減(Risk Mitigation)
    • セキュリティコントロールの導入などにより、リスクを低減することを意味します。
  • リスク受容(Risk Acceptance)
    • 経営層の判断に基づき、残存リスクを受容することを意味します。
  • リスク転移(Risk Transfer)
    • リスクを第三者(3rd Party)に転移することを意味します。例えば、サイバー保険の活用や、サードパーティ製品・サービスの活用を意味します。*1
  • リスク回避(Risk Avoidance)
    • リスク、もしくはリスクの原因を取り除くことを意味します。例えば、ご送信のリスクを避けるために、メールでの顧客とのやり取りを禁止するなどが挙げられます。

5種類のセキュリティコントロール

リスク低減(Risk Mitigation)において、セキュリティコントロールを実装することが一般的です。分類は様々ですが、セキュリティコントロールは複数のカテゴリーに分類されます*2

  • 指揮的コントロール(Directive・Deterrent)
    • 望ましい行動を促進したり、望ましくない行動を抑制するように指定・指示コントロール
    • 例)ルール・啓発研修
  • 予防的コントロール(Preventive)
    • 特定の悪意のある行動を禁止・制限・抑止するコントロール
    • 例)FW・アクセスコントロール
  • 発見的コントロール(Detective)
    • 悪意のある行動を検知するコントロール
    • 例)IDS・EDR
  • 訂正的コントロール(Corrective・Recovery)
    • 発見的コントロールで検知された事象を修正・是正するコントロール
    • 例)バックアップ
  • 代替コントロール(Compensating)
    • あるコントロールが正当な理由で取れない場合、リスクを低減するために取る代替策のこと

ここでのポイントは、多層防御(Defense-In-Depth)の観点から、複数種類のコントロールを組み合わせていくことが重要だとされています。例えば、アクセスコントロールによる予防的コントロールを実装した後、ログ監視による発見的コントロールを入れるなど組み合わせていくことが重要です。

リスク管理プロセス:Monitorフェーズ

さて、リスクマネジメントプロセスにおける最後のフェーズはモニタリングです。これは、以下の観点から、リスクと対応を監視し、何か変化があればリスク分析・リスク対応をやり直していくというプロセスです。

  • 「リスク対応戦略が適切か?」
  • 「セキュリティコントロールの実効性はあるか?」
  • 「新しいリスクが登場していないか?」

リスク管理プロセスに関するまとめ

さて、上記の結果から、リスクマネジメントとは、リスク分析 → リスク対応 → リスクモニタリングを行っていくことだと言えます。そのため、リスク管理とはこの地道なプロセスを繰り返してく、PDCAサイクルにほかなりません。

さて、リスク分析・管理について少し補足しておきましょう。

補論1:リスク分析の簡略化について

第1回では、リスクとは、「脅威 × 脆弱性 × 資産」と紹介しました。しかし、一部のリスク分析では、「脅威 × 脆弱性」だけでリスク分析をする、さらにはCSCなどのフレームワークを使い、実質的に脆弱性だけでリスク評価をする場合もあります。

このように、リスク分析は簡略化をすることができます。

例えば、「資産は複数種類存在しない」、「いずれの資産も情報漏洩すればビジネス上大きな影響がある」など資産分析の種類によって分析結果がぶれない場合、省略することは可能です。

また、脅威についても、省略することが可能です。例えば、「脅威として特定のシナリオを想定している」、あるいは「いずれの脅威に対しても全力で対応する必要がある」などの場合、脅威をいくら考えても仕方ない場合があります。そうした場合、省略をすることが可能です。

特に、資産・脅威という二つのパラメータは、防御側でコントロールが難しいパラメータです。(一応、資産は防御側で管理できるパラメータなのですが、「これは非常にリスクが高い資産なので破棄しましょう」と主張したところでビジネス側は絶対に受け入れないでしょう)。そのため、当該2つのパラメータについては整理さえできれば簡略化することができます。

補論2:チェックリストアプローチ vs. シナリオベースアプローチ

上記のように、リスク分析を簡略化し、CSCによる「脆弱性」評価だけによるリスク分析をよくチェックリストアプローチと呼ぶことがあります。ようするに、CSCなどのチェックリストを用意し、YES/NO、あるいは5段階評価などで成熟度を測っていく方法です。このアプローチ自体は、簡単にでき、なにをやらなければいけないか明確にできるアプローチであるためとっかかりとしては非常に良いでしょう。下記記事で紹介した、CIS CSATは典型的なチェックリストアプローチのツールです。

www.scientia-security.org 

しかし、これだけに頼ることは推奨しません。むしろ、CSCなどの棚卸をネットワーク図に当てはめ、攻撃シナリオを意識しながら分析していく、シナリオベースアプローチを利用することをを推奨します。そうしないと、落とし穴が生まれてしまう可能性があるためです。

例を挙げて説明します。例えば、ある企業Xは重要な業務システム・業務データをすべてクラウドに依存しているとしましょう。一方、チェックリストアプローチでチェックすると、(社内OA環境については)全て完璧に対策をできていました。この場合、正しいリスク分析はできているといえるでしょうか。

答えはNOです。上記の場合、一つの攻撃シナリオとしては、クラウドへの攻撃を考えるべきです。しかし、チェックリストに集中してしまい、「どんなネットワークか?」、「実際の攻撃シナリオは何か?」という点をおろそかにすると、本質を見失います。そのため、チェックリストアプローチは重要なアプローチですが、きちんと本質を見失いように攻撃シナリオを意識しながら分析していくことが必要になります。

参考文献

  • 政府におけるRisk Management Framework(解説資料

csrc.nist.gov

まとめ

さて、今回は「リスク分析・管理」の最終回ということで、リスクマネジメントプロセスの残りのフェーズについてご紹介しました。また、シナリオベースアプローチの重要性についてもお話をしました。

このように、リスク分析・リスク管理はセキュリティ施策の基礎となる方法ですが、こうした考えがあまり明確に書かれている資料がないため、ご参考になれば幸いです。

*1:但し、最近はサードパーティを活用する場合でも、委託元責任が問われるなどサードパーティ管理という新しいリスクが生まれる可能性があり、リスク転移は部分的にしかできない可能性があるといわれています。

*2:CISSPなどにこうしたカテゴリーは出てきますが、MECEでなかったり、数が教科書によって異なるため、適宜好みの分類を利用してください

「リスク分析・管理」再考(その2)

前回は、リスクの定義、リスクマネジメントプロセスについて紹介しました。

www.scientia-security.org

前回のポイントは、リスクの定義です。改めて復習しておきましょう。

リスク = 発生確率 × 影響度 = 脅威 × 脆弱性 × 資産

今回は、リスクマネジメントプロセスの「ASSESS」フェーズについて具体的に紹介していきたいと思います。 

リスク分析とは、大きく3つの特徴があるといえます。

  • 3要素(脅威・脆弱性・資産)の3要素を特定する。
  • 残存リスク(Residual Risk)を理解する。
  • ROSI(Return on Security Investment)が高い対策を特定する。

リスク分析手法

NIST SP800-30によれば、脅威ベース、脆弱性ベース、資産ベースの3種類のアプローチが紹介されています。但し、結局全要素を分析する必要があるので、どこから手を付けるのか、というだけの話だと考えられます。

例えば、一つのアプローチとして、以下の方法で分析する方法があります。

  • Step 1 : 資産の特定
  • Step 2 : 脅威の特定
  • Step 3 : 脆弱性の特定
  • Step 4 : 残存リスクの特定
  • Step 5 : 発生確率・影響度の決定
  • Step 6 : アウトプット作成

それでは、各ステップごとに検討を進めていきたいと思います。

Step 1 : 資産の特定

資産の特定とは、文字通り自社の資産(システム・データ)を特定することです。そのためには、大きく3種類を特定します。

  1. ネットワーク図の特定
  2. データ資産リストの特定
  3. ビジネスプロセスの特定

第一に、ネットワーク図の策定です。具体的に、自社環境がどんなシステムを持っているか、どんな構成をしているか正確に理解するために、ネットワーク図を作ります。

第二に、データ資産リストとは、どんなデータを保持しており、性質、重要度、考えられる影響などを整理します。これを整理することで、影響度(Impact)が分析できるようになります。

f:id:security_consultant:20200330230013p:plain

第三に、ビジネスプロセスの特定で、具体的にどんな業務プロセスを持っているか整理を行います。この目的は、次で説明する通り、上記で整理したデータがビジネスプロセス上どのように流れていくか、そのデータフローを理解するために行います。

上記3種類の情報を集めたら、最後にマッピングを行います。マッピングとは、特定したデータ資産をネットワーク図、ビジネスプロセスにマッピングしていく作業で、ビジネスプロセス上のデータフロー、ネットワーク図上のデータフローなどを把握することが可能となります。

f:id:security_consultant:20200330215106p:plain

Step 2 : 脅威の特定

次に、脅威の特定を行います。脅威の特定とは、具体的な想定される脅威について、敵対的意図(Intent) × 能力(Capability)分析し、具体的な攻撃シナリオを整理することです。

敵対的意図(Intent)とは、攻撃者のモチベーションです。例えば、Canadian Centre for Cyber Securityが挙げるCyber Threat Actorsの分類では、以下のように分類されます。このモチベーションを果たすために、何をするのか考えることができます。具体的なアクションとして、情報セキュリティのCIA(Confidentiality・Integrity・Availability)の何を侵害するのか、あるいはSTRIDEフレームワークで具体的な脅威を整理しても良いでしょう。

一方、能力(Capability)とは、実際の攻撃手法(TTPs)です。これは、例えば事前に定義された攻撃シナリオを使う方法です。例えば、金融庁は演習などを通じて、攻撃シナリオを提供しています(リンク)。

また、APT・Oraganized Cyber Crimeを想定する場合、Threat Actors(攻撃グループ)を研究することで、攻撃者の意図と能力を同時に分析することができます。例えば、FireEye社のレポートによれば、APT41は知的財産の窃取を目的にしており、医療分野などを攻撃対象とし、次のような攻撃手法で知られています。

attack.mitre.org

www.fireeye.jp

このように攻撃グループを分析することで、脅威(Intent × Capability)を分析することも可能です。脅威グループについては、次のリソースなどを活用することができます。

さて、ここで重要なことは2点です。

第一に、攻撃者の意図(Intent)と、既に特定した「資産」と合致している必要があります。先ほど例に挙げたAPT41の場合、知的財産を狙うため、資産としては知的財産がある必要があります。

第二に、ここで特定した攻撃手法は、ネットワーク図やビジネスプロセスにマッピングしてあげる必要があります。以下に、その例を挙げています。

f:id:security_consultant:20200330222458p:plain

Step 3 : 脆弱性の特定

「脆弱性の特定」とは、自社の脆弱性を特定することです。

では、脆弱性とは何でしょうか?様々な定義があると思いますが、ここでは以下の定義を採用しておきましょう。

脆弱性  = (理想のセキュリティ状態)ー(現在の状態)

 脆弱性とは、あるべきセキュリティの状態(To-Be)と現在のセキュリティ状態(As-Is)のギャップという定義です。例えば、MS17-010脆弱性が脆弱性と認識される理由は以下の通りです。

  • To-Be:本来リモートから任意のコードを実行できてはいけない
  • As-Is:EternalBlueなどの攻撃ツールにより、任意のコードを実行可能

但し、リスク分析では特定の脆弱性について分析するわけではありません。むしろ、システム全体の脆弱性を洗い出していきます。

さて、これをシステム全体の脆弱性を分析する場合、セキュリティフレームワークを利用する方法が一般的です。セキュリティフレームワークは一般に、セキュリティのあるべき姿を示しているため、そのフレームワークを使って現状を分析することでシステム全体の脆弱性を明らかにすることができます。

個人的には、CIS ControlsがCIS CSATという無償分析ツールなども公開をしており使いやすいと思います。CISコントロールの詳細についてはこちらを参照してください。

www.scientia-security.org

Step 4 : 残存リスクの特定

このフェーズは、資産・脅威・脆弱性を利用して、残存リスク(Residual Risk)を特定します。

具体的なフェーズは、以下の通りです(既に実施済内容も含みます)。

タスク1:資産を分析し、影響範囲を特定する。(Step 1で実施済み)

例えば、以下のように資産を特定します。

<顧客データ:重要度(High ~ Very High)>

  • リスク(CIA):機密性(Confidentiality)
  • 資産価値:HIGH(補償・顧客ロイヤリティの喪失)
  • 暗号化なし。データ保存ポリシーがないため、非アクティブな顧客情報も含む
タスク2:資産・攻撃シナリオをNW図へマッピング(Step 2 & 3で実施済み)

資産と攻撃シナリオをネットワーク図にマッピングし、ネットワーク図上の攻撃シナリオを特定します。

タスク3:攻撃シナリオを、脆弱性の分析結果を組み合わせる

特定した攻撃シナリオと現在のセキュリティ対策・不足しているセキュリティ対策を組み合わせて、どの脆弱性(不足したセキュリティ対策)が単一障害点(SPF:Single Point of Failure)になるか、どの脆弱性(不足したセキュリティ対策)が実装されれば攻撃シナリオを止められるか、分析を行います。

その結果を、ネットワーク図にマッピングしていきます。

f:id:security_consultant:20200330222851p:plain

タスク4:残存リスクの特定

その後、上記の結果から、残存リスクをまとめていきます。

残存リスクシナリオ(Threat × Vulnrability :High ~ Very High

攻撃者がカスタマイズされたマルウェアを利用した場合、Office 365とエンドポイントのウイルス対策を回避された場合内部に侵入されます。しかし、侵入後、EDRが存在せず、SOCの能力も低いため、マルウェアを検知することが難しい。また、C&C通信は、Webフィルタリングのアップデートが適切になされていないため、検知できない可能性があります。

Step 5 : 発生確率・影響度の決定

次に、発生確率影響度を導き出します。既に示した通り、それぞれの定義は以下の通りです。

  • 発生確率(定義1)= 脅威 × 脆弱性(定義2)
  • 影響度(定義1)= 資産(定義2)

ここから、R-Map(リスクマップ)へマッピングを行います。既に述べた通り、特にNon-ITの経営層にとってこの図は良いコミュニケーションツールであり、意思決定ツールになります。

ãrisk mapãã®ç»åæ¤ç´¢çµæ

Step 6 : アウトプット作成

次に、上記の結果を踏まえて、アウトプットを作成します。具体的には、上記のようなR-Mapに加え、優先度付きの対策一覧を出すことで具体的なアクションに結び付けていくことができます。

まとめ

今回は、リスク分析の具体的手法について説明してきました。このやり方は全てではありませんが、一つのやり方としてとらえていただければと思います。この評価では、ネットワーク図とビジネスプロセスへのマッピングへ帰着させることを強く意識しています。

その理由としては、ネットワーク図やビジネスプロセスを無視すると、本質的な脅威を見落とす可能性があるためです。たとえば、重要資産がクラウド環境に依存している環境において、いくらオンプレのセキュリティを語っても意味がありません。むしろ、きちんと実態に即した分析をする意味で、実際のビジネスプロセスとネットワーク図に帰着させることが重要だと思います。

次回は、NIST SP800-30 "Managing Information Security Risk"のリスクマネジメントプロセスの残り二つ(Respond・Monitor)とリスク分析の補足議論について行いたいと思います。

www.scientia-security.org