修士論文

運用を考慮した
セキュリティ要求分析手法の提案
Proposal of Security Requirements Analysis Considering Operation

2020/02/22
大久保研究室 M2 小西慶浩

アジェンダ1.はじめに
2. DevOps／DevSecOps
3. セキュリティ要求分析
4. 提案手法
5. ケーススタディと今後の課題

1

はじめに

2

開発とビジネスの一体化• デジタルトランスフォーメーションの時代を迎え、システム開発の現場では、開発とビジネスの一体化が進んでいる「これからの人材のスキル変革を考える～DX時代を迎えて～」 , 情報処理推進機構 , 2019 ,https://www.ipa.go.jp/files/000076002.pdf より引用

3

開発と運用の一体化• 開発と運用の一体化が進んでいる• 迅速開発手法のアジャイル開発とともに、開発者と運用者が連携して協力する「DevOps」の普及が進む

開発の現場でも開発者と運用者の一体化が求められている「これからの人材のスキル変革を考える～DX時代を迎えて～」 , 情報処理推進機構 , 2019 ,https://www.ipa.go.jp/files/000076002.pdf より引用

4

DevOps／DevSecOps

5

DevOpsとは• 開発者と運用者が連携して協力する開発手法の総称• 開発・運用システムを確実かつ迅速にユーザに届けるためのプラクティス「事例でわかるサイバーセキュリティの最新トレンド」, P.159, サイバー出版センター, 2018

6

DevOpsのポイント①：自動化• 各プロセスにおいて開発手法やツールを利用しできる限り「自動化」させることが重要• 「自動化」は開発のスピード向上 と 開発者/運用者の連携強化の双方をもたらす「自動化」はDevOpsを実現する
重要な要素

開発

運用計画

デプロイ

設計

監視／検知

開発／単体 自動化

対策

ビルド／連結予防

リリース準備改善

7

DevOpsのポイント②
開発者と運用者の壁を克服• 開発→運用：「①継続的インテグレーション/継続的デリバリー（CI/CD)」• 運用→開発：「②フィードバック」②フィードバック①、②で開発と運用のカベを克服する

開発カベ

運用

①継続的インテグレーション／継続的デリバリー（CI/CD)
8

「DevOps」と「セキュリティ」• DevOpsのループにはセキュリティが欠けている• 「迅速化」と「セキュリティ活動」の両立が難しい• セキュリティの向上はビジネスを進める上で必須
フィードバック

開発カベ

セキュリティ

運用

セキュリティのフィードバックが無い

9

DevSecOpsとは• 「DevOps」＋「セキュリティ」• DevOpsのスピード感を活かしたままセキュリティを組み込む• 2021年にはDevOpsの80％がDevSecOpsになる予想

各工程にセキュリティを「事例でわかるサイバーセキュリティの最新トレンド」, P.160, サイバー出版センター, 201810

シフトレフトの重要性• DevSecOpsの実現にはシフトレフトの考え方が重要• セキュリティチェックを前倒しすることは、開発の後戻りを防ぐことに繋がり、迅速化に貢献する
セキュリティチェック

シフトレフト計画

設計

セキュリティ要求分析
リスク評価、リスク分析
セキュリティ・バイ・デザイン

実装
ソースコード診断

試験

リリース

ファジングテスト運用

ペネトレーションテスト

プラットフォーム診断
Webアプリケーション診断

脆弱性管理
11

課題設定
• 【開発の計画(Plan)段階で実施するセキュリティ活動】に着目し、どのように改善をすべきかを研究の課題に設定(例)
セキュリティ要求分析
脅威モデルリング、リスク評価など

12セキュリティ要求分析の重要性• 高速開発の現場では、「セキュリティ要求分析」が「VeryValuable(とても有益)」と評価されており、DevSecOpsの実現には重要なアクティビティと考えられる
Security Engineering from Agile Perspective「セキュリティ要求分析」は「とても有益」と評価

Agile Security - Review of Current Research and Pilot Usage-, Carol Woody,SEI White Paper, 201313

セキュリティ要求分析14

セキュリティ要求分析

定義
ソフトウェアへの意図的または意図しない不正アクセスの防止を保証する一連の仕様を満たすために，ソフトウェアが持つべき機能を識別するアクティビティ

