30
日本シノプシス合同会社 ソフトウェア インテグリティ グループ シニアプロダクトマネージャー 津村 直史 (Tadashi Tsumura) 201631114:2514:55 車載ソフトウェア開発における 脆弱性管理のアプローチ

車載ソフトウェア開発における 脆弱性管理のアプローチgo.coverity.com/rs/157-LQW-289/images/ASF_Synopsys... · シニアプロダクトマネージャー 津村直史(Tadashi

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 車載ソフトウェア開発における 脆弱性管理のアプローチgo.coverity.com/rs/157-LQW-289/images/ASF_Synopsys... · シニアプロダクトマネージャー 津村直史(Tadashi

日本シノプシス合同会社ソフトウェアインテグリティグループ

シニアプロダクトマネージャー

津村直史 (Tadashi Tsumura)

2016年3月11日 14:25~14:55

車載ソフトウェア開発における脆弱性管理のアプローチ

Page 2: 車載ソフトウェア開発における 脆弱性管理のアプローチgo.coverity.com/rs/157-LQW-289/images/ASF_Synopsys... · シニアプロダクトマネージャー 津村直史(Tadashi

© 2016 Synopsys, Inc. 2

自動車の高度化と利便性の向上

インターネット接続を有する新車の割合 (%)

スマートフォン経由でインターネット接続する新車の割合 (%)

組み込みのインターネット接続する新車の割合 (%)

インターネット通信を有する新車の割合

Source: VDC ResearchSource : Prime Research

Page 3: 車載ソフトウェア開発における 脆弱性管理のアプローチgo.coverity.com/rs/157-LQW-289/images/ASF_Synopsys... · シニアプロダクトマネージャー 津村直史(Tadashi

© 2016 Synopsys, Inc. 3

自動車業界でのソフトウェア開発におけるチャレンジ

• 今後のプロジェクトで社内開発するコードは 20%程度増加する (*1)

–ソフトウェアエンジニアが不足。

–OSS を含むサプライチェーンの利用した開発が加速。一方で、セキュリティと品質が問題に。

• 通信にフォーカスしていなかった組み込みエンジニアにとって、従来とは異なるエリアでのソフトウェア開発が必要に。(認証、認可、暗号化、ミドルウェア、etc)

• ネットワーク接続によって発生するセキュリティリスクへの対応が必要に。

• 複数のECUをまたがる場合の潜在的な脅威への対策が必要に。

–ユニット自体がセキュアで、かつ、ユニットを統合した後もセキュアでなくてはならない。

ソフトウェアの高度化

ネットワークとの融合

新しいビジネス価値

ユーザーの利便性

コード行数の増加

システムの複雑化

ソフトウェアの脆弱性

アタックサーフェースの拡大

*1 VDC Research 調査結果

Page 4: 車載ソフトウェア開発における 脆弱性管理のアプローチgo.coverity.com/rs/157-LQW-289/images/ASF_Synopsys... · シニアプロダクトマネージャー 津村直史(Tadashi

© 2016 Synopsys, Inc. 4

何が必要となるか?

ソフトウェアの提供の過程におけるテストゲートの導入

ソフトウェア開発プロセスにおけるテストゲートの導入

• ベストプラクティスの準拠

• インダストリー要件の準拠

• 規制への準拠

• 法令への準拠

ソフトウェア開発のサインオフ

• コードチェックイン時に必要

• ビルドの成功とするために必要

• アジャイルな機能の受け入れ基準として

• リリース可否の基準として

ソフトウェア

サプライチェーンマネジメントのサインオフ

チェックイン

コンパイル&ビルド

機能の実現

製品リリースサインオフ

Page 5: 車載ソフトウェア開発における 脆弱性管理のアプローチgo.coverity.com/rs/157-LQW-289/images/ASF_Synopsys... · シニアプロダクトマネージャー 津村直史(Tadashi

© 2016 Synopsys, Inc. 5

最高レベルのソリューション ソフトウェア開発ライフサイクルへの統合と自動化

テクノロジー メソドロジー

• 静的解析

• プロトコルファジング

• ソフトウェアコンポジット解析(SCA)

• インタラクティブアプリケーションセキュリティテスト

• テスト最適化

• テストの自動化

• 調達の強制

• サードパーティー認証

• 社内ポリシーの強制

• 業界スタンダードへの準拠

• リリースの基準

+

ソフトウェアのサインオフには、何が必要か?

Page 6: 車載ソフトウェア開発における 脆弱性管理のアプローチgo.coverity.com/rs/157-LQW-289/images/ASF_Synopsys... · シニアプロダクトマネージャー 津村直史(Tadashi

© 2016 Synopsys, Inc. 6

プラットフォーム

レポート バグトラッキング連携 ワークフロー連携 IDE プラグイン SCM 連携

製品群

Coverity

静的解析

Defensics

プロトコルファジング

Protecode

ソフトウェアコンポジット

解析

Seeker

インタラクティブアプリケーションセキュリティ

テスト

Test Advisor

テスト最適化

シノプシスが提供するソフトウェア・インテグリティ・プラットフォームソフトウェア開発の

サインオフサプライチェーンマネジメントの

サインオフ

Page 7: 車載ソフトウェア開発における 脆弱性管理のアプローチgo.coverity.com/rs/157-LQW-289/images/ASF_Synopsys... · シニアプロダクトマネージャー 津村直史(Tadashi

© 2016 Synopsys, Inc. 7

業界初のサイバーセキュリティ保証プログラムでULと提携

• 米国国土安全保証省とULと共同で「Cybersecurity Assurance Program」を策定中

Dynamic Runtime Analysis• CWEで分類可能な、実行時のセキュリティの問題の検出Malformed Input Testing (Fuzzing/DoS testing)

• ネガティブテストにより、ゼロデイやロバスト性の問題を検出Behavioral Analysis

• 実行時のコードの挙動を分析し、エクスプロイト可能な欠陥(Weakness)を検出

Software Composition Analysis• 既知の脆弱性を検出し、CVE やその他基準によって分類

Static Code Analysis• ソースコードの不具合を検出し、CWEやその他の基準で分類

Known Malware Testing• 既知のマルウェアの検出(ウィルスや悪意のあるコードなど)

Page 8: 車載ソフトウェア開発における 脆弱性管理のアプローチgo.coverity.com/rs/157-LQW-289/images/ASF_Synopsys... · シニアプロダクトマネージャー 津村直史(Tadashi

© 2016 Synopsys, Inc. 8

1. 既知の脆弱性のリスク評価

ソフトウェアの構成を知り、そのリスクを知る

Page 9: 車載ソフトウェア開発における 脆弱性管理のアプローチgo.coverity.com/rs/157-LQW-289/images/ASF_Synopsys... · シニアプロダクトマネージャー 津村直史(Tadashi

© 2016 Synopsys, Inc. 9

プロジェクトにおけるサードパーティコードの活用

自社開発のコード

商用のサードパーティーコード

オープンソースのサードパーティーコード

Source: VDC Research

プロジェクトの最終設計におけるコードの割合(自動車業界からの回答)

Page 10: 車載ソフトウェア開発における 脆弱性管理のアプローチgo.coverity.com/rs/157-LQW-289/images/ASF_Synopsys... · シニアプロダクトマネージャー 津村直史(Tadashi

© 2016 Synopsys, Inc. 10

0

100

200

300

400

500

600

700

4/2

/200

8

6/2

/200

8

8/2

/200

8

10

/2/2

008

12

/2/2

008

2/2

/200

9

4/2

/200

9

6/2

/200

9

8/2

/200

9

10

/2/2

009

12

/2/2

009

2/2

/201

0

4/2

/201

0

6/2

/201

0

8/2

/201

0

10

/2/2

010

12

/2/2

010

2/2

/201

1

4/2

/201

1

6/2

/201

1

8/2

/201

1

10

/2/2

011

12

/2/2

011

2/2

/201

2

4/2

/201

2

6/2

/201

2

8/2

/201

2

10

/2/2

012

12

/2/2

012

2/2

/201

3

4/2

/201

3

6/2

/201

3

8/2

/201

3

10

/2/2

013

12

/2/2

013

2/2

/201

4

4/2

/201

4

6/2

/201

4

8/2

/201

4

10

/2/2

014

12

/2/2

014

2/2

/201

5

4/2

/201

5

6/2

/201

5

8/2

/201

5

10

/2/2

015

最も古いサードパーティーコンポーネントの

コンパイルの日時は

20

08年

4月。

2008年8月にリリース2コンポーネントで、22個のCVECVSS10のCVEは発生していない

ユニークな既知の脆弱性の数

( C

VE )

時間経過に伴いソフトウェアは劣化する

• 商用の製品• 81個のサードパーティーコ

ンポーネントを利用• リリース当時のコンポーネ

ントは、ほぼクリーン

• 平均で5日間に1つの新しい脆弱性が製品のコンポーネントに影響

• 7年後、もはや安全に利用できる製品とは言えません。

2015年2月時点

60コンポーネントで、582個のCVE

CVSS10のCVEは74個

Page 11: 車載ソフトウェア開発における 脆弱性管理のアプローチgo.coverity.com/rs/157-LQW-289/images/ASF_Synopsys... · シニアプロダクトマネージャー 津村直史(Tadashi

© 2016 Synopsys, Inc. 11

Software Composition Analysis (SCA)

ソフトウェアコンポジション解析

• ソフトウェアの部品表(BOM)の特定と管理

• 機知の脆弱性の評価とトラッキング

• FOSS ライセンスの管理と輸出規制の遵守

Securing Software Through Software

Composition Analysis (SCA):

• ライセンス管理

• コード再利用の検出

• ライブラリの監視とメンテナンス

• 未知の脆弱性の検出

• ソースコードとバイナリの解析

• 脆弱性の修正のガイダンス

• ライセンス管理• 既知の脆弱性の発見• 自分のソースの解析• オープンソースの解析• ソフトウェアの部品表

と衛生レポート

オープンソースのスキャン ソフトウェア脆弱性の評価

ソフトウェアコンポジション解析

Page 12: 車載ソフトウェア開発における 脆弱性管理のアプローチgo.coverity.com/rs/157-LQW-289/images/ASF_Synopsys... · シニアプロダクトマネージャー 津村直史(Tadashi

© 2016 Synopsys, Inc. 12

ソフトウェアコンポジション解析「Protecode」

自動車向けインフォテインメント

182個のCVEが

19コンポーネントに影響

自動車向けインフォテインメント

1003rdパーティSWコンポーネント

Page 13: 車載ソフトウェア開発における 脆弱性管理のアプローチgo.coverity.com/rs/157-LQW-289/images/ASF_Synopsys... · シニアプロダクトマネージャー 津村直史(Tadashi

© 2016 Synopsys, Inc. 13

ソフトウェアコンポジション解析の価値

プロダクトがセキュアなビルディングブロックで開発されていることを確実にすることができます。

幅広い部品表(BOM)の把握 サードパーティーとオープンソースコンポーネントの脆弱性を特定 コードの劣化にプロアクティブに対応 ソフトウェアの肥大化を検出 顧客からの透明性に関する要求への対応 オープンソースライセンスのコンプライアンス状況の確認

利用する技術を詳しく把握した上で意志決定し、リスクを低減することができます。

ソフトウェアのエコシステムの状況認識 詳細情報を把握した上での意志決定 ベンダーを検証し、ソフトウェアのセキュリティとロバスト性の改

善のための協力 脆弱なソフトウェアをサプライヤー側の責任を明確に

ビルダー(製造元) バイヤー(購入者、利用者)

Page 14: 車載ソフトウェア開発における 脆弱性管理のアプローチgo.coverity.com/rs/157-LQW-289/images/ASF_Synopsys... · シニアプロダクトマネージャー 津村直史(Tadashi

© 2016 Synopsys, Inc. 14

2. 未知の脆弱性の検査

自らをハッキングし、ゼロデイのリスクを緩和

Page 15: 車載ソフトウェア開発における 脆弱性管理のアプローチgo.coverity.com/rs/157-LQW-289/images/ASF_Synopsys... · シニアプロダクトマネージャー 津村直史(Tadashi

© 2016 Synopsys, Inc. 15

未知の脆弱性

現状、どの程度の規模で存在するのか、把握が困難。

未知の脆弱性は、検知しにくいため、防ぐのも難しい。

修正方法またはソフトウェアパッチが存在しない。

ソフトウェアベンダーまたはセキュリティコミュニティに

まだ知られていない。

既知の脆弱性

ソフトウェアベンダーまたはセキュリティコミュニティに知られている。

NISTのNVD(National Vulnerability Database)で最新の既知の脆弱性がリストで公開されている。

それぞれの脆弱性にCVE(Common Vulnerabilities and Exposures)番号が付けられている。

既知の脆弱性を含むソフトウェアをパッチですぐに修復可能。

Page 16: 車載ソフトウェア開発における 脆弱性管理のアプローチgo.coverity.com/rs/157-LQW-289/images/ASF_Synopsys... · シニアプロダクトマネージャー 津村直史(Tadashi

© 2016 Synopsys, Inc. 16

ファジングテストは、未知の脆弱性を検知し、ゼロデイ攻撃を防ぐ実績のある手法です

Page 17: 車載ソフトウェア開発における 脆弱性管理のアプローチgo.coverity.com/rs/157-LQW-289/images/ASF_Synopsys... · シニアプロダクトマネージャー 津村直史(Tadashi

© 2016 Synopsys, Inc. 17

ファジングテスト

• ファジングテストは、不正なパターンを含む信号を試験対象装置に入力し、クラッシュ等の想定外の動作をしないかを確認する試験手法です。

• 不正なパターンを少しずつ変更しながら、限られた時間で多数のテストケースを入力し、効率的に脆弱性を洗い出します。

• 悪意のあるハッカーやセキュリティ研究者は、効率的に新しい脆弱性を見つけるためファジングを利用して故障モードを発生させています。(人気 No1のテクニック)

一般的なテスト入力

• 境界条件• 不正な値• 長すぎる文字列• 不正データに対する正しい

チェックサム• 正しいセッション情報

故障モード

• クラッシュ• ビジーループ• リソースリーク• その他の異常な挙動

ターゲットインターフェース

Page 18: 車載ソフトウェア開発における 脆弱性管理のアプローチgo.coverity.com/rs/157-LQW-289/images/ASF_Synopsys... · シニアプロダクトマネージャー 津村直史(Tadashi

© 2016 Synopsys, Inc. 18

業界トップクラスのファジングツール「Defensics」

• 開発チームとセキュリティチームがソフトウェアの未知の脆弱性をプロアクティブに検出して修正するためのテストプラットフォームです。

• 主な特長

–世界でトップクラスの強力なファジング・プラットフォーム

–旧 Codenomicon 社より買収

– 270 以上のプロトコル・ファイルをサポート(継続的に更新)

–高速、信頼性、簡単な導入

–製品開発ライフサイクルと開発プロセスの一部として実行可能

–とらえがたい微妙なセキュリティの欠陥も検出

–Heartbleed を発見した実績

Page 19: 車載ソフトウェア開発における 脆弱性管理のアプローチgo.coverity.com/rs/157-LQW-289/images/ASF_Synopsys... · シニアプロダクトマネージャー 津村直史(Tadashi

© 2016 Synopsys, Inc. 19

車載システムに対するファジングテストの例

• 車載ネットワーク

–CAN-bus

• 基本IPネットワークテスト

–TCP/IP(IPv4、IPv6)、DHCP、DNS、NTP、HTTP、TLS/SSL、X.509

• アプリケーションテスト

–XML、SIP、RTP

• 無線インターフェース

–Bluetooth、無線LAN

• メディア

–画像、ビデオ、オーディオ

Page 20: 車載ソフトウェア開発における 脆弱性管理のアプローチgo.coverity.com/rs/157-LQW-289/images/ASF_Synopsys... · シニアプロダクトマネージャー 津村直史(Tadashi

© 2016 Synopsys, Inc. 20

ファジングを活用して、未知の脆弱性をプロアクティブに発見することで、ゼロデイ攻撃のハードルを高めることができます。

Page 21: 車載ソフトウェア開発における 脆弱性管理のアプローチgo.coverity.com/rs/157-LQW-289/images/ASF_Synopsys... · シニアプロダクトマネージャー 津村直史(Tadashi

© 2016 Synopsys, Inc. 21

3. コード品質の検査

静的解析によるコードの品質と脆弱性を定量化

Page 22: 車載ソフトウェア開発における 脆弱性管理のアプローチgo.coverity.com/rs/157-LQW-289/images/ASF_Synopsys... · シニアプロダクトマネージャー 津村直史(Tadashi

© 2016 Synopsys, Inc. 22

サードパーティーコードのテストは不十分

ソフトウェサプライチェーンから受け取ったコード、または、自社開発したコードに対して、

インテグリティ(品質、セキュリティ、安全性)を確認するためにどのような手法を利用していますか?

Forester Consulting / Software Integrity Report - April 2011

北米アメリカ、ヨーロッパのソフトウェア開発のリーディング企業 336社をサーベイ

Page 23: 車載ソフトウェア開発における 脆弱性管理のアプローチgo.coverity.com/rs/157-LQW-289/images/ASF_Synopsys... · シニアプロダクトマネージャー 津村直史(Tadashi

© 2016 Synopsys, Inc. 23

Coverity業界トップクラスの静的コード解析

脆弱性、クラッシュ、メンテナンスの問題になる前に、

コーディングの段階で、コードの重要な不具合とセキュ

リティの弱点を検知します。

クリティカルな不具合

• バッファオーバーフロー

• メモリ破壊

• リソースリーク

• 競合状態

• NULLポインタの間接参照

セキュリティ脆弱性

• SQLインジェクション

• XSS

• CSRF

• 機密データに対する誤処理

• コマンドインジェクション

®

幅広い言語とコンパイラ対応

(100以上のコンパイラ)

CLANG JAVAC

スタンダードへの準拠

Page 24: 車載ソフトウェア開発における 脆弱性管理のアプローチgo.coverity.com/rs/157-LQW-289/images/ASF_Synopsys... · シニアプロダクトマネージャー 津村直史(Tadashi

© 2016 Synopsys, Inc. 24

誤検知率10%の先進的な静的コード解析「Coverity」

開発者の意図を学び、競合状態のような捉えにくい不具合を検出

int *p = malloc(sizeof(int));

if(p != 0) *p = 42;...int *p =

malloc(sizeof(int));if(p != 0) *p = 42;

int *p = malloc(sizeof(int));

*p = 42;

Meant to do this

Error reported

統計的解析

ソースコード内に問題点を表示し、原因となったパスを容易に把握可能

理解しやすいインターフェース

人によるインスペクションではミスする複雑な不具合を検出

プロシージャ間解析&フルパス解析

Page 25: 車載ソフトウェア開発における 脆弱性管理のアプローチgo.coverity.com/rs/157-LQW-289/images/ASF_Synopsys... · シニアプロダクトマネージャー 津村直史(Tadashi

© 2016 Synopsys, Inc. 25

静的解析によるサードパーティーコード品質の定量化

•自動解析は定量的な定義を可能にします

–品質(Quality)

–不具合密度

–不具合インパクト

–テスト(Testing)

–何をどのくらいテストしたか?

–セキュリティ(Security)

–攻撃に利用されうる脆弱性があるか?

•定量化、計測できなければ、コントロールできない

Page 26: 車載ソフトウェア開発における 脆弱性管理のアプローチgo.coverity.com/rs/157-LQW-289/images/ASF_Synopsys... · シニアプロダクトマネージャー 津村直史(Tadashi

© 2016 Synopsys, Inc. 26

Coverity Scan によるOSSと商用ソフトウェアの比較

オープンソースソフトウェア

商用ソフトウェア

0.61 0.76(昨年0.66) (昨年0.77)

8.61 0.56(OWASP Top 10 Java)

バグ密度

(不具合 / 1KLOC)

脆弱性密度

Source: Coverity Scan report 2014

Page 27: 車載ソフトウェア開発における 脆弱性管理のアプローチgo.coverity.com/rs/157-LQW-289/images/ASF_Synopsys... · シニアプロダクトマネージャー 津村直史(Tadashi

© 2016 Synopsys, Inc. 27

まとめ

Page 28: 車載ソフトウェア開発における 脆弱性管理のアプローチgo.coverity.com/rs/157-LQW-289/images/ASF_Synopsys... · シニアプロダクトマネージャー 津村直史(Tadashi

© 2016 Synopsys, Inc. 28

まとめ

• 自動車業界におけるイノベーションと差別化のために、ソフトウェアがより重要に。

–システムの高度化、利便性の向上、ネットワークとの融合

• ソフトウェア開発のチャレンジと引き起こされる脆弱性

–システムの複雑化、コード量の増加、アタックサーフェースの拡大

• セキュリティ品質を検証するためのソフトウェアの「サインオフ」のコンセプト

–開発とサプライチェーンにおいて、セキュリティと品質をコントロールするためのテストゲート

1. ソフトウェアに「既知の脆弱性」が含まれているか?(ソフトウェアコンポジション解析)

2. 悪用が容易な「未知の脆弱性」が十分に潰されているか?(ファジングテスト)

3. 「クリティカルな不具合」や「脆弱なコード」が残留していないか?(静的コード解析)

• サイバーサプライチェーン全体でセキュリティと品質をコントロールすることが重要

Page 29: 車載ソフトウェア開発における 脆弱性管理のアプローチgo.coverity.com/rs/157-LQW-289/images/ASF_Synopsys... · シニアプロダクトマネージャー 津村直史(Tadashi

© 2016 Synopsys, Inc. 29

Page 30: 車載ソフトウェア開発における 脆弱性管理のアプローチgo.coverity.com/rs/157-LQW-289/images/ASF_Synopsys... · シニアプロダクトマネージャー 津村直史(Tadashi