SlideShare ist ein Scribd-Unternehmen logo
1 von 21
Downloaden Sie, um offline zu lesen
⾃⼰紹介
Keiko Itakura
ITベンダーでセキュリティコンサルをやったり今はConsumer向けIDのProduct managerをやっている人
Twiiter : keikoit2
Facebook : https://www.facebook.com/keiko.itakura
LinkedIn : https://www.linkedin.com/in/iamgirl/
CHAPTER3 : CASE STUDY: SAFE PROXIES
安全なプロキシを利⽤することで信頼性やセキュリティに関連する課題を解決できることの紹介
プロキシはロギングとマルチパーティ認証をシステムに追加する1つの⽅法であり、システムの安全性
と信頼性を⾼めるのに役⽴つ。
このアプローチは、既存のシステムでは費⽤効果の⾼いオプションで、パートIIで説明されている他の
設計原則と組み合わせると、はるかに弾⼒性がある。 第4章で説明するように、新しいプロジェクトを
開始する場合は、ロギングおよびアクセス制御モジュールと統合するフレームワークを使⽤してシステ
ムアーキテクチャを構築するのが理想的。
SAFE PROXIES IN PRODUCTION ENVIRONMENTS
● ⼀般に、プロキシは新しい信頼性とセキュリティの要件に対処する⽅法を提供する。実装されたシ
ステムに⼤幅な変更を加える必要はない。
● 既存のシステムを変更するのではなく、プロキシを使⽤するだけで、システムに直接接続されてい
たはずの接続をルーティングできる
● 悪意のある攻撃者や善意のあるメンバのミスを防げる
● Googleでは、システムへのSSH接続を確⽴せずに、安全なプロキシを使⽤してリスクのあるコマ
ンドを確認、承認、および実⾏
● これらのプロキシを使⽤して、問題をデバッグするためのきめ細かなアクセスを許可したり、マシ
ンの再起動をレート制限したりできる。 安全なプロキシは、ネットワーク間の単⼀のエントリポ
イントであり、次のことを可能にする主要な⼿段
すべてのオペレーションを監査
リソース のアクセス制御
⼈的ミスから本番を保護
● Googleが評価したすべての機能停⽌の約13%は、ゼロタッチ製品で防⽌または軽減できたと推定
SAFE PROXIES IN PRODUCTION ENVIRONMENTS
● プロキシは次のものを提供
マルチパーティ認証(MPA)2を実施する中⼼的なポイントであり、機密データとやり取りするリ
クエストのアクセス決定を⾏う。
特定のリクエストがいつ、誰によって実⾏されたかを追跡できる管理使⽤監査
レート制限。システムの再起動などの変更が徐々に有効になり、ミスの爆発範囲を制限できる可能
性がある。
プロキシの追加機能を使⽤してコンポーネント(変更できない)の動作を制御する、クローズドソ
ースのサードパーティターゲットシステムとの互換性
継続的な改善の統合。中央プロキシポイントにセキュリティと信頼性の強化を追加
SAFE PROXIES IN PRODUCTION ENVIRONMENTS
● デメリットもある。
● メンテナンスと運⽤のオーバーヘッドに関して、コストが増加
● 単⼀障害点。複数のインスタンスを実⾏して冗⻑性を⾼めることにより、この状況を緩和。
● アクセス制御のポリシー設定。これ⾃体がエラーの原因になる可能性がある。デフォルトで安全な
テンプレートまたは⾃動⽣成設定を提供することにより、ユーザーが正しい選択を⾏うようにガイ
ドする。このようなテンプレートまたは⾃動化を作成するとき、私たちはパートII全体を通して提
⽰された設計戦略に従う。
● 攻撃者が制御できる中央マシン。前述のポリシー構成では、システムがクライアントのIDを転送
し、クライアントに代わってアクションを実⾏する必要がある。プロキシの役割ではリクエストが
実⾏されないため、プロキシ⾃体は⾼い権限はない。
● 変更への抵抗。本番システムに直接接続したい場合。このようなトピックについては、第21章で
詳しく説明。
GOOGLE TOOL PROXY
● Google社員は、コマンドラインインターフェース(CLI)ツールを使⽤して管理操作の⼤部分を実
⾏
● これらのツールの⼀部は潜在的に危険(たとえば、特定のツールはサーバーの電源を切ることがで
きる。すべてのCLIツールを追跡し、⼀元化されたロギングを確実に実⾏し、機密性の⾼いアクシ
ョンがさらに保護されていることを確認することは困難で費⽤がかかる。)
● この問題に対処するために、Googleはツールプロキシを作成。これは、指定されたコマンドライ
ンをforkとexecを介して内部的に実⾏する汎⽤RPCメソッドを公開するバイナリ。
● すべての呼び出しはポリシーによって制御され、監査のためにログに記録され、MPAを要求する機
能があります。ツールプロキシを使⽤すると、ゼロタッチ製品の主な⽬標の1つを達成できる。つ
まり、⼈間が直接製品にアクセスできないようにすることで、製品をより安全にします。エンジニ
アはサーバー上で直接任意のコマンドを実⾏することはできない。代わりにTool Proxyに連絡する
必要がある。
CHAPTER4 : DESIGN TRADEOFFS
多くの場合、機能要件と信頼性要件&セキュリティ要件は相対⽴してバランスをとることが難しい。
この章では信頼性要件とセキュリティ要件を初期段階から検討することの重要性について解説
ー機能要件、信頼性要件、セキュリティ要件の関連
ートレードオフが発⽣する例(決済サービス、マイクロサービス)
ー信頼性要件、セキュリティ要件を初期段階から盛り込むことに関する議論
DESIGN OBJECTIVES AND REQUIREMENTS
● 機能要件
● ⾮機能要件
● 機能 VS Emergent Properties(信頼性とセキュリティ)
FEATURE REQUIREMENTS
● ユースケース、ユーザーストーリー、ユーザージャーニー
● サービスまたはアプリケーションの主要な機能を識別し、ユーザーが特定のタスクを実⾏する⽅法
または特定のニーズを満たす⽅法(ユーザーとサービスまたはアプリケーションの間の⼀連の対
話)
● 通常設計上機能要件が主要な推進要因になる(私の解釈︓ユーザーのニーズは機能要件に現れが
ち)
● 様々な要件は時にトレードオフを伴うので、重要な要件は別途管理するのがおすすめ
● また、多くの要件はサービスまたはアプリ全体に適⽤され、ユーザージャーニーには現れてこない
○ 例︓アプリのUIは以下の要件を満たす必要がある
共通のデザインガイドラインに準拠
アクセシビリティガイドラインに準拠
プライバシーポリシーとToS(Terms of Service)のリンクフッターに表⽰
NONFUNCTIONAL REQUIREMENTS
● 誰がどのデータにアクセスできるのか
● SLO(稼働時間、応答待ち時間など)
● 開発効率と速度
● 展開速度(リリースまでにどのくらい時間がかかるか)
RELIABILITY AND SECURITY AS EMERGENT PROPERTIES OF SYSTEM
DESIGN ERGENROPERTIES (信頼性要件)F SYSTEM
● サービス全体をマイクロサービスなどのコンポーネントに分割する⽅法
● サービスの可⽤性と依存関係の可⽤性/信頼性の関係(サービスバックエンド、ストレージ、およ
び基盤となるプラットフォームなど)
● コンポーネントが通信に使⽤するメカニズム(RPC、メッセージキュー、イベントバスなど)、要
求のルーティング⽅法、および負荷分散と負荷制限の実装と構成⽅法
● 単体テスト、エンドツーエンドの機能テスト、⽣産準備レビュー(PRR)、負荷テスト、および同
様の検証アクティビティが、開発および展開ワークフローにどのように統合されているか
● システムの監視⽅法、および利⽤可能な監視、メトリック、およびログが、異常および障害の検出
と対応に必要な情報を提供しているかどうか
RELIABILITY AND SECURITY AS EMERGENT PROPERTIES OF SYSTEM
DESIGN ERGENROPERTIES (セキュリティ要件)
● ⼤規模なシステムをサブコンポーネントに分解する⽅法、およびそれらのコンポーネント間の信頼
関係
● アプリケーションが開発される実装⾔語、プラットフォーム、およびアプリケーション/サービス
フレームワーク
● セキュリティの設計と実装のレビュー、セキュリティテスト、および同様の検証アクティビティを
ソフトウェアの開発と展開のワークフローに統合する⽅法
● セキュリティアナリストやインシデントレスポンダーが利⽤できるセキュリティモニタリング、監
査ログ、異常検出、その他のツールの形式
EXAMPLE:GOOGLE DESIGN DOCUMENT
● 以下のような標準項⽬を含むデザインドキュメントのテンプレート化
● ステークホルダーからのFBを開発前に収集、セキュリティデザインレビューも⾏う
○ スケーラビリティ(システム規模、データ増加率、トラフィック増加率、どのようにスケールするか、
現在のシステムの状況は︖)
○ 冗⻑性と信頼性(データの損失や⼀時停⽌にどう対応するか、どのような影響があるか、バックアップ
対象、バックアップ⽅法、リストア⽅法、部分的な障害の復旧⽅法を含む)
○ 依存関係(他のシステムが利⽤できない時の影響、名前解決や時刻同期なども忘れずに︕)
○ データの完全性(どうやって完全性をチェックするか、どのデータ損失を検出すべきか、損失から検出
までの時間的猶予、復旧⽅法)
○ SLA(サービス稼働を監視、保証する仕組み、どこまでを保証できるか)
○ セキュリティとプライバシー(潜在的脅威と考えられる影響、対応⽅法、既知の脆弱性)
BALANCING REQUIREMENTS
● 既存システムに信頼性要件とセキュリティ要件を追加する際のコスト
○ セキュリティと信頼性に関する設計項⽬のいくつかは基本的なもの(例えばNoSQLを選ぶかRelational
Databaseを選ぶか、モノシリックかマイクロサービスかのような基本的なアーキテクチャ選択と本質的
に類似)
○ 通常、これらのセキュリティや信頼性に関連するデザインを既存システムに後から追加することは難し
い(⼤規模な設計変更やリファクタリングが必要)
○ さらに後から変更する場合はよりコストや時間がかかる上に、多くがセキュリティインシデントなど緊
急性の⾼い事象に紐づいて要求されるため時間的制約が⼤きい
○ その変更によって追加の⽋陥を⽣むリスクもある
○ これらの議論はSREとセキュリティチームを巻き込んで設計の初期段階に⾏うべき︕
EXAMPLE: PAYMENT PROCESSING
● 部品をコンシューマに販売するオンラインシステム(Web/モバイルでカタログから注⽂できる)
のケース
● セキュリティと信頼性の考慮
決済機能はセキュリティと信頼性の重要な考慮が必要。名前、住所、カード番号など。PCI-DSSなどの規制への対応やそれらのデー
タがダメージを受けた場合の対応の検討。場合によってはこのセキュリティインシデントはビジネスの存続にも影響し、実際に廃業
したケースも)
● 機密情報を扱うための3rd Party利⽤
これらのリスクを軽減するために機密情報を保持せず 3rd Partyの決済サービスを利⽤することも多い
● ⻑所
セキュリティ専⾨家を外部に持つ
データ侵害のリスク低減
コンプライアンス要件の簡略化
データ保持の開発コスト削減
● コストと技術以外のリスク
SW利⽤料⾦、開発コスト、ベンダー管理、ベンダー⾃信が毀損されるリスク
● 信頼性リスク
依存関係が追加される
● セキュリティリスク
ベンダーのセキュリティレベルの評価
MANAGING TENSIONS AND ALIGNING GOALS
● 事前の計画を⽴てることにより機能を諦めることなく信頼性やセキュリティといった重要な⾮機能
要件を満たすことができる。
EXAMPLE: MICROSERVICES AND THE GOOGLE WEB APPLICATION
FRAMEWORK
● 主要な⽬標︓⼤規模組織向けのアプリとサービスの開発と運⽤の効率化
● コードが様々なコーディングガイドラインやベストプラクティスに確実に準拠するようにした
● フレームワーク開発チームは設計及び実装のフェーズ全体でSREとセキュリティチームと連携し要
件が組み込まれていることを確認した
● 同時に監視など⾃動化できる機能を盛り込んだ
ALIGNING EMERGENT-PROPERTY REQUIREMENTS
● あとでセキュリティと信頼性要件を追加するのはコストとリスクを伴うことが多い
○ システムの理解しやすさ
○ リカバリ設計
○ 変化への適応性
● 特に⼩規模組織では後回しにしがち
CONCLUSION
● 安全性と信頼性は、主に開発と運⽤のワークフロー全体の創発的な特性であるため、安全で信頼性
の⾼いシステムを設計して構築することは簡単ではない。
● トピックの多くは機能要件に関連してるようには⾒えない。
● 設計プロセスには信頼性要件、セキュリティ要件、機能要件の多数のトレードオフが含まれる。
● そのトレードオフは対⽴しているように⾒えるためプロジェクトの初期段階では問題を後回しにし
がち。だがその後回しが⼤きなリスクとコストを伴う︕
● ⼀旦サービスがリリースされるとセキュリティや信頼性はもはやオプションではなく、これらが損
なわれるとビジネス影響が出ることもある(システムがダウンして使えないなど)
● 適切な計画と慎重な設計により多くの場合信頼性もセキュリティも機能要件も満たすことができ、
それは結果的に後から実施するより最⼩限のコストで実施できる︕
シフトレフトのステップ(PALOALTO)セキュリティのシフトレフ
ト
ステップ1: 貴社のシフトレフト セキュリティ戦略を定義する
ステップ2: 貴社の中で、ソフトウェアがどこでどのように作られているかを把握する
ステップ3: セキュリティの質と防壁を特定し、実装する
ステップ4: セキュアなコーディングを可能にするため、開発チームを査定し、継続的にトレーニ
ングする
https://blog.paloaltonetworks.com/2019/08/4-practical-steps-shift-left-security/?lang=ja