Akond Ashfaque Ur Rahman, Laurie Williams ,「Software Security in DevOps: Synthesizing Practitioners’ Perceptions and Practices」 ,International Workshop on Continuous Software Evolution and Delivery ,2016 より引用

15

STRIDEモデル• 「情報漏えい」「なりすまし」などの特徴的な脅威を具体的に分類し、適切な対策を講じるための分析手法
脅威Spoofing：なりすまし
Tampering：改ざん
Repudiation：否認
Information Disclosure：情報漏えい
Denial of Service：サービス拒否

Microsoft 社提供のThreat Modeling Tool
脅威モデリングを専門家でなくとも実施可能

Elevation of Privilege：特権の昇格

Microsoft Corporation , 「Microsoft Threat Modeling Tool」,2017,https://docs.microsoft.com/ja-jp/azure/security/develop/threat-modeling-tool16

ミスユースケース• UMLユースケース図を応用したセキュリティ分析手法• 脅威とその関係者、対策の関係を明確に示すことが可能
凡例：アクター：ミスユーザ：ユースケース：ミスユースケース：セキュリティユースケース
ミスユースケース図17

セキュリティ要求分析の変化• 企画ユーザと開発者が一体となって、ともにあるべき姿を創案していくことが求められている
従来の要求分析手法を用いても、ユーザの要求を引き出せず、要件がまとまらない（なぜまとまらない？）⇒【ユーザが「あるべき姿」をそもそも持っていないから（なぜ「あるべき姿をもっていない？）⇒テクノロジーの高度化により「あるべき姿」を描くことが困難だから

ユーザ と 開発者 が一緒になって創造性を発揮することが必要
企画ユーザ

開発者

第1回：「アジャイル」と「自動化技術」の限界 https://japan.zdnet.com/article/35144808/18運用を考慮することの必要性• サービスの提供に「運用」は欠かせない• 「開発」と「運用」の一体が求められている

開発者

企画ユーザ

運用者

今後、セキュリティ要求分析の作業は、セキュリティのあり方を企画ユーザ／開発者／運用者が共に創案することが必要
19

運用を考慮することの必要性• セキュリティ対策には、事前に運用まで考慮すべき対策や、要求分析時に運用者のナレッジが求められる対策がある
セキュリティ対策のカテゴリ例

Authentication：認証
Session Management：セッション管理
Input Validation：入力検証
Auditing and Logging：監査とログ記録
Communication Security：通信のセキュリティ

緑字：
特に運用者のナレッジが多く存在すると考えられる対策

Cryptography：暗号化
Sensitive Data：機密性の高いデータ
Exception Management：例外管理
Authorization：認可
Configuration Management：構成管理※セキュリティ対策のカテゴリ例は
山田侑樹, 櫨山淳雄, 吉岡信和, 「ソフトウェアセキュリティ知識ベースを用いた要求分析及び設計における知識提示手法の提案」 より引用

20

提案のモチベーション• 従来のセキュリティ要求分析はシステム化対象範囲のみとすることが多く運用の観点が入っていないことが多い• セキュリティ要求分析を実施する際は、企画ユーザ/開発者/運用者が三位一体で実施するやり方が望ましい

上記を考慮した新たなセキュリティ要求分析の手法を提案

21

提案手法

22

提案手法
従来のミスユースケースによるセキュリティ要求分析を運用まで考慮したものに拡張する手法を提案する
具体的には、従来のミスユースケースに以下の• 運用者のアクター• 運用セキュリティユースケース• 運用フィードバック

運用者

運用セキュリティユースケース<<feedback>>の記載を追加することを提案する

運用フィードバック

23

なぜミスユースケースに着目したか着目した理由• セキュリティ脅威とその関係者、および、セキュリティ対策の関係を明確に示すことが可能であり、プロジェクト内におけるセキュリティ目標の共有やセキュリティ知識の向上につながることが期待できる点• 「企画ユーザと開発者」や「開発者同士」の相互理解への貢献に結びついたものであり、運用まで考慮したものに拡張することで、「開発者と運用者」の相互理解への貢献が期待できる点
24

ケーススタディ25

シナリオ事例（１）
事例（１）既存の認証情報を流用した新決済サービスの開発【背景およびシステム要件】
・企画ユーザは顧客の満足度向上のためオムニチャンネルサービスを提供している小売業である．
・顧客満足度の向上のため，新決済サービスの開発を企画している．
・オムニチャンネルサービスに会員登録済みのユーザは，新決済サービスの会員登録は不要である．

