SlideShare a Scribd company logo
1 of 53
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
DeNA Technology Conference 2016
DeNAのセキュリティの取り組みと、スマート
フォンセキュリティ(Same-Origin Policy)
株式会社ディー・エヌ・エー
システム本部セキュリティ部
セキュリティ技術グループ
杉山俊春
1
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
自己紹介
 会社
⁃ 株式会社ディー・エヌ・エー
• システム本部 セキュリティ部 セキュリティ技術グループ
 名前
⁃ 杉山 俊春 (はるぷ, @harupuxa)
 属性
⁃ セキュリティ
⁃ プログラマー
⁃ イラストレーター
⁃ ラテアート
⁃ 猫
2
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
自己紹介 – べつやくメソッド
3
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
自己紹介 –最近書いたセキュリティ記事
 2014.04.15
⁃ 巷を賑わすHeartbleedの脆弱性とは?!
• http://developers.mobage.jp/blog/2014/4/15/heartbleed
 2014.07.03
⁃ 不正なJSONデータによるSQL Injectionへの対策について
(Json.pm+SQLクエリビルダー)
• http://developers.mobage.jp/blog/2014/7/3/jsonsql-injection
 2014.10.23
⁃ SSL v3.0の脆弱性「POODLE」ってかわいい名前だけど何?? -
Padding Oracle On Downgraded Legacy Encryptionの仕組み –
• http://developers.mobage.jp/blog/poodle
 2015.06.15
⁃ 脆弱性ってどういうものなの? - AFNetworkingにおけるSSL証明
書検証不備の脆弱性 –
• http://developers.mobage.jp/blog/2015/afnetworkingssl
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
自己紹介 - 最近公開された脆弱性報告
 2015/06/25
⁃ namshi/jose におけるトークンの署名検証回避の脆弱性 (CVE-2015-2964)
• https://jvn.jp/jp/JVN25336719/
 2015/06/03
⁃ F21 製 JWT におけるトークンの署名検証回避の脆弱性 (CVE-2015-2951)
• http://jvn.jp/jp/JVN06120222/
 2015/05/27
⁃ Apache Sling の Sling API コンポーネントおよび Servlets Post コンポーネ
ントにおけるクロスサイトスクリプティングの脆弱性 (CVE-2015-2944)
• http://jvn.jp/jp/JVN61328139/
 2014/12/9
⁃ Security updates available for Adobe Flash Player - circumvent the
same-origin policy (CVE-2014-0580).
• https://helpx.adobe.com/security/products/flash-player/apsb14-27.html
 2014/09/25
⁃ iOS 版 jigbrowser+ における同一生成元ポリシー回避の脆弱性 (CVE-2014-
5318)
• http://jvn.jp/jp/JVN80531230/index.html
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
Agenda
 お仕事紹介
⁃ ゲームにおけるチート、不正行為への対策
 脆弱性のお話
⁃ Apache/IIS/iOS UIWebView/SOP Bypass/Android
6
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
ゲームにおけるチート、不正行為への対策
7
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
ゲームにおけるチート、不正行為 - チートとは -
 チートとは……
