SlideShare una empresa de Scribd logo
1 de 47
© 2017 Synopsys, Inc. 1
品質と開発スピードの両立と、OSSのリスク低減策のご紹介
日本シノプシス
ソフトウェア・インテグリティ・グループ
シニアセールスエンジニア 吉井雅人
© 2017 Synopsys, Inc. 2
ゲーム開発における課題
•短期間で高品質なゲームをリリースしなければならない
–リリーススケジュールの遵守
–高品質
•OSSを適正に利用しなければならない
–OSSライセンスリスク
–OSS脆弱性
© 2017 Synopsys, Inc. 3
品質と開発スピードの両立のために
Coverity
© 2016 Synopsys, Inc. 4
バグはどこにあるでしょう?
int simple_example(int c) {
void *p = malloc(10);
if(c)
return -1;
/* ... */
free(p);
return 0;
}
© 2016 Synopsys, Inc. 5
バグはどこにあるでしょう?
#include <stdio.h>
void print(int srcId, int dstId){
printf("source Id is %d. n", srcId);
printf("destination Id is %d. n", dstId);
}
void test() {
int srcId = 1;
int dstId = 2;
print(dstId, srcId);
}
© 2017 Synopsys, Inc. 6
早期のバグ修正で後工程の手間を減らします
設計 開発 QA 製品リリース & 管理
5倍のコスト 10倍のコスト 30倍のコスト
Coverity
早い段階で不具合を除去
© 2017 Synopsys, Inc. 7
静的解析技術の種類
•パターンマッチング系
–バグに陥りやすい書き方を指摘
–予め定義したコーディングルールに対し違反がないかを確認
–PGRelief, QACなど
•ランタイムエラー検出系
–バグ自体を検出
–従来、実行時でないと確認できなかった、メモリリーク、データ破壊、データ競合など
を静的に検出
© 2016 Synopsys, Inc. 8
コードをより深く解析
• アプリケーション全体にわたって関数呼び
出しを追跡
• 人によるインスペクションではミスする複
雑な不具合を検出
• プログラムの目的を推測し、予期しない動作
を報告
int *p = myfunc(sizeof(int));
if(p != 0) p=&a;
...
int *p = myfunc(sizeof(int));
if(p != 0) p=&b;
int *p = myfunc(sizeof(int));
p=&c;
たぶん正しい
たぶん間違い
統計的な解析プロシージャ間解析&フルパス解析
© 2017 Synopsys, Inc. 9
Coverityがサポートする言語
言語 セキュリティ
チェッカー
2014 2015 2016 2017 2018
C/C++ ー
Java ○
C# ○
Objective-C ー
JavaScript ○
Python ○
PHP ○
Ruby ○(2018予定)
Fortran ー
Swift ○
Scala ー
VB.NET ー
© 2017 Synopsys, Inc. 10
Coverityがサポートするコンパイラ / 開発環境 (一部)
• Visual Studio
• GCC
• Clang
• PS4
• Nintendo Switch SDK
• Microsoft Xbox One
• Xcode
• Android Studio
• Unity(Visual Studioが必要)
• Unreal Engine
• Cocos-2d-x
など多数
© 2017 Synopsys, Inc. 11
C/C++
並列処理の問題
•デッドロック
•競合状態
パフォーマンスの低下
•メモリ・リーク
•スタックの使用度合い
クラッシュの原因
•Null ポインタの間接参照
•ポインタの解放後のメモリ使用
•二重解放
•配列の新規作成と削除の不一致
プログラムの不正な動作
•デッドコード
•未初期化変数
•負の変数の無効な使用
•コピー&ペーストのミス
•異なる分岐に対して同じコードを利用
セキュリティ上の脆弱性
•バッファ・オーバーフロー
Java
並列処理の問題
•デッドロック
•競合状態
パフォーマンス低下/スケーリングの制限
•リソース・リーク
•データベース接続リーク
クラッシュの原因
•Null の間接参照
プログラムの不正な動作
•デッドコード
•未初期化変数
•コピー&ペーストのミス
•異なる分岐に対して同じコードを利用
Webアプリケーションセキュリティ
•SQLインジェクション
•XSS
•CSRF
Androidセキュリティ
•Mobile IDの誤用
検出可能な不具合タイプ(一部)
© 2017 Synopsys, Inc. 12
JavaScript
クラッシュの原因
•Null の間接参照
プログラムの不正な動作
•デッドコード
•コピー&ペーストのミス
•異なる分岐に対して同じコードを利用
•識別子のタイポ
AngularJS
•AngularJS Express インジェクション
Webアプリケーションセキュリティ
•SQLインジェクション
•XSS
•CSRF
•センシティブなデータのリーク
•脆弱な暗号アルゴリズム
PHP / Python
クラッシュの原因
•Null の間接参照
プログラムの不正な動作
•デッドコード
•コピー&ペーストのミス
•異なる分岐に対して同じコードを利用
•識別子のタイポ
Webアプリケーションセキュリティ
•SQLインジェクション
•XSS
•CSRF
検出可能な不具合タイプ(一部)
© 2017 Synopsys, Inc. 17
開発者にやさしい、わかりやすい修正方法
• XSS の脆弱性は発生するコンテキストに応じて適切なエスケープ処理が変わります。
• どうすれば正しく直せるのでしょう?
HTML script タグ内の
JavaScript String 用の
エスケープが必要
HTML用のエスケープが必要
© 2017 Synopsys, Inc. 19
Coverity システムアーキテクチャ
ビルド 解析 コミット
発行リポジトリ
ビルド・解析サーバー
(Coverity Static Analysis)
不具合閲覧サーバー
(Coverity Connect)
Web サーバー
不具合データベース
クライアント
cov-analysis-<Platform>-<Version> cov-platform-<Platform>-<Version>
© 2017 Synopsys, Inc. 20
Coverity Connect
解析環境
Policy
Manager
コベリティ運用のベストプラクティス
解析環境
© 2017 Synopsys, Inc. 21
OSSのリスクの低減のために
Black Duck Hub
© 2017 Synopsys, Inc. 22
OSSの利用の広がり
© 2017 Synopsys, Inc. 23
OSSのリスク
• OSS部分の脆弱性を攻撃されるリスク
1.セキュリティ
• ライセンスの条件を遵守していない場合、最悪の
場合は訴訟に至る
ライセンス
• 活発に開発がされていないOSSコミュニテイでは、
脆弱性修正や新機能追加が行われないリスク
運用
© 2017 Synopsys, Inc. 24
OSSのセキュリティ脆弱性
0
1000
2000
3000
4000
5000
6000
1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017
New Open Source Vulnerabilities per Year
2017年に4898件の
脆弱性
© 2017 Synopsys, Inc. 25
ソフトウェアに含まれるOSSの脆弱性
のアプリケー
ションは既知
のOSS脆弱性
を含む
個々のアプリケーショ
ンに含まれるOSS脆弱
性の個数
Heartbleed, Poodle,
Freak, Drownを
含む割合
セキュリティ脆弱性
が深刻である割合
個々のアプリケー
ションに含まれる
OSSコンポーネント
の個数
セキュリティ脆弱
性の発見からの平
均経過年数
© 2017 Synopsys, Inc. 26
OSSの脆弱性への対応
• Heartbleed (2014年4月)
• 大部分の会社が2014年末までに修正対応
• 弊社監査サービスの結果
• 2015年末で10%のアプリに存在
• 2016年末で7%のアプリに存在
• Poodle (2014年10月)
• 大部分の会社が2014年末までに修正対応
• 2015年3月
• 某Anti Virusベンダーが修正対応
• 2016年12月
• 某銀行アプリが修正対応
© 2017 Synopsys, Inc. 27
OSSのリスクが顕在化した例
•Equifaxの例
–Apache Struts2の脆弱性が原因
–CVE-2017-5638
–1億4300万人の個人情報が流出
–訴訟多数
–CEO、CIO、CSOが辞任
© 2017 Synopsys, Inc. 28
OSSライセンスに対するよくある誤解
[誤解1]OSSは条件なく無償で使える
⇒無償で利用できるが、利用するためには条件がある
⇒条件はライセンスによる。様々な条件がある
⇒そのソフトウェアの著作権者が決定する
[誤解2]OSSは利用すると訴えられるので使わない
⇒条件を守って利用すれば全く問題ない
⇒現在のソフトウエア開発でOSSを使わないということは現実的ではない
⇒便利なOSSを使わないでいると開発スピードが遅くなり、競合他社に負ける
© 2017 Synopsys, Inc. 29
OSSライセンスに対する考え方
• OSSはOSSの著作者からのプレゼントである
• そのプレゼントをどのように使ってほしいか、著作者の思いを表現したものがライセンス
• プレゼントを利用する以上、ライセンスを遵守する必要がある
© 2017 Synopsys, Inc. 30
OSSライセンス概要
OSSライセンスの
類型
代表的な
ライセンス
利用時にユーザーがしなければならないこと
コピーレフト GPLv2
GPL v3
AGPL
• ライセンステキストの添付
• OSSのソースコードの開示
• OSSを改変した部分のソースコードの開示
• リンクした範囲のソースコードの開示
準コピーレフト LGPL 3, LGPL2.1
MPL 2.0
EPL
• ライセンステキストの添付
• OSSのソースコードの開示
• OSSを改変した部分のソースコードの開示
非コピーレフト BSD 2,3-clause
Apache 2.0
MIT License
• ライセンステキストの添付
© 2017 Synopsys, Inc. 31
OSSライセンス条件はいつ発動するのか
入手
•Webからダウンロード
修正
•ソースコード修正・改変
実行
•コンパイル後実行
頒布
•販売、提供
• 自家使用は頒布にならない
• ゲームソフトウェアは基本的に「配布」という行為が発生する
© 2017 Synopsys, Inc. 32
GPL違反発覚事例
https://japanese.engadget.com/2007/11/29/ico-gpl/
2007年11月のGPL違反事例。
これにより日本のゲーム業界にOSS管理の取り組みが
急速に広がる。
しかし、10年経ってこの教訓を知らない世代が増えて
いる現状がある。
© 2017 Synopsys, Inc. 33
OSS管理の課題
OSSを特定することが困難
• SDLC最終段階での集計
• バージョンの特定
• 多大な労力
OSSの一覧表を一覧表で管理
• 日々バージョンアップするOSS
• 精度の欠如、現実との乖離
• 依存関係の把握が困難
コストのかかるOSSコミュニティの監視
• 様々な情報源からの脆弱性情報入手
• ライセンスの変更を検知
• 人海戦術
© 2017 Synopsys, Inc. 34
OSS管理のために必要なこと
特定 管理 監視
© 2017 Synopsys, Inc. 35
特定
© 2017 Synopsys, Inc. 36
OSSの特定
• ファイルハッシュとフォルダ構造をKBと比較
apache-log4j-1.2.17
src
main
java
pattern
varia
xml
Appender.java 4 KB
Category.java 32 KB
Layout.java 7 KB
Logger.java 10 KB
LogManager.java 12 KB
フォルダ構造
ファイルサイズ
ファイル名
ファイル内容 (ハッシュ)
© 2017 Synopsys, Inc. 37
BlackDuck Hub アーキテクチャ
HTTPS
Open Source Detection
On-Premise
Black Duck
KnowledgeBase
Black Duck Datacenter
Hub Web Application
HTTPS
On-Premise / SaaS
© 2017 Synopsys, Inc. 38
Black Duck Hub ナレッジベース
15
Years of
OSS Activity
60
Security
Researchers
530
Terabytes
of Content
2M
Open Source Projects
(5M+ Releases)
Data Sources
9,000
2,500
License Types
100,000
Open Source
Vulnerabilities
Black Duck
KnowledgeBaseTM
© 2017 Synopsys, Inc. 39
管理
© 2017 Synopsys, Inc. 40
SDLCへの統合
© 2017 Synopsys, Inc. 41
© 2017 Synopsys, Inc. 42
© 2017 Synopsys, Inc. 43
© 2017 Synopsys, Inc. 44
監視
© 2017 Synopsys, Inc. 45
© 2017 Synopsys, Inc. 46
OSSコミュニティの状態を常に把握
© 2017 Synopsys, Inc. 47
OSSの脆弱性が発見された場合のリスク
National
Vulnerability
Database
脆弱性
発見
担当者による
脆弱性の把握
担当者による
脆弱性の修正
脆弱性情報
公開
攻撃者による
攻撃・侵入
攻撃されるリスクが存在
脆弱性
混入
© 2017 Synopsys, Inc. 48
Black Duck Hub: 新たに発見された脆弱性の通知
• Apache Struts 2 の脆弱性 (S2-045/CVE-2017-5638)
Black Duck Hubの顧客には脆弱
性情報公開の当日に通知
(2017年3月6日)
v2.3.5
脆弱性
混入
National
Vulnerability
Database
NVD
更新
担当者による
脆弱性の把握
2012年10月
攻撃コード
公開
2017年3月7日 2017年3月11日
v2.3.3
2
脆弱性情報
公開
2017年3月6日
担当者による
脆弱性の修正
!
VulnDB
© 2017 Synopsys, Inc. 49
通知された脆弱性への対応方法の示唆
© 2017 Synopsys, Inc. 50
OSS管理の課題とベストプラクティス
OSSを特定することが困難
• SDLC最終段階での集計
• バージョンの特定
• 多大な労力
OSSの一覧表の管理
• 日々バージョンアップするOSS
• 精度の欠如、現実との乖離
• 依存関係の把握が困難
コストのかかるOSSコミュニティの監視
• 様々な情報源からの脆弱性情報入手
• ライセンスの変更のフォロー
• 人海戦術
自動的なOSSの特定
• 巨大なOSSデータベース
• 高速かつ高精度の検知
• 開発段階でOSSを検知
最新の状態をBOMで管理
• SDLCへの統合
• ポリシー違反の有無
• コンポーネント
• バージョン
• 脆弱性
• ライセンス
自動的なOSSコミュニティの監視
• OSSコミュニティの動向を常に監視
• NVDに登録される前の脆弱性を通知
• 変更されたライセンスの自動的な通知
© 2017 Synopsys, Inc. 51
まとめ
•短期間で高品質なゲーム
をリリースしなければな
らない
–リリーススケジュールの
遵守
–高品質(不具合が少ない)
•OSSを適正に利用しなけ
ればならない
–OSSライセンスリスク
–OSS脆弱性
Coverity
BlackDuck Hub
Thank You