（参考）
株式会社セブン＆アイ・ホールディングス , 「7pay（セブンペイ）」 サービス廃止のお知らせとこれまでの経緯、今後の対応に関する説明について, 2019https://www.7andi.com/company/news/release/201908011500.html

26

ユースケース例：アクター：ユースケース27ミスユースケース例：ユースケース：アクター：ミスユーザ<<threaten>>：ミスユースケース：セキュリティ脅威28

セキュリティユースケース例

29

セキュリティユースケース例

脅威：「なりすましでログイン」↑(mitigate)
対策：「入力検証機構を実装」

30

セキュリティユースケース例

脅威：「Dos攻撃でサービス妨害」↑(mitigate)

対策：「不正アクセスを検知する機能を実装」

31

提案手法を適用した例

32

提案手法を適用した例

脅威：「なりすましでログイン」↑(mitigate)
対策：「入力検証機構を実装」↑(feedback)
運用：「オムニチャネルサービス運用時の攻撃ログ情報を提供」
33

提案手法を適用した例
脅威：「Dos攻撃でサービス妨害」↑(mitigate)

対策：「不正アクセスを検知する機能を実装」
運用：「不正なIPアドレスを遮断」

34

シナリオ事例（２）事例（２）クラウドメールサービスを利用した新メールシステムの開発【背景およびシステム要件】
・企画ユーザは国立の研究開発法人である。
・社内情報システムの利便性向上のため、新たなメールシステムの開発を企画している。
・新メールシステムでは、クラウドメールサービスの利用を企画している。
・その他の社内情報システムは内部のイントラ基盤に構成されている。
・クラウドメールサービスへの認証は、別途外部に構築した認証サーバ経由で行われる。
・社内情報システムには、新メールシステムと同一のID・パスワードで利用できることとする。

（参考）
国立研究開発法人産業技術総合研究所 , 「産総研の情報システムに対する不正なアクセスに関する報告」について, 2018https://www.aist.go.jp/aist_j/news/announce/au20180720.html

35

ユースケース例：アクター：ユースケース36ミスユースケース例：ユースケース：アクター：ミスユーザ<<threaten>>：ミスユースケース：セキュリティ脅威37

セキュリティユースケース例

38セキュリティユースケース例

脅威：「認証回避/権限昇格による不正利用」↑(mitigate)
対策：「認証機能/認可制御を設定」

39

セキュリティユースケース例

脅威：「不正入手したメールをもとに社内情報システムへ侵入」
対策：「特になし」

40提案手法を適用した例

41

提案手法を適用した例

脅威：「認証回避/権限昇格による不正利用」↑(mitigate)
対策：「認証機能/認可制御を設定」↑(feedback)
運用：「既存社内情報システムのセキュリティポリシーの棚卸し」
42

提案手法を適用した例

脅威：「不正入手したメールをもとに社内情報システムへ侵入」↑(mitigate)

運用：「ネットワーク監視の強化」

43

適用結果と考察• 開発者がセキュリティ機能を実装する際に運用者がフィードバックすべき事項を具体化することができるようになった。
• セキュリティ脅威、関係者セキュリティ対策の関係を、運用まで含めた形でより詳細に示すことができるようになった。
• 事例（１）の適用結果は、入力値を伴う認証機能全般に一般化可能と考えられる。認証機能が持つべき仕様を決定する際は、運用を考慮した検討が望ましい。
• 事例（２）の適用結果は、基幹システムのクラウド移行全般に一般化可能と考えられる。クラウド移行の際は、PSIRT(Product Security Incident
Response Team)構築などを含めた、運用を考慮した検討が望ましい。

44

今後の課題セキュリティ要求分析は実施すべき重要なセキュリティアクティビティではあるものの、作業の自動化が困難で実施コストが増大してしまう傾向にある。
企画ユーザの要求を素早く抽出する要求把握の手法や、少ないインプットで高品質な分析結果をアウトプットできる手法といった、コスト負担の少ないセキュリティ要求分析手法の開発が求められる。

メリット

コスト
45

ご清聴ありがとうございました

46以下、付録47

DevSecOpsを実現する技術要素• ツールなどを利用して各プロセスにセキュリティ技術要素を上手く組み込み、開発のスピードとセキュリティの両立を実現することが大切
開発

