« サイバーセキュリティ分野の国際連携 米国ーウクライナ 中国ーインドネシア | Main | 中国 デジタルチャイナ開発報告書(2021年) »

2022.08.03

ドイツ BSI 静的アプリケーションセキュリティテストの文脈における機械学習

 こんにちは、丸山満彦です。

ドイツのBSIが静的アプリケーション セキュリティ テストにおける AI の使用に関する研究報告書を公表していますね。。。力作ですが、2023年初頭に最終化するようです。

 

Bundesamt für Sicherheit in der Informationstechnik: BSI

・2022.07.27 Machine Learning in the Context of Static Application Security Testing - ML-SAST

 

Machine Learning in the Context of Static Application Security Testing - ML-SAST 静的アプリケーションセキュリティテストの文脈における機械学習 - ML-SAST
Überblick über den aktuellen Stand in Forschung und Technik 研究・技術の現状を概観する
Im Projekt Machine Learning in the Context of Static Application Security Testing (ML-SAST) untersucht das BSI, wie Verfahren des maschinellen Lernens genutzt werden können, um Methoden der statischen Codeanalyse zu verbessern. 静的アプリケーションセキュリティテストの文脈における機械学習(ML-SAST)プロジェクトにおいて、BSIは機械学習手法を静的コード解析手法の改善にどのように利用できるかを調査している。
In der Softwareentwicklung stellt die statische Programmcodeanalyse neben der dynamischen Programmcodeanalyse eine wichtige Technik dar, um zum Beispiel redundanten Code, Verletzungen von Programmierrichtlinien oder Fehler in Treiberdateien aufzudecken. Sie ermöglicht ein automatisiertes Auffinden von potentiellen Schwachstellen im Programmcode durch statische Analyseverfahren. Ein aktuelles Anliegen ist es, bereits während der Programmierung Sicherheitslücken für verdeckte Angriffsmöglichkeiten, wie Pufferüberläufe, aufzudecken und somit einen Security-by-Design-Ansatz zu verwirklichen. ソフトウェア開発において、静的プログラムコード解析は、動的プログラムコード解析と並んで、冗長なコード、プログラミングガイドライン違反、ドライバファイルのエラーなどを検出するための重要な技術である。静的解析手続きにより、プログラムコードの潜在的な弱点を自動的に検出することができる。現在、バッファオーバーフローのような隠れた攻撃可能性を持つセキュリティ脆弱性を、プログラミングの段階ですでに検出し、セキュリティバイデザインのアプローチを実現することが課題となっている。
Im Rahmen des Projekts hat das BSI die neusta mobile solutions GmbH mit der Erstellung einer mehrteiligen Studie beauftragt. Im ersten Teil wird der aktuelle Stand der Forschung in den Bereichen des Machine Learning, der statischen Codeanalyse und deren Kombination untersucht. Flankierend wurden im zweiten Teil Experteninterviews geführt, um die Nachteile der aktuellen Ansätze zu erfassen, und geeignete Use-Cases zu definieren. Im letzten Teil werden vorhandene ML-SAST-Ansätze anhand der Use-Cases und einer neu entwickelten Metrik miteinander verglichen und ein Vorschlag für die Entwicklung eines neuartigen ML-SAST-Ansatzes vorgestellt. Dieser befindet sich aktuell in der Umsetzung. Die Veröffentlichung der finalen Studie und der Implementierung erfolgt Anfang des Jahres 2023. このプロジェクトの一環として、BSIはneusta mobile solutions GmbHに依頼し、いくつかのパートに分かれて調査書を作成した。第1部では、機械学習、静的コード解析、およびそれらの組み合わせの領域における研究の現状について検討する。第2部では、現在のアプローチのデメリットを明らかにし、適切なユースケースを定義するために、専門家へのインタビューを実施した。最後に、ユースケースと新たに開発した指標に基づいて、既存のML-SASTアプローチを相互に比較し、新しいML-SASTアプローチの開発に関する提案を行う。現在、実施中である。最終的な検討と実施は、2023年初頭に発表される予定である。

 

 

・[PDF] Machine Learning in the Context of Static Application Security Testing - ML-SAST

 

20220803-154552

目次...