Más contenido relacionado

La actualidad más candente

クラウドコストを最適化せよ!マルチクラウド時代に届けるクラウド活用2.0
クラウドコストを最適化せよ!マルチクラウド時代に届けるクラウド活用2.0クラウドコストを最適化せよ!マルチクラウド時代に届けるクラウド活用2.0
クラウドコストを最適化せよ!マルチクラウド時代に届けるクラウド活用2.0
Tomohisa Koyanagi
 

La actualidad más candente (20)

The Usage and Patterns of MagicOnion
The Usage and Patterns of MagicOnionThe Usage and Patterns of MagicOnion
The Usage and Patterns of MagicOnion
 
CyberAgent における OSS の CI/CD 基盤開発 myshoes #CICD2021
CyberAgent における OSS の CI/CD 基盤開発 myshoes #CICD2021CyberAgent における OSS の CI/CD 基盤開発 myshoes #CICD2021
CyberAgent における OSS の CI/CD 基盤開発 myshoes #CICD2021
 
「龍が如く7 光と闇の行方」の自動テスト活用事例とテスト自動化チーム(仮)による若手育成の取り組みについて
「龍が如く7 光と闇の行方」の自動テスト活用事例とテスト自動化チーム(仮)による若手育成の取り組みについて「龍が如く7 光と闇の行方」の自動テスト活用事例とテスト自動化チーム(仮)による若手育成の取り組みについて
「龍が如く7 光と闇の行方」の自動テスト活用事例とテスト自動化チーム(仮)による若手育成の取り組みについて
 