チート(cheat)とは、広義にはコンピュータゲームに
おいて本来とは異なる動作をさせる行為である。…(略)…
日本では狭義に、オンラインゲームにおいてゲームを優
位に進めるため、制作者の意図しない動作をさせる不正
行為を指す。チートを行うプレイヤーのことをチーター
(cheater)と呼ぶ。
Wikipedia(https://ja.wikipedia.org/wiki/チート)より
チートに該当するかや、不正行為となるかは、ゲーム
の仕様に深く関わってくる
8
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
ゲームにおけるチート、不正行為 - チートとは -
 例えばこんな感じ
※イメージ画像のため実在しないゲーム画面です。9
何かがおかしい
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
ゲームにおけるチート、不正行為 - 一般の脆弱性との違い -
 一般的な脆弱性の代表例
⁃ Cross-Site Scripting
⁃ SQL Injection
⁃ Cross-Site Request Forgery
⁃ など
情報漏洩などが主な被害
情報漏洩、嫌がらせなどが主な被害
10
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
ゲームにおけるチート、不正行為 - 一般の脆弱性との違い -
 チートの代表例
⁃ アイテム・通貨増殖、複製(Dupe)
⁃ レアアイテム入手
⁃ 能力強化
⁃ 敵弱体化
⁃ 未開放ステージ開放
⁃ 時間、位置制約の回避
⁃ 他ユーザの妨害
⁃ ツールによる自動化・高速化(bot)
ゲーム上の制約の回避
嫌がらせ、条件の有利化
プレイ条件を有利化
→ ユーザのプレイ時間、操作速度の物理的制約の回避
11
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
ゲームにおけるチート、不正行為 - 一般の脆弱性との違い -
 プレイ条件を有利化
 ゲーム上の制約の回避
 嫌がらせ、相対的条件の有利化
 ユーザのプレイ時間、操作速度の物理的制約の回
避
通常プレイではできない or 時間を要する
or 条件が必要なものを無理やり実施
12
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
攻撃されうるポイント
13
アプリダウンロード
課金処理
IAP、IAB
App Store
Google Play
ゲームサーバ
データ読み込み、処理結果
処理実行
課金処理
メモリ改ざん
不正な通信
(リクエスト)
データ
ファイル改ざん
アプリ改ざん
通信改ざん
(レスポンス)
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
攻撃されうるポイント
14
アプリダウンロード
課金処理
IAP、IAB
App Store
Google Play
ゲームサーバ
データ読み込み、処理結果
処理実行
課金処理
不正な通信
(リクエスト)
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
攻撃されうるポイント - 不正な通信(リクエスト) -
 クライアントでの処理結果の改ざん
⁃ クライアントで生成した結果(バトル、パズル
ゲームの結果など)の改ざん
⁃ 通常入力し得ない範囲の値
• マイナス値
• 小数
• 指定可能範囲外の数値 など
 再送
 同時複数リクエスト送信
 サーバへのアクセスの自動化(いわゆるBOT)
 なりすまし
15
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
攻撃されうるポイント
16
アプリダウンロード
課金処理
IAP、IAB
App Store
Google Play
ゲームサーバ
データ読み込み、処理結果
処理実行
課金処理
通信改ざん
(レスポンス)
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
攻撃されうるポイント -通信改ざん(レスポンス)-
 ゲーム内で利用するためにサーバから読み込む
データの改ざん
⁃ プレイヤーの能力値の不正強化
⁃ 敵の能力値の弱体化
⁃ パズルゲームの難易度の容易化
• 初期配置
• 確率変更
• 補助アイテム増加
• クリア条件変更 など
⁃ ゲームの進行状況、各種フラグの変更
⁃ プレイヤーの現在位置の変更
17
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
攻撃されうるポイント
18
アプリダウンロード
課金処理
IAP、IAB
App Store
Google Play
ゲームサーバ
データ読み込み、処理結果
処理実行
課金処理
メモリ改ざん
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
攻撃されうるポイント - メモリ改ざん -
 ゲーム内で利用中のデータの変更(画面上に見え
ているデータが対象)
⁃ プレイヤーの能力値の不正強化
• 特にバトルゲームでのHP、攻撃力
⁃ 敵の能力値の弱体化
• 特にバトルゲームでのHP、攻撃力
⁃ 補助アイテムの数量変更
19
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
攻撃されうるポイント
20
アプリダウンロード
課金処理
IAP、IAB
App Store
Google Play
ゲームサーバ
データ読み込み、処理結果
処理実行
課金処理
データ
ファイル改ざん
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
攻撃されうるポイント - データファイル改ざん -
 状態やマスターデータを保持しているデータファ
イルの改ざん
⁃ プレイヤーの能力値の不正強化
⁃ 敵の能力値の弱体化
⁃ プレイデータ全般の変更
• 特にサーバを持たない、サーバとの通信を極力減らしている
ゲームの場合
21
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
攻撃されうるポイント
22
アプリダウンロード
課金処理
IAP、IAB
App Store
Google Play
ゲームサーバ
データ読み込み、処理結果
処理実行
課金処理
アプリ改ざん
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
攻撃されうるポイント - アプリ改ざん -
 アプリ側で管理している各種制約の変更
⁃ 各種ゲームパラメータの変更
⁃ 各種ゲーム進行条件の変更
⁃ ゲーム性自体の変更
• プレイ開始→即クリア など
⁃ チート対策のロジックの変更・削除
23
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
Same-Origin Policy
Apache/IIS/iOS UIWebView/SOP Bypass/Android
24
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
Same-Origin Policyとは
 Same-Origin Policyとは、スキーム、ホスト、ポートの組み合わせが
同じリソースの範囲にリソースの利用を制限する仕組みで、重要なコン
テンツを保護するために必須となるセキュリティ上の仕組みです。
25
http://www.example.com/
XHR等
http://www.example.com/
JavaScript
リソースの読み込み
読み込みOK!
XHR等
http://dena.com/
リソースの読み込み
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
Same-Origin Policyの範囲
 http://www.example.com/test/test.htmlとSame Originなのは?
26
URL Same?
http://dena.com/test/test.html
http://www.example.com:8080/test/test.html
http://abc.example.com/test/test.html
https://www.example.com/test/test.html
http://www.example.com/aaaa/test.html
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
Same-Origin PolicyとCross-Site Scripting(XSS)
 もし、異なるOriginのWebページ上で、JavaScriptが実行できたら…
27
http://www.example.com/
http://www.example.com/
JavaScript
http://dena.com/
Scriptの埋め込み
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
Same-Origin PolicyとCross-Site Scripting(XSS)
 Same-Origin Policyが正しく動作している例
28
Uncaught DOMException: Blocked a frame
with origin "http://attack.example.com" from
accessing a cross-origin frame.
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
Same-Origin PolicyとCross-Site Scripting(XSS)
 XSSの仕方色々
⁃ <script>alert('xss')</script>
⁃ <img src=x onerror="alert('xss')">
⁃ +ADw-script+AD4-alert('xss')+ADw-/script+AD4-
29
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
Same-Origin PolicyとCross-Site Scripting(XSS)
30
今日はあまり見かけなくなった
XSSを改めて紹介します!
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
302 Foundの画面とXSS
31
※画面はハメコミ合成です
昔見た302 Foundの画面
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
302 Foundの画面とXSS
32
表示してみましょう!
※もちろんデフォルト設定で!
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
302 Foundの画面とXSS
Chrome IE Firefox Opera(Presto)
通常 × × × ×
空 ○ × ○ ○
data:text/html…. △ × △ ○
javascript:xxx × × × ◎
33
XSS動きます!
古いブラウザだけど……
 Locationヘッダ(302 Found)の扱いの違いとXSS
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
302 FoundでXSSが動作する組み合わせ
 Apache + CGI(perl) + Opera(Presto)
34
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
302 FoundでXSSが動作する組み合わせ
 IIS + asp + Opera(Presto)
35
投げやりな
メッセージが素敵
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
302 FoundでXSSが動作する組み合わせ
 WEBRick
36
HTTP/1.1 302 Found
X-Frame-Options: SAMEORIGIN
X-Xss-Protection: 1; mode=block
X-Content-Type-Options: nosniff
Location: javascript:alert(0)
Content-Type: text/html; charset=utf-8
Cache-Control: no-cache
X-Request-Id: bb768842-983e-4ef8-b0e7-795193db1a96
X-Runtime: 0.007491
Server: WEBrick/1.3.1 (Ruby/2.1.2/2014-05-08)
Date: Sun, 06 Jul 2014 12:00:51 GMT
Content-Length: 89
Connection: Keep-Alive
<html><body>You are being <a href="javascript:alert('xss')">redirected</a>.</body></html>
何故かOpera(Presto)では表示されない!
(最後に改行入れるといける)
<a href="javascript:alert('xss')">
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
302 FoundでXSSが動作する組み合わせ
 WEBrick + FireFox 5.0
37
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
スマートフォン(Android)の場合
38
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
Android(WebView)の場合 – Location: javascript:xxxxx
 端末側上のエラーページで表示
39
実は結構危ない状態!
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
Android(WebView)の場合 – 何が危ないのか?
 Same Origin Policyが効かない範囲がある
40
⁃ 特定の条件(「file://」で開かれたページ
等)でSame Origin Policyの制約がなくな
る場合がある
※ブラウザによって挙動はまちまち事が多い
⁃ エラーページは「file://」と同等、または、
一般のページより高い権限が設定されて
いる場合がある
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
Android(WebView)の場合 – 「file://」に関する制約例
 「file://」に関する制約例
⁃ 通常のWebページからは呼び出せない
• 例:http://www.example.com上にiframeで埋め込
めない
⁃ 通常のWebページからは遷移ができない
• 例:aタグで指定しても遷移ができない
• 例:Locationヘッダで遷移ができない
⇒ 何らかの方法で「file://xxx」を開く事ができれば、Same
Origin Policyの回避まで後一歩!
41※ブラウザやレンダリングエンジンによって結構違います
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
Android(WebView)の場合 – Location:javascript:xxxが有効なケース
 影響を受けるバージョン
⁃ Android OS 4.0 (API 14) 以降
4.4(API 19) 未満
 再現条件
WebViewを使っているアプリで
⁃ 下記設定が true になっている
• setAllowFileAccessFromFileURLs
• setAllowUniversalAccessFromFileU
RLs
または
⁃ AndroidManifest.xml の
android:targetSdkVersion が 15
以下になっている
42
※端末によってはエラー画面がカスタマイズ
されていて動作しません。
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
Android(WebView)の場合 – Same-Origin Policy回避例(Android 4.2.2)
43
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
Android(WebView)の場合 – 詳細なSame Origin Policyの回避手順
1. 任意のページでCookieに”<script>xxxx…</script>”のような攻撃
コードをセットする
44
2. 「Location: javascript:xxxx」でリダイレクトするページへアクセス
する
4. JavaScriptでiframeを作り
「file:///data/.../webViewCookiesChromium.db」を開く
⁃ エラーページは、「file://」を呼び出せるが、「file://」で呼び出
したコンテンツの中身は読めない
5. 手順1でセットしたスクリプトが 発動する!
6. 「file:///data/.../webViewCookiesChromium.db」は「file://」で開
かれているため、Same Origin Policyの例外になり、任意のローカル
ファイル、Webページのコンテンツを読み込める
3. エラー画面上のリンクをユーザがクリックする
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
Android(WebView)の場合 – WebViewはNativeアプリの脅威か?
 WebViewをメインで使っていないアプリでも以下のような場所で使っ
ているケースが多くある
⁃ おしらせ
⁃ 利用規約
⁃ ヘルプ
⁃ お問い合わせ
などのWebと相性が良い機能
45
WebViewを利用していない箇所の重要情報が漏洩する可能性!
WebView経由でアプリ内の任意のファイルが読み込める
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
Android(WebView)の場合 – WebViewはNativeアプリの脅威か?
46
WebView
保護
データ
領域
Native
アプリ
部分
重要データの
保存、読込
サーバ側
アプリ
攻撃コード
SOP Bypass!! 情報漏洩
Man In The Middle等
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
スマートフォン(iOS)の場合
47
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
iOS(WebView)の場合
 iOSのWebViewのデフォルトでは、Locationヘッダを不正
に処理する事は無いが、ドメインの扱いに注意が必要
48
脆弱な利用方法の実行例
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
iOS(WebView)の場合 – 動作ドメイン確認のSampleコード抜粋
49
func webView(webView: UIWebView, shouldStartLoadWithRequest
request: NSURLRequest, navigationType:
UIWebViewNavigationType) -> Bool {
let urlStr = request.URL?.absoluteString;
print("--------------------------------------");
print("CurrentDomain:" +
webView.stringByEvaluatingJavaScriptFromString("document.
domain")!);
print("NextURL:" + urlStr!);
if((urlStr?.hasPrefix("javascript:")) != nil) {
webView.stringByEvaluatingJavaScriptFromString(urlStr!);
}
return true
}
}
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
iOS(WebView)の場合 -リダイレクト中のドメインの扱い
1. 「https://www.example.com/」へアクセス(起動直後)
⁃ document.domain: 空
2. 1の読み込みが完了
⁃ document.domain: www.example.com
3. 「http://192.168.56.104/」へアクセス開始
⁃ document.domain: www.example.com
4. Locationヘッダで「javascript:alert(1)」へリダイレクト
⁃ document.domain: www.example.com
5. Locationヘッダをコード上でJavaScriptとして実行
⁃ document.domain: www.example.com
50
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
iOS(WebView)の場合 - 脆弱なアプリの例
51
ブラウザAの場合: ブラウザBの場合:
※100件 程度調査して、5アプリ(うち2つは派生アプリ)で確認(2014/07時点)
※前述の挙動が原因かは不明
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
まとめ
普段見えない部分の挙動は結構変な事
になりがち
新しいものを作るときに、意外とこう
いった細かいとこが再燃したりするの
でまあまあ重要
52
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
まとめ
53
Enjoy!

More Related Content

What's hot

Using Kamailio for Scalability and Security
Using Kamailio for Scalability and SecurityUsing Kamailio for Scalability and Security
Using Kamailio for Scalability and SecurityFred Posner
 
DeNAのゲームを支えるプラットフォーム Sakasho #denatechcon
DeNAのゲームを支えるプラットフォーム Sakasho #denatechconDeNAのゲームを支えるプラットフォーム Sakasho #denatechcon
DeNAのゲームを支えるプラットフォーム Sakasho #denatechconDeNA
 
常識を疑え ゲームの企画書に望まれるものと期待されるもの (HDIfes#3 2014-6-21)
常識を疑え ゲームの企画書に望まれるものと期待されるもの (HDIfes#3 2014-6-21)常識を疑え ゲームの企画書に望まれるものと期待されるもの (HDIfes#3 2014-6-21)
常識を疑え ゲームの企画書に望まれるものと期待されるもの (HDIfes#3 2014-6-21)uehara1974
 
【Unite Tokyo 2019】Understanding C# Struct All Things
【Unite Tokyo 2019】Understanding C# Struct All Things【Unite Tokyo 2019】Understanding C# Struct All Things
【Unite Tokyo 2019】Understanding C# Struct All ThingsUnityTechnologiesJapan002
 
SolrとElasticsearchを比べてみよう
SolrとElasticsearchを比べてみようSolrとElasticsearchを比べてみよう
SolrとElasticsearchを比べてみようShinsuke Sugaya
 
Operating System Forensics
Operating System ForensicsOperating System Forensics
Operating System ForensicsArunJS5
 
ソフトウェアエンジニアに知ってほしいAerospike
ソフトウェアエンジニアに知ってほしいAerospikeソフトウェアエンジニアに知ってほしいAerospike
ソフトウェアエンジニアに知ってほしいAerospike株式会社ジオロジック
 
OpenID ConnectとAndroidアプリのログインサイクル
OpenID ConnectとAndroidアプリのログインサイクルOpenID ConnectとAndroidアプリのログインサイクル
OpenID ConnectとAndroidアプリのログインサイクルMasaru Kurahayashi
 
ゲームインフラコンテナ実践導入
ゲームインフラコンテナ実践導入ゲームインフラコンテナ実践導入
ゲームインフラコンテナ実践導入Hiroki Tamiya
 
[CB19] Autopsyで迅速なマルウェアのスキャンとディスク内の簡単調査 by ターナー・功
[CB19] Autopsyで迅速なマルウェアのスキャンとディスク内の簡単調査 by ターナー・功[CB19] Autopsyで迅速なマルウェアのスキャンとディスク内の簡単調査 by ターナー・功
[CB19] Autopsyで迅速なマルウェアのスキャンとディスク内の簡単調査 by ターナー・功CODE BLUE
 
Azure PlayFab トレーニング資料
Azure PlayFab トレーニング資料Azure PlayFab トレーニング資料
Azure PlayFab トレーニング資料Daisuke Masubuchi
 
ピクサー USD 入門 新たなコンテンツパイプラインを構築する
ピクサー USD 入門 新たなコンテンツパイプラインを構築するピクサー USD 入門 新たなコンテンツパイプラインを構築する
ピクサー USD 入門 新たなコンテンツパイプラインを構築するTakahito Tejima
 
Javascript で暗号化
Javascript で暗号化Javascript で暗号化
Javascript で暗号化suno88
 
ソーシャルゲームのためのデータベース設計
ソーシャルゲームのためのデータベース設計ソーシャルゲームのためのデータベース設計
ソーシャルゲームのためのデータベース設計Yoshinori Matsunobu
 
DroidKaigi 2019 Chrome Custom Tabsの仕組みから学ぶプロセス間通信
DroidKaigi 2019 Chrome Custom Tabsの仕組みから学ぶプロセス間通信DroidKaigi 2019 Chrome Custom Tabsの仕組みから学ぶプロセス間通信
DroidKaigi 2019 Chrome Custom Tabsの仕組みから学ぶプロセス間通信ryo_mm2d
 
超簡単!FirefoxブラウザをWindows Server 2019にインストール!
超簡単!FirefoxブラウザをWindows Server 2019にインストール!超簡単!FirefoxブラウザをWindows Server 2019にインストール!
超簡単!FirefoxブラウザをWindows Server 2019にインストール!Shin Tanigawa
 

What's hot (20)

Spring tools4
Spring tools4Spring tools4
Spring tools4
 
Using Kamailio for Scalability and Security
Using Kamailio for Scalability and SecurityUsing Kamailio for Scalability and Security
Using Kamailio for Scalability and Security
 
Registry forensics
Registry forensicsRegistry forensics
Registry forensics
 
DeNAのゲームを支えるプラットフォーム Sakasho #denatechcon
DeNAのゲームを支えるプラットフォーム Sakasho #denatechconDeNAのゲームを支えるプラットフォーム Sakasho #denatechcon
DeNAのゲームを支えるプラットフォーム Sakasho #denatechcon
 
Fidl analysis
Fidl analysisFidl analysis
Fidl analysis
 
常識を疑え ゲームの企画書に望まれるものと期待されるもの (HDIfes#3 2014-6-21)
常識を疑え ゲームの企画書に望まれるものと期待されるもの (HDIfes#3 2014-6-21)常識を疑え ゲームの企画書に望まれるものと期待されるもの (HDIfes#3 2014-6-21)
常識を疑え ゲームの企画書に望まれるものと期待されるもの (HDIfes#3 2014-6-21)
 
【Unite Tokyo 2019】Understanding C# Struct All Things
【Unite Tokyo 2019】Understanding C# Struct All Things【Unite Tokyo 2019】Understanding C# Struct All Things
【Unite Tokyo 2019】Understanding C# Struct All Things
 
SolrとElasticsearchを比べてみよう
SolrとElasticsearchを比べてみようSolrとElasticsearchを比べてみよう
SolrとElasticsearchを比べてみよう
 
Operating System Forensics
Operating System ForensicsOperating System Forensics
Operating System Forensics
 
ソフトウェアエンジニアに知ってほしいAerospike
ソフトウェアエンジニアに知ってほしいAerospikeソフトウェアエンジニアに知ってほしいAerospike
ソフトウェアエンジニアに知ってほしいAerospike
 
レガシーコードに向き合ってみた話
レガシーコードに向き合ってみた話レガシーコードに向き合ってみた話
レガシーコードに向き合ってみた話
 
OpenID ConnectとAndroidアプリのログインサイクル
OpenID ConnectとAndroidアプリのログインサイクルOpenID ConnectとAndroidアプリのログインサイクル
OpenID ConnectとAndroidアプリのログインサイクル
 
ゲームインフラコンテナ実践導入
ゲームインフラコンテナ実践導入ゲームインフラコンテナ実践導入
ゲームインフラコンテナ実践導入
 
[CB19] Autopsyで迅速なマルウェアのスキャンとディスク内の簡単調査 by ターナー・功
[CB19] Autopsyで迅速なマルウェアのスキャンとディスク内の簡単調査 by ターナー・功[CB19] Autopsyで迅速なマルウェアのスキャンとディスク内の簡単調査 by ターナー・功
[CB19] Autopsyで迅速なマルウェアのスキャンとディスク内の簡単調査 by ターナー・功
 
Azure PlayFab トレーニング資料
Azure PlayFab トレーニング資料Azure PlayFab トレーニング資料
Azure PlayFab トレーニング資料
 
ピクサー USD 入門 新たなコンテンツパイプラインを構築する
ピクサー USD 入門 新たなコンテンツパイプラインを構築するピクサー USD 入門 新たなコンテンツパイプラインを構築する
ピクサー USD 入門 新たなコンテンツパイプラインを構築する
 
Javascript で暗号化
Javascript で暗号化Javascript で暗号化
Javascript で暗号化
 
ソーシャルゲームのためのデータベース設計
ソーシャルゲームのためのデータベース設計ソーシャルゲームのためのデータベース設計
ソーシャルゲームのためのデータベース設計
 
DroidKaigi 2019 Chrome Custom Tabsの仕組みから学ぶプロセス間通信
DroidKaigi 2019 Chrome Custom Tabsの仕組みから学ぶプロセス間通信DroidKaigi 2019 Chrome Custom Tabsの仕組みから学ぶプロセス間通信
DroidKaigi 2019 Chrome Custom Tabsの仕組みから学ぶプロセス間通信
 
超簡単!FirefoxブラウザをWindows Server 2019にインストール!
超簡単!FirefoxブラウザをWindows Server 2019にインストール!超簡単!FirefoxブラウザをWindows Server 2019にインストール!
超簡単!FirefoxブラウザをWindows Server 2019にインストール!
 

Viewers also liked

iOSレガシーコード改善ガイド〜マンガボックス開発における事例〜
iOSレガシーコード改善ガイド〜マンガボックス開発における事例〜iOSレガシーコード改善ガイド〜マンガボックス開発における事例〜
iOSレガシーコード改善ガイド〜マンガボックス開発における事例〜Kentaro Matsumae
 
DeNAが取り組む Software Engineer in Test
DeNAが取り組む Software Engineer in TestDeNAが取り組む Software Engineer in Test
DeNAが取り組む Software Engineer in TestMasaki Nakagawa
 
爆速でAndroidアプリを ビルドするための仕組み DeNA TechCon #denatechcon
爆速でAndroidアプリを ビルドするための仕組み DeNA TechCon #denatechcon爆速でAndroidアプリを ビルドするための仕組み DeNA TechCon #denatechcon
爆速でAndroidアプリを ビルドするための仕組み DeNA TechCon #denatechconYosaku Toyama
 
これからの Microservices
これからの Microservicesこれからの Microservices
これからの MicroservicesToru Yamaguchi
 
DeNA_Techcon2017_DeNAでのチート・脆弱性診断への取り組み
DeNA_Techcon2017_DeNAでのチート・脆弱性診断への取り組みDeNA_Techcon2017_DeNAでのチート・脆弱性診断への取り組み
DeNA_Techcon2017_DeNAでのチート・脆弱性診断への取り組みToshiharu Sugiyama
 
モバイルアプリのインタラクションプロトタイピング - 高速に仮説・実行・検証サイクルを回すために
モバイルアプリのインタラクションプロトタイピング - 高速に仮説・実行・検証サイクルを回すためにモバイルアプリのインタラクションプロトタイピング - 高速に仮説・実行・検証サイクルを回すために
モバイルアプリのインタラクションプロトタイピング - 高速に仮説・実行・検証サイクルを回すためにKeisuke Tada
 
DeNAオリジナル ゲーム専用プラットフォーム Sakashoについて
DeNAオリジナル ゲーム専用プラットフォーム SakashoについてDeNAオリジナル ゲーム専用プラットフォーム Sakashoについて
DeNAオリジナル ゲーム専用プラットフォーム SakashoについてMakoto Haruyama
 
ウェブを速くするためにDeNAがやっていること - HTTP/2と、さらにその先
ウェブを速くするためにDeNAがやっていること - HTTP/2と、さらにその先ウェブを速くするためにDeNAがやっていること - HTTP/2と、さらにその先
ウェブを速くするためにDeNAがやっていること - HTTP/2と、さらにその先Kazuho Oku
 
DeNAのゲーム開発を支える Game Backend as a Service
DeNAのゲーム開発を支える Game Backend as a ServiceDeNAのゲーム開発を支える Game Backend as a Service
DeNAのゲーム開発を支える Game Backend as a ServiceMakoto Haruyama
 
Webエンジニアが学ぶ自動運転を支える技術
Webエンジニアが学ぶ自動運転を支える技術Webエンジニアが学ぶ自動運転を支える技術
Webエンジニアが学ぶ自動運転を支える技術Hideo Kimura
 
大規模Perl初心者研修を支える技術
大規模Perl初心者研修を支える技術大規模Perl初心者研修を支える技術
大規模Perl初心者研修を支える技術Daisuke Tamada
 
一般的なチートの手法と対策について
一般的なチートの手法と対策について一般的なチートの手法と対策について
一般的なチートの手法と対策について優介 黒河
 
データに振り回されて失敗した あんなことやこんなこと ~ゲームのために必要な本当の ビジネス・アナリティクス~
データに振り回されて失敗したあんなことやこんなこと~ゲームのために必要な本当のビジネス・アナリティクス~データに振り回されて失敗したあんなことやこんなこと~ゲームのために必要な本当のビジネス・アナリティクス~
データに振り回されて失敗した あんなことやこんなこと ~ゲームのために必要な本当の ビジネス・アナリティクス~Daisuke Nogami
 
FFRK cocos2d xレイヤーの最適化
FFRK cocos2d xレイヤーの最適化FFRK cocos2d xレイヤーの最適化
FFRK cocos2d xレイヤーの最適化dena_study
 
FFRKを支えるWebアプリケーションフレームワークの技術
FFRKを支えるWebアプリケーションフレームワークの技術FFRKを支えるWebアプリケーションフレームワークの技術
FFRKを支えるWebアプリケーションフレームワークの技術dena_study
 
制作を支えたツール達 (パズル戦隊デナレンジャー)
制作を支えたツール達 (パズル戦隊デナレンジャー)制作を支えたツール達 (パズル戦隊デナレンジャー)
制作を支えたツール達 (パズル戦隊デナレンジャー)dena_study
 
DeNA の新しいネイティブ開発(パズル戦隊デナレンジャー)
DeNA の新しいネイティブ開発(パズル戦隊デナレンジャー)DeNA の新しいネイティブ開発(パズル戦隊デナレンジャー)
DeNA の新しいネイティブ開発(パズル戦隊デナレンジャー)dena_study
 
エフェクト、アニメーション、演出のデータ作るの大変じゃないですか? DeNAではこうしてます。
エフェクト、アニメーション、演出のデータ作るの大変じゃないですか? DeNAではこうしてます。エフェクト、アニメーション、演出のデータ作るの大変じゃないですか? DeNAではこうしてます。
エフェクト、アニメーション、演出のデータ作るの大変じゃないですか? DeNAではこうしてます。DeNA_Creators
 
Effective web performance tuning for smartphone
Effective web performance tuning for smartphoneEffective web performance tuning for smartphone
Effective web performance tuning for smartphonedena_study
 
CODE BLUE 2014 : バグハンターの愉しみ by キヌガワマサト Masato Kinugawa
CODE BLUE 2014 : バグハンターの愉しみ by キヌガワマサト Masato KinugawaCODE BLUE 2014 : バグハンターの愉しみ by キヌガワマサト Masato Kinugawa
CODE BLUE 2014 : バグハンターの愉しみ by キヌガワマサト Masato KinugawaCODE BLUE
 

Viewers also liked (20)

iOSレガシーコード改善ガイド〜マンガボックス開発における事例〜
iOSレガシーコード改善ガイド〜マンガボックス開発における事例〜iOSレガシーコード改善ガイド〜マンガボックス開発における事例〜
iOSレガシーコード改善ガイド〜マンガボックス開発における事例〜
 
DeNAが取り組む Software Engineer in Test
DeNAが取り組む Software Engineer in TestDeNAが取り組む Software Engineer in Test
DeNAが取り組む Software Engineer in Test
 
爆速でAndroidアプリを ビルドするための仕組み DeNA TechCon #denatechcon
爆速でAndroidアプリを ビルドするための仕組み DeNA TechCon #denatechcon爆速でAndroidアプリを ビルドするための仕組み DeNA TechCon #denatechcon
爆速でAndroidアプリを ビルドするための仕組み DeNA TechCon #denatechcon
 
これからの Microservices
これからの Microservicesこれからの Microservices
これからの Microservices
 
DeNA_Techcon2017_DeNAでのチート・脆弱性診断への取り組み
DeNA_Techcon2017_DeNAでのチート・脆弱性診断への取り組みDeNA_Techcon2017_DeNAでのチート・脆弱性診断への取り組み
DeNA_Techcon2017_DeNAでのチート・脆弱性診断への取り組み
 
モバイルアプリのインタラクションプロトタイピング - 高速に仮説・実行・検証サイクルを回すために
モバイルアプリのインタラクションプロトタイピング - 高速に仮説・実行・検証サイクルを回すためにモバイルアプリのインタラクションプロトタイピング - 高速に仮説・実行・検証サイクルを回すために
モバイルアプリのインタラクションプロトタイピング - 高速に仮説・実行・検証サイクルを回すために
 
DeNAオリジナル ゲーム専用プラットフォーム Sakashoについて
DeNAオリジナル ゲーム専用プラットフォーム SakashoについてDeNAオリジナル ゲーム専用プラットフォーム Sakashoについて
DeNAオリジナル ゲーム専用プラットフォーム Sakashoについて
 
ウェブを速くするためにDeNAがやっていること - HTTP/2と、さらにその先
ウェブを速くするためにDeNAがやっていること - HTTP/2と、さらにその先ウェブを速くするためにDeNAがやっていること - HTTP/2と、さらにその先
ウェブを速くするためにDeNAがやっていること - HTTP/2と、さらにその先
 
DeNAのゲーム開発を支える Game Backend as a Service
DeNAのゲーム開発を支える Game Backend as a ServiceDeNAのゲーム開発を支える Game Backend as a Service
DeNAのゲーム開発を支える Game Backend as a Service
 
Webエンジニアが学ぶ自動運転を支える技術
Webエンジニアが学ぶ自動運転を支える技術Webエンジニアが学ぶ自動運転を支える技術
Webエンジニアが学ぶ自動運転を支える技術
 
大規模Perl初心者研修を支える技術
大規模Perl初心者研修を支える技術大規模Perl初心者研修を支える技術
大規模Perl初心者研修を支える技術
 
一般的なチートの手法と対策について
一般的なチートの手法と対策について一般的なチートの手法と対策について
一般的なチートの手法と対策について
 
データに振り回されて失敗した あんなことやこんなこと ~ゲームのために必要な本当の ビジネス・アナリティクス~
データに振り回されて失敗したあんなことやこんなこと~ゲームのために必要な本当のビジネス・アナリティクス~データに振り回されて失敗したあんなことやこんなこと~ゲームのために必要な本当のビジネス・アナリティクス~
データに振り回されて失敗した あんなことやこんなこと ~ゲームのために必要な本当の ビジネス・アナリティクス~
 
FFRK cocos2d xレイヤーの最適化
FFRK cocos2d xレイヤーの最適化FFRK cocos2d xレイヤーの最適化
FFRK cocos2d xレイヤーの最適化
 
FFRKを支えるWebアプリケーションフレームワークの技術
FFRKを支えるWebアプリケーションフレームワークの技術FFRKを支えるWebアプリケーションフレームワークの技術
FFRKを支えるWebアプリケーションフレームワークの技術
 
制作を支えたツール達 (パズル戦隊デナレンジャー)
制作を支えたツール達 (パズル戦隊デナレンジャー)制作を支えたツール達 (パズル戦隊デナレンジャー)
制作を支えたツール達 (パズル戦隊デナレンジャー)
 
DeNA の新しいネイティブ開発(パズル戦隊デナレンジャー)
DeNA の新しいネイティブ開発(パズル戦隊デナレンジャー)DeNA の新しいネイティブ開発(パズル戦隊デナレンジャー)
DeNA の新しいネイティブ開発(パズル戦隊デナレンジャー)
 
エフェクト、アニメーション、演出のデータ作るの大変じゃないですか? DeNAではこうしてます。
エフェクト、アニメーション、演出のデータ作るの大変じゃないですか? DeNAではこうしてます。エフェクト、アニメーション、演出のデータ作るの大変じゃないですか? DeNAではこうしてます。
エフェクト、アニメーション、演出のデータ作るの大変じゃないですか? DeNAではこうしてます。
 
Effective web performance tuning for smartphone
Effective web performance tuning for smartphoneEffective web performance tuning for smartphone
Effective web performance tuning for smartphone
 
CODE BLUE 2014 : バグハンターの愉しみ by キヌガワマサト Masato Kinugawa
CODE BLUE 2014 : バグハンターの愉しみ by キヌガワマサト Masato KinugawaCODE BLUE 2014 : バグハンターの愉しみ by キヌガワマサト Masato Kinugawa
CODE BLUE 2014 : バグハンターの愉しみ by キヌガワマサト Masato Kinugawa
 

Similar to DeNAtechcon_DeNAのセキュリティの取り組みと、スマートフォンセキュリティ(same-origin policy)

ソーシャルアプリを分析してみた
ソーシャルアプリを分析してみたソーシャルアプリを分析してみた
ソーシャルアプリを分析してみたDrecom Co., Ltd.
 
FINAL FANTASY Record Keeperのマスターデータを支える技術
FINAL FANTASY Record Keeperのマスターデータを支える技術FINAL FANTASY Record Keeperのマスターデータを支える技術
FINAL FANTASY Record Keeperのマスターデータを支える技術dena_study
 
DeNAインフラの今とこれから - 今編 -
DeNAインフラの今とこれから - 今編 -DeNAインフラの今とこれから - 今編 -
DeNAインフラの今とこれから - 今編 -Tomoya Kabe
 
[db analytics showcase Sapporo 2017] B27:世界最速のAnalytic DBはHadoopの夢を見るか by 株式会...
[db analytics showcase Sapporo 2017] B27:世界最速のAnalytic DBはHadoopの夢を見るか by 株式会...[db analytics showcase Sapporo 2017] B27:世界最速のAnalytic DBはHadoopの夢を見るか by 株式会...
[db analytics showcase Sapporo 2017] B27:世界最速のAnalytic DBはHadoopの夢を見るか by 株式会...Insight Technology, Inc.
 
DeNAのゲーム開発を支える技術 (クライアントサイド編)
DeNAのゲーム開発を支える技術 (クライアントサイド編)DeNAのゲーム開発を支える技術 (クライアントサイド編)
DeNAのゲーム開発を支える技術 (クライアントサイド編)denatech2016
 
Unityネイティブプラグインマニアクス #denatechcon
Unityネイティブプラグインマニアクス #denatechconUnityネイティブプラグインマニアクス #denatechcon
Unityネイティブプラグインマニアクス #denatechconDeNA
 
DeNAでのVertica運用
DeNAでのVertica運用DeNAでのVertica運用
DeNAでのVertica運用Shota Suzuki
 
[CEDEC2014]モバイルゲームにおける社内基盤開発と“実録”
[CEDEC2014]モバイルゲームにおける社内基盤開発と“実録”[CEDEC2014]モバイルゲームにおける社内基盤開発と“実録”
[CEDEC2014]モバイルゲームにおける社内基盤開発と“実録”Drecom Co., Ltd.
 
[db tech showcase Tokyo 2017] C25: 世界最速のAnalytic DBがHadoopとタッグを組んだ! ~スケールアウト検...
[db tech showcase Tokyo 2017] C25: 世界最速のAnalytic DBがHadoopとタッグを組んだ! ~スケールアウト検...[db tech showcase Tokyo 2017] C25: 世界最速のAnalytic DBがHadoopとタッグを組んだ! ~スケールアウト検...
[db tech showcase Tokyo 2017] C25: 世界最速のAnalytic DBがHadoopとタッグを組んだ! ~スケールアウト検...Insight Technology, Inc.
 
CEDEC 2013 - 徹底的にチューンしたハイブリッドアプリ「D.O.T. Defender of Texel」の制作
CEDEC 2013 - 徹底的にチューンしたハイブリッドアプリ「D.O.T. Defender of Texel」の制作CEDEC 2013 - 徹底的にチューンしたハイブリッドアプリ「D.O.T. Defender of Texel」の制作
CEDEC 2013 - 徹底的にチューンしたハイブリッドアプリ「D.O.T. Defender of Texel」の制作Nobutaka Takushima
 
プライベートクラウド作ってみました
プライベートクラウド作ってみましたプライベートクラウド作ってみました
プライベートクラウド作ってみましたKoji Hasebe
 
Quiznowを支える技術 #yapcasia
Quiznowを支える技術 #yapcasiaQuiznowを支える技術 #yapcasia
Quiznowを支える技術 #yapcasiaYosuke Furukawa
 
強化学習を利用した自律型GameAIの取り組み ~高速自動プレイによるステージ設計支援~ #denatechcon
強化学習を利用した自律型GameAIの取り組み ~高速自動プレイによるステージ設計支援~ #denatechcon強化学習を利用した自律型GameAIの取り組み ~高速自動プレイによるステージ設計支援~ #denatechcon
強化学習を利用した自律型GameAIの取り組み ~高速自動プレイによるステージ設計支援~ #denatechconDeNA
 
DeNAの最新のマスタデータ管理システム Oyakata の全容
DeNAの最新のマスタデータ管理システム Oyakata の全容DeNAの最新のマスタデータ管理システム Oyakata の全容
DeNAの最新のマスタデータ管理システム Oyakata の全容sairoutine
 
DeNA流cocos2d xとの付き合い方
DeNA流cocos2d xとの付き合い方DeNA流cocos2d xとの付き合い方
DeNA流cocos2d xとの付き合い方dena_study
 
チラシルiOSでの広告枠開発
チラシルiOSでの広告枠開発チラシルiOSでの広告枠開発
チラシルiOSでの広告枠開発Satoshi Takano
 
Windows 8 Developers カンファレンス
Windows 8 Developers カンファレンスWindows 8 Developers カンファレンス
Windows 8 Developers カンファレンスKaoru NAKAMURA
 
レガシーな Perl システムに DDD (ドメイン駆動設計)を取り入れる
レガシーな Perl システムに DDD (ドメイン駆動設計)を取り入れるレガシーな Perl システムに DDD (ドメイン駆動設計)を取り入れる
レガシーな Perl システムに DDD (ドメイン駆動設計)を取り入れるsairoutine
 

Similar to DeNAtechcon_DeNAのセキュリティの取り組みと、スマートフォンセキュリティ(same-origin policy) (20)

ソーシャルアプリを分析してみた
ソーシャルアプリを分析してみたソーシャルアプリを分析してみた
ソーシャルアプリを分析してみた
 
FINAL FANTASY Record Keeperのマスターデータを支える技術
FINAL FANTASY Record Keeperのマスターデータを支える技術FINAL FANTASY Record Keeperのマスターデータを支える技術
FINAL FANTASY Record Keeperのマスターデータを支える技術
 
YJTC18 A-1 データセンタネットワークの取り組み
YJTC18 A-1 データセンタネットワークの取り組みYJTC18 A-1 データセンタネットワークの取り組み
YJTC18 A-1 データセンタネットワークの取り組み
 
DeNAインフラの今とこれから - 今編 -
DeNAインフラの今とこれから - 今編 -DeNAインフラの今とこれから - 今編 -
DeNAインフラの今とこれから - 今編 -
 
[db analytics showcase Sapporo 2017] B27:世界最速のAnalytic DBはHadoopの夢を見るか by 株式会...
[db analytics showcase Sapporo 2017] B27:世界最速のAnalytic DBはHadoopの夢を見るか by 株式会...[db analytics showcase Sapporo 2017] B27:世界最速のAnalytic DBはHadoopの夢を見るか by 株式会...
[db analytics showcase Sapporo 2017] B27:世界最速のAnalytic DBはHadoopの夢を見るか by 株式会...
 
DeNAのゲーム開発を支える技術 (クライアントサイド編)
DeNAのゲーム開発を支える技術 (クライアントサイド編)DeNAのゲーム開発を支える技術 (クライアントサイド編)
DeNAのゲーム開発を支える技術 (クライアントサイド編)
 
Unityネイティブプラグインマニアクス #denatechcon
Unityネイティブプラグインマニアクス #denatechconUnityネイティブプラグインマニアクス #denatechcon
Unityネイティブプラグインマニアクス #denatechcon
 
DeNAでのVertica運用
DeNAでのVertica運用DeNAでのVertica運用
DeNAでのVertica運用
 
[CEDEC2014]モバイルゲームにおける社内基盤開発と“実録”
[CEDEC2014]モバイルゲームにおける社内基盤開発と“実録”[CEDEC2014]モバイルゲームにおける社内基盤開発と“実録”
[CEDEC2014]モバイルゲームにおける社内基盤開発と“実録”
 
[db tech showcase Tokyo 2017] C25: 世界最速のAnalytic DBがHadoopとタッグを組んだ! ~スケールアウト検...
[db tech showcase Tokyo 2017] C25: 世界最速のAnalytic DBがHadoopとタッグを組んだ! ~スケールアウト検...[db tech showcase Tokyo 2017] C25: 世界最速のAnalytic DBがHadoopとタッグを組んだ! ~スケールアウト検...
[db tech showcase Tokyo 2017] C25: 世界最速のAnalytic DBがHadoopとタッグを組んだ! ~スケールアウト検...
 
CEDEC 2013 - 徹底的にチューンしたハイブリッドアプリ「D.O.T. Defender of Texel」の制作
CEDEC 2013 - 徹底的にチューンしたハイブリッドアプリ「D.O.T. Defender of Texel」の制作CEDEC 2013 - 徹底的にチューンしたハイブリッドアプリ「D.O.T. Defender of Texel」の制作
CEDEC 2013 - 徹底的にチューンしたハイブリッドアプリ「D.O.T. Defender of Texel」の制作
 
プライベートクラウド作ってみました
プライベートクラウド作ってみましたプライベートクラウド作ってみました
プライベートクラウド作ってみました
 
Quiznowを支える技術 #yapcasia
Quiznowを支える技術 #yapcasiaQuiznowを支える技術 #yapcasia
Quiznowを支える技術 #yapcasia
 
オタク×Node.js勉強会
オタク×Node.js勉強会オタク×Node.js勉強会
オタク×Node.js勉強会
 
強化学習を利用した自律型GameAIの取り組み ~高速自動プレイによるステージ設計支援~ #denatechcon
強化学習を利用した自律型GameAIの取り組み ~高速自動プレイによるステージ設計支援~ #denatechcon強化学習を利用した自律型GameAIの取り組み ~高速自動プレイによるステージ設計支援~ #denatechcon
強化学習を利用した自律型GameAIの取り組み ~高速自動プレイによるステージ設計支援~ #denatechcon
 
DeNAの最新のマスタデータ管理システム Oyakata の全容
DeNAの最新のマスタデータ管理システム Oyakata の全容DeNAの最新のマスタデータ管理システム Oyakata の全容
DeNAの最新のマスタデータ管理システム Oyakata の全容
 
DeNA流cocos2d xとの付き合い方
DeNA流cocos2d xとの付き合い方DeNA流cocos2d xとの付き合い方
DeNA流cocos2d xとの付き合い方
 
チラシルiOSでの広告枠開発
チラシルiOSでの広告枠開発チラシルiOSでの広告枠開発
チラシルiOSでの広告枠開発
 
Windows 8 Developers カンファレンス
Windows 8 Developers カンファレンスWindows 8 Developers カンファレンス
Windows 8 Developers カンファレンス
 
レガシーな Perl システムに DDD (ドメイン駆動設計)を取り入れる
レガシーな Perl システムに DDD (ドメイン駆動設計)を取り入れるレガシーな Perl システムに DDD (ドメイン駆動設計)を取り入れる
レガシーな Perl システムに DDD (ドメイン駆動設計)を取り入れる
 

DeNAtechcon_DeNAのセキュリティの取り組みと、スマートフォンセキュリティ(same-origin policy)

  • 1. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. DeNA Technology Conference 2016 DeNAのセキュリティの取り組みと、スマート フォンセキュリティ(Same-Origin Policy) 株式会社ディー・エヌ・エー システム本部セキュリティ部 セキュリティ技術グループ 杉山俊春 1
  • 2. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 自己紹介  会社 ⁃ 株式会社ディー・エヌ・エー • システム本部 セキュリティ部 セキュリティ技術グループ  名前 ⁃ 杉山 俊春 (はるぷ, @harupuxa)  属性 ⁃ セキュリティ ⁃ プログラマー ⁃ イラストレーター ⁃ ラテアート ⁃ 猫 2
  • 3. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 自己紹介 – べつやくメソッド 3
  • 4. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 自己紹介 –最近書いたセキュリティ記事  2014.04.15 ⁃ 巷を賑わすHeartbleedの脆弱性とは?! • http://developers.mobage.jp/blog/2014/4/15/heartbleed  2014.07.03 ⁃ 不正なJSONデータによるSQL Injectionへの対策について (Json.pm+SQLクエリビルダー) • http://developers.mobage.jp/blog/2014/7/3/jsonsql-injection  2014.10.23 ⁃ SSL v3.0の脆弱性「POODLE」ってかわいい名前だけど何?? - Padding Oracle On Downgraded Legacy Encryptionの仕組み – • http://developers.mobage.jp/blog/poodle  2015.06.15 ⁃ 脆弱性ってどういうものなの? - AFNetworkingにおけるSSL証明 書検証不備の脆弱性 – • http://developers.mobage.jp/blog/2015/afnetworkingssl
  • 5. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 自己紹介 - 最近公開された脆弱性報告  2015/06/25 ⁃ namshi/jose におけるトークンの署名検証回避の脆弱性 (CVE-2015-2964) • https://jvn.jp/jp/JVN25336719/  2015/06/03 ⁃ F21 製 JWT におけるトークンの署名検証回避の脆弱性 (CVE-2015-2951) • http://jvn.jp/jp/JVN06120222/  2015/05/27 ⁃ Apache Sling の Sling API コンポーネントおよび Servlets Post コンポーネ ントにおけるクロスサイトスクリプティングの脆弱性 (CVE-2015-2944) • http://jvn.jp/jp/JVN61328139/  2014/12/9 ⁃ Security updates available for Adobe Flash Player - circumvent the same-origin policy (CVE-2014-0580). • https://helpx.adobe.com/security/products/flash-player/apsb14-27.html  2014/09/25 ⁃ iOS 版 jigbrowser+ における同一生成元ポリシー回避の脆弱性 (CVE-2014- 5318) • http://jvn.jp/jp/JVN80531230/index.html
  • 6. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Agenda  お仕事紹介 ⁃ ゲームにおけるチート、不正行為への対策  脆弱性のお話 ⁃ Apache/IIS/iOS UIWebView/SOP Bypass/Android 6
  • 7. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. ゲームにおけるチート、不正行為への対策 7
  • 8. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. ゲームにおけるチート、不正行為 - チートとは -  チートとは…… チート(cheat)とは、広義にはコンピュータゲームに おいて本来とは異なる動作をさせる行為である。…(略)… 日本では狭義に、オンラインゲームにおいてゲームを優 位に進めるため、制作者の意図しない動作をさせる不正 行為を指す。チートを行うプレイヤーのことをチーター (cheater)と呼ぶ。 Wikipedia(https://ja.wikipedia.org/wiki/チート)より チートに該当するかや、不正行為となるかは、ゲーム の仕様に深く関わってくる 8
  • 9. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. ゲームにおけるチート、不正行為 - チートとは -  例えばこんな感じ ※イメージ画像のため実在しないゲーム画面です。9 何かがおかしい
  • 10. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. ゲームにおけるチート、不正行為 - 一般の脆弱性との違い -  一般的な脆弱性の代表例 ⁃ Cross-Site Scripting ⁃ SQL Injection ⁃ Cross-Site Request Forgery ⁃ など 情報漏洩などが主な被害 情報漏洩、嫌がらせなどが主な被害 10
  • 11. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. ゲームにおけるチート、不正行為 - 一般の脆弱性との違い -  チートの代表例 ⁃ アイテム・通貨増殖、複製(Dupe) ⁃ レアアイテム入手 ⁃ 能力強化 ⁃ 敵弱体化 ⁃ 未開放ステージ開放 ⁃ 時間、位置制約の回避 ⁃ 他ユーザの妨害 ⁃ ツールによる自動化・高速化(bot) ゲーム上の制約の回避 嫌がらせ、条件の有利化 プレイ条件を有利化 → ユーザのプレイ時間、操作速度の物理的制約の回避 11
  • 12. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. ゲームにおけるチート、不正行為 - 一般の脆弱性との違い -  プレイ条件を有利化  ゲーム上の制約の回避  嫌がらせ、相対的条件の有利化  ユーザのプレイ時間、操作速度の物理的制約の回 避 通常プレイではできない or 時間を要する or 条件が必要なものを無理やり実施 12
  • 13. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 攻撃されうるポイント 13 アプリダウンロード 課金処理 IAP、IAB App Store Google Play ゲームサーバ データ読み込み、処理結果 処理実行 課金処理 メモリ改ざん 不正な通信 (リクエスト) データ ファイル改ざん アプリ改ざん 通信改ざん (レスポンス)
  • 14. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 攻撃されうるポイント 14 アプリダウンロード 課金処理 IAP、IAB App Store Google Play ゲームサーバ データ読み込み、処理結果 処理実行 課金処理 不正な通信 (リクエスト)
  • 15. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 攻撃されうるポイント - 不正な通信(リクエスト) -  クライアントでの処理結果の改ざん ⁃ クライアントで生成した結果(バトル、パズル ゲームの結果など)の改ざん ⁃ 通常入力し得ない範囲の値 • マイナス値 • 小数 • 指定可能範囲外の数値 など  再送  同時複数リクエスト送信  サーバへのアクセスの自動化(いわゆるBOT)  なりすまし 15
  • 16. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 攻撃されうるポイント 16 アプリダウンロード 課金処理 IAP、IAB App Store Google Play ゲームサーバ データ読み込み、処理結果 処理実行 課金処理 通信改ざん (レスポンス)
  • 17. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 攻撃されうるポイント -通信改ざん(レスポンス)-  ゲーム内で利用するためにサーバから読み込む データの改ざん ⁃ プレイヤーの能力値の不正強化 ⁃ 敵の能力値の弱体化 ⁃ パズルゲームの難易度の容易化 • 初期配置 • 確率変更 • 補助アイテム増加 • クリア条件変更 など ⁃ ゲームの進行状況、各種フラグの変更 ⁃ プレイヤーの現在位置の変更 17
  • 18. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 攻撃されうるポイント 18 アプリダウンロード 課金処理 IAP、IAB App Store Google Play ゲームサーバ データ読み込み、処理結果 処理実行 課金処理 メモリ改ざん
  • 19. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 攻撃されうるポイント - メモリ改ざん -  ゲーム内で利用中のデータの変更(画面上に見え ているデータが対象) ⁃ プレイヤーの能力値の不正強化 • 特にバトルゲームでのHP、攻撃力 ⁃ 敵の能力値の弱体化 • 特にバトルゲームでのHP、攻撃力 ⁃ 補助アイテムの数量変更 19
  • 20. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 攻撃されうるポイント 20 アプリダウンロード 課金処理 IAP、IAB App Store Google Play ゲームサーバ データ読み込み、処理結果 処理実行 課金処理 データ ファイル改ざん
  • 21. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 攻撃されうるポイント - データファイル改ざん -  状態やマスターデータを保持しているデータファ イルの改ざん ⁃ プレイヤーの能力値の不正強化 ⁃ 敵の能力値の弱体化 ⁃ プレイデータ全般の変更 • 特にサーバを持たない、サーバとの通信を極力減らしている ゲームの場合 21
  • 22. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 攻撃されうるポイント 22 アプリダウンロード 課金処理 IAP、IAB App Store Google Play ゲームサーバ データ読み込み、処理結果 処理実行 課金処理 アプリ改ざん
  • 23. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 攻撃されうるポイント - アプリ改ざん -  アプリ側で管理している各種制約の変更 ⁃ 各種ゲームパラメータの変更 ⁃ 各種ゲーム進行条件の変更 ⁃ ゲーム性自体の変更 • プレイ開始→即クリア など ⁃ チート対策のロジックの変更・削除 23
  • 24. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Same-Origin Policy Apache/IIS/iOS UIWebView/SOP Bypass/Android 24
  • 25. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Same-Origin Policyとは  Same-Origin Policyとは、スキーム、ホスト、ポートの組み合わせが 同じリソースの範囲にリソースの利用を制限する仕組みで、重要なコン テンツを保護するために必須となるセキュリティ上の仕組みです。 25 http://www.example.com/ XHR等 http://www.example.com/ JavaScript リソースの読み込み 読み込みOK! XHR等 http://dena.com/ リソースの読み込み
  • 26. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Same-Origin Policyの範囲  http://www.example.com/test/test.htmlとSame Originなのは? 26 URL Same? http://dena.com/test/test.html http://www.example.com:8080/test/test.html http://abc.example.com/test/test.html https://www.example.com/test/test.html http://www.example.com/aaaa/test.html
  • 27. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Same-Origin PolicyとCross-Site Scripting(XSS)  もし、異なるOriginのWebページ上で、JavaScriptが実行できたら… 27 http://www.example.com/ http://www.example.com/ JavaScript http://dena.com/ Scriptの埋め込み
  • 28. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Same-Origin PolicyとCross-Site Scripting(XSS)  Same-Origin Policyが正しく動作している例 28 Uncaught DOMException: Blocked a frame with origin "http://attack.example.com" from accessing a cross-origin frame.
  • 29. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Same-Origin PolicyとCross-Site Scripting(XSS)  XSSの仕方色々 ⁃ <script>alert('xss')</script> ⁃ <img src=x onerror="alert('xss')"> ⁃ +ADw-script+AD4-alert('xss')+ADw-/script+AD4- 29
  • 30. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Same-Origin PolicyとCross-Site Scripting(XSS) 30 今日はあまり見かけなくなった XSSを改めて紹介します!
  • 31. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 302 Foundの画面とXSS 31 ※画面はハメコミ合成です 昔見た302 Foundの画面
  • 32. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 302 Foundの画面とXSS 32 表示してみましょう! ※もちろんデフォルト設定で!
  • 33. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 302 Foundの画面とXSS Chrome IE Firefox Opera(Presto) 通常 × × × × 空 ○ × ○ ○ data:text/html…. △ × △ ○ javascript:xxx × × × ◎ 33 XSS動きます! 古いブラウザだけど……  Locationヘッダ(302 Found)の扱いの違いとXSS
  • 34. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 302 FoundでXSSが動作する組み合わせ  Apache + CGI(perl) + Opera(Presto) 34
  • 35. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 302 FoundでXSSが動作する組み合わせ  IIS + asp + Opera(Presto) 35 投げやりな メッセージが素敵
  • 36. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 302 FoundでXSSが動作する組み合わせ  WEBRick 36 HTTP/1.1 302 Found X-Frame-Options: SAMEORIGIN X-Xss-Protection: 1; mode=block X-Content-Type-Options: nosniff Location: javascript:alert(0) Content-Type: text/html; charset=utf-8 Cache-Control: no-cache X-Request-Id: bb768842-983e-4ef8-b0e7-795193db1a96 X-Runtime: 0.007491 Server: WEBrick/1.3.1 (Ruby/2.1.2/2014-05-08) Date: Sun, 06 Jul 2014 12:00:51 GMT Content-Length: 89 Connection: Keep-Alive <html><body>You are being <a href="javascript:alert('xss')">redirected</a>.</body></html> 何故かOpera(Presto)では表示されない! (最後に改行入れるといける) <a href="javascript:alert('xss')">
  • 37. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 302 FoundでXSSが動作する組み合わせ  WEBrick + FireFox 5.0 37
  • 38. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. スマートフォン(Android)の場合 38
  • 39. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Android(WebView)の場合 – Location: javascript:xxxxx  端末側上のエラーページで表示 39 実は結構危ない状態!
  • 40. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Android(WebView)の場合 – 何が危ないのか?  Same Origin Policyが効かない範囲がある 40 ⁃ 特定の条件(「file://」で開かれたページ 等)でSame Origin Policyの制約がなくな る場合がある ※ブラウザによって挙動はまちまち事が多い ⁃ エラーページは「file://」と同等、または、 一般のページより高い権限が設定されて いる場合がある
  • 41. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Android(WebView)の場合 – 「file://」に関する制約例  「file://」に関する制約例 ⁃ 通常のWebページからは呼び出せない • 例:http://www.example.com上にiframeで埋め込 めない ⁃ 通常のWebページからは遷移ができない • 例:aタグで指定しても遷移ができない • 例:Locationヘッダで遷移ができない ⇒ 何らかの方法で「file://xxx」を開く事ができれば、Same Origin Policyの回避まで後一歩! 41※ブラウザやレンダリングエンジンによって結構違います
  • 42. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Android(WebView)の場合 – Location:javascript:xxxが有効なケース  影響を受けるバージョン ⁃ Android OS 4.0 (API 14) 以降 4.4(API 19) 未満  再現条件 WebViewを使っているアプリで ⁃ 下記設定が true になっている • setAllowFileAccessFromFileURLs • setAllowUniversalAccessFromFileU RLs または ⁃ AndroidManifest.xml の android:targetSdkVersion が 15 以下になっている 42 ※端末によってはエラー画面がカスタマイズ されていて動作しません。
  • 43. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Android(WebView)の場合 – Same-Origin Policy回避例(Android 4.2.2) 43
  • 44. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Android(WebView)の場合 – 詳細なSame Origin Policyの回避手順 1. 任意のページでCookieに”<script>xxxx…</script>”のような攻撃 コードをセットする 44 2. 「Location: javascript:xxxx」でリダイレクトするページへアクセス する 4. JavaScriptでiframeを作り 「file:///data/.../webViewCookiesChromium.db」を開く ⁃ エラーページは、「file://」を呼び出せるが、「file://」で呼び出 したコンテンツの中身は読めない 5. 手順1でセットしたスクリプトが 発動する! 6. 「file:///data/.../webViewCookiesChromium.db」は「file://」で開 かれているため、Same Origin Policyの例外になり、任意のローカル ファイル、Webページのコンテンツを読み込める 3. エラー画面上のリンクをユーザがクリックする
  • 45. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Android(WebView)の場合 – WebViewはNativeアプリの脅威か?  WebViewをメインで使っていないアプリでも以下のような場所で使っ ているケースが多くある ⁃ おしらせ ⁃ 利用規約 ⁃ ヘルプ ⁃ お問い合わせ などのWebと相性が良い機能 45 WebViewを利用していない箇所の重要情報が漏洩する可能性! WebView経由でアプリ内の任意のファイルが読み込める
  • 46. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Android(WebView)の場合 – WebViewはNativeアプリの脅威か? 46 WebView 保護 データ 領域 Native アプリ 部分 重要データの 保存、読込 サーバ側 アプリ 攻撃コード SOP Bypass!! 情報漏洩 Man In The Middle等
  • 47. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. スマートフォン(iOS)の場合 47
  • 48. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. iOS(WebView)の場合  iOSのWebViewのデフォルトでは、Locationヘッダを不正 に処理する事は無いが、ドメインの扱いに注意が必要 48 脆弱な利用方法の実行例
  • 49. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. iOS(WebView)の場合 – 動作ドメイン確認のSampleコード抜粋 49 func webView(webView: UIWebView, shouldStartLoadWithRequest request: NSURLRequest, navigationType: UIWebViewNavigationType) -> Bool { let urlStr = request.URL?.absoluteString; print("--------------------------------------"); print("CurrentDomain:" + webView.stringByEvaluatingJavaScriptFromString("document. domain")!); print("NextURL:" + urlStr!); if((urlStr?.hasPrefix("javascript:")) != nil) { webView.stringByEvaluatingJavaScriptFromString(urlStr!); } return true } }
  • 50. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. iOS(WebView)の場合 -リダイレクト中のドメインの扱い 1. 「https://www.example.com/」へアクセス(起動直後) ⁃ document.domain: 空 2. 1の読み込みが完了 ⁃ document.domain: www.example.com 3. 「http://192.168.56.104/」へアクセス開始 ⁃ document.domain: www.example.com 4. Locationヘッダで「javascript:alert(1)」へリダイレクト ⁃ document.domain: www.example.com 5. Locationヘッダをコード上でJavaScriptとして実行 ⁃ document.domain: www.example.com 50
  • 51. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. iOS(WebView)の場合 - 脆弱なアプリの例 51 ブラウザAの場合: ブラウザBの場合: ※100件 程度調査して、5アプリ(うち2つは派生アプリ)で確認(2014/07時点) ※前述の挙動が原因かは不明
  • 52. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. まとめ 普段見えない部分の挙動は結構変な事 になりがち 新しいものを作るときに、意外とこう いった細かいとこが再燃したりするの でまあまあ重要 52
  • 53. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. まとめ 53 Enjoy!