おれさまラボ

実際に手を動かして理解を深めるブログ。

読書メモ:Building Secure & Reliable Systems - Chapter 2

はじめに

GoogleのSRE本第3弾『Building Secure and Reliable Systems』に関する読書メモです。今回は Chapter 2 を読んでみました。

Chapter 1 の読書メモはこちらからどうぞ。

Chapter 2

第2章のタイトルは "Understanding Adversaries(敵を知る)" です。

信頼性の敵とセキュリティの敵

本書では信頼性の敵を「通常良心的で抽象的なもの」と捉えています。

In the reliability context, adversaries usually operate with benign intent and take abstract form.

たとえば、ハードウェアの故障は仕方のないものですし、ユーザーの関心を一手に集めた結果で生じる障害(ちょっとニュアンス違うけど、日本でよくある Twitter での"バルス祭り"のイメージ)は "success disasters" と呼ばれたりします。また、システム設定変更時に予期せぬ影響を発生させてしまうこともあれば、漁船が誤って海底の光ファイバーケーブルを切断してしまうこともあります。

これらは通常、いずれも悪意がないものです。

一方で、セキュリティの敵は「人間」であり、その攻撃はターゲットのシステムに悪影響を及ぼすように計算されています。

攻撃者の姿

私たちは、攻撃者といえばステレオタイプ的に、暗い地下室に居て、クレバーなニックネームを持ち、昼間に堂々と外に出られないような行いをする人物を思い浮かべがちですが、実際の攻撃者はそうではありません。時間と知識とお金があれば、誰でもシステムのセキュリティを弱体化させることができます。

攻撃者の姿をクリアにするために、客観的な視点を持つことが重要です。(いまのところ)セキュリティの敵は「人間」です。まずはどんな敵がいるのか知ることは、システム設計時にはプロアクティブに、インシデント発生時にはリアクティブに、どのように対処すればよいか理解する手助けとなります。

攻撃の動機

攻撃者が攻撃をしかけるモチベーションはさまざまです。

  • Fun(いたずら) : 趣味の延長。
  • Fame(自己顕示): スキルを見せつけたい。
  • Activism(行動主義): 政治的メッセージなどを広く広めたい。
  • Financial gain(金銭目的): 金銭がほしい。
  • Coercion(脅迫): 脅し。
  • Manipulation(目眩まし): 違う目的を達成するための目眩まし。
  • Espionage(スパイ活動): 価値ある情報を手に入れるためのスパイ活動。
  • Destruction(破壊): システムを破壊、停止させたい。

攻撃者のタイプ

Hobbyists(趣味):

好奇心旺盛な探求者。通常、犯罪までは犯さない。

Vulnerability Reserchers脆弱性研究者):

セキュリティのプロ。

Governments and Law Enforcement(政府と法執行組織):

情報収集、軍事目的、国内活動の取締のために、政府や諜報機関はセキュリティのプロを雇っている。マイクロチップを製造している企業や個人のプライベートコミュニケーションを扱うシステムなどが狙われる。

このような攻撃者から身を守るには、情報資産を守るための投資を早期に開始し、時間をかけて成熟させ、厳格に継続的に対策を講じる必要がある。理想的な結果は、攻撃者が目的を達するために多額の資金を費やすことを余儀なくされ、捕まるリスクが大きくなり、他者からその活動を暴露されてしまうこと。

Activists(行動主義者):

ハクティビズム(Hacktivism)は、社会変革を訴えるためにテクノロジーを使用する行いのこと。

ハクティビストから身を守るには、ビジネスやプロジェクト、コンテンツが行動主義者の目につかないようにすること。目に付きそうなコンテンツがある場合、システムは頑強に、多層防御を施し、DoS攻撃に耐えられるようにする必要がある。また、万が一のためにシステムやデータを素早く復旧できるようバックアップを取得するべき。

Criminal Actors(犯罪者):

犯罪者は、身元詐称、お金を盗む、脅迫などの行為を実現するために幅広いテクニックを用いる。ソーシャルエンジニアリングは、難易度が低いにもかかわらず非常に効果的なアプローチとして知られる。

犯罪者から身を守るには、CAPTCHAのような面倒な手続きをシステムに導入することが推奨される。犯罪者は費用対効果に優れた攻撃を好むので、コストのかかる場所には寄り付かない。

Automation and Artificial Intelligence(自動化・人工知能):

将来的には、人間が直接操作することなく攻撃が実行できる可能性がある。これらから身を守るには設計時から猛攻に耐えうる抵抗力のあるシステムを設計する必要がある。

Insiders(内部犯行):

一口にインサイダーといってもさまざまな可能性がある。

  • First-party insiders
    • Employees(従業員)
    • Interns(インターン生)
    • Executives(役員)
    • Board directors(取締役)
  • Third-party insiders
    • Third-party app developers(サードパーティアプリ開発者)
    • Open source contributors(OSSコントリビュータ)
    • Trusted content contributors(信頼できるコンテンツ提供者)
    • Commercial partners(取引先)
    • Contractors(請負業者)
    • Vendors(ベンダ)
    • Auditors(監査人)
  • Related insiders
    • Friends(友人)
    • Family(家族)
    • Roommates(ルームメイト)

インサイダーリスクを最小化する方法は以下のとおり。

  • 権限の最小化
  • ゼロトラスト
  • Multi-party Authentication
  • Business Justifications
  • 監査と検知
  • 回復性

攻撃手法

攻撃手法を知るには以下3つが役に立つ。

脅威インテリジェンス

  • さまざまな機関から発行される脅威レポート
  • IOC(攻撃の痕跡情報)
  • マルウェアレポート

サイバーキルチェーン

攻撃フェーズをフレームワーク化したもの。

TTP

攻撃手法カタログと呼ばれるもので、Tactics, Techniques, and Proceduresの略。

リスクとの向き合い方

「自分の組織は大丈夫。」と思ってはいけません。

どんな組織も多かれ少なかれ機微な情報を持っているので、潜在的に攻撃者から狙われる存在なのだと自覚しましょう。

また、攻撃者が難しい攻撃を仕掛けてくるとは限りません。多くの場合、攻撃者はシンプルで費用対効果の高い方法を選択します。難易度の高い攻撃をどう防ぐか考える前に、2要素認証を有効化するなどのような、"基礎的なセキュリティ" をまずは固めるようにしましょう。

最後に、攻撃者をみくびってはいけません。明確な意志をもった攻撃者は目的を達するための手段を選びません。

Don’t underestimate your adversaries or your own value as a target.

以上