Azure DevOps ハンズオン Vo.3 ~Delivery Plans を用いたプロジェクトのスケジュール管理~
Azure DevOps ハンズオン Vo.3 ~Delivery Plans を用いたプロジェクトのスケジュール管理~Azure DevOps ハンズオン Vo.3 ~Delivery Plans を用いたプロジェクトのスケジュール管理~
Azure DevOps ハンズオン Vo.3 ~Delivery Plans を用いたプロジェクトのスケジュール管理~
 
UnityのMultiplayサービスの得意な事
UnityのMultiplayサービスの得意な事UnityのMultiplayサービスの得意な事
UnityのMultiplayサービスの得意な事
 
ruby-ffiについてざっくり解説
ruby-ffiについてざっくり解説ruby-ffiについてざっくり解説
ruby-ffiについてざっくり解説
 
FlutterでBLEを
いい感じにする
FlutterでBLEを
いい感じにするFlutterでBLEを
いい感じにする
FlutterでBLEを
いい感じにする
 
Amazon EKS によるスマホゲームのバックエンド運用事例
Amazon EKS によるスマホゲームのバックエンド運用事例Amazon EKS によるスマホゲームのバックエンド運用事例
Amazon EKS によるスマホゲームのバックエンド運用事例
 
Unity PackageManagerを使う話。
Unity PackageManagerを使う話。Unity PackageManagerを使う話。
Unity PackageManagerを使う話。
 
C#×LLVM=アセンブラ!? 〜詳説・Burstコンパイラー〜
C#×LLVM=アセンブラ!? 〜詳説・Burstコンパイラー〜C#×LLVM=アセンブラ!? 〜詳説・Burstコンパイラー〜
C#×LLVM=アセンブラ!? 〜詳説・Burstコンパイラー〜
 
クラウドコストを最適化せよ!マルチクラウド時代に届けるクラウド活用2.0
クラウドコストを最適化せよ!マルチクラウド時代に届けるクラウド活用2.0クラウドコストを最適化せよ!マルチクラウド時代に届けるクラウド活用2.0
クラウドコストを最適化せよ!マルチクラウド時代に届けるクラウド活用2.0
 
DockerとPodmanの比較
DockerとPodmanの比較DockerとPodmanの比較
DockerとPodmanの比較
 
Google Cloud Game Servers 徹底入門 | 第 10 回 Google Cloud INSIDE Games & Apps Online
Google Cloud Game Servers 徹底入門 | 第 10 回 Google Cloud INSIDE Games & Apps OnlineGoogle Cloud Game Servers 徹底入門 | 第 10 回 Google Cloud INSIDE Games & Apps Online
Google Cloud Game Servers 徹底入門 | 第 10 回 Google Cloud INSIDE Games & Apps Online
 
Amazon Game Tech Night #20 ゲームバックエンド開発関連セッションのre:cap
Amazon Game Tech Night #20 ゲームバックエンド開発関連セッションのre:capAmazon Game Tech Night #20 ゲームバックエンド開発関連セッションのre:cap
Amazon Game Tech Night #20 ゲームバックエンド開発関連セッションのre:cap
 
