SlideShare uma empresa Scribd logo
1 de 30
1© 2017 Rogue Wave Software, Inc. All Rights Reserved. 1
静的解析ツール
Klocwork による
CERT-C/CWE対応
Masaru Horioka
Sales Engineering Manager, APAC
2© 2017 Rogue Wave Software, Inc. All Rights Reserved. 2
アジェンダ
• 静的解析ツールKlocworkによるコーディング規約サポート
– チェッカーとのマッピング
– 分類基準
• 開発プロジェクトへの適用
– チェック項目の決定
– ベースライン解析と選別
– 日々の開発の中での解析
• デスクトップ解析、CI連携
• セキュリティレポート
– エビデンスの作成
• まとめ:Why Klocwork
3© 2017 Rogue Wave Software, Inc. All Rights Reserved. 3
静的解析ツールKlocworkによる
コーディング規約サポート
4© 2017 Rogue Wave Software, Inc. All Rights Reserved. 4
Klocworkチェッカー
• Klocworkチェッカー(https://goo.gl/8d1CYu)とは
– 特定のプログラミングエラーを発見するKlocworkの機能
– 用途に応じてチェックのオン・オフが可能
5© 2017 Rogue Wave Software, Inc. All Rights Reserved. 5
Klocworkによるコーディング規約サポート
コーディングルールとKlocworkチェッカーをマッピング
https://goo.gl/QuLGcq
6© 2017 Rogue Wave Software, Inc. All Rights Reserved. 6
CWEとのマッピング
(https://goo.gl/9hRCMi)
7© 2017 Rogue Wave Software, Inc. All Rights Reserved. 7
CERT-C/C++とのマッピング(https://goo.gl/xVmmb9)
8© 2017 Rogue Wave Software, Inc. All Rights Reserved. 8
コーディング規約と静的解析ツールの
チェッカーのマッピングにおける注意事項
• CWE/CERTのすべてのルールをカバーするわけではない
– CWEは階層構造になっているのでそもそも何とマッピングするか?によって数字
が異なる
– KlocworkのCERT-Cのカバー率は30%程度
• カスタムチェッカーによるカバー率の向上は可能
• (以下は個人的な意見)あくまでマッピングであり、書かれている全てのことをチェッ
クするとは限らない(おそらくどの静的解析ツールも同じ)
– ルールは自然言語 or 自然言語+サンプルコードの組み合わせで定義されている
– 各ベンダーのCERT C マッピング
https://www.securecoding.cert.org/confluence/display/c/Klocwork
– 色々比較するためには以下のようなテストセットがある。ただしコーテストケー
スをカバーできても、複雜な問題は発見できない等、利用方法には議論の余地が
ある。
– https://samate.nist.gov/SRD/testsuite.php
9© 2017 Rogue Wave Software, Inc. All Rights Reserved. 9
Klocwork分類基準(taxonomy)
• Klocwork分類基準とは
– Klocworkチェッカーとコーディング規約のマッピングをプログラム
上で実現したもの
• .tconfとよばれるxmlファイルで提供
– 用途
• チェッカーのオン・オフ
• 解析結果レポート
10© 2017 Rogue Wave Software, Inc. All Rights Reserved. 10
CERT 分類基準を利用したチェッカーの構
成
11© 2017 Rogue Wave Software, Inc. All Rights Reserved. 11
CERT 分類基準を利用した指摘件数レポー
ト
12© 2017 Rogue Wave Software, Inc. All Rights Reserved. 12
C/C++デフォルト分類基準を利用した指摘
件数レポート
13© 2017 Rogue Wave Software, Inc. All Rights Reserved. 13
開発プロジェクトへの適用
14© 2017 Rogue Wave Software, Inc. All Rights Reserved. 14
開発プロジェクトへの適用
1. チェック対象の決定
– ルールの選択
– 対象コードの選択
2. ベースライン解析
3. 日々の開発の中での解析
– デスクトップ解析、CI連携
– セキュリティレポート
4. エビデンスの作成
15© 2017 Rogue Wave Software, Inc. All Rights Reserved. 15
1. チェック対象の決定
全てをチェックするというのは現実的ではない
• チェックルールの選択例
• 納入先から指定されている
• 社内・プロジェクト・コーディング標準で規定
• コーディング規約の重要度を参考に選択
• 対象コードの決定
• レガシーコード vs 新規コード
• サードパーティー
• OSS
16© 2017 Rogue Wave Software, Inc. All Rights Reserved. 16
17© 2017 Rogue Wave Software, Inc. All Rights Reserved. 17
2. ベースライン解析
• ゴール
– 優先付けにより、アクション可能な状態に絞り込む
• 簡単な例
– OSS、サードパーティー、自動生成のコードの指摘は全て
Ignore
– 出荷済みコードはレガシーコード扱いとし、Filter
18© 2017 Rogue Wave Software, Inc. All Rights Reserved. 18
2. ベースライン解析
Klocworkの推奨展開手順
1. ルールを
選択
2. 対象外の
選択
19© 2017 Rogue Wave Software, Inc. All Rights Reserved. 19
20© 2017 Rogue Wave Software, Inc. All Rights Reserved. 20
no
no
ベースライン設定例
Project database
.
.
.
派生元コードの解析
最初のコード
最新バージョン
all issues
Ignore
yes
許可済みコード
MISRA
Ignore
yes
レガシーコード
指摘タイプ
Fix in Later Release
C&C++
外部コード
Severity
Analyse/
Defer
重要度高
Analyse/
Defer
リーダによる
決定
誤検知 Not a Problem
yes
no
Filter
重要度
低
yes
no
外部パッケージ Ignore
yes
no
自動生成・
テストコード
Ignore
grant
アーキ
テクト、
QAチー
ムによ
るレ
ビュー
アクショ
ンの決定
保留
21© 2017 Rogue Wave Software, Inc. All Rights Reserved. 21
3. 日々の開発の中での解析
Klocworkの推奨展開手順
1. デスクトッ
プ解析による
問題のある
コードの混入
を防止
2. 全体解析を
自動化し、指
摘件数の推移
を見える化、
メール通知
22© 2017 Rogue Wave Software, Inc. All Rights Reserved. 22
3. 日々の開発の中での解析
重要なポイント:早期発見、早期修正
• デスクトップ解析を活用しチェックイン前に指摘を除
去
• 全体解析解析を自動化
• レポートによる見える化
• 指摘件数のトラッキング
• 担当者の自動割当
23© 2017 Rogue Wave Software, Inc. All Rights Reserved. 23
In-phase detection
24© 2017 Rogue Wave Software, Inc. All Rights Reserved. 24
継続的インテグレーションによる解析の自
動化
Continuous Integration Server
Source Control Server
Manager Developer I Developer 2
25© 2017 Rogue Wave Software, Inc. All Rights Reserved. 25
管理者のためのセキュリティレポート
開発中のプロジェクトにおける、セキュリティリスクの残存を可視化
残存するセキュリ
ティ問題TOP3の
件数の推移
直近の解析におけるセ
キュリティ指摘TOP3
セキュリティ指摘が多
く含まれるディレクト
リ
26© 2017 Rogue Wave Software, Inc. All Rights Reserved. 26
27© 2017 Rogue Wave Software, Inc. All Rights Reserved. 27
4. エビデンスの作成
Web APIを利用して指摘件数やステータスを抽出し、エビデンスレポート作成
欧州の
Klocwork代理
店Emenda社
が公開してい
るスクリプト
の実行結果
28© 2017 Rogue Wave Software, Inc. All Rights Reserved. 28
まとめ
29© 2017 Rogue Wave Software, Inc. All Rights Reserved. 29
まとめ
静的解析ツールKlocwork によるCERT-C/CWE対応
1. KlocworkチェッカーとCERT-C/CWEルールのマッピングを提供
2. Klocworkの設定画面やレポートで利用可能な分類基準を提供
3. 開発プロジェクトに適用するためのガイドライン、導入支援コンサル
ティング(有償)を提供
4. デスクトップ解析や継続的インテグレーション環境との統合により、セ
キュリティ指摘の早期発見、早期修正が可能
5. Web APIを利用することによりエビデンスの自動作成が可能
30© 2017 Rogue Wave Software, Inc. All Rights Reserved. 30

Mais conteúdo relacionado

Mais procurados

オープンソースのAPIゲートウェイ Kong ご紹介
オープンソースのAPIゲートウェイ Kong ご紹介 オープンソースのAPIゲートウェイ Kong ご紹介
オープンソースのAPIゲートウェイ Kong ご紹介 briscola-tokyo
 
Klocwork C/C++解析チューニング 概要
Klocwork C/C++解析チューニング 概要Klocwork C/C++解析チューニング 概要
Klocwork C/C++解析チューニング 概要Masaru Horioka
 
はじめてのScrum
はじめてのScrumはじめてのScrum
はじめてのScrumKenji Morita
 
Fundamentals of DevOps and CI/CD
Fundamentals of DevOps and CI/CDFundamentals of DevOps and CI/CD
Fundamentals of DevOps and CI/CDBatyr Nuryyev
 
OutSystems ユーザー会 セッション資料
OutSystems ユーザー会 セッション資料OutSystems ユーザー会 セッション資料
OutSystems ユーザー会 セッション資料Tsuyoshi Kawarasaki
 
脱RESTful API設計の提案
脱RESTful API設計の提案脱RESTful API設計の提案
脱RESTful API設計の提案樽八 仲川
 
Open Liberty / WebSphere Liberty
Open Liberty / WebSphere LibertyOpen Liberty / WebSphere Liberty
Open Liberty / WebSphere LibertyTakakiyo Tanaka
 
Developing .NET 6 Blazor WebAssemby apps with Radzen Blazor component library...
Developing .NET 6 Blazor WebAssemby apps with Radzen Blazor component library...Developing .NET 6 Blazor WebAssemby apps with Radzen Blazor component library...
Developing .NET 6 Blazor WebAssemby apps with Radzen Blazor component library...Shotaro Suzuki
 
大規模Redisサーバ縮小化の戦い
大規模Redisサーバ縮小化の戦い大規模Redisサーバ縮小化の戦い
大規模Redisサーバ縮小化の戦いYuto Komai
 
ゼロトラスト、やってみた。~そこにCOVID-19がやってきた~(NTTデータ テクノロジーカンファレンス 2020 発表資料)
ゼロトラスト、やってみた。~そこにCOVID-19がやってきた~(NTTデータ テクノロジーカンファレンス 2020 発表資料)ゼロトラスト、やってみた。~そこにCOVID-19がやってきた~(NTTデータ テクノロジーカンファレンス 2020 発表資料)
ゼロトラスト、やってみた。~そこにCOVID-19がやってきた~(NTTデータ テクノロジーカンファレンス 2020 発表資料)NTT DATA Technology & Innovation
 
Ansible でお世話になっている機能と拡張
Ansible でお世話になっている機能と拡張Ansible でお世話になっている機能と拡張
Ansible でお世話になっている機能と拡張akira6592
 
Nutanix.でインテリジェントなDR Leapを使う
Nutanix.でインテリジェントなDR Leapを使うNutanix.でインテリジェントなDR Leapを使う
Nutanix.でインテリジェントなDR Leapを使うTakahiro HAGIWARA
 
SQuaREに基づくソフトウェア品質評価枠組みと品質実態調査
SQuaREに基づくソフトウェア品質評価枠組みと品質実態調査SQuaREに基づくソフトウェア品質評価枠組みと品質実態調査
SQuaREに基づくソフトウェア品質評価枠組みと品質実態調査Hironori Washizaki
 
SharePoint 開発入門
SharePoint 開発入門SharePoint 開発入門
SharePoint 開発入門Hiroaki Oikawa
 
「私のkintone 連携には何が最適?」CData Software ソリューションを使うケースは?
「私のkintone 連携には何が最適?」CData Software ソリューションを使うケースは?「私のkintone 連携には何が最適?」CData Software ソリューションを使うケースは?
「私のkintone 連携には何が最適?」CData Software ソリューションを使うケースは?CData Software Japan
 
Wsfc basic 130720
Wsfc basic 130720Wsfc basic 130720
Wsfc basic 130720wintechq
 
FPGAによる大規模データ処理の高速化
FPGAによる大規模データ処理の高速化FPGAによる大規模データ処理の高速化
FPGAによる大規模データ処理の高速化Kazunori Sato
 

Mais procurados (20)

Fury - Docker Meetup
Fury - Docker MeetupFury - Docker Meetup
Fury - Docker Meetup
 
オープンソースのAPIゲートウェイ Kong ご紹介
オープンソースのAPIゲートウェイ Kong ご紹介 オープンソースのAPIゲートウェイ Kong ご紹介
オープンソースのAPIゲートウェイ Kong ご紹介
 
Klocwork C/C++解析チューニング 概要
Klocwork C/C++解析チューニング 概要Klocwork C/C++解析チューニング 概要
Klocwork C/C++解析チューニング 概要
 
はじめてのScrum
はじめてのScrumはじめてのScrum
はじめてのScrum
 
Fundamentals of DevOps and CI/CD
Fundamentals of DevOps and CI/CDFundamentals of DevOps and CI/CD
Fundamentals of DevOps and CI/CD
 
OutSystems ユーザー会 セッション資料
OutSystems ユーザー会 セッション資料OutSystems ユーザー会 セッション資料
OutSystems ユーザー会 セッション資料
 
脱RESTful API設計の提案
脱RESTful API設計の提案脱RESTful API設計の提案
脱RESTful API設計の提案
 
Open Liberty / WebSphere Liberty
Open Liberty / WebSphere LibertyOpen Liberty / WebSphere Liberty
Open Liberty / WebSphere Liberty
 
Azure Network 概要
Azure Network 概要Azure Network 概要
Azure Network 概要
 
Developing .NET 6 Blazor WebAssemby apps with Radzen Blazor component library...
Developing .NET 6 Blazor WebAssemby apps with Radzen Blazor component library...Developing .NET 6 Blazor WebAssemby apps with Radzen Blazor component library...
Developing .NET 6 Blazor WebAssemby apps with Radzen Blazor component library...
 
大規模Redisサーバ縮小化の戦い
大規模Redisサーバ縮小化の戦い大規模Redisサーバ縮小化の戦い
大規模Redisサーバ縮小化の戦い
 
ゼロトラスト、やってみた。~そこにCOVID-19がやってきた~(NTTデータ テクノロジーカンファレンス 2020 発表資料)
ゼロトラスト、やってみた。~そこにCOVID-19がやってきた~(NTTデータ テクノロジーカンファレンス 2020 発表資料)ゼロトラスト、やってみた。~そこにCOVID-19がやってきた~(NTTデータ テクノロジーカンファレンス 2020 発表資料)
ゼロトラスト、やってみた。~そこにCOVID-19がやってきた~(NTTデータ テクノロジーカンファレンス 2020 発表資料)
 
Ansible でお世話になっている機能と拡張
Ansible でお世話になっている機能と拡張Ansible でお世話になっている機能と拡張
Ansible でお世話になっている機能と拡張
 
Nutanix.でインテリジェントなDR Leapを使う
Nutanix.でインテリジェントなDR Leapを使うNutanix.でインテリジェントなDR Leapを使う
Nutanix.でインテリジェントなDR Leapを使う
 
SQuaREに基づくソフトウェア品質評価枠組みと品質実態調査
SQuaREに基づくソフトウェア品質評価枠組みと品質実態調査SQuaREに基づくソフトウェア品質評価枠組みと品質実態調査
SQuaREに基づくソフトウェア品質評価枠組みと品質実態調査
 
SharePoint 開発入門
SharePoint 開発入門SharePoint 開発入門
SharePoint 開発入門
 
Jitsi Meetとは?
Jitsi Meetとは?Jitsi Meetとは?
Jitsi Meetとは?
 
「私のkintone 連携には何が最適?」CData Software ソリューションを使うケースは?
「私のkintone 連携には何が最適?」CData Software ソリューションを使うケースは?「私のkintone 連携には何が最適?」CData Software ソリューションを使うケースは?
「私のkintone 連携には何が最適?」CData Software ソリューションを使うケースは?
 
Wsfc basic 130720
Wsfc basic 130720Wsfc basic 130720
Wsfc basic 130720
 
FPGAによる大規模データ処理の高速化
FPGAによる大規模データ処理の高速化FPGAによる大規模データ処理の高速化
FPGAによる大規模データ処理の高速化
 

Semelhante a 静的解析ツールKlocwork によるCERT-C/CWE対応

デブサミ関西2013【A4】コード品質は曖昧なままか(安竹由起夫氏)
デブサミ関西2013【A4】コード品質は曖昧なままか(安竹由起夫氏)デブサミ関西2013【A4】コード品質は曖昧なままか(安竹由起夫氏)
デブサミ関西2013【A4】コード品質は曖昧なままか(安竹由起夫氏)Developers Summit
 
技術選択とアーキテクトの役割
技術選択とアーキテクトの役割技術選択とアーキテクトの役割
技術選択とアーキテクトの役割Toru Yamaguchi
 
Scalable Generator: Using Scala in SIer Business (ScalaMatsuri)
Scalable Generator: Using Scala in SIer Business (ScalaMatsuri)Scalable Generator: Using Scala in SIer Business (ScalaMatsuri)
Scalable Generator: Using Scala in SIer Business (ScalaMatsuri)TIS Inc.
 
エンタープライズソフトウェア開発とOSS
エンタープライズソフトウェア開発とOSSエンタープライズソフトウェア開発とOSS
エンタープライズソフトウェア開発とOSSHiroshi Nakamura
 
GTMF 2015: バグを減らそう。テストを楽にしよう。静的解析が開発者を救う。 | 日本シノプシス合同会社
GTMF 2015: バグを減らそう。テストを楽にしよう。静的解析が開発者を救う。 | 日本シノプシス合同会社GTMF 2015: バグを減らそう。テストを楽にしよう。静的解析が開発者を救う。 | 日本シノプシス合同会社
GTMF 2015: バグを減らそう。テストを楽にしよう。静的解析が開発者を救う。 | 日本シノプシス合同会社Game Tools & Middleware Forum
 
Klocwork 2017.0アップデート
Klocwork 2017.0アップデートKlocwork 2017.0アップデート
Klocwork 2017.0アップデートMasaru Horioka
 
20220409 AWS BLEA 開発にあたって検討したこと
20220409 AWS BLEA 開発にあたって検討したこと20220409 AWS BLEA 開発にあたって検討したこと
20220409 AWS BLEA 開発にあたって検討したことAmazon Web Services Japan
 
Infrastructure as Code
Infrastructure as CodeInfrastructure as Code
Infrastructure as Code裕貴 荒井
 
ソフトウェア技術者から見たFPGAの魅力と可能性
ソフトウェア技術者から見たFPGAの魅力と可能性ソフトウェア技術者から見たFPGAの魅力と可能性
ソフトウェア技術者から見たFPGAの魅力と可能性Kenichiro MITSUDA
 
OSC2018 hiroshima session slide by OSSC
OSC2018 hiroshima session slide by OSSCOSC2018 hiroshima session slide by OSSC
OSC2018 hiroshima session slide by OSSCDaisuke Nishino
 
どっちの VS ショー / 伝統の Visual Studio 2019、人気の Visual Studio Code
どっちの VS ショー / 伝統の Visual Studio 2019、人気の Visual Studio Codeどっちの VS ショー / 伝統の Visual Studio 2019、人気の Visual Studio Code
どっちの VS ショー / 伝統の Visual Studio 2019、人気の Visual Studio CodeTakashi Okawa
 
Keycloakの実際・翻訳プロジェクト紹介
Keycloakの実際・翻訳プロジェクト紹介Keycloakの実際・翻訳プロジェクト紹介
Keycloakの実際・翻訳プロジェクト紹介Hiroyuki Wada
 
Jasst12九州 倉貫資料:アジャイル・Ruby・クラウド(ARC)を活用したビジネスにおけるテストの実践 #jasst12Q
Jasst12九州 倉貫資料:アジャイル・Ruby・クラウド(ARC)を活用したビジネスにおけるテストの実践 #jasst12QJasst12九州 倉貫資料:アジャイル・Ruby・クラウド(ARC)を活用したビジネスにおけるテストの実践 #jasst12Q
Jasst12九州 倉貫資料:アジャイル・Ruby・クラウド(ARC)を活用したビジネスにおけるテストの実践 #jasst12QYoshihito Kuranuki
 
新技術で未来の扉を開け! - Node-REDの環境構築と社内導入 -
新技術で未来の扉を開け! - Node-REDの環境構築と社内導入 - 新技術で未来の扉を開け! - Node-REDの環境構築と社内導入 -
新技術で未来の扉を開け! - Node-REDの環境構築と社内導入 - Makoto SAKAI
 
なぜあなたのプロジェクトのDevSecOpsは形骸化するのか(CloudNative Security Conference 2022)
なぜあなたのプロジェクトのDevSecOpsは形骸化するのか(CloudNative Security Conference 2022)なぜあなたのプロジェクトのDevSecOpsは形骸化するのか(CloudNative Security Conference 2022)
なぜあなたのプロジェクトのDevSecOpsは形骸化するのか(CloudNative Security Conference 2022)Masaya Tahara
 
DBTS2015 Tokyo DBAが知っておくべき最新テクノロジー
DBTS2015 Tokyo DBAが知っておくべき最新テクノロジーDBTS2015 Tokyo DBAが知っておくべき最新テクノロジー
DBTS2015 Tokyo DBAが知っておくべき最新テクノロジーMasaya Ishikawa
 
OSS+AWSでここまでできるDevSecOps (Security-JAWS第24回)
OSS+AWSでここまでできるDevSecOps (Security-JAWS第24回)OSS+AWSでここまでできるDevSecOps (Security-JAWS第24回)
OSS+AWSでここまでできるDevSecOps (Security-JAWS第24回)Masaya Tahara
 
Node-REDのノード開発容易化ツール Node generator
Node-REDのノード開発容易化ツールNode generatorNode-REDのノード開発容易化ツールNode generator
Node-REDのノード開発容易化ツール Node generatorBMXUG
 
アイデアを形にする ③3時間でアプリ公開!ゼロからのプログラミング講座
アイデアを形にする  ③3時間でアプリ公開!ゼロからのプログラミング講座アイデアを形にする  ③3時間でアプリ公開!ゼロからのプログラミング講座
アイデアを形にする ③3時間でアプリ公開!ゼロからのプログラミング講座DIVE INTO CODE Corp.
 

Semelhante a 静的解析ツールKlocwork によるCERT-C/CWE対応 (20)

デブサミ関西2013【A4】コード品質は曖昧なままか(安竹由起夫氏)
デブサミ関西2013【A4】コード品質は曖昧なままか(安竹由起夫氏)デブサミ関西2013【A4】コード品質は曖昧なままか(安竹由起夫氏)
デブサミ関西2013【A4】コード品質は曖昧なままか(安竹由起夫氏)
 
技術選択とアーキテクトの役割
技術選択とアーキテクトの役割技術選択とアーキテクトの役割
技術選択とアーキテクトの役割
 
Scalable Generator: Using Scala in SIer Business (ScalaMatsuri)
Scalable Generator: Using Scala in SIer Business (ScalaMatsuri)Scalable Generator: Using Scala in SIer Business (ScalaMatsuri)
Scalable Generator: Using Scala in SIer Business (ScalaMatsuri)
 
エンタープライズソフトウェア開発とOSS
エンタープライズソフトウェア開発とOSSエンタープライズソフトウェア開発とOSS
エンタープライズソフトウェア開発とOSS
 
GTMF 2015: バグを減らそう。テストを楽にしよう。静的解析が開発者を救う。 | 日本シノプシス合同会社
GTMF 2015: バグを減らそう。テストを楽にしよう。静的解析が開発者を救う。 | 日本シノプシス合同会社GTMF 2015: バグを減らそう。テストを楽にしよう。静的解析が開発者を救う。 | 日本シノプシス合同会社
GTMF 2015: バグを減らそう。テストを楽にしよう。静的解析が開発者を救う。 | 日本シノプシス合同会社
 
Klocwork 2017.0アップデート
Klocwork 2017.0アップデートKlocwork 2017.0アップデート
Klocwork 2017.0アップデート
 
20220409 AWS BLEA 開発にあたって検討したこと
20220409 AWS BLEA 開発にあたって検討したこと20220409 AWS BLEA 開発にあたって検討したこと
20220409 AWS BLEA 開発にあたって検討したこと
 
Infrastructure as Code
Infrastructure as CodeInfrastructure as Code
Infrastructure as Code
 
ソフトウェア技術者から見たFPGAの魅力と可能性
ソフトウェア技術者から見たFPGAの魅力と可能性ソフトウェア技術者から見たFPGAの魅力と可能性
ソフトウェア技術者から見たFPGAの魅力と可能性
 
OSC2018 hiroshima session slide by OSSC
OSC2018 hiroshima session slide by OSSCOSC2018 hiroshima session slide by OSSC
OSC2018 hiroshima session slide by OSSC
 
どっちの VS ショー / 伝統の Visual Studio 2019、人気の Visual Studio Code
どっちの VS ショー / 伝統の Visual Studio 2019、人気の Visual Studio Codeどっちの VS ショー / 伝統の Visual Studio 2019、人気の Visual Studio Code
どっちの VS ショー / 伝統の Visual Studio 2019、人気の Visual Studio Code
 
Keycloakの実際・翻訳プロジェクト紹介
Keycloakの実際・翻訳プロジェクト紹介Keycloakの実際・翻訳プロジェクト紹介
Keycloakの実際・翻訳プロジェクト紹介
 
Jasst12九州 倉貫資料:アジャイル・Ruby・クラウド(ARC)を活用したビジネスにおけるテストの実践 #jasst12Q
Jasst12九州 倉貫資料:アジャイル・Ruby・クラウド(ARC)を活用したビジネスにおけるテストの実践 #jasst12QJasst12九州 倉貫資料:アジャイル・Ruby・クラウド(ARC)を活用したビジネスにおけるテストの実践 #jasst12Q
Jasst12九州 倉貫資料:アジャイル・Ruby・クラウド(ARC)を活用したビジネスにおけるテストの実践 #jasst12Q
 
新技術で未来の扉を開け! - Node-REDの環境構築と社内導入 -
新技術で未来の扉を開け! - Node-REDの環境構築と社内導入 - 新技術で未来の扉を開け! - Node-REDの環境構築と社内導入 -
新技術で未来の扉を開け! - Node-REDの環境構築と社内導入 -
 
研究紹介スライド
研究紹介スライド研究紹介スライド
研究紹介スライド
 
なぜあなたのプロジェクトのDevSecOpsは形骸化するのか(CloudNative Security Conference 2022)
なぜあなたのプロジェクトのDevSecOpsは形骸化するのか(CloudNative Security Conference 2022)なぜあなたのプロジェクトのDevSecOpsは形骸化するのか(CloudNative Security Conference 2022)
なぜあなたのプロジェクトのDevSecOpsは形骸化するのか(CloudNative Security Conference 2022)
 
DBTS2015 Tokyo DBAが知っておくべき最新テクノロジー
DBTS2015 Tokyo DBAが知っておくべき最新テクノロジーDBTS2015 Tokyo DBAが知っておくべき最新テクノロジー
DBTS2015 Tokyo DBAが知っておくべき最新テクノロジー
 
OSS+AWSでここまでできるDevSecOps (Security-JAWS第24回)
OSS+AWSでここまでできるDevSecOps (Security-JAWS第24回)OSS+AWSでここまでできるDevSecOps (Security-JAWS第24回)
OSS+AWSでここまでできるDevSecOps (Security-JAWS第24回)
 
Node-REDのノード開発容易化ツール Node generator
Node-REDのノード開発容易化ツールNode generatorNode-REDのノード開発容易化ツールNode generator
Node-REDのノード開発容易化ツール Node generator
 
アイデアを形にする ③3時間でアプリ公開!ゼロからのプログラミング講座
アイデアを形にする  ③3時間でアプリ公開!ゼロからのプログラミング講座アイデアを形にする  ③3時間でアプリ公開!ゼロからのプログラミング講座
アイデアを形にする ③3時間でアプリ公開!ゼロからのプログラミング講座
 

Mais de Masaru Horioka

JetBrainsライセンス購入方法
JetBrainsライセンス購入方法JetBrainsライセンス購入方法
JetBrainsライセンス購入方法Masaru Horioka
 
Klocwork 2018.0 アップデート
Klocwork 2018.0 アップデートKlocwork 2018.0 アップデート
Klocwork 2018.0 アップデートMasaru Horioka
 
Klocwork 2017.1アップデート
Klocwork 2017.1アップデートKlocwork 2017.1アップデート
Klocwork 2017.1アップデートMasaru Horioka
 
Klocwork カスタムチェッカー紹介
Klocwork カスタムチェッカー紹介Klocwork カスタムチェッカー紹介
Klocwork カスタムチェッカー紹介Masaru Horioka
 
Klocworkバージョン11.2アップデート
Klocworkバージョン11.2アップデートKlocworkバージョン11.2アップデート
Klocworkバージョン11.2アップデートMasaru Horioka
 
静的解析ツール Klocworkによる 機能安全規格への対応
静的解析ツール Klocworkによる 機能安全規格への対応静的解析ツール Klocworkによる 機能安全規格への対応
静的解析ツール Klocworkによる 機能安全規格への対応Masaru Horioka
 

Mais de Masaru Horioka (8)

JetBrainsライセンス購入方法
JetBrainsライセンス購入方法JetBrainsライセンス購入方法
JetBrainsライセンス購入方法
 
Klocwork 2018.0 アップデート
Klocwork 2018.0 アップデートKlocwork 2018.0 アップデート
Klocwork 2018.0 アップデート
 
Klocwork 2017.1アップデート
Klocwork 2017.1アップデートKlocwork 2017.1アップデート
Klocwork 2017.1アップデート
 
Klocwork カスタムチェッカー紹介
Klocwork カスタムチェッカー紹介Klocwork カスタムチェッカー紹介
Klocwork カスタムチェッカー紹介
 
Klocworkバージョン11.2アップデート
Klocworkバージョン11.2アップデートKlocworkバージョン11.2アップデート
Klocworkバージョン11.2アップデート
 
静的解析ツール Klocworkによる 機能安全規格への対応
静的解析ツール Klocworkによる 機能安全規格への対応静的解析ツール Klocworkによる 機能安全規格への対応
静的解析ツール Klocworkによる 機能安全規格への対応
 
Mentoring
MentoringMentoring
Mentoring
 
静的解析のROI
静的解析のROI静的解析のROI
静的解析のROI
 

静的解析ツールKlocwork によるCERT-C/CWE対応

  • 1. 1© 2017 Rogue Wave Software, Inc. All Rights Reserved. 1 静的解析ツール Klocwork による CERT-C/CWE対応 Masaru Horioka Sales Engineering Manager, APAC
  • 2. 2© 2017 Rogue Wave Software, Inc. All Rights Reserved. 2 アジェンダ • 静的解析ツールKlocworkによるコーディング規約サポート – チェッカーとのマッピング – 分類基準 • 開発プロジェクトへの適用 – チェック項目の決定 – ベースライン解析と選別 – 日々の開発の中での解析 • デスクトップ解析、CI連携 • セキュリティレポート – エビデンスの作成 • まとめ:Why Klocwork
  • 3. 3© 2017 Rogue Wave Software, Inc. All Rights Reserved. 3 静的解析ツールKlocworkによる コーディング規約サポート
  • 4. 4© 2017 Rogue Wave Software, Inc. All Rights Reserved. 4 Klocworkチェッカー • Klocworkチェッカー(https://goo.gl/8d1CYu)とは – 特定のプログラミングエラーを発見するKlocworkの機能 – 用途に応じてチェックのオン・オフが可能
  • 5. 5© 2017 Rogue Wave Software, Inc. All Rights Reserved. 5 Klocworkによるコーディング規約サポート コーディングルールとKlocworkチェッカーをマッピング https://goo.gl/QuLGcq
  • 6. 6© 2017 Rogue Wave Software, Inc. All Rights Reserved. 6 CWEとのマッピング (https://goo.gl/9hRCMi)
  • 7. 7© 2017 Rogue Wave Software, Inc. All Rights Reserved. 7 CERT-C/C++とのマッピング(https://goo.gl/xVmmb9)
  • 8. 8© 2017 Rogue Wave Software, Inc. All Rights Reserved. 8 コーディング規約と静的解析ツールの チェッカーのマッピングにおける注意事項 • CWE/CERTのすべてのルールをカバーするわけではない – CWEは階層構造になっているのでそもそも何とマッピングするか?によって数字 が異なる – KlocworkのCERT-Cのカバー率は30%程度 • カスタムチェッカーによるカバー率の向上は可能 • (以下は個人的な意見)あくまでマッピングであり、書かれている全てのことをチェッ クするとは限らない(おそらくどの静的解析ツールも同じ) – ルールは自然言語 or 自然言語+サンプルコードの組み合わせで定義されている – 各ベンダーのCERT C マッピング https://www.securecoding.cert.org/confluence/display/c/Klocwork – 色々比較するためには以下のようなテストセットがある。ただしコーテストケー スをカバーできても、複雜な問題は発見できない等、利用方法には議論の余地が ある。 – https://samate.nist.gov/SRD/testsuite.php
  • 9. 9© 2017 Rogue Wave Software, Inc. All Rights Reserved. 9 Klocwork分類基準(taxonomy) • Klocwork分類基準とは – Klocworkチェッカーとコーディング規約のマッピングをプログラム 上で実現したもの • .tconfとよばれるxmlファイルで提供 – 用途 • チェッカーのオン・オフ • 解析結果レポート
  • 10. 10© 2017 Rogue Wave Software, Inc. All Rights Reserved. 10 CERT 分類基準を利用したチェッカーの構 成
  • 11. 11© 2017 Rogue Wave Software, Inc. All Rights Reserved. 11 CERT 分類基準を利用した指摘件数レポー ト
  • 12. 12© 2017 Rogue Wave Software, Inc. All Rights Reserved. 12 C/C++デフォルト分類基準を利用した指摘 件数レポート
  • 13. 13© 2017 Rogue Wave Software, Inc. All Rights Reserved. 13 開発プロジェクトへの適用
  • 14. 14© 2017 Rogue Wave Software, Inc. All Rights Reserved. 14 開発プロジェクトへの適用 1. チェック対象の決定 – ルールの選択 – 対象コードの選択 2. ベースライン解析 3. 日々の開発の中での解析 – デスクトップ解析、CI連携 – セキュリティレポート 4. エビデンスの作成
  • 15. 15© 2017 Rogue Wave Software, Inc. All Rights Reserved. 15 1. チェック対象の決定 全てをチェックするというのは現実的ではない • チェックルールの選択例 • 納入先から指定されている • 社内・プロジェクト・コーディング標準で規定 • コーディング規約の重要度を参考に選択 • 対象コードの決定 • レガシーコード vs 新規コード • サードパーティー • OSS
  • 16. 16© 2017 Rogue Wave Software, Inc. All Rights Reserved. 16
  • 17. 17© 2017 Rogue Wave Software, Inc. All Rights Reserved. 17 2. ベースライン解析 • ゴール – 優先付けにより、アクション可能な状態に絞り込む • 簡単な例 – OSS、サードパーティー、自動生成のコードの指摘は全て Ignore – 出荷済みコードはレガシーコード扱いとし、Filter
  • 18. 18© 2017 Rogue Wave Software, Inc. All Rights Reserved. 18 2. ベースライン解析 Klocworkの推奨展開手順 1. ルールを 選択 2. 対象外の 選択
  • 19. 19© 2017 Rogue Wave Software, Inc. All Rights Reserved. 19
  • 20. 20© 2017 Rogue Wave Software, Inc. All Rights Reserved. 20 no no ベースライン設定例 Project database . . . 派生元コードの解析 最初のコード 最新バージョン all issues Ignore yes 許可済みコード MISRA Ignore yes レガシーコード 指摘タイプ Fix in Later Release C&C++ 外部コード Severity Analyse/ Defer 重要度高 Analyse/ Defer リーダによる 決定 誤検知 Not a Problem yes no Filter 重要度 低 yes no 外部パッケージ Ignore yes no 自動生成・ テストコード Ignore grant アーキ テクト、 QAチー ムによ るレ ビュー アクショ ンの決定 保留
  • 21. 21© 2017 Rogue Wave Software, Inc. All Rights Reserved. 21 3. 日々の開発の中での解析 Klocworkの推奨展開手順 1. デスクトッ プ解析による 問題のある コードの混入 を防止 2. 全体解析を 自動化し、指 摘件数の推移 を見える化、 メール通知
  • 22. 22© 2017 Rogue Wave Software, Inc. All Rights Reserved. 22 3. 日々の開発の中での解析 重要なポイント:早期発見、早期修正 • デスクトップ解析を活用しチェックイン前に指摘を除 去 • 全体解析解析を自動化 • レポートによる見える化 • 指摘件数のトラッキング • 担当者の自動割当
  • 23. 23© 2017 Rogue Wave Software, Inc. All Rights Reserved. 23 In-phase detection
  • 24. 24© 2017 Rogue Wave Software, Inc. All Rights Reserved. 24 継続的インテグレーションによる解析の自 動化 Continuous Integration Server Source Control Server Manager Developer I Developer 2
  • 25. 25© 2017 Rogue Wave Software, Inc. All Rights Reserved. 25 管理者のためのセキュリティレポート 開発中のプロジェクトにおける、セキュリティリスクの残存を可視化 残存するセキュリ ティ問題TOP3の 件数の推移 直近の解析におけるセ キュリティ指摘TOP3 セキュリティ指摘が多 く含まれるディレクト リ
  • 26. 26© 2017 Rogue Wave Software, Inc. All Rights Reserved. 26
  • 27. 27© 2017 Rogue Wave Software, Inc. All Rights Reserved. 27 4. エビデンスの作成 Web APIを利用して指摘件数やステータスを抽出し、エビデンスレポート作成 欧州の Klocwork代理 店Emenda社 が公開してい るスクリプト の実行結果
  • 28. 28© 2017 Rogue Wave Software, Inc. All Rights Reserved. 28 まとめ
  • 29. 29© 2017 Rogue Wave Software, Inc. All Rights Reserved. 29 まとめ 静的解析ツールKlocwork によるCERT-C/CWE対応 1. KlocworkチェッカーとCERT-C/CWEルールのマッピングを提供 2. Klocworkの設定画面やレポートで利用可能な分類基準を提供 3. 開発プロジェクトに適用するためのガイドライン、導入支援コンサル ティング(有償)を提供 4. デスクトップ解析や継続的インテグレーション環境との統合により、セ キュリティ指摘の早期発見、早期修正が可能 5. Web APIを利用することによりエビデンスの自動作成が可能
  • 30. 30© 2017 Rogue Wave Software, Inc. All Rights Reserved. 30