技術要素

運用

技術要素

計画

全体計画作成，メトリクス，
ツール教育等

デプロイ

署名検証，脆弱性検知／セキュア設定，堅牢化

設計

脅威分析，アーキテクチャ設計

監視・検知

開発／単体

IDEプラグイン，コードレビュー

SOC，WAF／RASP／UEBA，セキュリティ診断

ビルド／連結静的検査，動的検査，コンポーネント解析，ファジング

対処

WAF／RASP

予防

脅威情報，インシデント対応手順

リリース準備

コード署名

改善

改善点の抽出インシデント対応手順改善
48

DevSecOpsの課題分析• 「計画」「設計」のような開発の上流プロセスの自動化は難しく、セキュリティの組み込みが進んでいない

ソースコード診断やセキュリティ運用を自動化する製品は多く登場しているが、「計画」「設計」に関する製品はまだ少ない

https://www.ubsecure.jp/vex/vex
https://www.splunk.com/ja_jp/software/splunk-enterprise.html

49山田らの提唱するSolution Typeと開発者と運用者が所持しているナレッジ分類◯：ナレッジあり
英語

日本語

STRID
E

説明

×：ナレッジなし or 少量

開発のナレッジ

運用のナレッジ（マイクロソフトのページより、一部略）

Authenticat
ion

認証

S

自分がだれであるか。 認証は、エンティティが他のエンティティの ID を証明するプロセスです◯ 認証機能を開発している開発にナレッジ多し×

SessionManageme
nt

セッション
管理

S,E

アプリケーションがユーザー セッションをどのように処理および保護するか。

◯ セッション管理機構を開発している開発にナレッジ多し

×

Input
Validation

入力検証

T,I,D,
E

アプリケーションが受け取る入力が有効で安全であることをどうやって知ることができるか。 入力の検証とは、処理を進める前にアプリケーションが入力をフィルター処理、スクラブ、または拒否する方法のことです。

◯入力検証の機能を開発している開発にナレッジ多し◯実際にどのような攻撃が来たかの情報（Dos含む）を提供できるので運用にもナレッジ多し

Auditing
andLogging

監査とロ
グ記録

T,R

だれがいつ何をしたか。 監査とログ記録とは、アプリケーションがセキュリティ関連のイベントを記録する方法のことです×◯ログ記録を実際に利用しながら日々システム運用している運用にナレッジ多しCommunication
Security

通信のセ
キュリティ

T,I,E通信相手はだれか。 通信のセキュリティでは、行われるすべての通信が可能な限り保護されることが保証されます×◯通信保護（SSL/TLSサーバ等）の運用を行う運用にナレッジ
多しCryptograp
hy

暗号化

T,I,E

どのように秘密を保持するか (機密性)。 データまたはライブラリを改ざんからどのように保護するか (完全性)。 暗号化とは、アプリケーションが機密性と整合性を強制的に確保する方法のことです◯暗号化機能を開発してる開発にナレッジ多し×

Sensitve
Data

機微なデータの取り扱い

T,I,E

アプリケーションが機微なデータをどのように処理するか。 機微なデー
タの取り扱いとは、メモリ内、ネットワーク上、または固定ストア内で保護する必要があるデータをアプリケーションが処理する方法のことです◯データ取り扱い機能を開発している開発にナレッジ多し×

Expression
Manageme
nt

例外管理

T,R

アプリケーションで呼び出したメソッドが失敗した場合、アプリケーションはどうするか。 どの程度公開するか。 エンド ユーザーにわかりやすいエラー情報を返すか。

◯例外管理機能を開発している開発にナレッジ多し◯日々の運用でどのような例外処理が発生するかの情報を提供できる運用にもナレッジ多し

Authorizati
on

認可E

アプリケーションがリソースや操作に対するアクセス制御を提供する方
法◯認可制御機能を開発している開発にナレッジ多し

×ConfigurationManagement

構成管理

T,I,D,E

アプリケーションがだれとして実行されるか。 どのデータベースに接続するか。 アプリケーションはどのように管理されるか。 これらの設定はどのように保護されるか。 構成管理とは、アプリケーションがこれらの操作上の問題を扱う方法のことです◯ ソフトウェア単体の構成管理については開発にナレッジ多し◯ソフトウェア単体以外の構成管理については運用にもナレッジ多し50