20190604 Containerized MagicOnion on kubernetes with Observability with New R...
20190604 Containerized MagicOnion on kubernetes with Observability with New R...20190604 Containerized MagicOnion on kubernetes with Observability with New R...
20190604 Containerized MagicOnion on kubernetes with Observability with New R...
 
【CEDEC2017】Unityを使ったNintendo Switch™向けのタイトル開発・移植テクニック!!
【CEDEC2017】Unityを使ったNintendo Switch™向けのタイトル開発・移植テクニック!!【CEDEC2017】Unityを使ったNintendo Switch™向けのタイトル開発・移植テクニック!!
【CEDEC2017】Unityを使ったNintendo Switch™向けのタイトル開発・移植テクニック!!
 
アプリの鍵が消える時_Droid kaigi2018
アプリの鍵が消える時_Droid kaigi2018アプリの鍵が消える時_Droid kaigi2018
アプリの鍵が消える時_Droid kaigi2018
 
Google Cloud のネットワークとロードバランサ
Google Cloud のネットワークとロードバランサGoogle Cloud のネットワークとロードバランサ
Google Cloud のネットワークとロードバランサ
 
DeNAのサーバー"コード"レスアーキテクチャ
DeNAのサーバー"コード"レスアーキテクチャDeNAのサーバー"コード"レスアーキテクチャ
DeNAのサーバー"コード"レスアーキテクチャ
 
TLS, HTTP/2演習
TLS, HTTP/2演習TLS, HTTP/2演習
TLS, HTTP/2演習
 

Similar a 品質と開発スピードの両立と、OSSのリスク低減策のご紹介 / GTMF2019

Similar a 品質と開発スピードの両立と、OSSのリスク低減策のご紹介 / GTMF2019 (20)

Klocworkのご紹介
Klocworkのご紹介Klocworkのご紹介
Klocworkのご紹介
 
【B-6】Androidスマホの生体認証の脆弱性、調べてみたらよくある話だった。
【B-6】Androidスマホの生体認証の脆弱性、調べてみたらよくある話だった。【B-6】Androidスマホの生体認証の脆弱性、調べてみたらよくある話だった。
【B-6】Androidスマホの生体認証の脆弱性、調べてみたらよくある話だった。
 
What is tested by pre-launch (security) reports?
What is tested by pre-launch (security) reports?What is tested by pre-launch (security) reports?
What is tested by pre-launch (security) reports?
 
脆弱性スキャナVulsの紹介とMackerelメタデータと連携した脆弱性管理
脆弱性スキャナVulsの紹介とMackerelメタデータと連携した脆弱性管理脆弱性スキャナVulsの紹介とMackerelメタデータと連携した脆弱性管理
脆弱性スキャナVulsの紹介とMackerelメタデータと連携した脆弱性管理
 
脆弱性の探し方 ~発見と対応のノウハウ in NTTDATA~
脆弱性の探し方 ~発見と対応のノウハウ in NTTDATA~脆弱性の探し方 ~発見と対応のノウハウ in NTTDATA~
脆弱性の探し方 ~発見と対応のノウハウ in NTTDATA~
 
「開発者とセキュリティのお付き合い」5パターン
「開発者とセキュリティのお付き合い」5パターン「開発者とセキュリティのお付き合い」5パターン
「開発者とセキュリティのお付き合い」5パターン
 
【B-4】オープンソース開発で、フリー静的解析ツールを使ってみる
【B-4】オープンソース開発で、フリー静的解析ツールを使ってみる【B-4】オープンソース開発で、フリー静的解析ツールを使ってみる
【B-4】オープンソース開発で、フリー静的解析ツールを使ってみる
 
【14-E-3】セキュリティ・テストの自動化によるDevSecOpsの実現 (デモ有)
【14-E-3】セキュリティ・テストの自動化によるDevSecOpsの実現 (デモ有)【14-E-3】セキュリティ・テストの自動化によるDevSecOpsの実現 (デモ有)
【14-E-3】セキュリティ・テストの自動化によるDevSecOpsの実現 (デモ有)
 
リスクを低減するためのクラウド型OSS管理ツールOpenLogic および Zend PHP
リスクを低減するためのクラウド型OSS管理ツールOpenLogic および Zend PHPリスクを低減するためのクラウド型OSS管理ツールOpenLogic および Zend PHP
リスクを低減するためのクラウド型OSS管理ツールOpenLogic および Zend PHP
 
アプリ向け エラー・クラッシュ検知ツールの 運用品質について@Ques13th
アプリ向けエラー・クラッシュ検知ツールの運用品質について@Ques13thアプリ向けエラー・クラッシュ検知ツールの運用品質について@Ques13th
アプリ向け エラー・クラッシュ検知ツールの 運用品質について@Ques13th
 
Ibm watson api サービス
Ibm watson api サービスIbm watson api サービス
Ibm watson api サービス
 
[XP祭り2017][B-3(1)]DevOps時代のプロジェクトマネージメントを考えよう
[XP祭り2017][B-3(1)]DevOps時代のプロジェクトマネージメントを考えよう[XP祭り2017][B-3(1)]DevOps時代のプロジェクトマネージメントを考えよう
[XP祭り2017][B-3(1)]DevOps時代のプロジェクトマネージメントを考えよう
 
アプリリニューアルの際に意識した AndroidアプリらしさNewsPicksらしさとは
アプリリニューアルの際に意識した AndroidアプリらしさNewsPicksらしさとはアプリリニューアルの際に意識した AndroidアプリらしさNewsPicksらしさとは
アプリリニューアルの際に意識した AndroidアプリらしさNewsPicksらしさとは
 
RAD Studioで始めるマルチデバイス・クロスプラットフォーム開発ワークショップ
RAD Studioで始めるマルチデバイス・クロスプラットフォーム開発ワークショップRAD Studioで始めるマルチデバイス・クロスプラットフォーム開発ワークショップ
RAD Studioで始めるマルチデバイス・クロスプラットフォーム開発ワークショップ
 
【KSKアナリティクス】 RapidMiner 紹介 (short)
【KSKアナリティクス】 RapidMiner 紹介 (short)【KSKアナリティクス】 RapidMiner 紹介 (short)
【KSKアナリティクス】 RapidMiner 紹介 (short)
 
OSS+AWSでここまでできるDevSecOps (Security-JAWS第24回)
OSS+AWSでここまでできるDevSecOps (Security-JAWS第24回)OSS+AWSでここまでできるDevSecOps (Security-JAWS第24回)
OSS+AWSでここまでできるDevSecOps (Security-JAWS第24回)
 