Weitere ähnliche Inhalte

Ähnlich wie Building secure and reliable systems #3 4

S13_レガシー ID 管理者でも分かる Verifiable Credentials のセッション [Microsoft Japan Digital D...
S13_レガシー ID 管理者でも分かる Verifiable Credentials のセッション [Microsoft Japan Digital D...S13_レガシー ID 管理者でも分かる Verifiable Credentials のセッション [Microsoft Japan Digital D...
S13_レガシー ID 管理者でも分かる Verifiable Credentials のセッション [Microsoft Japan Digital D...
日本マイクロソフト株式会社
 
Microsoft Identity Technology / Kantara Initiative Seminar 2011
Microsoft Identity Technology / Kantara Initiative Seminar 2011Microsoft Identity Technology / Kantara Initiative Seminar 2011
Microsoft Identity Technology / Kantara Initiative Seminar 2011
Naohiro Fujie
 

Ähnlich wie Building secure and reliable systems #3 4 (20)

S13_レガシー ID 管理者でも分かる Verifiable Credentials のセッション [Microsoft Japan Digital D...
S13_レガシー ID 管理者でも分かる Verifiable Credentials のセッション [Microsoft Japan Digital D...S13_レガシー ID 管理者でも分かる Verifiable Credentials のセッション [Microsoft Japan Digital D...
S13_レガシー ID 管理者でも分かる Verifiable Credentials のセッション [Microsoft Japan Digital D...
 
最近のKeycloakのご紹介 ~クライアントポリシーとFAPI~
最近のKeycloakのご紹介 ~クライアントポリシーとFAPI~最近のKeycloakのご紹介 ~クライアントポリシーとFAPI~
最近のKeycloakのご紹介 ~クライアントポリシーとFAPI~
 
Oracle Cloud Infrastructure セキュリティの取り組み [2021年8月版]
Oracle Cloud Infrastructure セキュリティの取り組み [2021年8月版]Oracle Cloud Infrastructure セキュリティの取り組み [2021年8月版]
Oracle Cloud Infrastructure セキュリティの取り組み [2021年8月版]
 
AIP改め、MIP_20230128_it.pdf
AIP改め、MIP_20230128_it.pdfAIP改め、MIP_20230128_it.pdf
AIP改め、MIP_20230128_it.pdf
 
AIP改め、MIP_20230128_it.pdf
AIP改め、MIP_20230128_it.pdfAIP改め、MIP_20230128_it.pdf
AIP改め、MIP_20230128_it.pdf
 
00_O365_SecureConfigurationAlignment_JP_v1.0.pdf
00_O365_SecureConfigurationAlignment_JP_v1.0.pdf00_O365_SecureConfigurationAlignment_JP_v1.0.pdf
00_O365_SecureConfigurationAlignment_JP_v1.0.pdf
 
Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向
Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向
Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向
 
Microsoft Identity Technology / Kantara Initiative Seminar 2011
Microsoft Identity Technology / Kantara Initiative Seminar 2011Microsoft Identity Technology / Kantara Initiative Seminar 2011
Microsoft Identity Technology / Kantara Initiative Seminar 2011
 
企業情報システムにおける先進的な技術の活用
企業情報システムにおける先進的な技術の活用企業情報システムにおける先進的な技術の活用
企業情報システムにおける先進的な技術の活用
 
Bypassing Windows Security Functions(ja)
Bypassing Windows Security Functions(ja)Bypassing Windows Security Functions(ja)
Bypassing Windows Security Functions(ja)
 
パスキーでリードする: NGINXとKeycloakによる効率的な認証・認可
パスキーでリードする: NGINXとKeycloakによる効率的な認証・認可パスキーでリードする: NGINXとKeycloakによる効率的な認証・認可
パスキーでリードする: NGINXとKeycloakによる効率的な認証・認可
 
世界の事例から学ぶ「モビリティ」と「セキュリティ」のあるべき姿
世界の事例から学ぶ「モビリティ」と「セキュリティ」のあるべき姿世界の事例から学ぶ「モビリティ」と「セキュリティ」のあるべき姿
世界の事例から学ぶ「モビリティ」と「セキュリティ」のあるべき姿
 
Azure DevOpsとセキュリティ
Azure DevOpsとセキュリティAzure DevOpsとセキュリティ
Azure DevOpsとセキュリティ
 
【de:code 2020】 GitHub と Azure Security Center による、アプリケーションのための Azure セキュリティ
【de:code 2020】 GitHub と Azure Security Center による、アプリケーションのための Azure セキュリティ【de:code 2020】 GitHub と Azure Security Center による、アプリケーションのための Azure セキュリティ
【de:code 2020】 GitHub と Azure Security Center による、アプリケーションのための Azure セキュリティ
 
クラウドネイティブガバナンスの実現
クラウドネイティブガバナンスの実現クラウドネイティブガバナンスの実現
クラウドネイティブガバナンスの実現
 
オンプレミスからクラウドへ:Oracle Databaseの移行ベストプラクティスを解説 (Oracle Cloudウェビナーシリーズ: 2021年2月18日)
オンプレミスからクラウドへ:Oracle Databaseの移行ベストプラクティスを解説 (Oracle Cloudウェビナーシリーズ: 2021年2月18日)オンプレミスからクラウドへ:Oracle Databaseの移行ベストプラクティスを解説 (Oracle Cloudウェビナーシリーズ: 2021年2月18日)
オンプレミスからクラウドへ:Oracle Databaseの移行ベストプラクティスを解説 (Oracle Cloudウェビナーシリーズ: 2021年2月18日)
 
今やコンプライアンスは必須! “簡・安・早”なクラウド・仮想環境でのセキュリティ
今やコンプライアンスは必須! “簡・安・早”なクラウド・仮想環境でのセキュリティ今やコンプライアンスは必須! “簡・安・早”なクラウド・仮想環境でのセキュリティ
今やコンプライアンスは必須! “簡・安・早”なクラウド・仮想環境でのセキュリティ
 
NRIセキュアが考える持続可能なID&アクセス管理基盤の実現
NRIセキュアが考える持続可能なID&アクセス管理基盤の実現NRIセキュアが考える持続可能なID&アクセス管理基盤の実現
NRIセキュアが考える持続可能なID&アクセス管理基盤の実現
 
働き方改革を後押しする Office 365 + リモートワークソリューション ~Azure Active Directoryとの組み合わせで実現する~リ...
働き方改革を後押しする Office 365 + リモートワークソリューション ~Azure Active Directoryとの組み合わせで実現する~リ...働き方改革を後押しする Office 365 + リモートワークソリューション ~Azure Active Directoryとの組み合わせで実現する~リ...
働き方改革を後押しする Office 365 + リモートワークソリューション ~Azure Active Directoryとの組み合わせで実現する~リ...
 
クラウドスキルチャレンジの概要と進め方 for ALGYAN
クラウドスキルチャレンジの概要と進め方 for ALGYANクラウドスキルチャレンジの概要と進め方 for ALGYAN
クラウドスキルチャレンジの概要と進め方 for ALGYAN
 

Kürzlich hochgeladen

Kürzlich hochgeladen (12)

Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 

Building secure and reliable systems #3 4

  • 1. ⾃⼰紹介 Keiko Itakura ITベンダーでセキュリティコンサルをやったり今はConsumer向けIDのProduct managerをやっている人 Twiiter : keikoit2 Facebook : https://www.facebook.com/keiko.itakura LinkedIn : https://www.linkedin.com/in/iamgirl/
  • 2. CHAPTER3 : CASE STUDY: SAFE PROXIES 安全なプロキシを利⽤することで信頼性やセキュリティに関連する課題を解決できることの紹介 プロキシはロギングとマルチパーティ認証をシステムに追加する1つの⽅法であり、システムの安全性 と信頼性を⾼めるのに役⽴つ。 このアプローチは、既存のシステムでは費⽤効果の⾼いオプションで、パートIIで説明されている他の 設計原則と組み合わせると、はるかに弾⼒性がある。 第4章で説明するように、新しいプロジェクトを 開始する場合は、ロギングおよびアクセス制御モジュールと統合するフレームワークを使⽤してシステ ムアーキテクチャを構築するのが理想的。
  • 3. SAFE PROXIES IN PRODUCTION ENVIRONMENTS ● ⼀般に、プロキシは新しい信頼性とセキュリティの要件に対処する⽅法を提供する。実装されたシ ステムに⼤幅な変更を加える必要はない。 ● 既存のシステムを変更するのではなく、プロキシを使⽤するだけで、システムに直接接続されてい たはずの接続をルーティングできる ● 悪意のある攻撃者や善意のあるメンバのミスを防げる ● Googleでは、システムへのSSH接続を確⽴せずに、安全なプロキシを使⽤してリスクのあるコマ ンドを確認、承認、および実⾏ ● これらのプロキシを使⽤して、問題をデバッグするためのきめ細かなアクセスを許可したり、マシ ンの再起動をレート制限したりできる。 安全なプロキシは、ネットワーク間の単⼀のエントリポ イントであり、次のことを可能にする主要な⼿段 すべてのオペレーションを監査 リソース のアクセス制御 ⼈的ミスから本番を保護 ● Googleが評価したすべての機能停⽌の約13%は、ゼロタッチ製品で防⽌または軽減できたと推定
  • 4.
  • 5. SAFE PROXIES IN PRODUCTION ENVIRONMENTS ● プロキシは次のものを提供 マルチパーティ認証(MPA)2を実施する中⼼的なポイントであり、機密データとやり取りするリ クエストのアクセス決定を⾏う。 特定のリクエストがいつ、誰によって実⾏されたかを追跡できる管理使⽤監査 レート制限。システムの再起動などの変更が徐々に有効になり、ミスの爆発範囲を制限できる可能 性がある。 プロキシの追加機能を使⽤してコンポーネント(変更できない)の動作を制御する、クローズドソ ースのサードパーティターゲットシステムとの互換性 継続的な改善の統合。中央プロキシポイントにセキュリティと信頼性の強化を追加
  • 6. SAFE PROXIES IN PRODUCTION ENVIRONMENTS ● デメリットもある。 ● メンテナンスと運⽤のオーバーヘッドに関して、コストが増加 ● 単⼀障害点。複数のインスタンスを実⾏して冗⻑性を⾼めることにより、この状況を緩和。 ● アクセス制御のポリシー設定。これ⾃体がエラーの原因になる可能性がある。デフォルトで安全な テンプレートまたは⾃動⽣成設定を提供することにより、ユーザーが正しい選択を⾏うようにガイ ドする。このようなテンプレートまたは⾃動化を作成するとき、私たちはパートII全体を通して提 ⽰された設計戦略に従う。 ● 攻撃者が制御できる中央マシン。前述のポリシー構成では、システムがクライアントのIDを転送 し、クライアントに代わってアクションを実⾏する必要がある。プロキシの役割ではリクエストが 実⾏されないため、プロキシ⾃体は⾼い権限はない。 ● 変更への抵抗。本番システムに直接接続したい場合。このようなトピックについては、第21章で 詳しく説明。
  • 7. GOOGLE TOOL PROXY ● Google社員は、コマンドラインインターフェース(CLI)ツールを使⽤して管理操作の⼤部分を実 ⾏ ● これらのツールの⼀部は潜在的に危険(たとえば、特定のツールはサーバーの電源を切ることがで きる。すべてのCLIツールを追跡し、⼀元化されたロギングを確実に実⾏し、機密性の⾼いアクシ ョンがさらに保護されていることを確認することは困難で費⽤がかかる。) ● この問題に対処するために、Googleはツールプロキシを作成。これは、指定されたコマンドライ ンをforkとexecを介して内部的に実⾏する汎⽤RPCメソッドを公開するバイナリ。 ● すべての呼び出しはポリシーによって制御され、監査のためにログに記録され、MPAを要求する機 能があります。ツールプロキシを使⽤すると、ゼロタッチ製品の主な⽬標の1つを達成できる。つ まり、⼈間が直接製品にアクセスできないようにすることで、製品をより安全にします。エンジニ アはサーバー上で直接任意のコマンドを実⾏することはできない。代わりにTool Proxyに連絡する 必要がある。
  • 8. CHAPTER4 : DESIGN TRADEOFFS 多くの場合、機能要件と信頼性要件&セキュリティ要件は相対⽴してバランスをとることが難しい。 この章では信頼性要件とセキュリティ要件を初期段階から検討することの重要性について解説 ー機能要件、信頼性要件、セキュリティ要件の関連 ートレードオフが発⽣する例(決済サービス、マイクロサービス) ー信頼性要件、セキュリティ要件を初期段階から盛り込むことに関する議論
  • 9. DESIGN OBJECTIVES AND REQUIREMENTS ● 機能要件 ● ⾮機能要件 ● 機能 VS Emergent Properties(信頼性とセキュリティ)
  • 10. FEATURE REQUIREMENTS ● ユースケース、ユーザーストーリー、ユーザージャーニー ● サービスまたはアプリケーションの主要な機能を識別し、ユーザーが特定のタスクを実⾏する⽅法 または特定のニーズを満たす⽅法(ユーザーとサービスまたはアプリケーションの間の⼀連の対 話) ● 通常設計上機能要件が主要な推進要因になる(私の解釈︓ユーザーのニーズは機能要件に現れが ち) ● 様々な要件は時にトレードオフを伴うので、重要な要件は別途管理するのがおすすめ ● また、多くの要件はサービスまたはアプリ全体に適⽤され、ユーザージャーニーには現れてこない ○ 例︓アプリのUIは以下の要件を満たす必要がある 共通のデザインガイドラインに準拠 アクセシビリティガイドラインに準拠 プライバシーポリシーとToS(Terms of Service)のリンクフッターに表⽰
  • 11. NONFUNCTIONAL REQUIREMENTS ● 誰がどのデータにアクセスできるのか ● SLO(稼働時間、応答待ち時間など) ● 開発効率と速度 ● 展開速度(リリースまでにどのくらい時間がかかるか)
  • 12. RELIABILITY AND SECURITY AS EMERGENT PROPERTIES OF SYSTEM DESIGN ERGENROPERTIES (信頼性要件)F SYSTEM ● サービス全体をマイクロサービスなどのコンポーネントに分割する⽅法 ● サービスの可⽤性と依存関係の可⽤性/信頼性の関係(サービスバックエンド、ストレージ、およ び基盤となるプラットフォームなど) ● コンポーネントが通信に使⽤するメカニズム(RPC、メッセージキュー、イベントバスなど)、要 求のルーティング⽅法、および負荷分散と負荷制限の実装と構成⽅法 ● 単体テスト、エンドツーエンドの機能テスト、⽣産準備レビュー(PRR)、負荷テスト、および同 様の検証アクティビティが、開発および展開ワークフローにどのように統合されているか ● システムの監視⽅法、および利⽤可能な監視、メトリック、およびログが、異常および障害の検出 と対応に必要な情報を提供しているかどうか
  • 13. RELIABILITY AND SECURITY AS EMERGENT PROPERTIES OF SYSTEM DESIGN ERGENROPERTIES (セキュリティ要件) ● ⼤規模なシステムをサブコンポーネントに分解する⽅法、およびそれらのコンポーネント間の信頼 関係 ● アプリケーションが開発される実装⾔語、プラットフォーム、およびアプリケーション/サービス フレームワーク ● セキュリティの設計と実装のレビュー、セキュリティテスト、および同様の検証アクティビティを ソフトウェアの開発と展開のワークフローに統合する⽅法 ● セキュリティアナリストやインシデントレスポンダーが利⽤できるセキュリティモニタリング、監 査ログ、異常検出、その他のツールの形式
  • 14. EXAMPLE:GOOGLE DESIGN DOCUMENT ● 以下のような標準項⽬を含むデザインドキュメントのテンプレート化 ● ステークホルダーからのFBを開発前に収集、セキュリティデザインレビューも⾏う ○ スケーラビリティ(システム規模、データ増加率、トラフィック増加率、どのようにスケールするか、 現在のシステムの状況は︖) ○ 冗⻑性と信頼性(データの損失や⼀時停⽌にどう対応するか、どのような影響があるか、バックアップ 対象、バックアップ⽅法、リストア⽅法、部分的な障害の復旧⽅法を含む) ○ 依存関係(他のシステムが利⽤できない時の影響、名前解決や時刻同期なども忘れずに︕) ○ データの完全性(どうやって完全性をチェックするか、どのデータ損失を検出すべきか、損失から検出 までの時間的猶予、復旧⽅法) ○ SLA(サービス稼働を監視、保証する仕組み、どこまでを保証できるか) ○ セキュリティとプライバシー(潜在的脅威と考えられる影響、対応⽅法、既知の脆弱性)
  • 15. BALANCING REQUIREMENTS ● 既存システムに信頼性要件とセキュリティ要件を追加する際のコスト ○ セキュリティと信頼性に関する設計項⽬のいくつかは基本的なもの(例えばNoSQLを選ぶかRelational Databaseを選ぶか、モノシリックかマイクロサービスかのような基本的なアーキテクチャ選択と本質的 に類似) ○ 通常、これらのセキュリティや信頼性に関連するデザインを既存システムに後から追加することは難し い(⼤規模な設計変更やリファクタリングが必要) ○ さらに後から変更する場合はよりコストや時間がかかる上に、多くがセキュリティインシデントなど緊 急性の⾼い事象に紐づいて要求されるため時間的制約が⼤きい ○ その変更によって追加の⽋陥を⽣むリスクもある ○ これらの議論はSREとセキュリティチームを巻き込んで設計の初期段階に⾏うべき︕
  • 16. EXAMPLE: PAYMENT PROCESSING ● 部品をコンシューマに販売するオンラインシステム(Web/モバイルでカタログから注⽂できる) のケース ● セキュリティと信頼性の考慮 決済機能はセキュリティと信頼性の重要な考慮が必要。名前、住所、カード番号など。PCI-DSSなどの規制への対応やそれらのデー タがダメージを受けた場合の対応の検討。場合によってはこのセキュリティインシデントはビジネスの存続にも影響し、実際に廃業 したケースも) ● 機密情報を扱うための3rd Party利⽤ これらのリスクを軽減するために機密情報を保持せず 3rd Partyの決済サービスを利⽤することも多い ● ⻑所 セキュリティ専⾨家を外部に持つ データ侵害のリスク低減 コンプライアンス要件の簡略化 データ保持の開発コスト削減 ● コストと技術以外のリスク SW利⽤料⾦、開発コスト、ベンダー管理、ベンダー⾃信が毀損されるリスク ● 信頼性リスク 依存関係が追加される ● セキュリティリスク ベンダーのセキュリティレベルの評価
  • 17. MANAGING TENSIONS AND ALIGNING GOALS ● 事前の計画を⽴てることにより機能を諦めることなく信頼性やセキュリティといった重要な⾮機能 要件を満たすことができる。
  • 18. EXAMPLE: MICROSERVICES AND THE GOOGLE WEB APPLICATION FRAMEWORK ● 主要な⽬標︓⼤規模組織向けのアプリとサービスの開発と運⽤の効率化 ● コードが様々なコーディングガイドラインやベストプラクティスに確実に準拠するようにした ● フレームワーク開発チームは設計及び実装のフェーズ全体でSREとセキュリティチームと連携し要 件が組み込まれていることを確認した ● 同時に監視など⾃動化できる機能を盛り込んだ
  • 19. ALIGNING EMERGENT-PROPERTY REQUIREMENTS ● あとでセキュリティと信頼性要件を追加するのはコストとリスクを伴うことが多い ○ システムの理解しやすさ ○ リカバリ設計 ○ 変化への適応性 ● 特に⼩規模組織では後回しにしがち
  • 20. CONCLUSION ● 安全性と信頼性は、主に開発と運⽤のワークフロー全体の創発的な特性であるため、安全で信頼性 の⾼いシステムを設計して構築することは簡単ではない。 ● トピックの多くは機能要件に関連してるようには⾒えない。 ● 設計プロセスには信頼性要件、セキュリティ要件、機能要件の多数のトレードオフが含まれる。 ● そのトレードオフは対⽴しているように⾒えるためプロジェクトの初期段階では問題を後回しにし がち。だがその後回しが⼤きなリスクとコストを伴う︕ ● ⼀旦サービスがリリースされるとセキュリティや信頼性はもはやオプションではなく、これらが損 なわれるとビジネス影響が出ることもある(システムがダウンして使えないなど) ● 適切な計画と慎重な設計により多くの場合信頼性もセキュリティも機能要件も満たすことができ、 それは結果的に後から実施するより最⼩限のコストで実施できる︕
  • 21. シフトレフトのステップ(PALOALTO)セキュリティのシフトレフ ト ステップ1: 貴社のシフトレフト セキュリティ戦略を定義する ステップ2: 貴社の中で、ソフトウェアがどこでどのように作られているかを把握する ステップ3: セキュリティの質と防壁を特定し、実装する ステップ4: セキュアなコーディングを可能にするため、開発チームを査定し、継続的にトレーニ ングする https://blog.paloaltonetworks.com/2019/08/4-practical-steps-shift-left-security/?lang=ja