Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
EN
Uploaded by
Developers Summit
PDF, PPTX
2,099 views
【B-4】オープンソース開発で、フリー静的解析ツールを使ってみる
Developers Summit 2020 KANSAI【B-4】松岡様のセッション資料です。
Technology
◦
Read more
0
Save
Share
Embed
Embed presentation
Download
Download as PDF, PPTX
1
/ 37
2
/ 37
3
/ 37
4
/ 37
5
/ 37
6
/ 37
7
/ 37
8
/ 37
9
/ 37
10
/ 37
Most read
11
/ 37
12
/ 37
13
/ 37
14
/ 37
15
/ 37
16
/ 37
17
/ 37
18
/ 37
19
/ 37
20
/ 37
21
/ 37
22
/ 37
23
/ 37
24
/ 37
25
/ 37
26
/ 37
27
/ 37
28
/ 37
Most read
29
/ 37
30
/ 37
31
/ 37
32
/ 37
33
/ 37
34
/ 37
Most read
35
/ 37
36
/ 37
37
/ 37
More Related Content
PDF
ちょっと明日のテストの話をしよう
by
Yasuharu Nishi
PDF
OSS活動の活発さと評価の関係について
by
Takuto Wada
PPTX
脱RESTful API設計の提案
by
樽八 仲川
PDF
はじめてのソフトウェアテスト2019
by
Rina Fukuda
PDF
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)
by
NTT DATA Technology & Innovation
PDF
品質を加速させるために、テスターを増やす前から考えるべきQMファンネルの話(3D版)
by
Yasuharu Nishi
PPTX
SPAセキュリティ入門~PHP Conference Japan 2021
by
Hiroshi Tokumaru
PPTX
QAアーキテクチャの設計による説明責任の高いテスト・品質保証
by
Yasuharu Nishi
ちょっと明日のテストの話をしよう
by
Yasuharu Nishi
OSS活動の活発さと評価の関係について
by
Takuto Wada
脱RESTful API設計の提案
by
樽八 仲川
はじめてのソフトウェアテスト2019
by
Rina Fukuda
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)
by
NTT DATA Technology & Innovation
品質を加速させるために、テスターを増やす前から考えるべきQMファンネルの話(3D版)
by
Yasuharu Nishi
SPAセキュリティ入門~PHP Conference Japan 2021
by
Hiroshi Tokumaru
QAアーキテクチャの設計による説明責任の高いテスト・品質保証
by
Yasuharu Nishi
What's hot
PDF
オンラインゲームの仕組みと工夫
by
Yuta Imai
PDF
10GbE時代のネットワークI/O高速化
by
Takuya ASADA
PDF
組み合わせテストの落とし穴〜有則と無則〜
by
yufu yufu
PPTX
インセプションデッキのひな形(PPT形式:ダウンロード用)
by
A AOKI
PDF
FPGAをロボット(ROS)で「やわらかく」使うには
by
Hideki Takase
PDF
インフラエンジニアの綺麗で優しい手順書の書き方
by
Shohei Koyama
PDF
エンジニアから飛んでくるマサカリを受け止める心得
by
Reimi Kuramochi Chiba
PDF
アジャイル開発とメトリクス
by
Rakuten Group, Inc.
PDF
テスト観点に基づくテスト開発方法論VSTePの概要
by
Yasuharu Nishi
PPTX
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
by
NTT DATA Technology & Innovation
PPTX
関数型・オブジェクト指向宗教戦争に疲れたなたに送るGo言語入門
by
Tadahiro Ishisaka
PDF
【Unite Tokyo 2019】Understanding C# Struct All Things
by
UnityTechnologiesJapan002
PDF
PlaySQLAlchemy: SQLAlchemy入門
by
泰 増田
PDF
GCP・GKEで作るスケーラブルなゲーム開発環境
by
Yasutomo Uemori
PDF
シリコンバレーの「何が」凄いのか
by
Atsushi Nakada
PDF
SpringBootTest入門
by
Yahoo!デベロッパーネットワーク
PPT
Glibc malloc internal
by
Motohiro KOSAKI
PDF
マイクロにしすぎた結果がこれだよ!
by
mosa siru
PDF
組織にテストを書く文化を根付かせる戦略と戦術
by
Takuto Wada
PDF
Cognitive Complexity でコードの複雑さを定量的に計測しよう
by
Shuto Suzuki
オンラインゲームの仕組みと工夫
by
Yuta Imai
10GbE時代のネットワークI/O高速化
by
Takuya ASADA
組み合わせテストの落とし穴〜有則と無則〜
by
yufu yufu
インセプションデッキのひな形(PPT形式:ダウンロード用)
by
A AOKI
FPGAをロボット(ROS)で「やわらかく」使うには
by
Hideki Takase
インフラエンジニアの綺麗で優しい手順書の書き方
by
Shohei Koyama
エンジニアから飛んでくるマサカリを受け止める心得
by
Reimi Kuramochi Chiba
アジャイル開発とメトリクス
by
Rakuten Group, Inc.
テスト観点に基づくテスト開発方法論VSTePの概要
by
Yasuharu Nishi
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
by
NTT DATA Technology & Innovation
関数型・オブジェクト指向宗教戦争に疲れたなたに送るGo言語入門
by
Tadahiro Ishisaka
【Unite Tokyo 2019】Understanding C# Struct All Things
by
UnityTechnologiesJapan002
PlaySQLAlchemy: SQLAlchemy入門
by
泰 増田
GCP・GKEで作るスケーラブルなゲーム開発環境
by
Yasutomo Uemori
シリコンバレーの「何が」凄いのか
by
Atsushi Nakada
SpringBootTest入門
by
Yahoo!デベロッパーネットワーク
Glibc malloc internal
by
Motohiro KOSAKI
マイクロにしすぎた結果がこれだよ!
by
mosa siru
組織にテストを書く文化を根付かせる戦略と戦術
by
Takuto Wada
Cognitive Complexity でコードの複雑さを定量的に計測しよう
by
Shuto Suzuki
Similar to 【B-4】オープンソース開発で、フリー静的解析ツールを使ってみる
PDF
GTMF 2015: バグを減らそう。テストを楽にしよう。静的解析が開発者を救う。 | 日本シノプシス合同会社
by
Game Tools & Middleware Forum
PPTX
より良いコードを書くための
by
TATSUYA HAYAMIZU
PDF
【14-E-3】セキュリティ・テストの自動化によるDevSecOpsの実現 (デモ有)
by
Developers Summit
PPTX
Scis2015 ruo ando_2015-01-20-01
by
Ruo Ando
PPTX
静的解析ツールKlocwork によるCERT-C/CWE対応
by
Masaru Horioka
PDF
デブサミ関西2013【A4】コード品質は曖昧なままか(安竹由起夫氏)
by
Developers Summit
PDF
debug_profile.pdf
by
Nariaki Tateiwa
PPTX
静的解析ツール Klocworkによる 機能安全規格への対応
by
Masaru Horioka
PDF
【B-6】Androidスマホの生体認証の脆弱性、調べてみたらよくある話だった。
by
Developers Summit
PDF
技術紹介: S2E: Selective Symbolic Execution Engine
by
Asuka Nakajima
PDF
[CB17] Trueseeing: Effective Dataflow Analysis over Dalvik Opcodes
by
CODE BLUE
PPTX
Klocworkのご紹介
by
Masaru Horioka
PDF
これ以上ソースコードの負債を増やさないためにVisual Studioの静的解析とAzure PipelinesでCIを回す
by
Study Group by SciencePark Corp.
PDF
なぜあなたのプロジェクトのDevSecOpsは形骸化するのか(CloudNative Security Conference 2022)
by
Masaya Tahara
PDF
2012-04-25 ASPLOS2012出張報告(公開版)
by
Takahiro Shinagawa
PPTX
Css2014 ruo ando_2014-10-23-01
by
Ruo Ando
PPTX
型チェックのアノテーションによる保守・運用の改善
by
gree_tech
PDF
IDAの脆弱性とBug Bounty by 千田 雅明
by
CODE BLUE
PDF
実行トレース間のデータの差異に基づくデータフロー解析手法の提案
by
Kamiya Toshihiro
PDF
Jenkins ユーザ・カンファレンス 2012 東京 S406-4/マルチステージ型継続的インテグレーションのすすめ
by
atsushi_tmx
GTMF 2015: バグを減らそう。テストを楽にしよう。静的解析が開発者を救う。 | 日本シノプシス合同会社
by
Game Tools & Middleware Forum
より良いコードを書くための
by
TATSUYA HAYAMIZU
【14-E-3】セキュリティ・テストの自動化によるDevSecOpsの実現 (デモ有)
by
Developers Summit
Scis2015 ruo ando_2015-01-20-01
by
Ruo Ando
静的解析ツールKlocwork によるCERT-C/CWE対応
by
Masaru Horioka
デブサミ関西2013【A4】コード品質は曖昧なままか(安竹由起夫氏)
by
Developers Summit
debug_profile.pdf
by
Nariaki Tateiwa
静的解析ツール Klocworkによる 機能安全規格への対応
by
Masaru Horioka
【B-6】Androidスマホの生体認証の脆弱性、調べてみたらよくある話だった。
by
Developers Summit
技術紹介: S2E: Selective Symbolic Execution Engine
by
Asuka Nakajima
[CB17] Trueseeing: Effective Dataflow Analysis over Dalvik Opcodes
by
CODE BLUE
Klocworkのご紹介
by
Masaru Horioka
これ以上ソースコードの負債を増やさないためにVisual Studioの静的解析とAzure PipelinesでCIを回す
by
Study Group by SciencePark Corp.
なぜあなたのプロジェクトのDevSecOpsは形骸化するのか(CloudNative Security Conference 2022)
by
Masaya Tahara
2012-04-25 ASPLOS2012出張報告(公開版)
by
Takahiro Shinagawa
Css2014 ruo ando_2014-10-23-01
by
Ruo Ando
型チェックのアノテーションによる保守・運用の改善
by
gree_tech
IDAの脆弱性とBug Bounty by 千田 雅明
by
CODE BLUE
実行トレース間のデータの差異に基づくデータフロー解析手法の提案
by
Kamiya Toshihiro
Jenkins ユーザ・カンファレンス 2012 東京 S406-4/マルチステージ型継続的インテグレーションのすすめ
by
atsushi_tmx
More from Developers Summit
PDF
【18-A-2】ゲーミフィケーション・エバンジェリストが見る「あなたの技術力が“ワクワクするサービス”に変わる未来」
by
Developers Summit
PDF
【C-2・小林様】AIとAPIがITインフラにもたらす変化 ~プログラマブルなクラウド型Wi-Fi~
by
Developers Summit
PDF
【C-2・醍醐様】AIとAPIがITインフラにもたらす変化 ~プログラマブルなクラウド型Wi-Fi~
by
Developers Summit
PDF
【13-B-6】Hondaの生産技術屋さんがソフトウェア開発でアジャイルを初導入し組織変革に挑戦
by
Developers Summit
PDF
【15-E-7】セキュアな環境でDevOpsを実現する厳選ツール
by
Developers Summit
PDF
【15-E-7】セキュアな環境でDevOpsを実現する厳選ツール
by
Developers Summit
PDF
【15-D-2】デンソーのMaaS開発~アジャイル開発で顧客との協調・チームビルディング・実装概要~
by
Developers Summit
PDF
【14-C-8】みんなの暮らしを支えるAmazon S3の裏側、お伝えします
by
Developers Summit
PDF
【14-C-7】コンピュータビジョンを支える深層学習技術の新潮流
by
Developers Summit
PDF
【15-B-7】無意味なアラートからの脱却 ~ Datadogを使ってモダンなモニタリングを始めよう ~
by
Developers Summit
PDF
【15-A-1】ドラゴンクエストXを支える失敗事例
by
Developers Summit
PDF
【15-A-5】ゲーミフィケーションエバンジェリストが説く、アプリ開発で見落としがちな「おもてなし」とは~面白さを伝える × 面白く魅せる~
by
Developers Summit
PDF
【B-2】福岡発Node.jsで支える大規模システム!〜「誰ガ為のアルケミスト」と歩んだ三年〜
by
Developers Summit
PDF
【B-5】モダンな開発を実現するツールチェーンのご紹介
by
Developers Summit
PDF
【C-2】メモリも、僕のキャパシティも溢れっぱなし。。2年目エンジニアが実現した機械学習
by
Developers Summit
PDF
【A-2】とあるマーケティング部隊とデータエンジニアのデータドリブンへの道
by
Developers Summit
PDF
【B-2】AI時代におけるエンジニアの生存戦略
by
Developers Summit
PDF
【B-2】AI時代のエンジニア生存戦略
by
Developers Summit
PDF
【A-1】AIを支えるGPUコンピューティングの今
by
Developers Summit
PDF
【15-C-L】婚活サービスにおけるシステム×サービスのイノベーション
by
Developers Summit
【18-A-2】ゲーミフィケーション・エバンジェリストが見る「あなたの技術力が“ワクワクするサービス”に変わる未来」
by
Developers Summit
【C-2・小林様】AIとAPIがITインフラにもたらす変化 ~プログラマブルなクラウド型Wi-Fi~
by
Developers Summit
【C-2・醍醐様】AIとAPIがITインフラにもたらす変化 ~プログラマブルなクラウド型Wi-Fi~
by
Developers Summit
【13-B-6】Hondaの生産技術屋さんがソフトウェア開発でアジャイルを初導入し組織変革に挑戦
by
Developers Summit
【15-E-7】セキュアな環境でDevOpsを実現する厳選ツール
by
Developers Summit
【15-E-7】セキュアな環境でDevOpsを実現する厳選ツール
by
Developers Summit
【15-D-2】デンソーのMaaS開発~アジャイル開発で顧客との協調・チームビルディング・実装概要~
by
Developers Summit
【14-C-8】みんなの暮らしを支えるAmazon S3の裏側、お伝えします
by
Developers Summit
【14-C-7】コンピュータビジョンを支える深層学習技術の新潮流
by
Developers Summit
【15-B-7】無意味なアラートからの脱却 ~ Datadogを使ってモダンなモニタリングを始めよう ~
by
Developers Summit
【15-A-1】ドラゴンクエストXを支える失敗事例
by
Developers Summit
【15-A-5】ゲーミフィケーションエバンジェリストが説く、アプリ開発で見落としがちな「おもてなし」とは~面白さを伝える × 面白く魅せる~
by
Developers Summit
【B-2】福岡発Node.jsで支える大規模システム!〜「誰ガ為のアルケミスト」と歩んだ三年〜
by
Developers Summit
【B-5】モダンな開発を実現するツールチェーンのご紹介
by
Developers Summit
【C-2】メモリも、僕のキャパシティも溢れっぱなし。。2年目エンジニアが実現した機械学習
by
Developers Summit
【A-2】とあるマーケティング部隊とデータエンジニアのデータドリブンへの道
by
Developers Summit
【B-2】AI時代におけるエンジニアの生存戦略
by
Developers Summit
【B-2】AI時代のエンジニア生存戦略
by
Developers Summit
【A-1】AIを支えるGPUコンピューティングの今
by
Developers Summit
【15-C-L】婚活サービスにおけるシステム×サービスのイノベーション
by
Developers Summit
【B-4】オープンソース開発で、フリー静的解析ツールを使ってみる
1.
⽇本シノプシス合同会社 Software Integrity Group 松岡正⼈ オープンソース開発で フリー静的解析ツールを使ってみる
2.
© 2019 Synopsys,
Inc. 2 • Synopsysのご紹介 • 脆弱性によって何が起こったか? • 無償利⽤可能な静的解析ツール”Coverity scan” • 商⽤製品”Coverity“との⽐較 • まとめ アジェンダ
3.
© 2019 Synopsys,
Inc. 3 Synopsysのご紹介
4.
© 2019 Synopsys,
Inc. 4 シノプシス:市場と技術のリーダー シリコン設計 および検証 シリコン IP ソフトウェア インテグリティ 新興市場のリーダー 広範なポートフォリオ 15〜20%の成⻑率 世界 2位のIPベンダー 2桁の成⻑率 業界のリーダー 1桁後半の成⻑率 6年 約10%の売り上げ 16年 約20%の売り上げ 31年 約65%の売り上げ
5.
© 2019 Synopsys,
Inc. 5 FY19 売上⾼: ~$3.4B 従業員数: ~14,200 保有特許数: ~3,250 “Silicon to Software™” 半導体設計からソフトウェア開発に⾄る領域をカバー Canada Chile Japan 303 S. Korea Russia China 1,212 India 2,847 Armenia Israel Europe 2,576 Southeast Asia 854 Taiwan USA 4,671 電⼦設計⾃動化(EDA)ツール およびサービスで業界1位 広範な半導体設計資産(IP) ポートフォリオ インタフェース、アナログ、組 み込みメモリーおよび物理IPで 業界1位 Gartnerʼs Magic Quadrant for application security testingにお けるリーダー 事業所数: ~130 $ 0 500 1,000 1,500 2,000 2,500 3,000 3,500 4,000 '10 '11 '12 '13 '14 '15 '16 '17 '18 '19 '20E * $Millions
6.
© 2019 Synopsys,
Inc. 6 • 2015年 • Heartbleedを発⾒した 技術とチーム • 2014年 • セキュリティと品質、 静的解析のリーダー • 2016年 • 400⼈以上の セキュリティ専⾨家 • マネージドサービスと プロフェッショナルサー ビス • 2017年 • OSSセキュリティと リスク管理ツールと 専⾨家 セキュリティと品質はシノプシスのDNA • 2020年 • 先進的なDAST技術 • Web API のセキュリティ
7.
© 2019 Synopsys,
Inc. 7 ソフトウェア開発・セキュリティ市場でのポジション ソフトウェア静的解析、コンポジション解析、総合セキュリティテストでリーダーの評価 Forrester Wave Static Application Security Testing Forrester Wave Software Composition Analysis Gartner Magic Quadrant Application Security Testing https://www.synopsys.com/software-integrity/resources/analyst- reports/2020-gartner-magic-quadrant.html https://www.synopsys.com/software-integrity/resources/analyst- reports/forrester-software-composition-analysis-2019.html?cmp=pr- sig
8.
© 2019 Synopsys,
Inc. 8 多彩な業界でソフトウェアのセキュリティと品質を牽引 モバイルおよび コンシューマ機器 エンタープライズ ソフトウェアおよび ネットワーク ⾼信頼性システム ⾦融サービス
9.
© 2019 Synopsys,
Inc. 9 脆弱性によって何が起こったか?
10.
© 2019 Synopsys,
Inc. 10 脆弱性を悪⽤されるサイバーインシデントは最⼤のビジネスリスク サイバーインシデントは最⼤のリスクに https://www.agcs.allianz.com/content/dam/onemarketing/agcs/agcs/reports/Allianz-Risk-Barometer-2019.pdf
11.
© 2019 Synopsys,
Inc. 11 プリンターのハッキング • 記事では、可能な攻撃について解説 • Shodanでインターネットからアクセス可能 なプリンターは「30,532ノード」; – 318@オーストラリア – 8910@⽶国 • 「PRET」を使えば、プリンターに保存され た⽂書にアクセスできる – https://www.youtube.com/watch?v=DwKzSO4yA_s • DoS攻撃含めたプリンターへの攻撃だけでな く、プリンターを介しての攻撃に悪⽤される ことが⼤きなリスク オフィスプリンターもホームプリンターもネットワークにつながっている https://www.csoonline.com/article/3502543/could-you-be-hacked-by-your-printer.html
12.
© 2019 Synopsys,
Inc. 12 URGENT/11、組み込みOSの致命的な脆弱性 医療機器にも⼤きな影響、FDA(⽶国⾷品医薬品局)が警告 https://www.fda.gov/news-events/press-announcements/fda-informs-patients-providers-and-manufacturers-about-potential-cybersecurity-vulnerabilities • 影響のあった組み込みOS – VxWorks (by Wind River) – Operating System Embedded (OSE) (by ENEA) – INTEGRITY (by GreenHills) – ThreadX (by Microsoft) – ITRON (by TRON) – ZebOS (by IP Infusion) • CVE⼀覧 – CVE-2019-12256、CVE-2019-12255、CVE- 2019-12260、CVE-2019-12261、CVE-2019- 12263、CVE-2019-12257 – CVE-2019-12258、CVE-2019-12262、CVE- 2019-12264、 CVE-2019-12259、CVE-2019- 12265
13.
© 2019 Synopsys,
Inc. 13 Ripple20、TCP/IPライブラリの重⼤な脆弱性 数億台の組み込み機器に影響 https://blog.kaspersky.co.jp/ripple20-vulnerabilities/28699/ • イスラエルのJSOF社が発⾒ – Black Hat USA, August 2020にて公開予定 • CVE⼀覧 – CVE-2020-11896〜11914(19個) • 影響のあるメーカーの⼀覧 – https://www.jsof-tech.com/ripple20/#ripple- whitepaper • ⽇本では図研エルミック社の「KASAGO」が 対象 – https://www.elwsc.co.jp/news/4136/
14.
© 2019 Synopsys,
Inc. 14 GDPR規制とIoT(ネットワーク化された機器) • GDPRは機器に対するセキュリティ対策を規定 していないが、個⼈情報取扱規程に準ずる必要 がある • Global Privacy Enforcement Networkの調査で は300台以上の機器から以下の課題が⾒つかっ た(2016年) – 59% は個⼈情報の取得、使⽤、開⽰の説明が不適 当 – 68% はデータ格納の説明が不適当 – 72% はデータの消去⽅法の説明が不適当 – 38% はプライバシーの懸念についての問い合わせ 先が⽰されていない • 違反した場合の制裁⾦ – 1000 万ユーロ以下、または、 直前の会計年度の 全世界の売上総額の2%以下の⾦額のいずれか⾼ 額の⽅ – https://www.ppc.go.jp/enforcement/infoprovision/laws/GDPR/ IoT化された機器が増えることで個⼈情報やデータ漏洩のリスクは増⼤している https://eugdprcompliant.com/internet-of-things-era-of-gdpr/
15.
© 2019 Synopsys,
Inc. 15 無償利⽤可能な静的解析ツール”Coverity scan”
16.
© 2019 Synopsys,
Inc. 16 そもそも静的解析ってなんだっけ? 静的解析とは、ソースコードを解析して以下 のことを調べる: • コーディング・エラー • セキュリティ上の問題 • テストが不⼗分な⾏、ファイル、関数
17.
© 2019 Synopsys,
Inc. 17 そもそも静的解析ってなんだっけ? 1. 最初に、コードをスキャン 2. 次に、呼び出しや依存関係を計算
18.
© 2019 Synopsys,
Inc. 18 そもそも静的解析ってなんだっけ? 3. 続いて、コード内のすべての可能なパスを計算 • ⾔語によるが、if-else、caseあるいはswitchなどによってパスが ノードとともに追加される 4.最後に、すべてのパスを通って⽋陥(バグ)を探す
19.
© 2019 Synopsys,
Inc. 19 • 例: char buf[10], cp_buf[10]; fgets(buf, 10, stdin); strcpy(cp_buf, buf); • ⼀部の関数の戻りを確認する必要がある。 • チェックに失敗すると、プログラムのクラッシュ、ハッカーによる深刻なセキュリティの悪⽤、 または意図しないプログラムの動作が発⽣する可能性がある。 主なバグ ‒ CHECKED_RETURN (11%) 静的解析でどんなことがわかるか? fgets()でエラーが発⽣した場合、 また、bufがnullで終了していない場合は 「バッファオーバーフロー」
20.
© 2019 Synopsys,
Inc. 20 静的解析でどんなことがわかるか? • デッドコードは、実⾏されないコードブロッ クがある場合に発⽣する。 • 開発者にプログラミングエラーがあり、その 原因となる条件がfalseであることが保証さ れていることがわかる。 • 開発者は誤った仮定をすることもできる。 主なバグ ‒ デッドコード
21.
© 2019 Synopsys,
Inc. 21 静的解析でどんなことがわかるか? • i2c_read()にエラーがあるとどうなるか? • チームは何が適切かについてどのように同意 するか? • bufは常に0x0に初期化されるか? CHECK_RETURN ‒ どのように処理するか(CID17995)
22.
© 2019 Synopsys,
Inc. 22 例えば、Pythonの開発者達は使っている • Coverityの静的コード分析はコードを実⾏せず、 代わりに、抽象的な解釈を使⽤して、コードの 制御フローとデータフローに関する情報を取得 する。 • プログラムが取る可能性のあるすべてのコード パスをたどることができる。 • たとえば、アナライザーは、malloc()が後で free()で解放する必要があるメモリを返すこと を理解している。 • すべての分岐と関数呼び出しをたどって、考え られるすべての組み合わせがメモリを解放する かどうかを確認する。 • アナライザーは、リソースリーク(メモリ、 ファイル記述⼦)、NULL逆参照、解放後の使 ⽤、未チェックの戻り値、デッドコード、バッ ファーオーバーフロー、整数オーバーフロー、 初期化されていない変数など、あらゆる種類の 問題を検出できる。 Coverity scanを使ってCコードを解析している https://devguide.python.org/coverity/
23.
© 2019 Synopsys,
Inc. 23 Coverity scanにアカウントを作成 webブラウザーでscan.coverity.comへアクセス https://scan.coverity.com/ アカウントを作るには、 右上の「Sign Up」ボタンをクリックする 名前、メール、パスワー ドを⼊⼒して「Sign Up」 をクリック GitHubのアカウントでもOK
24.
© 2019 Synopsys,
Inc. 24 プロジェクトを選択する “contributor” じゃないとスキャンできません! Coverity scanを使っているプロジェクト はここから選択できる 試しに”tomcat”を検索してみる
25.
© 2019 Synopsys,
Inc. 25 スキャンレポートを⾒てみる Tomcatのプロジェクトのスキャン結果レポート 検索結果の⼀覧から、 Apache Tomcatのプロジェクトのリンク(左端)を クリックしてレポートを表⽰ プロジェクトのスキャンをいつから始めた か、最後のスキャンしたビルド、⾔語、リ ポジトリなどの基礎情報
26.
© 2019 Synopsys,
Inc. 26 スキャンレポートを⾒てみる メトリクスは全体とコンポーネント毎で確認できる 対象バージョン、スキャンした⽇付、⾏数、バグ密度、 新たに発⾒されたバグ、総数、修正済みなど コンポーネントごとの⾏数やバグ密度
27.
© 2019 Synopsys,
Inc. 27 スキャンレポートを⾒てみる CWEトップ25ごと、コンポーネントごとの内訳 CWEのIDをクリックするとMITREのページ へジャンプ!
28.
© 2019 Synopsys,
Inc. 28 スキャンのためのビルドツールを使う • ⾔語を選択してビルドツールをダウンロード • ビルドツールでアップロード⽤のパッケージ を作成 – MacOSだと右の画⾯のようになる ビルドツールをダウンロードして環境を構築する
29.
© 2019 Synopsys,
Inc. 29 スキャンのためのビルドツールを使う ビルドツールをダウンロードして環境を構築する • パッケージの作成に成功したかどうか念のた めに”tail cov-int/build-log.txt”で確認してお く • ビルドで⽣成される”cov-int”の中⾝はこんな 感じ • ”cov-int“をzipで圧縮して出来上がり
30.
© 2019 Synopsys,
Inc. 30 スキャンのためのビルドツールを使う ビルドツールをダウンロードして環境を構築する • Coverity scanにビルドをアップロードするに は、マニュアルでやってみる – コマンドラインから⾃動実⾏もできる • ビルドの設定に失敗するとこのあと”failed” メールが⾶んでくる • ⾔語の指定やライセンスの種別の指定に注意 すること
31.
© 2019 Synopsys,
Inc. 31 スキャンのためのビルドツールを使う スキャン成功!バグを⾒てみよう • メトリクスを確認する • 最終解析⽇は2020年8⽉14⽇ • バグは11 • スキャンしたコードは7464⾏ • バグ密度は”1.48” • “View Defects”をクリックして詳細を確認
32.
© 2019 Synopsys,
Inc. 32 バグを確認する • 212175 DOM-ベース・XSS • 別のユーザーが表⽰またはアクセスしたWebペー ジ上で任意のJavaScriptを実⾏できます。セッ ションのハイジャック、DOMでの機密データの開 ⽰、キーボードとマウスのイベントの表⽰が可能 になる可能性があります。 • xmlHttp.onreadystatechange:信頼できないユー ザー提供のデータが、JavaScriptを実⾏できるコ ンテキストに挿⼊されます。(CWE-79) バグの詳細が表⽰される(ただし英語)
33.
© 2019 Synopsys,
Inc. 33 商⽤製品”Coverity“との⽐較
34.
© 2019 Synopsys,
Inc. 34 商⽤版Coverity v.s. 無償版Coverity scan • ⾔語サポートの豊富さ • フレームワークのサポート 当然のことながらできることに⼤きな差がある
35.
© 2019 Synopsys,
Inc. 35 商⽤版Coverityのメリット • 商⽤版はIDEから直接呼び出すことができる • もちろん各種コンパイラーをサポート • JenkinsでCI/CDパイプラインに統合可能 • JIRAなどと連動も容易 • CERT、MISRAなどのコーディング規約に基 づいたコーディングエラーも調べてくれる • もちろん、UIやヘルプなどのドキュメントも ⽇本語版が提供されている • 技術サポートが得られる(無償版にはないの で基本⾃⼰解決) IDEやJenkins、JIRAなどといった開発環境との統合が容易
36.
© 2019 Synopsys,
Inc. 36 まとめ
37.
© 2019 Synopsys,
Inc. 37 • そもそも静的解析は開発者の作業、コードがちゃんと書けているか教えてくれる – ⾃分の書いたコードが既知の脆弱性を抱えているかどうかを教えてくれる – コードレビューにかかる時間を劇的に短縮してくれる – 機能が正常に動作することをテストするものではないので、単体テストはもちろん必要 • 商⽤版の静的解析ツールを使ったことがないなら、Coverity scanのようなツールは便利 – でも、OSSにしか使⽤できないので、商⽤コードのスキャンはこれではできない • それでも、IDEから直接利⽤できるなど商⽤版のメリットは⼤きい – 業界ごとの規定や規制、認証制度などに沿ったコードの品質であることを⽰すためのチェッカーやレ ポート機能 – すぐに使える各種ツールとの連携の⾃動化機能 まとめ
Download