アプリエンジニアでもできる閉域網構築のススメ!
アプリエンジニアでもできる閉域網構築のススメ!アプリエンジニアでもできる閉域網構築のススメ!
アプリエンジニアでもできる閉域網構築のススメ!
 
モバイルアプリケーション管理(MAM) 自社アプリ開発手法
モバイルアプリケーション管理(MAM)自社アプリ開発手法モバイルアプリケーション管理(MAM)自社アプリ開発手法
モバイルアプリケーション管理(MAM) 自社アプリ開発手法
 
SpotBugs(FindBugs)による 大規模ERPのコード品質改善
SpotBugs(FindBugs)による 大規模ERPのコード品質改善SpotBugs(FindBugs)による 大規模ERPのコード品質改善
SpotBugs(FindBugs)による 大規模ERPのコード品質改善
 
スタートアップが始める機械学習はじめの一歩
スタートアップが始める機械学習はじめの一歩スタートアップが始める機械学習はじめの一歩
スタートアップが始める機械学習はじめの一歩
 

Más de Game Tools & Middleware Forum

GTMF2016:Unreal Engine 4を利用した先進的なゲーム制作手法 The Unreal Way 2016 Epic Games Japan
GTMF2016:Unreal Engine 4を利用した先進的なゲーム制作手法 The Unreal Way 2016 Epic Games JapanGTMF2016:Unreal Engine 4を利用した先進的なゲーム制作手法 The Unreal Way 2016 Epic Games Japan
GTMF2016:Unreal Engine 4を利用した先進的なゲーム制作手法 The Unreal Way 2016 Epic Games Japan
Game Tools & Middleware Forum
 

Más de Game Tools & Middleware Forum (20)

UMLの本当の価値を知っていますか?ツールで引き出すその真価! /GTMF2019
UMLの本当の価値を知っていますか?ツールで引き出すその真価! /GTMF2019UMLの本当の価値を知っていますか?ツールで引き出すその真価! /GTMF2019
UMLの本当の価値を知っていますか?ツールで引き出すその真価! /GTMF2019
 
GTMF2016:Unreal Engine 4を利用した先進的なゲーム制作手法 The Unreal Way 2016 Epic Games Japan
GTMF2016:Unreal Engine 4を利用した先進的なゲーム制作手法 The Unreal Way 2016 Epic Games JapanGTMF2016:Unreal Engine 4を利用した先進的なゲーム制作手法 The Unreal Way 2016 Epic Games Japan
GTMF2016:Unreal Engine 4を利用した先進的なゲーム制作手法 The Unreal Way 2016 Epic Games Japan
 
Webで3Dモデルはどう扱う?PlayCanvas:3Dモデルディープダイブ+新機能紹介!
Webで3Dモデルはどう扱う?PlayCanvas:3Dモデルディープダイブ+新機能紹介!Webで3Dモデルはどう扱う?PlayCanvas:3Dモデルディープダイブ+新機能紹介!
Webで3Dモデルはどう扱う?PlayCanvas:3Dモデルディープダイブ+新機能紹介!
 
「Brushup」が4,000社以上のお客様に活用される理由
「Brushup」が4,000社以上のお客様に活用される理由「Brushup」が4,000社以上のお客様に活用される理由
「Brushup」が4,000社以上のお客様に活用される理由
 
Unreal Engine 4の2019年上半期アップデート情報まとめ / GTMF 2019
Unreal Engine 4の2019年上半期アップデート情報まとめ / GTMF 2019Unreal Engine 4の2019年上半期アップデート情報まとめ / GTMF 2019
Unreal Engine 4の2019年上半期アップデート情報まとめ / GTMF 2019
 
3Dアセット作成とリテイク:制作ツールとしてのVR導入のすゝめ / GTMF2019
3Dアセット作成とリテイク:制作ツールとしてのVR導入のすゝめ / GTMF20193Dアセット作成とリテイク:制作ツールとしてのVR導入のすゝめ / GTMF2019
3Dアセット作成とリテイク:制作ツールとしてのVR導入のすゝめ / GTMF2019
 
Game Server Services ではじめる サーバー開発運用しないゲーム開発 /GTMF2019
Game Server Services ではじめる サーバー開発運用しないゲーム開発 /GTMF2019Game Server Services ではじめる サーバー開発運用しないゲーム開発 /GTMF2019
Game Server Services ではじめる サーバー開発運用しないゲーム開発 /GTMF2019
 
イマドキの改善!データ分析SDK導入のポイントとAI活用最新事例 / GTMF2019
イマドキの改善!データ分析SDK導入のポイントとAI活用最新事例 / GTMF2019イマドキの改善!データ分析SDK導入のポイントとAI活用最新事例 / GTMF2019
イマドキの改善!データ分析SDK導入のポイントとAI活用最新事例 / GTMF2019
 
Python / BlueprintによるUnreal Engineの自動化 / GTMF2019
Python / BlueprintによるUnreal Engineの自動化 / GTMF2019Python / BlueprintによるUnreal Engineの自動化 / GTMF2019
Python / BlueprintによるUnreal Engineの自動化 / GTMF2019
 
「禍つヴァールハイト」のハイスペックサウンド演出とは? / GTMF2019
「禍つヴァールハイト」のハイスペックサウンド演出とは? / GTMF2019「禍つヴァールハイト」のハイスペックサウンド演出とは? / GTMF2019
「禍つヴァールハイト」のハイスペックサウンド演出とは? / GTMF2019
 
アマゾンのゲーム関連ソリューションを活用してゲームの開発力・商品力の底上げを! / GTMF2019
アマゾンのゲーム関連ソリューションを活用してゲームの開発力・商品力の底上げを! / GTMF2019アマゾンのゲーム関連ソリューションを活用してゲームの開発力・商品力の底上げを! / GTMF2019
アマゾンのゲーム関連ソリューションを活用してゲームの開発力・商品力の底上げを! / GTMF2019
 
CRIWARE 最新情報 ~UE4 Editor × ADX2で加速するサウンドデザイン~ / GTMF2019
CRIWARE 最新情報 ~UE4 Editor × ADX2で加速するサウンドデザイン~ / GTMF2019CRIWARE 最新情報 ~UE4 Editor × ADX2で加速するサウンドデザイン~ / GTMF2019
CRIWARE 最新情報 ~UE4 Editor × ADX2で加速するサウンドデザイン~ / GTMF2019
 