1  Introduction 1 はじめに
1.1  Summary 1.1 概要
1.2  Summary in German 1.2 概要(ドイツ語)
1.3  Motivation 1.3 動機
1.4  Contribution 1.4 貢献度
1.5  Structure 1.5 構成
2  Artificial Intelligence and Machine Learning 2 人工知能と機械学習
2.1  Definition of Artificial Intelligence 2.1 人工知能の定義
2.2  Basic Principles of AI Systems 2.2 人工知能システムの基本原理
2.3  Machine Learning Primer 2.3 機械学習入門
2.3.1  Supervised Learning 2.3.1 教師あり学習
2.3.2  Unsupervised Learning 2.3.2 教師なし学習
2.3.3  Reinforcement Learning 2.3.3 強化学習
2.3.4  Neural Networks 2.3.4 ニューラルネットワーク
2.3.5  Recurrent Neural Networks 2.3.5 リカレントニューラルネットワーク
2.3.6  LSTM Networks 2.3.6 LSTMネットワーク
2.3.7  Bidirectional Sequence Models 2.3.7 双方向配列モデル
2.3.8  Graph Neural Networks 2.3.8 グラフニューラルネットワーク
2.4  Other Concepts and Further Reading 2.4 その他の概念と参考文献
3  Static Application Security Testing 3 静的アプリケーションセキュリティテスト
3.1  SAST Tools 3.1 SASTツール
3.2  Background on Static Program Analysis 3.2 静的プログラム解析の背景
3.2.1  Compiler Construction Techniques 3.2.1 コンパイラの構築技法
3.2.2  Typical Internal Data Structures for Static Program Analysis 3.2.2 静的プログラム解析のための典型的な内部データ構造
3.2.3  Static Analysis Problems 3.2.3 静的解析の問題点
4  ML in the Context of SAST 4 SASTの文脈における機械学習
4.1  Preliminaries 4.1 前提条件
4.2  Refinements 4.2 リファインメント
4.3  Current State of the Art 4.3 現在の技術水準
4.3.1  Datasets 4.3.1 データセット
4.3.2  Architectures 4.3.2 アーキテクチャ
4.3.3  Explainability 4.3.3 説明可能性
4.3.4  Outlook 4.3.4 展望
5  Expert Interviews 5 専門家インタビュー
5.1  Method 5.1 方法
5.2  Interview Partners 5.2 インタビューの相手
5.3  Results of the Expert Interviews 5.3 専門家インタビューの結果
5.3.1  Versions of C and C++ Used 5.3.1 使用したCおよびC++のバージョン
5.3.2  Opinions Towards SAST Tools in General 5.3.2 SASTツール全般に対する意見
5.3.3  Input Format for Rules for SAST tools 5.3.3 SASTツールのルールの入力形式
5.3.4  Expectations Towards ML-based SAST Tools and Ideas to this End 5.3.4 機械学習ベースのSASTツールへの期待とそのためのアイデア
5.3.5  Easily and Not Easily Detectable Errors 5.3.5 検出が容易なエラーとそうでないエラー
5.3.6  Sources for Error Use Cases 5.3.6 エラー・ユースケースのソース
6 Online Questionnaire 6 オンラインアンケート
6.1 Platform 6.1 プラットフォーム
6.2 Participants 6.2 参加者
6.3 Questionnaire 6.3 アンケート質問
6.4 Results 6.4 アンケート結果
6.4.1 C/C++ Versions 6.4.1 C/C++バージョン
6.4.2 SAST Tools 6.4.2 SASTツール
6.4.3 Input Format for Rules for SAST tools 6.4.3 SASTツール用ルールの入力形式
6.4.4 Error Use Cases 6.4.4 エラーの使用例
6.4.5 ML and SAST Tools 6.4.5 MLとSASTツール
7 Elicitation and Explanation of Error Use Cases with Descriptions 7 エラー・ユースケースの抽出と説明
7.1 void* Pointers 7.1 void*ポインタ
7.2 Difficulty in Tracking Tainted Data 7.2 汚染されたデータの追跡の困難さ
7.3 Integer Overflows Related to Tainted Data 7.3 汚染されたデータに関連する整数のオーバーフロー
7.4 Array Boundary Errors 7.4 アレイバウンダリエラー
7.5 Null Pointer Access 7.5 Nullポインタのアクセス
7.6 Format String Errors (With Tainted Data) 7.6 (汚染されたデータを含む)文字列のフォーマットエラー
7.7 String Termination Errors 7.7 文字列の終了エラー
7.8 Missing Security Checks for Critical Operations 7.8 重要な操作のためのセキュリティチェックの欠落
7.9 Unsafe Use of Random Number Generators 7.9 乱数生成器の安全でない使用
7.10 Information Flow Through Uncleared Main Memory Data Structures 7.10 安全でないメインメモリのデータ構造を介した情報の流れ
7.11 Insecure Origin of Cryptographic Keys and Initialization Vectors 7.11 安全ではない暗号鍵の出所と初期化ベクタ
7.12 Reuse of Initialization Vectors for Specific Operating Modes of Block Ciphers 7.12 ブロック暗号の特定の動作モードに対する初期化ベクタの再利用
7.13 Memory Leaks 7.13 メモリリーク
7.14 Dangling Pointers – Use-After-Free 7.14 ぶら下がりポインタ - ユーズ・アフター・フリー
7.15 Race Conditions 7.15 レースコンディション
7.16 Application-Specific Errors 7.16 アプリケーション固有のエラー
7.17 Pointer Casts to Types with Stricter Alignment 7.17 より厳格なアライメントを持つ型へのポインタキャスト
8 Evaluation Criteria for ML-SAST Approaches 8 ML-SASTアプローチの評価基準
8.1 Qualitative Criteria 8.1 定性的評価基準
8.1.1 Transparency 8.1.1 透過性
8.1.2 Other Requirements 8.1.2 その他の要求事項
8.2 Quantitative Criteria 8.2 定量的基準
8.3 Other Criteria 8.3 その他の基準
9 Data in ML-Experiments: Types, Formats and Schemata 9 ML-Experimentsにおけるデータ:データの種類,フォーマット,スキーマ
9.1 Benchmarks 9.1 ベンチマーク
9.2 Type, Format and Metrics 9.2 タイプ,フォーマット,評価基準
9.2.1 Name, Version and Description of Dataset 9.2.1 データセットの名称、バージョン、説明
9.2.2 Dataset Scheme 9.2.2 データセットのスキーム
9.2.3 Experiment Scheme 9.2.3 実験スキーム
9.2.4 Model Persistence and Tracking 9.2.4 モデルの永続性とトラッキング
9.3 Ontologies for Machine Learning 9.3 機械学習のためのオントロジー
10 Approaches to Conducting a Literature Mapping for ML-SAST 10 ML-SASTのための文献マッピングの実施方法
10.1 Research Questions 10.1 リサーチクエスチョン
10.2 Initial Search 10.2 初期検索
10.3 Iteration Steps 10.3 イテレーションステップ
10.4 Data Extraction 10.4 データ抽出
10.5 Summary of the Most Important Results 10.5 最も重要な結果のまとめ
11 Detailed Description of Most Appropriate Methods for ML-SAST 11 ML-SASTに最適な手法の詳細説明
11.1 Training Data 11.1 学習データ
11.2 Models 11.2 モデル
11.3 Explainability 11.3 説明可能性
12 Prioritization of Models for this Approach and Outlook on Further Work 12 本アプローチにおけるモデルの優先順位付けと今後の展望
12.1 Graph Neural Networks 12.1 グラフニューラルネットワーク
12.2 Conventional Neural Networks 12.2 伝統的ニューラルネットワーク
12.3 Clustering Approaches 12.3 クラスタリングアプローチ
12.4 Reinforcement Learning 12.4 強化学習
12.5 Ensembles of Approaches 12.5 アプローチのアンサンブル
12.6 Conclusion of the Prioritization 12.6 優先順位付けの結論
13 Conclusion 13 結論
13.1 Further Research 13.1 更なる研究
13.2 Outlook 13.2 展望
14 Appendix 14 附属書
14.1 Glossary 14.1 用語集
14.2 Results of the Literature Mapping 14.2 文献マッピングの結果
14.2.1 Base Set 14.2.1 基本セット
14.2.2 Round I 14.2.2 ラウンドI
14.2.3 Round II 14.2.3 ラウンドII
14.2.4 Round III 14.2.4 ラウンドIII
14.2.5  Round IV 14.2.5 ラウンドIV
14.3  Guideline for the interviews with the experts 14.3 専門家インタビューのためのガイドライン
Bibliography 書誌情報

 

 

|

« サイバーセキュリティ分野の国際連携 米国ーウクライナ 中国ーインドネシア | Main | 中国 デジタルチャイナ開発報告書(2021年) »

Comments

Post a comment



(Not displayed with comment.)


Comments are moderated, and will not appear on this weblog until the author has approved them.



« サイバーセキュリティ分野の国際連携 米国ーウクライナ 中国ーインドネシア | Main | 中国 デジタルチャイナ開発報告書(2021年) »