ここにはAADL(Architecture Analysis and Design Language)に関するメモを載せます.
情報が集まったら,まとめます.
AADLでセキュリティ分析してみる(これから試してみます)
- Automated Fault Tree Analysis from AADL Models (2016)
- http://resources.sei.cmu.edu/library/asset-view.cfm?assetid=499346
- Security Modeling Tools (2016.10)
- https://insights.sei.cmu.edu/sei_blog/2016/10/security-modeling-tools.html
- Error Model Annexとおなじ Delangeさんが開発されているようです
- Tutorial on Latency, Safety, and Security (EMSOFT 2016 )
- https://wiki.sei.cmu.edu/aadl/index.php/Models_examples
- Improving System and Software Security with AADL (2016.02)
- https://insights.sei.cmu.edu/sei_blog/2016/02/improving-system-and-software-security-with-aadl.html
- EsWeek 2016 Tutorial (スライドとAADLサンプルファイルが参考になりそうです)
- https://github.com/osate/examples/tree/master/esweek2016-tutorial
- Automated Assurance of Security Policy Enforcement(Julien Delange, 2016)
- https://resources.sei.cmu.edu/asset_files/Presentation/2016_017_001_474195.pdf
- Automated Assurance of Security Policy Enforcement (AASPE) (使用ツールのようです)
- https://github.com/cmu-sei/AASPE
- The AASPE tools are designed for making secure and safe safety-critical systems. The tools are using AADL and the OSATE toolset. It provides the following features:
- Attack Impact meta-model
- Attack Impact graphical editor
- Attack Tree editor meta-model
- Attack Tree graphical editor
- Bridge from Attack Impact to Attack Tree
- Bridge from AADL to Attack Impact
OSATE2ツールでFTAのメモ
- The OSATE tool processes this information (the error event) when generating the FTA to show the error events that contribute to a top-level error in the FMEA and to list the error events that may be failure sources.(4.2.2.4 Defining Error Events, AADL Fault Modeling and Analysis Within an ARP4761 Safety Assessment)
OSATE2ツールでFault Impact Analysisのメモ
- component error behavior -> propagation でFIAをスタートさせると,propagationで他のエラーを指定しても,ServiceOmissionとServiceCommissionでエラー伝搬が始まるのはなぜ?(2017-07-10)
- FIAのスタートの引き金となるのは,error sourceとerror eventである.FIAを伝播させるのは error pathである.
- The FMEA shows the impact of a component error or failure on the overall architecture. This is a bottom-up approach that lists for each potential error the impact on all the architecture. For each error source or error event, the tool analyzes the error path and lists all components affected by the fault originator.(4.2.5 Failure Modes and Effects Analysis, AADL Fault Modeling and Analysis Within an ARP4761 Safety Assessment)
- FIAのエラー伝搬がerror pathでしか記述できないとすると,コンポーネントの状態に依存したエラー伝搬は記述できないのでは?
- 伝播させるエラー・タイプを状態に依存した名称で書き分ければ,コンポーネントの状態に依存したエラー伝搬を記述できる.しかし,それは記述が複雑になって読みにくいと思う.
- 例えば ErrorTypeA ではなく ErrorTypeA_whenDegraded と書く
- (error source の when の部分の一部である)fault_sourceの一部であるerror_behavior_state [type_set ]にtype_setを書くとどのように扱われるのか?(10.6 Error Propagation Section, Architecture Fault Modeling and Analysis with the Error Model Annex, Version 2)
- OSATEツールのFIAの解説で登場する文献「Automated Safety Analysis for Domain-Specific Languages(2009)」は下の文献を基にツールを実装した話が書いてある.
- Modular Architectural Representation and Analysis of Fault Propagation and Transformation(2005)
Fault Impact Analysisの結果表示方法 (2017-07-05)
- テキスト(表形式)で出力:別のツールへの入力とするならこちら
- 図で出力:見た目で分かりやすい
- 結果出力の方法(テキスト,図)はこちら:https://wiki.sei.cmu.edu/aadl/index.php/SpeedRegulation Fault Impact
AADLの事例(2017-05-24)
SEIのDelangeさんによるSecurityモデリング・ツール. (2017-05-24)
引用:"We then designed two modeling tools: the attack tree and attack impact.
We did not design a specific attack surface tool because the attack surface can be derived from the attack impact."
STAMP記事(MONOist) 2017-05-20
ツール 2017-05-20
エラーモデルの書き方の良さそうな文献が出てました.(必読です!)
Architecture Fault Modeling and Analysis with the Error Model Annex, Version 2 (2016)
EMV2の文法一覧は,「AS5506/3 Error Model V2 Syntax Card」が便利.(2017-05-12)
ESWeek Tutorial:以下のスライドでOSATE2用experimental toolsが紹介されている.(2017-05-12)
https://github.com/osate/examples/blob/master/esweek2016-tutorial/slides/01-introduction.pdf
このスライドは昨年度実施されたチュートリアル用スライドである.
(Graphical Editor for the Error Model Annex V2 なんてのもあるようです)
とりあえずインストールしてみて,使用報告は後日することにしよう.
Annex D: Behavior Model Annex も OSATE2 ツールで使えるらしい.(2017-05-11)
AADL tutorial - tools の中の Some tools are directly integrated as OSTE2 plug-ins に
Behavioral-Annex by Telecom-ParisTech とある.(最終更新日が2013なので,後で確認してみます)
はじめてのSTAMP/STPAにある踏切の事例をAADL+EMV2で書いてみた.(2017-01-06)
- EMV2::hazards の解説や記述例は,以下の文書に書かれている.(他にもありませんかね)
- AADL Fault Modeling and Analysis Within an ARP4761 Safety Assessment
- EMV2.aadl の中にコメント
「Report generator for AADL that works with SAFE, a derivitive of STPA」なるツールを発見.アメリカの大学の人が2015年のSTAMPワークショップで話したやつか?
リンクをたどってみるも,それらしい情報にたどり着けず...(2017-0104)
AADLで安全分析を実施する方法の具体的手順に関する情報源(2017-01-04)
- Error-Model Annex v2 : OSATE2ツールの使い方のページの一部だがまとまった情報がある
- AADL Fault Modeling and Analysis Within an ARP4761 Safety Assessment (2014): 3章OSATE Tool Setで各種分析法が解説されている.その前の章には分析に必要なモデル要素と解説がある.(PDFファイル入手可能)
- osate/examples : OSATE2ツール用のサンプルファイルが置いてある.EMV2関連のサンプルは参考になる.
- Models examples:OSATE2ツール用のサンプルファイルが置いてある.サンプルの簡単な解説もある.
- Architecture Fault Modeling and Analysis with the Error Model Annex, Version 2 (2016):EMV2に関する事柄が一通り書いてあるようだ.
Error Typesの独自拡張の方法(2017-01-04)
- ErrorLibrary.aadlのerror typesbの中身に追記する.(多くのファイルから参照されるので,お勧めできないが...)
- Error Types拡張用に新規パッケージを作成し,オリジナルのErrorLibrary.aadlの中身を参照した上で独自拡張を定義する.(こちらが普通.)
2の具体的作業は以下の通り:
2.1 例えばErrorLibrarySTAMPという名称で以下の中身のパッケージを作成する.
package ErrorLibrarySTAMP
public
annex EMV2 {**
error types extends ErrorLibrary with
NotProviding renames type ServiceOmission;
Providing renames type ServiceCommission;
TooLate_TooEarly: type set {LateServiceStart, EarlyServiceStart};
TooSoon_TooLong: type set {EarlyServiceTermination, LateServiceTermination};
STAMP_GW: type set {NotProviding,
Providing,
TooLate_TooEarly, -- LateServiceStart, EarlyServiceStart
TooSoon_TooLong}; -- EarlyServiceTermination, LateServiceTermination
end types;
**};
end ErrorLibrarySTAMP;
2.2 作成したパッケージに記載された独自拡張のError Typesを呼び出すには,以下のように記述します.
inp_meido_kaisi
: in event data port;
use types ErrorLibrarySTAMP; -- この行に作成したパッケージ名を記述する.
error propagations
inp_meido_kaisi
: in propagation {NotProviding, Providing, TooLate_TooEarly};
end propagations;
AADL+Error Model Annexの始め方(2016-12-13)
かなり膨大な文章を英語で読む必要があるが,解説付きの例題は下記の文献が良さそう.
他に良い文献ありましたら,お知らせいただけると嬉しいです.
- AADL記述・解析ツールである「OSATE2」をインストールする
- 書籍「Model-Based Engineering with AADL: An Introduction to the SAE Architecture Analysis & Design Language」の3章の例題を記述してみる
- 論文「Architecture Fault Modeling with the AADL Error-Model Annex」を読んで,例題を書いてみる
- Architecture Fault Modeling and Analysis with the Error Model Annex, Version 2 (2016)の方が良いかも.
- 上の例題を参考に,各自の例題を書いてみる
Error Model Annexを理解する(でモデル記述する)ために役立った文献
- Architecture Fault Modeling with the AADL Error-Model Annex (2014) :モデルの書き方,例題,分析手法が短くまとまっている(8ページ)
- AADL Fault Modeling and Analysis Within an ARP4761 Safety Assessment(2014) : 文献1同様,モデルの書き方,分析方法,事例が書かれている.セルフコンテインドな文章としては,この文章を読むのが良さそう.(85ページ)
- 3.3 Failure Modes and Effects Analysis Support:ここにFault Impact Analysisの実施方法と説明があります.(ここの解説が一番詳しいと思われる)
- AS5506/3 Error Model V2 Syntax Card (Aug 7, 2013) :文法表
- Safety Analysis with AADL (2015): 紹介用スライド.これだけでは理解は難しいが,一通り理解した後で読み直すと良くわかる.
情報が集まっているページ
- http://julien.gunnm.org/ :中の人のページ
- Architecture Analysis and Design Language :まずはここから,ただし英語で記載されてます.
OSATEツールで分析できること(一部):これを実行するためには,必要な情報をモデルに記述する必要がある.
- Functional Hazard Assessment (FHA)
- Fault Tree Analysis (FTA)
- Failure Modes and Effects Analysis (FMEA)
- Markov Analysis (MA)
- Dependence Diagram (DD), referenced here as a Reliability Block Diagram (RBD)
分析ツールはまだプロトタイプなので,色々とできないことがあるようです.
AADL関連文献(まだ読んでいないけど,とりあえずリストに挙げる)
- Using STPA in an ISO 26262 Compliant Process (2016)