SpriteStudio Ver.6.x 移行事例紹介(2) /GTMF2019
SpriteStudio Ver.6.x 移行事例紹介(2) /GTMF2019SpriteStudio Ver.6.x 移行事例紹介(2) /GTMF2019
SpriteStudio Ver.6.x 移行事例紹介(2) /GTMF2019
 
Linux も動く Microsoft Azure HoloLens にも対応した次世代マルチプレイミドルウェア〜モノビットエンジンクラウド〜にて採用した...
Linux も動く Microsoft Azure HoloLens にも対応した次世代マルチプレイミドルウェア〜モノビットエンジンクラウド〜にて採用した...Linux も動く Microsoft Azure HoloLens にも対応した次世代マルチプレイミドルウェア〜モノビットエンジンクラウド〜にて採用した...
Linux も動く Microsoft Azure HoloLens にも対応した次世代マルチプレイミドルウェア〜モノビットエンジンクラウド〜にて採用した...
 
『Brushup』で2D、3D、音楽の爆速フィードバック! - Brushup - GTMF 2018 OSAKA / TOKYO
『Brushup』で2D、3D、音楽の爆速フィードバック! - Brushup - GTMF 2018 OSAKA / TOKYO『Brushup』で2D、3D、音楽の爆速フィードバック! - Brushup - GTMF 2018 OSAKA / TOKYO
『Brushup』で2D、3D、音楽の爆速フィードバック! - Brushup - GTMF 2018 OSAKA / TOKYO
 
最新事例で学ぶ!ユーザをファンにするカスタマーサポート運用術 - 株式会社ラクス - GTMF 2018 OSAKA / TOKYO
最新事例で学ぶ!ユーザをファンにするカスタマーサポート運用術 - 株式会社ラクス - GTMF 2018 OSAKA / TOKYO最新事例で学ぶ!ユーザをファンにするカスタマーサポート運用術 - 株式会社ラクス - GTMF 2018 OSAKA / TOKYO
最新事例で学ぶ!ユーザをファンにするカスタマーサポート運用術 - 株式会社ラクス - GTMF 2018 OSAKA / TOKYO
 
IncrediBuildでビルド時間を最大90%短縮! - インクレディビルドジャパン株式会社 - GTMF 2018 OSAKA
IncrediBuildでビルド時間を最大90%短縮! - インクレディビルドジャパン株式会社 - GTMF 2018 OSAKAIncrediBuildでビルド時間を最大90%短縮! - インクレディビルドジャパン株式会社 - GTMF 2018 OSAKA
IncrediBuildでビルド時間を最大90%短縮! - インクレディビルドジャパン株式会社 - GTMF 2018 OSAKA
 
IncrediBuildでビルド時間を最大90%短縮! - インクレディビルドジャパン株式会社 - GTMF 2018 TOKYO
IncrediBuildでビルド時間を最大90%短縮! - インクレディビルドジャパン株式会社 - GTMF 2018 TOKYOIncrediBuildでビルド時間を最大90%短縮! - インクレディビルドジャパン株式会社 - GTMF 2018 TOKYO
IncrediBuildでビルド時間を最大90%短縮! - インクレディビルドジャパン株式会社 - GTMF 2018 TOKYO
 
ミドルウェア「AXIP」ロードマップ2018 - AXIP - GTMF 2018 OSAKA / TOKYO
ミドルウェア「AXIP」ロードマップ2018 - AXIP - GTMF 2018 OSAKA / TOKYOミドルウェア「AXIP」ロードマップ2018 - AXIP - GTMF 2018 OSAKA / TOKYO
ミドルウェア「AXIP」ロードマップ2018 - AXIP - GTMF 2018 OSAKA / TOKYO
 
これからのカスタマーサポートのカタチ ~AIチャットボットの仕組と実績のご紹介~ - 株式会社SHIFT PLUS - GTMF 2018 OSAKA /...
これからのカスタマーサポートのカタチ ~AIチャットボットの仕組と実績のご紹介~ - 株式会社SHIFT PLUS - GTMF 2018 OSAKA /...これからのカスタマーサポートのカタチ ~AIチャットボットの仕組と実績のご紹介~ - 株式会社SHIFT PLUS - GTMF 2018 OSAKA /...
これからのカスタマーサポートのカタチ ~AIチャットボットの仕組と実績のご紹介~ - 株式会社SHIFT PLUS - GTMF 2018 OSAKA /...
 

Último

Último (10)

論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 

