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
Submit search
EN
Uploaded by
Developers Summit
PDF, PPTX
2,087 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
Most read
3
/ 37
4
/ 37
5
/ 37
6
/ 37
7
/ 37
8
/ 37
9
/ 37
10
/ 37
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
ビジネスパーソンのためのDX入門講座エッセンス版
by
Tokoroten Nakayama
PDF
シリコンバレーの「何が」凄いのか
by
Atsushi Nakada
PDF
開発速度が速い #とは(LayerX社内資料)
by
mosa siru
PPTX
なぜコンピュータを学ばなければならないのか 21世紀の君主論
by
Tokoroten Nakayama
PDF
SAT/SMTソルバの仕組み
by
Masahiro Sakai
PPTX
DXとかDevOpsとかのなんかいい感じのやつ 富士通TechLive
by
Tokoroten Nakayama
PDF
CEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭する
by
Yoshifumi Kawai
PDF
分散トレーシング技術について(Open tracingやjaeger)
by
NTT Communications Technology Development
ビジネスパーソンのためのDX入門講座エッセンス版
by
Tokoroten Nakayama
シリコンバレーの「何が」凄いのか
by
Atsushi Nakada
開発速度が速い #とは(LayerX社内資料)
by
mosa siru
なぜコンピュータを学ばなければならないのか 21世紀の君主論
by
Tokoroten Nakayama
SAT/SMTソルバの仕組み
by
Masahiro Sakai
DXとかDevOpsとかのなんかいい感じのやつ 富士通TechLive
by
Tokoroten Nakayama
CEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭する
by
Yoshifumi Kawai
分散トレーシング技術について(Open tracingやjaeger)
by
NTT Communications Technology Development
What's hot
PDF
こわくない Git
by
Kota Saito
PDF
Agile Quality アジャイル品質パターン (QA2AQ)
by
Hironori Washizaki
PDF
IT系エンジニアのためのプレゼンテーション入門
by
Masahito Zembutsu
PDF
それはYAGNIか? それとも思考停止か?
by
Yoshitaka Kawashima
PDF
【Unite Tokyo 2019】今すぐ現場で覚えておきたい最適化技法 ~「ゲシュタルト・オーディン」開発における最適化事例~
by
UnityTechnologiesJapan002
PDF
テスト文字列に「うんこ」と入れるな
by
Kentaro Matsui
PDF
ソーシャルゲームのためのデータベース設計
by
Yoshinori Matsunobu
PDF
【メタサーベイ】数式ドリブン教師あり学習
by
cvpaper. challenge
PDF
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
by
Yahoo!デベロッパーネットワーク
PDF
より速く より運用しやすく 進化し続けるJVM(Java Developers Summit Online 2023 発表資料)
by
NTT DATA Technology & Innovation
PDF
Dockerイメージの理解とコンテナのライフサイクル
by
Masahito Zembutsu
PDF
これからSpringを使う開発者が知っておくべきこと
by
土岐 孝平
PDF
TLS, HTTP/2演習
by
shigeki_ohtsu
PDF
Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜
by
Preferred Networks
PPTX
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
by
NTT DATA Technology & Innovation
PDF
SQLインジェクション総”習”編
by
Yasuo Ohgaki
PPTX
ラボラトリーオートメーションのためのソフトウェア思想教育(非プログラマ―が知っておくべきプログラミングの本質)
by
Tokoroten Nakayama
PPTX
BuildKitによる高速でセキュアなイメージビルド
by
Akihiro Suda
PDF
LEANSTARTUPアンチパターン #devlove #leanstartup
by
Itsuki Kuroda
PDF
マイクロにしすぎた結果がこれだよ!
by
mosa siru
こわくない Git
by
Kota Saito
Agile Quality アジャイル品質パターン (QA2AQ)
by
Hironori Washizaki
IT系エンジニアのためのプレゼンテーション入門
by
Masahito Zembutsu
それはYAGNIか? それとも思考停止か?
by
Yoshitaka Kawashima
【Unite Tokyo 2019】今すぐ現場で覚えておきたい最適化技法 ~「ゲシュタルト・オーディン」開発における最適化事例~
by
UnityTechnologiesJapan002
テスト文字列に「うんこ」と入れるな
by
Kentaro Matsui
ソーシャルゲームのためのデータベース設計
by
Yoshinori Matsunobu
【メタサーベイ】数式ドリブン教師あり学習
by
cvpaper. challenge
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
by
Yahoo!デベロッパーネットワーク
より速く より運用しやすく 進化し続けるJVM(Java Developers Summit Online 2023 発表資料)
by
NTT DATA Technology & Innovation
Dockerイメージの理解とコンテナのライフサイクル
by
Masahito Zembutsu
これからSpringを使う開発者が知っておくべきこと
by
土岐 孝平
TLS, HTTP/2演習
by
shigeki_ohtsu
Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜
by
Preferred Networks
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
by
NTT DATA Technology & Innovation
SQLインジェクション総”習”編
by
Yasuo Ohgaki
ラボラトリーオートメーションのためのソフトウェア思想教育(非プログラマ―が知っておくべきプログラミングの本質)
by
Tokoroten Nakayama
BuildKitによる高速でセキュアなイメージビルド
by
Akihiro Suda
LEANSTARTUPアンチパターン #devlove #leanstartup
by
Itsuki Kuroda
マイクロにしすぎた結果がこれだよ!
by
mosa siru
Similar to 【B-4】オープンソース開発で、フリー静的解析ツールを使ってみる
PDF
なぜあなたのプロジェクトのDevSecOpsは形骸化するのか(CloudNative Security Conference 2022)
by
Masaya Tahara
PDF
GTMF 2015: バグを減らそう。テストを楽にしよう。静的解析が開発者を救う。 | 日本シノプシス合同会社
by
Game Tools & Middleware Forum
PDF
技術紹介: S2E: Selective Symbolic Execution Engine
by
Asuka Nakajima
PDF
これ以上ソースコードの負債を増やさないためにVisual Studioの静的解析とAzure PipelinesでCIを回す
by
Study Group by SciencePark Corp.
PDF
【B-6】Androidスマホの生体認証の脆弱性、調べてみたらよくある話だった。
by
Developers Summit
PPTX
静的解析ツールKlocwork によるCERT-C/CWE対応
by
Masaru Horioka
PPTX
Klocworkのご紹介
by
Masaru Horioka
PDF
デブサミ関西2013【A4】コード品質は曖昧なままか(安竹由起夫氏)
by
Developers Summit
PPTX
静的解析ツール Klocworkによる 機能安全規格への対応
by
Masaru Horioka
PDF
【14-E-3】セキュリティ・テストの自動化によるDevSecOpsの実現 (デモ有)
by
Developers Summit
PDF
[CB17] Trueseeing: Effective Dataflow Analysis over Dalvik Opcodes
by
CODE BLUE
PDF
IDAの脆弱性とBug Bounty by 千田 雅明
by
CODE BLUE
PDF
実行トレース間のデータの差異に基づくデータフロー解析手法の提案
by
Kamiya Toshihiro
PDF
Jenkins ユーザ・カンファレンス 2012 東京 S406-4/マルチステージ型継続的インテグレーションのすすめ
by
atsushi_tmx
PDF
2012-04-25 ASPLOS2012出張報告(公開版)
by
Takahiro Shinagawa
PPTX
Scis2015 ruo ando_2015-01-20-01
by
Ruo Ando
PPTX
Css2014 ruo ando_2014-10-23-01
by
Ruo Ando
PDF
debug_profile.pdf
by
Nariaki Tateiwa
PPTX
より良いコードを書くための
by
TATSUYA HAYAMIZU
PPTX
型チェックのアノテーションによる保守・運用の改善
by
gree_tech
なぜあなたのプロジェクトのDevSecOpsは形骸化するのか(CloudNative Security Conference 2022)
by
Masaya Tahara
GTMF 2015: バグを減らそう。テストを楽にしよう。静的解析が開発者を救う。 | 日本シノプシス合同会社
by
Game Tools & Middleware Forum
技術紹介: S2E: Selective Symbolic Execution Engine
by
Asuka Nakajima
これ以上ソースコードの負債を増やさないためにVisual Studioの静的解析とAzure PipelinesでCIを回す
by
Study Group by SciencePark Corp.
【B-6】Androidスマホの生体認証の脆弱性、調べてみたらよくある話だった。
by
Developers Summit
静的解析ツールKlocwork によるCERT-C/CWE対応
by
Masaru Horioka
Klocworkのご紹介
by
Masaru Horioka
デブサミ関西2013【A4】コード品質は曖昧なままか(安竹由起夫氏)
by
Developers Summit
静的解析ツール Klocworkによる 機能安全規格への対応
by
Masaru Horioka
【14-E-3】セキュリティ・テストの自動化によるDevSecOpsの実現 (デモ有)
by
Developers Summit
[CB17] Trueseeing: Effective Dataflow Analysis over Dalvik Opcodes
by
CODE BLUE
IDAの脆弱性とBug Bounty by 千田 雅明
by
CODE BLUE
実行トレース間のデータの差異に基づくデータフロー解析手法の提案
by
Kamiya Toshihiro
Jenkins ユーザ・カンファレンス 2012 東京 S406-4/マルチステージ型継続的インテグレーションのすすめ
by
atsushi_tmx
2012-04-25 ASPLOS2012出張報告(公開版)
by
Takahiro Shinagawa
Scis2015 ruo ando_2015-01-20-01
by
Ruo Ando
Css2014 ruo ando_2014-10-23-01
by
Ruo Ando
debug_profile.pdf
by
Nariaki Tateiwa
より良いコードを書くための
by
TATSUYA HAYAMIZU
型チェックのアノテーションによる保守・運用の改善
by
gree_tech
More from Developers Summit
PDF
【18-A-2】ゲーミフィケーション・エバンジェリストが見る「あなたの技術力が“ワクワクするサービス”に変わる未来」
by
Developers Summit
PDF
【13-B-6】Hondaの生産技術屋さんがソフトウェア開発でアジャイルを初導入し組織変革に挑戦
by
Developers Summit
PDF
【15-B-7】無意味なアラートからの脱却 ~ Datadogを使ってモダンなモニタリングを始めよう ~
by
Developers Summit
PDF
【15-A-1】ドラゴンクエストXを支える失敗事例
by
Developers Summit
PDF
【14-C-8】みんなの暮らしを支えるAmazon S3の裏側、お伝えします
by
Developers Summit
PDF
【15-C-L】婚活サービスにおけるシステム×サービスのイノベーション
by
Developers Summit
PDF
【15-E-7】セキュアな環境でDevOpsを実現する厳選ツール
by
Developers Summit
PDF
【A-1】AIを支えるGPUコンピューティングの今
by
Developers Summit
PDF
【B-2】AI時代におけるエンジニアの生存戦略
by
Developers Summit
PDF
【C-2】メモリも、僕のキャパシティも溢れっぱなし。。2年目エンジニアが実現した機械学習
by
Developers Summit
PDF
【C-2・醍醐様】AIとAPIがITインフラにもたらす変化 ~プログラマブルなクラウド型Wi-Fi~
by
Developers Summit
PDF
【A-2】とあるマーケティング部隊とデータエンジニアのデータドリブンへの道
by
Developers Summit
PDF
【B-2】AI時代のエンジニア生存戦略
by
Developers Summit
PDF
【B-5】モダンな開発を実現するツールチェーンのご紹介
by
Developers Summit
PDF
【15-A-5】ゲーミフィケーションエバンジェリストが説く、アプリ開発で見落としがちな「おもてなし」とは~面白さを伝える × 面白く魅せる~
by
Developers Summit
PDF
【15-E-7】セキュアな環境でDevOpsを実現する厳選ツール
by
Developers Summit
PDF
【C-2・小林様】AIとAPIがITインフラにもたらす変化 ~プログラマブルなクラウド型Wi-Fi~
by
Developers Summit
PDF
【14-C-7】コンピュータビジョンを支える深層学習技術の新潮流
by
Developers Summit
PDF
【B-2】福岡発Node.jsで支える大規模システム!〜「誰ガ為のアルケミスト」と歩んだ三年〜
by
Developers Summit
PDF
【15-D-2】デンソーのMaaS開発~アジャイル開発で顧客との協調・チームビルディング・実装概要~
by
Developers Summit
【18-A-2】ゲーミフィケーション・エバンジェリストが見る「あなたの技術力が“ワクワクするサービス”に変わる未来」
by
Developers Summit
【13-B-6】Hondaの生産技術屋さんがソフトウェア開発でアジャイルを初導入し組織変革に挑戦
by
Developers Summit
【15-B-7】無意味なアラートからの脱却 ~ Datadogを使ってモダンなモニタリングを始めよう ~
by
Developers Summit
【15-A-1】ドラゴンクエストXを支える失敗事例
by
Developers Summit
【14-C-8】みんなの暮らしを支えるAmazon S3の裏側、お伝えします
by
Developers Summit
【15-C-L】婚活サービスにおけるシステム×サービスのイノベーション
by
Developers Summit
【15-E-7】セキュアな環境でDevOpsを実現する厳選ツール
by
Developers Summit
【A-1】AIを支えるGPUコンピューティングの今
by
Developers Summit
【B-2】AI時代におけるエンジニアの生存戦略
by
Developers Summit
【C-2】メモリも、僕のキャパシティも溢れっぱなし。。2年目エンジニアが実現した機械学習
by
Developers Summit
【C-2・醍醐様】AIとAPIがITインフラにもたらす変化 ~プログラマブルなクラウド型Wi-Fi~
by
Developers Summit
【A-2】とあるマーケティング部隊とデータエンジニアのデータドリブンへの道
by
Developers Summit
【B-2】AI時代のエンジニア生存戦略
by
Developers Summit
【B-5】モダンな開発を実現するツールチェーンのご紹介
by
Developers Summit
【15-A-5】ゲーミフィケーションエバンジェリストが説く、アプリ開発で見落としがちな「おもてなし」とは~面白さを伝える × 面白く魅せる~
by
Developers Summit
【15-E-7】セキュアな環境でDevOpsを実現する厳選ツール
by
Developers Summit
【C-2・小林様】AIとAPIがITインフラにもたらす変化 ~プログラマブルなクラウド型Wi-Fi~
by
Developers Summit
【14-C-7】コンピュータビジョンを支える深層学習技術の新潮流
by
Developers Summit
【B-2】福岡発Node.jsで支える大規模システム!〜「誰ガ為のアルケミスト」と歩んだ三年〜
by
Developers Summit
【15-D-2】デンソーのMaaS開発~アジャイル開発で顧客との協調・チームビルディング・実装概要~
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