品質と開発スピードの両立と、OSSのリスク低減策のご紹介 / GTMF2019

  • 1. © 2017 Synopsys, Inc. 1 品質と開発スピードの両立と、OSSのリスク低減策のご紹介 日本シノプシス ソフトウェア・インテグリティ・グループ シニアセールスエンジニア 吉井雅人
  • 2. © 2017 Synopsys, Inc. 2 ゲーム開発における課題 •短期間で高品質なゲームをリリースしなければならない –リリーススケジュールの遵守 –高品質 •OSSを適正に利用しなければならない –OSSライセンスリスク –OSS脆弱性
  • 3. © 2017 Synopsys, Inc. 3 品質と開発スピードの両立のために Coverity
  • 4. © 2016 Synopsys, Inc. 4 バグはどこにあるでしょう? int simple_example(int c) { void *p = malloc(10); if(c) return -1; /* ... */ free(p); return 0; }
  • 5. © 2016 Synopsys, Inc. 5 バグはどこにあるでしょう? #include <stdio.h> void print(int srcId, int dstId){ printf("source Id is %d. n", srcId); printf("destination Id is %d. n", dstId); } void test() { int srcId = 1; int dstId = 2; print(dstId, srcId); }
  • 6. © 2017 Synopsys, Inc. 6 早期のバグ修正で後工程の手間を減らします 設計 開発 QA 製品リリース & 管理 5倍のコスト 10倍のコスト 30倍のコスト Coverity 早い段階で不具合を除去
  • 7. © 2017 Synopsys, Inc. 7 静的解析技術の種類 •パターンマッチング系 –バグに陥りやすい書き方を指摘 –予め定義したコーディングルールに対し違反がないかを確認 –PGRelief, QACなど •ランタイムエラー検出系 –バグ自体を検出 –従来、実行時でないと確認できなかった、メモリリーク、データ破壊、データ競合など を静的に検出
  • 8. © 2016 Synopsys, Inc. 8 コードをより深く解析 • アプリケーション全体にわたって関数呼び 出しを追跡 • 人によるインスペクションではミスする複 雑な不具合を検出 • プログラムの目的を推測し、予期しない動作 を報告 int *p = myfunc(sizeof(int)); if(p != 0) p=&a; ... int *p = myfunc(sizeof(int)); if(p != 0) p=&b; int *p = myfunc(sizeof(int)); p=&c; たぶん正しい たぶん間違い 統計的な解析プロシージャ間解析&フルパス解析
  • 9. © 2017 Synopsys, Inc. 9 Coverityがサポートする言語 言語 セキュリティ チェッカー 2014 2015 2016 2017 2018 C/C++ ー Java ○ C# ○ Objective-C ー JavaScript ○ Python ○ PHP ○ Ruby ○(2018予定) Fortran ー Swift ○ Scala ー VB.NET ー
  • 10. © 2017 Synopsys, Inc. 10 Coverityがサポートするコンパイラ / 開発環境 (一部) • Visual Studio • GCC • Clang • PS4 • Nintendo Switch SDK • Microsoft Xbox One • Xcode • Android Studio • Unity(Visual Studioが必要) • Unreal Engine • Cocos-2d-x など多数
  • 11. © 2017 Synopsys, Inc. 11 C/C++ 並列処理の問題 •デッドロック •競合状態 パフォーマンスの低下 •メモリ・リーク •スタックの使用度合い クラッシュの原因 •Null ポインタの間接参照 •ポインタの解放後のメモリ使用 •二重解放 •配列の新規作成と削除の不一致 プログラムの不正な動作 •デッドコード •未初期化変数 •負の変数の無効な使用 •コピー&ペーストのミス •異なる分岐に対して同じコードを利用 セキュリティ上の脆弱性 •バッファ・オーバーフロー Java 並列処理の問題 •デッドロック •競合状態 パフォーマンス低下/スケーリングの制限 •リソース・リーク •データベース接続リーク クラッシュの原因 •Null の間接参照 プログラムの不正な動作 •デッドコード •未初期化変数 •コピー&ペーストのミス •異なる分岐に対して同じコードを利用 Webアプリケーションセキュリティ •SQLインジェクション •XSS •CSRF Androidセキュリティ •Mobile IDの誤用 検出可能な不具合タイプ(一部)
  • 12. © 2017 Synopsys, Inc. 12 JavaScript クラッシュの原因 •Null の間接参照 プログラムの不正な動作 •デッドコード •コピー&ペーストのミス •異なる分岐に対して同じコードを利用 •識別子のタイポ AngularJS •AngularJS Express インジェクション Webアプリケーションセキュリティ •SQLインジェクション •XSS •CSRF •センシティブなデータのリーク •脆弱な暗号アルゴリズム PHP / Python クラッシュの原因 •Null の間接参照 プログラムの不正な動作 •デッドコード •コピー&ペーストのミス •異なる分岐に対して同じコードを利用 •識別子のタイポ Webアプリケーションセキュリティ •SQLインジェクション •XSS •CSRF 検出可能な不具合タイプ(一部)
  • 13. © 2017 Synopsys, Inc. 17 開発者にやさしい、わかりやすい修正方法 • XSS の脆弱性は発生するコンテキストに応じて適切なエスケープ処理が変わります。 • どうすれば正しく直せるのでしょう? HTML script タグ内の JavaScript String 用の エスケープが必要 HTML用のエスケープが必要
  • 14. © 2017 Synopsys, Inc. 19 Coverity システムアーキテクチャ ビルド 解析 コミット 発行リポジトリ ビルド・解析サーバー (Coverity Static Analysis) 不具合閲覧サーバー (Coverity Connect) Web サーバー 不具合データベース クライアント cov-analysis-<Platform>-<Version> cov-platform-<Platform>-<Version>
  • 15. © 2017 Synopsys, Inc. 20 Coverity Connect 解析環境 Policy Manager コベリティ運用のベストプラクティス 解析環境
  • 16. © 2017 Synopsys, Inc. 21 OSSのリスクの低減のために Black Duck Hub
  • 17. © 2017 Synopsys, Inc. 22 OSSの利用の広がり
  • 18. © 2017 Synopsys, Inc. 23 OSSのリスク • OSS部分の脆弱性を攻撃されるリスク 1.セキュリティ • ライセンスの条件を遵守していない場合、最悪の 場合は訴訟に至る ライセンス • 活発に開発がされていないOSSコミュニテイでは、 脆弱性修正や新機能追加が行われないリスク 運用
  • 19. © 2017 Synopsys, Inc. 24 OSSのセキュリティ脆弱性 0 1000 2000 3000 4000 5000 6000 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 New Open Source Vulnerabilities per Year 2017年に4898件の 脆弱性
  • 20. © 2017 Synopsys, Inc. 25 ソフトウェアに含まれるOSSの脆弱性 のアプリケー ションは既知 のOSS脆弱性 を含む 個々のアプリケーショ ンに含まれるOSS脆弱 性の個数 Heartbleed, Poodle, Freak, Drownを 含む割合 セキュリティ脆弱性 が深刻である割合 個々のアプリケー ションに含まれる OSSコンポーネント の個数 セキュリティ脆弱 性の発見からの平 均経過年数
  • 21. © 2017 Synopsys, Inc. 26 OSSの脆弱性への対応 • Heartbleed (2014年4月) • 大部分の会社が2014年末までに修正対応 • 弊社監査サービスの結果 • 2015年末で10%のアプリに存在 • 2016年末で7%のアプリに存在 • Poodle (2014年10月) • 大部分の会社が2014年末までに修正対応 • 2015年3月 • 某Anti Virusベンダーが修正対応 • 2016年12月 • 某銀行アプリが修正対応
  • 22. © 2017 Synopsys, Inc. 27 OSSのリスクが顕在化した例 •Equifaxの例 –Apache Struts2の脆弱性が原因 –CVE-2017-5638 –1億4300万人の個人情報が流出 –訴訟多数 –CEO、CIO、CSOが辞任
  • 23. © 2017 Synopsys, Inc. 28 OSSライセンスに対するよくある誤解 [誤解1]OSSは条件なく無償で使える ⇒無償で利用できるが、利用するためには条件がある ⇒条件はライセンスによる。様々な条件がある ⇒そのソフトウェアの著作権者が決定する [誤解2]OSSは利用すると訴えられるので使わない ⇒条件を守って利用すれば全く問題ない ⇒現在のソフトウエア開発でOSSを使わないということは現実的ではない ⇒便利なOSSを使わないでいると開発スピードが遅くなり、競合他社に負ける
  • 24. © 2017 Synopsys, Inc. 29 OSSライセンスに対する考え方 • OSSはOSSの著作者からのプレゼントである • そのプレゼントをどのように使ってほしいか、著作者の思いを表現したものがライセンス • プレゼントを利用する以上、ライセンスを遵守する必要がある
  • 25. © 2017 Synopsys, Inc. 30 OSSライセンス概要 OSSライセンスの 類型 代表的な ライセンス 利用時にユーザーがしなければならないこと コピーレフト GPLv2 GPL v3 AGPL • ライセンステキストの添付 • OSSのソースコードの開示 • OSSを改変した部分のソースコードの開示 • リンクした範囲のソースコードの開示 準コピーレフト LGPL 3, LGPL2.1 MPL 2.0 EPL • ライセンステキストの添付 • OSSのソースコードの開示 • OSSを改変した部分のソースコードの開示 非コピーレフト BSD 2,3-clause Apache 2.0 MIT License • ライセンステキストの添付
  • 26. © 2017 Synopsys, Inc. 31 OSSライセンス条件はいつ発動するのか 入手 •Webからダウンロード 修正 •ソースコード修正・改変 実行 •コンパイル後実行 頒布 •販売、提供 • 自家使用は頒布にならない • ゲームソフトウェアは基本的に「配布」という行為が発生する
  • 27. © 2017 Synopsys, Inc. 32 GPL違反発覚事例 https://japanese.engadget.com/2007/11/29/ico-gpl/ 2007年11月のGPL違反事例。 これにより日本のゲーム業界にOSS管理の取り組みが 急速に広がる。 しかし、10年経ってこの教訓を知らない世代が増えて いる現状がある。
  • 28. © 2017 Synopsys, Inc. 33 OSS管理の課題 OSSを特定することが困難 • SDLC最終段階での集計 • バージョンの特定 • 多大な労力 OSSの一覧表を一覧表で管理 • 日々バージョンアップするOSS • 精度の欠如、現実との乖離 • 依存関係の把握が困難 コストのかかるOSSコミュニティの監視 • 様々な情報源からの脆弱性情報入手 • ライセンスの変更を検知 • 人海戦術
  • 29. © 2017 Synopsys, Inc. 34 OSS管理のために必要なこと 特定 管理 監視
  • 30. © 2017 Synopsys, Inc. 35 特定
  • 31. © 2017 Synopsys, Inc. 36 OSSの特定 • ファイルハッシュとフォルダ構造をKBと比較 apache-log4j-1.2.17 src main java pattern varia xml Appender.java 4 KB Category.java 32 KB Layout.java 7 KB Logger.java 10 KB LogManager.java 12 KB フォルダ構造 ファイルサイズ ファイル名 ファイル内容 (ハッシュ)
  • 32. © 2017 Synopsys, Inc. 37 BlackDuck Hub アーキテクチャ HTTPS Open Source Detection On-Premise Black Duck KnowledgeBase Black Duck Datacenter Hub Web Application HTTPS On-Premise / SaaS
  • 33. © 2017 Synopsys, Inc. 38 Black Duck Hub ナレッジベース 15 Years of OSS Activity 60 Security Researchers 530 Terabytes of Content 2M Open Source Projects (5M+ Releases) Data Sources 9,000 2,500 License Types 100,000 Open Source Vulnerabilities Black Duck KnowledgeBaseTM
  • 34. © 2017 Synopsys, Inc. 39 管理
  • 35. © 2017 Synopsys, Inc. 40 SDLCへの統合
  • 36. © 2017 Synopsys, Inc. 41
  • 37. © 2017 Synopsys, Inc. 42
  • 38. © 2017 Synopsys, Inc. 43
  • 39. © 2017 Synopsys, Inc. 44 監視
  • 40. © 2017 Synopsys, Inc. 45
  • 41. © 2017 Synopsys, Inc. 46 OSSコミュニティの状態を常に把握
  • 42. © 2017 Synopsys, Inc. 47 OSSの脆弱性が発見された場合のリスク National Vulnerability Database 脆弱性 発見 担当者による 脆弱性の把握 担当者による 脆弱性の修正 脆弱性情報 公開 攻撃者による 攻撃・侵入 攻撃されるリスクが存在 脆弱性 混入
  • 43. © 2017 Synopsys, Inc. 48 Black Duck Hub: 新たに発見された脆弱性の通知 • Apache Struts 2 の脆弱性 (S2-045/CVE-2017-5638) Black Duck Hubの顧客には脆弱 性情報公開の当日に通知 (2017年3月6日) v2.3.5 脆弱性 混入 National Vulnerability Database NVD 更新 担当者による 脆弱性の把握 2012年10月 攻撃コード 公開 2017年3月7日 2017年3月11日 v2.3.3 2 脆弱性情報 公開 2017年3月6日 担当者による 脆弱性の修正 ! VulnDB
  • 44. © 2017 Synopsys, Inc. 49 通知された脆弱性への対応方法の示唆
  • 45. © 2017 Synopsys, Inc. 50 OSS管理の課題とベストプラクティス OSSを特定することが困難 • SDLC最終段階での集計 • バージョンの特定 • 多大な労力 OSSの一覧表の管理 • 日々バージョンアップするOSS • 精度の欠如、現実との乖離 • 依存関係の把握が困難 コストのかかるOSSコミュニティの監視 • 様々な情報源からの脆弱性情報入手 • ライセンスの変更のフォロー • 人海戦術 自動的なOSSの特定 • 巨大なOSSデータベース • 高速かつ高精度の検知 • 開発段階でOSSを検知 最新の状態をBOMで管理 • SDLCへの統合 • ポリシー違反の有無 • コンポーネント • バージョン • 脆弱性 • ライセンス 自動的なOSSコミュニティの監視 • OSSコミュニティの動向を常に監視 • NVDに登録される前の脆弱性を通知 • 変更されたライセンスの自動的な通知
  • 46. © 2017 Synopsys, Inc. 51 まとめ •短期間で高品質なゲーム をリリースしなければな らない –リリーススケジュールの 遵守 –高品質(不具合が少ない) •OSSを適正に利用しなけ ればならない –OSSライセンスリスク –OSS脆弱性 Coverity BlackDuck Hub

Notas del editor

  1. 11050
  2. 17666 13056
  3. セキュリティチェッカーの列を追加
  4. 一覧表ベースでは依存しているOSSはわからない。
  5. 一覧表ベースでは依存しているOSSはわからない。