SlideShare a Scribd company logo
Submit Search
Upload
DLL読み込みの問題を読み解く
Report
Share
J
JPCERT Coordination Center
JPCERT Coordination Center
Follow
•
7 likes
•
7,948 views
1
of
48
DLL読み込みの問題を読み解く
•
7 likes
•
7,948 views
Report
Share
Download Now
Download to read offline
Software
OSC2017Kyoto 講演資料です. (20170806: 講演で使ったバージョンに更新しました. 事前にアップロードしたものとほぼ同じです.)
Read more
J
JPCERT Coordination Center
JPCERT Coordination Center
Follow
Recommended
マルチモーダル深層学習の研究動向 by
マルチモーダル深層学習の研究動向
Koichiro Mori
45.5K views
•
37 slides
最近のSingle Shot系の物体検出のアーキテクチャまとめ by
最近のSingle Shot系の物体検出のアーキテクチャまとめ
Yusuke Uchida
40.1K views
•
25 slides
【DL輪読会】Scale Efficiently: Insights from Pre-training and Fine-tuning Transfor... by
【DL輪読会】Scale Efficiently: Insights from Pre-training and Fine-tuning Transfor...
Deep Learning JP
493 views
•
17 slides
CTF for ビギナーズ バイナリ講習資料 by
CTF for ビギナーズ バイナリ講習資料
SECCON Beginners
25.8K views
•
90 slides
モデルベース協調フィルタリングにおける推薦の透明性に関する検討 by
モデルベース協調フィルタリングにおける推薦の透明性に関する検討
Okamoto Laboratory, The University of Electro-Communications
502 views
•
30 slides
ソースコードの品質向上のための効果的で効率的なコードレビュー by
ソースコードの品質向上のための効果的で効率的なコードレビュー
Moriharu Ohzu
55.3K views
•
109 slides
More Related Content
What's hot
全力解説!Transformer by
全力解説!Transformer
Arithmer Inc.
9.6K views
•
43 slides
Pythonではじめる OpenAI Gymトレーニング by
Pythonではじめる OpenAI Gymトレーニング
Takahiro Kubo
36.2K views
•
70 slides
異次元のグラフデータベースNeo4j by
異次元のグラフデータベースNeo4j
昌桓 李
13.1K views
•
88 slides
Anomaly detection 系の論文を一言でまとめた by
Anomaly detection 系の論文を一言でまとめた
ぱんいち すみもと
4.5K views
•
33 slides
RAPiD by
RAPiD
harmonylab
1K views
•
31 slides
Data-centricなML開発 by
Data-centricなML開発
Takeshi Suzuki
4.7K views
•
48 slides
What's hot
(20)
全力解説!Transformer by Arithmer Inc.
全力解説!Transformer
Arithmer Inc.
•
9.6K views
Pythonではじめる OpenAI Gymトレーニング by Takahiro Kubo
Pythonではじめる OpenAI Gymトレーニング
Takahiro Kubo
•
36.2K views
異次元のグラフデータベースNeo4j by 昌桓 李
異次元のグラフデータベースNeo4j
昌桓 李
•
13.1K views
Anomaly detection 系の論文を一言でまとめた by ぱんいち すみもと
Anomaly detection 系の論文を一言でまとめた
ぱんいち すみもと
•
4.5K views
RAPiD by harmonylab
RAPiD
harmonylab
•
1K views
Data-centricなML開発 by Takeshi Suzuki
Data-centricなML開発
Takeshi Suzuki
•
4.7K views
How Much Position Information Do Convolutional Neural Networks Encode? by Kazuyuki Miyazawa
How Much Position Information Do Convolutional Neural Networks Encode?
Kazuyuki Miyazawa
•
2.3K views
東北大学講義資料 実世界における自然言語処理 - すべての人にロボットを - 坪井祐太 by Preferred Networks
東北大学講義資料 実世界における自然言語処理 - すべての人にロボットを - 坪井祐太
Preferred Networks
•
2.2K views
Deep Learning による視覚×言語融合の最前線 by Yoshitaka Ushiku
Deep Learning による視覚×言語融合の最前線
Yoshitaka Ushiku
•
32.5K views
モデル高速化百選 by Yusuke Uchida
モデル高速化百選
Yusuke Uchida
•
24.8K views
You Only Look One-level Featureの解説と見せかけた物体検出のよもやま話 by Yusuke Uchida
You Only Look One-level Featureの解説と見せかけた物体検出のよもやま話
Yusuke Uchida
•
9.4K views
Curriculum Learning (関東CV勉強会) by Yoshitaka Ushiku
Curriculum Learning (関東CV勉強会)
Yoshitaka Ushiku
•
64.1K views
Dockerからcontainerdへの移行 by Akihiro Suda
Dockerからcontainerdへの移行
Akihiro Suda
•
7.6K views
世界一わかりやすいClean Architecture by Atsushi Nakamura
世界一わかりやすいClean Architecture
Atsushi Nakamura
•
47.2K views
深層学習の判断根拠を理解するための 研究とその意義 @PRMU 2017熊本 by Takahiro Kubo
深層学習の判断根拠を理解するための 研究とその意義 @PRMU 2017熊本
Takahiro Kubo
•
14.9K views
Mendeleyで簡単! 論文管理 by Takashi Yamane
Mendeleyで簡単! 論文管理
Takashi Yamane
•
12.8K views
SSII2021 [TS3] 機械学習のアノテーションにおける データ収集 〜 精度向上のための仕組み・倫理や社会性バイアス 〜 by SSII
SSII2021 [TS3] 機械学習のアノテーションにおける データ収集 〜 精度向上のための仕組み・倫理や社会性バイアス 〜
SSII
•
1.9K views
形態素解析の過去・現在・未来 by Preferred Networks
形態素解析の過去・現在・未来
Preferred Networks
•
27.9K views
[DL輪読会] Residual Attention Network for Image Classification by Deep Learning JP
[DL輪読会] Residual Attention Network for Image Classification
Deep Learning JP
•
8.3K views
[DL輪読会]data2vec: A General Framework for Self-supervised Learning in Speech,... by Deep Learning JP
[DL輪読会]data2vec: A General Framework for Self-supervised Learning in Speech,...
Deep Learning JP
•
2.4K views
Similar to DLL読み込みの問題を読み解く
細工された製品が突然牙をむく「サプライチェーン攻撃」の脅威 by
細工された製品が突然牙をむく「サプライチェーン攻撃」の脅威
Noriaki Hayashi
1.4K views
•
44 slides
[JPCERT/CC POC Meeting] 研究紹介 + DLLハイジャックの脆弱性 by
[JPCERT/CC POC Meeting] 研究紹介 + DLLハイジャックの脆弱性
Asuka Nakajima
1.2K views
•
37 slides
攻撃者の行動を追跡せよ -行動パターンに基づく横断的侵害の把握と調査- by 朝長 秀誠, 六田 佳祐 by
攻撃者の行動を追跡せよ -行動パターンに基づく横断的侵害の把握と調査- by 朝長 秀誠, 六田 佳祐
CODE BLUE
4.6K views
•
88 slides
[デブサミ2012]趣味と実益の脆弱性発見 by
[デブサミ2012]趣味と実益の脆弱性発見
Yosuke HASEGAWA
6.7K views
•
69 slides
日本の組織をターゲットにした攻撃キャンペーンの詳細 by 朝長 秀誠 & 中村 祐 - CODE BLUE 2015 by
日本の組織をターゲットにした攻撃キャンペーンの詳細 by 朝長 秀誠 & 中村 祐 - CODE BLUE 2015
CODE BLUE
2.3K views
•
94 slides
Agileツール適合化分科会(変更管理・バージョン管理) by
Agileツール適合化分科会(変更管理・バージョン管理)
masanori kataoka
1.1K views
•
32 slides
Similar to DLL読み込みの問題を読み解く
(20)
細工された製品が突然牙をむく「サプライチェーン攻撃」の脅威 by Noriaki Hayashi
細工された製品が突然牙をむく「サプライチェーン攻撃」の脅威
Noriaki Hayashi
•
1.4K views
[JPCERT/CC POC Meeting] 研究紹介 + DLLハイジャックの脆弱性 by Asuka Nakajima
[JPCERT/CC POC Meeting] 研究紹介 + DLLハイジャックの脆弱性
Asuka Nakajima
•
1.2K views
攻撃者の行動を追跡せよ -行動パターンに基づく横断的侵害の把握と調査- by 朝長 秀誠, 六田 佳祐 by CODE BLUE
攻撃者の行動を追跡せよ -行動パターンに基づく横断的侵害の把握と調査- by 朝長 秀誠, 六田 佳祐
CODE BLUE
•
4.6K views
[デブサミ2012]趣味と実益の脆弱性発見 by Yosuke HASEGAWA
[デブサミ2012]趣味と実益の脆弱性発見
Yosuke HASEGAWA
•
6.7K views
日本の組織をターゲットにした攻撃キャンペーンの詳細 by 朝長 秀誠 & 中村 祐 - CODE BLUE 2015 by CODE BLUE
日本の組織をターゲットにした攻撃キャンペーンの詳細 by 朝長 秀誠 & 中村 祐 - CODE BLUE 2015
CODE BLUE
•
2.3K views
Agileツール適合化分科会(変更管理・バージョン管理) by masanori kataoka
Agileツール適合化分科会(変更管理・バージョン管理)
masanori kataoka
•
1.1K views
Rancherを活用して開発効率を上げる by Michitaka Terada
Rancherを活用して開発効率を上げる
Michitaka Terada
•
2.7K views
安全なプラグインに必要なこと: 脆弱性届出状況に見る傾向と対策 (WordCampTokyo 2017) by JPCERT Coordination Center
安全なプラグインに必要なこと: 脆弱性届出状況に見る傾向と対策 (WordCampTokyo 2017)
JPCERT Coordination Center
•
3.6K views
闘うITエンジニアのためのLinuxセキュリティ講座 by Toshiharu Harada, Ph.D
闘うITエンジニアのためのLinuxセキュリティ講座
Toshiharu Harada, Ph.D
•
1.5K views
[data security showcase Sapporo 2015] D22:今求められるセキュリティレベルとFireEye適応型防御 by ファイ... by Insight Technology, Inc.
[data security showcase Sapporo 2015] D22:今求められるセキュリティレベルとFireEye適応型防御 by ファイ...
Insight Technology, Inc.
•
2.1K views
TeamFileご提案資料 by COMPUTER HI-TECH. INC
TeamFileご提案資料
COMPUTER HI-TECH. INC
•
7.8K views
2017年のセキュリティ 傾向と対策講座 by NHN テコラス株式会社
2017年のセキュリティ 傾向と対策講座
NHN テコラス株式会社
•
2K views
技術選択とアーキテクトの役割 by Toru Yamaguchi
技術選択とアーキテクトの役割
Toru Yamaguchi
•
42K views
System Center 2012, Endpoint Protectionの運用 by Suguru Kunii
System Center 2012, Endpoint Protectionの運用
Suguru Kunii
•
12.1K views
Windows 8 Developers カンファレンス by Kaoru NAKAMURA
Windows 8 Developers カンファレンス
Kaoru NAKAMURA
•
2.1K views
Mr201302 mitb in_android_2 by FFRI, Inc.
Mr201302 mitb in_android_2
FFRI, Inc.
•
548 views
OSSで作る機械学習を用いたペネトレーションテストツール by Isao Takaesu
OSSで作る機械学習を用いたペネトレーションテストツール
Isao Takaesu
•
1.6K views
ユーザ・デザイナーから見たPlone CMSのアピールポイント by Masaki NIWA
ユーザ・デザイナーから見たPlone CMSのアピールポイント
Masaki NIWA
•
926 views
CERT コーディングスタンダードご紹介 (OSC2017@Osaka) by JPCERT Coordination Center
CERT コーディングスタンダードご紹介 (OSC2017@Osaka)
JPCERT Coordination Center
•
1.9K views
Zabbixをもっと便利に!安全に! by Takashi Matsunaga
Zabbixをもっと便利に!安全に!
Takashi Matsunaga
•
1.7K views
More from JPCERT Coordination Center
いま改めて製品開発者の脆弱性対応について考える ~情報セキュリティ早期警戒パートナーシップを運用する調整機関の視点から~ by
いま改めて製品開発者の脆弱性対応について考える ~情報セキュリティ早期警戒パートナーシップを運用する調整機関の視点から~
JPCERT Coordination Center
882 views
•
63 slides
WordBench東京 7月勉強会「夏のLT大会!」『WordPress とバックアップの話』 by
WordBench東京 7月勉強会「夏のLT大会!」『WordPress とバックアップの話』
JPCERT Coordination Center
574 views
•
16 slides
脆弱性情報はこうしてやってくる by
脆弱性情報はこうしてやってくる
JPCERT Coordination Center
3.8K views
•
25 slides
OWASP ASVS と Cheat Sheet シリーズ (日本語版) のご紹介 (OSC2016Hokkaido) by
OWASP ASVS と Cheat Sheet シリーズ (日本語版) のご紹介 (OSC2016Hokkaido)
JPCERT Coordination Center
3.1K views
•
56 slides
Android Platform の URLConnection に HTTP ヘッダインジェクションの脆弱性 by
Android Platform の URLConnection に HTTP ヘッダインジェクションの脆弱性
JPCERT Coordination Center
4.8K views
•
65 slides
Case Studies and Lessons Learned from SSL/TLS Certificate Verification Vulner... by
Case Studies and Lessons Learned from SSL/TLS Certificate Verification Vulner...
JPCERT Coordination Center
1.9K views
•
74 slides
More from JPCERT Coordination Center
(20)
いま改めて製品開発者の脆弱性対応について考える ~情報セキュリティ早期警戒パートナーシップを運用する調整機関の視点から~ by JPCERT Coordination Center
いま改めて製品開発者の脆弱性対応について考える ~情報セキュリティ早期警戒パートナーシップを運用する調整機関の視点から~
JPCERT Coordination Center
•
882 views
WordBench東京 7月勉強会「夏のLT大会!」『WordPress とバックアップの話』 by JPCERT Coordination Center
WordBench東京 7月勉強会「夏のLT大会!」『WordPress とバックアップの話』
JPCERT Coordination Center
•
574 views
脆弱性情報はこうしてやってくる by JPCERT Coordination Center
脆弱性情報はこうしてやってくる
JPCERT Coordination Center
•
3.8K views
OWASP ASVS と Cheat Sheet シリーズ (日本語版) のご紹介 (OSC2016Hokkaido) by JPCERT Coordination Center
OWASP ASVS と Cheat Sheet シリーズ (日本語版) のご紹介 (OSC2016Hokkaido)
JPCERT Coordination Center
•
3.1K views
Android Platform の URLConnection に HTTP ヘッダインジェクションの脆弱性 by JPCERT Coordination Center
Android Platform の URLConnection に HTTP ヘッダインジェクションの脆弱性
JPCERT Coordination Center
•
4.8K views
Case Studies and Lessons Learned from SSL/TLS Certificate Verification Vulner... by JPCERT Coordination Center
Case Studies and Lessons Learned from SSL/TLS Certificate Verification Vulner...
JPCERT Coordination Center
•
1.9K views
クロスサイトリクエストフォージェリ(CSRF)とその対策 by JPCERT Coordination Center
クロスサイトリクエストフォージェリ(CSRF)とその対策
JPCERT Coordination Center
•
18.4K views
脆弱性事例に学ぶセキュアコーディング「SSL/TLS証明書検証」編 (JavaDayTokyo2015) by JPCERT Coordination Center
脆弱性事例に学ぶセキュアコーディング「SSL/TLS証明書検証」編 (JavaDayTokyo2015)
JPCERT Coordination Center
•
4.3K views
デブサミ2015 事例から学ぶAndroidアプリのセキュアコーディング「SSL/TLS証明書検証の現状と対策」 by JPCERT Coordination Center
デブサミ2015 事例から学ぶAndroidアプリのセキュアコーディング「SSL/TLS証明書検証の現状と対策」
JPCERT Coordination Center
•
6.6K views
ソフトウェアセキュリティ保証成熟度モデル by JPCERT Coordination Center
ソフトウェアセキュリティ保証成熟度モデル
JPCERT Coordination Center
•
692 views
Lessons (to be) Learned from Handling OpenSSL Vulnerabilities by JPCERT Coordination Center
Lessons (to be) Learned from Handling OpenSSL Vulnerabilities
JPCERT Coordination Center
•
1.3K views
脆弱性事例に学ぶセキュアコーディング「SSL/TLS証明書検証」編 (KOF2014) by JPCERT Coordination Center
脆弱性事例に学ぶセキュアコーディング「SSL/TLS証明書検証」編 (KOF2014)
JPCERT Coordination Center
•
11.5K views
Android Secure Coding by JPCERT Coordination Center
Android Secure Coding
JPCERT Coordination Center
•
8.9K views
JRE標準ライブラリの脆弱性事例を理解する (AtomicReferenceArrayクラス と Type Confusion) by JPCERT Coordination Center
JRE標準ライブラリの脆弱性事例を理解する (AtomicReferenceArrayクラス と Type Confusion)
JPCERT Coordination Center
•
2.3K views
Apache Axis2におけるXML署名検証不備 by JPCERT Coordination Center
Apache Axis2におけるXML署名検証不備
JPCERT Coordination Center
•
2.4K views
Apache Tomcat における クロスサイトリクエストフォージェリ (CSRF) 保護メカニズム回避の脆弱性 by JPCERT Coordination Center
Apache Tomcat における クロスサイトリクエストフォージェリ (CSRF) 保護メカニズム回避の脆弱性
JPCERT Coordination Center
•
3.2K views
Spacewalkにおけるクロスサイト リクエストフォージェリ(CSRF)の脆弱性 by JPCERT Coordination Center
Spacewalkにおけるクロスサイト リクエストフォージェリ(CSRF)の脆弱性
JPCERT Coordination Center
•
1.4K views
Apache CommonsのHttpClientに おけるSSLサーバ証明書検証不備 (CVE-2012-5783) by JPCERT Coordination Center
Apache CommonsのHttpClientに おけるSSLサーバ証明書検証不備 (CVE-2012-5783)
JPCERT Coordination Center
•
3K views
Apache ActiveMQにおける認証処理不備の脆弱性(AMQ-1272) by JPCERT Coordination Center
Apache ActiveMQにおける認証処理不備の脆弱性(AMQ-1272)
JPCERT Coordination Center
•
1.4K views
JBoss Application Server におけるディレクトリトラバーサルの脆弱性 by JPCERT Coordination Center
JBoss Application Server におけるディレクトリトラバーサルの脆弱性
JPCERT Coordination Center
•
1.4K views
DLL読み込みの問題を読み解く
1.
セキュアなソフトウェアをつくるために…… DLL読み込みの問題を読み解く JPCERT コーディネーションセンター 情報流通対策グループ リードアナリスト ⼾⽥
洋三 2017年8⽉5⽇(⼟)
2.
Copyright ©2017 JPCERT/CC
All rights reserved. 本⽇の話題 ü ⾃⼰紹介 ü 「DLL読み込みの脆弱性」って? ü 過去を振り返る -- 2010年ころ ü 最近の届け出 ü ユーザが⾏うべき対策、開発者が⾏うべき対策 ü まとめ ü 参考情報など 2
3.
Copyright ©2017 JPCERT/CC
All rights reserved. http://www.tomo.gr.jp/root/e9706.html JPCERT/CC 情報流通対策グループ リードアナリスト ⼾⽥ 洋三 脆弱性情報分析, セキュアコーディ ング普及啓発活動…… に努めています 3 ⾃⼰紹介
4.
Copyright ©2017 JPCERT/CC
All rights reserved. JPCERT Coordination Center 日本における情報セキュリティ対策 活動の向上に取り組んでいる組織 4
5.
Copyright ©2017 JPCERT/CC
All rights reserved. 過去のOSC参加履歴 (セミナーを⾏ったもの) 5 •OSC2017@Osaka •SEI CERT コーディングスタンダードのご紹介 •OSC2016@Hokkaido •OWASP ASVS と Cheat Sheet(日本語版)のご紹介 •OSC2015@Hokkaido •CSRF 脆弱性とその対策について •OSC2014@Fukuoka •Lessons (to be) Learned from Handling OpenSSL Vulnerabilities •OSC2013@Kyoto •~ヒトの振り見て我が振り直せ~脆弱性事例に学ぶJavaセキュアコーディング •OSC2012@Fukuoka •Androidセキュアコーディング~安全なAndroidアプリ開発のための心得~ •OSC2011@Nagoya: セキュアコーディングノススメ(JAVA編) •OSC2010@Hokkaido: あなたのコードにセキュアコーディングスタンダード •OSC2009@Fukuoka: セキュアコーディングノススメ •OSC2008@Tokyo/Spring: セキュアコーディングノススメ •OSC2007@Fukuoka: セキュアコーディングノススメ •OSC2007@Niigata: ソフトウェア脆弱性を取り巻く状況と対策 •OSC2007@Kansai: ソフトウェア脆弱性情報流通のこれまでとこれから •OSC2005@Tokyo/Fall: ソフトウェア脆弱性情報流通への取り組み
6.
Copyright ©2017 JPCERT/CC
All rights reserved. JPCERT/CC の活動 重要インフラ、重要情報インフラ事業者等の特定組織向け情報発信早期警戒情報 海外のNational-CSIRTや企業内のセキュリティ対応組織の構築・運⽤⽀援CSIRT構築⽀援 脆弱性情報ハンドリング Ø 未公開の脆弱性関連情報を製品開発者へ提供し、 対応依頼 Ø 関係機関と連携し、国際的に情報公開⽇を調整 Ø セキュアなコーディング⼿法の普及 Ø 制御システムに関する脆弱性関連情報の適切な 流通 マルウエア(不正プログラム)等の攻撃⼿法の分析、解析アーティファクト分析 各種業務を円滑に⾏うための海外関係機関との連携国際連携 インシデントの予測と捕捉インシデント予防 発⽣したインシデントへの対応 制御システムに関するインシデントハンドリング、情報収集・分析発信制御システムセキュリティ ⽇本シーサート協議会、フィッシング対策協議会の事務局運営等国内外関係者との連携 Ø マルウエアの接続先等の攻撃関連サイト等の閉 鎖等による被害最⼩化 Ø 攻撃⼿法の分析⽀援による被害可能性の確認、 拡散抑⽌ Ø 再発防⽌に向けた関係各関の情報交換及び情報 共有 インシデントハンドリング (インシデント対応調整⽀援) 情報収集・分析・発信 定点観測(TSUBAME) Ø ネットワークトラフィック情報の収集分析 Ø セキュリティ上の脅威情報の収集、分析、必要 とする組織への提供 6
7.
Copyright ©2017 JPCERT/CC
All rights reserved. JPCERT/CC セキュアコーディングのコンテンツ 7 www.jpcert.or.jp/securecoding/
8.
Copyright ©2017 JPCERT/CC
All rights reserved. slideshare にも講演資料やセミナコンテンツ置いてます 8 www.slideshare.net/jpcert_securecoding/presentations
9.
Copyright ©2017 JPCERT/CC
All rights reserved. 「DLL読み込みの脆弱性」って? 9
10.
Copyright ©2017 JPCERT/CC
All rights reserved. JVNに掲載されているDLL読み込み案件 10
11.
Copyright ©2017 JPCERT/CC
All rights reserved. JVNに掲載されているDLL読み込み案件 11
12.
Copyright ©2017 JPCERT/CC
All rights reserved. そもそも DLL ってなんだっけ? 12 ダイナミック リンク ライブラリ (DLL) は、関数とリソースの共有ラ イブラリとして機能する実行可能ファイルです。 …… オペレーティング システムは、実行可能ファイルの読み込み時、 または実行時に必要に応じて、DLL を実行可能ファイルのメモリ 領域に読み込むことができます。 また、DLL は、実行可能ファイ ル間で関数とリソースを共有しやすくします。 メモリ内の DLL の 内容には、同時に複数のアプリケーションがアクセスできます。 https://msdn.microsoft.com/ja-jp/library/1ez7dh12.aspx •Windows 標準の DLL(Kernel32.dll, User32.dll, GDI32.dll, …) •アプリ固有の DLL
13.
Copyright ©2017 JPCERT/CC
All rights reserved. DLL の読み込み 13 • (C などの)スタートアップルーチンの初期化の一環として 必要な DLL を読み込み • アプリの中で LoadLibrary() などを使って読み込み 1. 実⾏ファイルがあるディレクトリ (アプリケーションディレクトリ) 2. Windows システムディレクトリ 3. Windows ディレクトリ 4. カレントディレクトリ 5. 環境変数 PATH 0. “KnownDLLs” に登録されているかどうか Windows デスクトップアプリが使用する DLL 検索パス (cf. https://msdn.microsoft.com/en-us/library/windows/desktop/ms682586(v=vs.85).aspx)
14.
Copyright ©2017 JPCERT/CC
All rights reserved. DLL 読み込みの様⼦を⾒る 14 •Sysinternals に含まれている Process Monitor (procmon) • DLL 読み込みをはじめ、Win32 API 呼び出しの様⼦などの調査に 役⽴つ •Dependency Walker • DLL の読み込み順序、依存関係を調べる 定番のツール2つ
15.
Copyright ©2017 JPCERT/CC
All rights reserved. Sysinternals Process Monitor (procmon) ファイル関連の操作やレジス トリ操作などのイベントを記 録できる ⼤量のイベントログのなかか ら、プロセス名、パス名、操 作内容などによるフィルタを かけて必要な部分のみを抽出 できる 15 https://docs.microsoft.com/en-us/sysinternals/downloads/procmon
16.
Copyright ©2017 JPCERT/CC
All rights reserved. procmon を使った挙動確認 üprocmon.exe を実⾏ (イベント記録開始) üプログラム起動, ひととおり操作 üprocmon.exe でフィルタ設定 üフィルタ後のログ内容を精査 ü必要に応じてログ保存 16
17.
Copyright ©2017 JPCERT/CC
All rights reserved. procmon の実⾏には管理者権限が必要 起動すると, UAC(ユーザ アカウント制御)で実⾏許 可を求められます. 17 こんなやつ
18.
Copyright ©2017 JPCERT/CC
All rights reserved. procmon が起動したところ(1) 18
19.
Copyright ©2017 JPCERT/CC
All rights reserved. procmon が起動したところ(2) 19 プロセス名 操作するファイルのパス名 操作結果
20.
Copyright ©2017 JPCERT/CC
All rights reserved.20 Procmon のフィルタ設定(0)
21.
Copyright ©2017 JPCERT/CC
All rights reserved.21 プロセス名, パス名など “begins with”, “contains” など “include”, “exclude” 「プロセス名」が「firefox」で「始まる」ものを選択 Procmon のフィルタ設定(1) “Add” ボタンを押す
22.
Copyright ©2017 JPCERT/CC
All rights reserved.22 フィルタで使うルールが⼀つ登録された Procmon のフィルタ設定(2)
23.
Copyright ©2017 JPCERT/CC
All rights reserved.23 “Apply” ボタンを 押す フィルタ内容の更新完了. 以下同様にして、必要なだけルールを追加していく. Procmon のフィルタ設定(3)
24.
Copyright ©2017 JPCERT/CC
All rights reserved. Teraterm 0.94 インストーラ実⾏時 24 “process name” と “Path” でフィルタを かけたところ.
25.
Copyright ©2017 JPCERT/CC
All rights reserved. Teraterm 0.94 インストーラ実⾏時 25
26.
Copyright ©2017 JPCERT/CC
All rights reserved. Teraterm 0.95 インストーラ実⾏時 26
27.
Copyright ©2017 JPCERT/CC
All rights reserved. 過去を振り返る -- 2010年ころ 27
28.
Copyright ©2017 JPCERT/CC
All rights reserved. 2010年ころの状況(1) 28 • セキュリティベンダから, DLL 読み込みの脆弱性に対する攻撃 ⼿法が公開され, 注⽬を集める • CERT/CC VU#707943 や US-CERT Technical Alert TA10-238A 公開 • Microsoft からアドバイザリや開発者向けガイダンス⽂書公開 • セキュリティアドバイザリ 2269637 • 「DLLプリロード問題の対策ガイダンス」 [参考] WindowsのDLLだけが危ないのか?DLL hijacking vulnerability概説(前編) https://codezine.jp/article/detail/5441 https://www.jpcert.or.jp/sc-magazine/codezine02-8.html WindowsのDLLだけが危ないのか?DLL hijacking vulnerability概説(後編) https://codezine.jp/article/detail/5442 https://www.jpcert.or.jp/sc-magazine/codezine02-9.html
29.
Copyright ©2017 JPCERT/CC
All rights reserved. 2010年ころの状況(2) 29 https://www.jpcert.or.jp/sc-magazine/codezine02-8.html
30.
Copyright ©2017 JPCERT/CC
All rights reserved. 不正な DLL を読み込ませる攻撃とは… 30 - (攻撃者が)ドキュメントファイルと一緒に細工した DLL を置く - 細工した DLL をドキュメントファイルと一緒にダウンロードさ せそのまま実行させる 1. ドキュメントファイルと一緒に細工 した DLL を置く 2. ドキュメントファイルに関連づけら れたアプリを起動 3. カレントディレクトリにある DLL を 使ってしまう https://www.jpcert.or.jp/sc-magazine/codezine02-8.html
31.
Copyright ©2017 JPCERT/CC
All rights reserved. 「カレントディレクトリ」からの DLL 読み込み 31 1. 実⾏ファイルがあるディレクトリ (アプリケーションディレクトリ) 2. Windows システムディレクトリ 3. Windows ディレクトリ 4. カレントディレクトリ 5. 環境変数 PATH 0. “KnownDLLs” に登録されているかどうか Windows デスクトップアプリが使用する DLL 検索パス (cf. https://msdn.microsoft.com/en-us/library/windows/desktop/ms682586(v=vs.85).aspx) これ 対策として検索順位が下がった
32.
Copyright ©2017 JPCERT/CC
All rights reserved. 最近の変化 32
33.
Copyright ©2017 JPCERT/CC
All rights reserved. DLL読み込みの届け出の増加 33 • 2016年ころから DLL 読 み込みの脆弱性の届け出 が増加 • 対象のほとんどは 「インストーラ」 「⾃⼰解凍書庫」 2016Q4 2017Q1 2017Q2 「JPCERT/CC 活動概要」から (https://www.jpcert.or.jp/pr/)
34.
Copyright ©2017 JPCERT/CC
All rights reserved. 2010年ころの届出との違い 34 テキストファイルを開く際に… インストーラと同⼀のディレクト リに存在するDLLを…
35.
Copyright ©2017 JPCERT/CC
All rights reserved. 不正な DLL を読み込ませる攻撃とは (旧) 35 - (攻撃者が)ドキュメントファイルと一緒に細工した DLL を置く - 細工した DLL をドキュメントファイルと一緒にダウンロードさ せそのまま実行させる 1. ドキュメントファイルと一緒に細工 した DLL を置く 2. ドキュメントファイルに関連づけら れたアプリを起動 3. カレントディレクトリにある DLL を 使ってしまう https://www.jpcert.or.jp/sc-magazine/codezine02-8.html
36.
Copyright ©2017 JPCERT/CC
All rights reserved. 不正な DLL を読み込ませる攻撃とは (新) 36 - (攻撃者が)インストーラと一緒に細工した DLL を置く - 細工した DLL をインストーラと一緒にダウンロードさせその まま実行させる 1. インストーラと一緒に細工した DLL を置く 2. インストーラを起動 3. 同一ディレクトリにある DLL を 使ってしまう 脆弱性のある インストーラ
37.
Copyright ©2017 JPCERT/CC
All rights reserved. DLL 読み込み: 通常の動作 プログラム起動! プログラムと同じディレクトリから DLL を探し出そうとする 通常は DLL が⾒つからず(NOT FOUND)、次の場所に探しに ⾏く システムディレクトリにある DLL を発⾒して使⽤ 37
38.
Copyright ©2017 JPCERT/CC
All rights reserved. プログラム起動! プログラムと同じディレクトリから DLL を探し出そうとする 通常は DLL が⾒つからず(NOT FOUND)、次の場所に探しに ⾏く システムディレクトリにある DLL を発⾒して使⽤ 38 DLL を⾒つけ、ロードする 細⼯した DLL をプログラムと同じディレクトリに置く DLL 読み込み: 問題が発⽣するケース
39.
Copyright ©2017 JPCERT/CC
All rights reserved. 「アプリケーションディレクトリ」からの DLL 読み込み 39 1. 実⾏ファイルがあるディレクトリ (アプリケーションディレクトリ) 2. Windows システムディレクトリ 3. Windows ディレクトリ 4. カレントディレクトリ 5. 環境変数 PATH 0. “KnownDLLs” に登録されているかどうか Windows デスクトップアプリが使用する DLL 検索パス (cf. https://msdn.microsoft.com/en-us/library/windows/desktop/ms682586(v=vs.85).aspx)
40.
Copyright ©2017 JPCERT/CC
All rights reserved. システムの保護、アプリのセキュリティ 40 • “Windows” や ”Program Files” といったシステム領域 • アプリ側ではなくシステム側が保護 • 細工された DLL が置かれるといった状況はシステム側の責任 • (もちろんユーザが適切な形で使用している前提) • ユーザディレクトリ • 管理はユーザ側の責任 • フィッシングや水飲み場攻撃など, 世の中はユーザを騙す攻撃がいっぱい • どこまでユーザの責任にする? システム領域外で動作するアプリには, よりセキュアな実装を求めたい インストーラ, 自己解凍書庫, ポータブルアプリなど
41.
Copyright ©2017 JPCERT/CC
All rights reserved. ユーザが⾏うべき対策 開発者が⾏うべき対策 41
42.
Copyright ©2017 JPCERT/CC
All rights reserved. ユーザが⾏うべき対策 42 • あやしいファイルを放置しない • インストーラや自己解凍書庫を安全な形で実行する 安全な形で実行 1. (インストーラをダウンロード) 2. 新規にディレクトリを作成 3. 作成したディレクトリにインストーラを移動 4. インストーラを起動
43.
Copyright ©2017 JPCERT/CC
All rights reserved. 開発者が⾏うべき対策 43 ØDLL の読み込み方法に注意する Øアプリ/インストーラの挙動についてユーザに説明し, 注意を促す DLLの読み込み • SetDefaultDllDirectories() や SetDllDirectory() でアプリ ケーションディレクトリを排除 • DLL 読み込みは可能な限り絶対パスで • インストーラ作成ツールによるインストーラ作成やアーカイ バによる自己解凍書庫作成時にはツールの対応状況を 確認
44.
Copyright ©2017 JPCERT/CC
All rights reserved. 開発者が対処しきれないケース 44 vアプリのスタートアップ部分で勝手にロード vWindows 標準 DLL が独自に他 DLL をロード vWindows 標準機能 (DLL forwarding, OS 互換機能 の発動など) v動作監視ソフトの影響 vなど DLL の読み込み⽅法 ガンバりたいヒトには, 遅延読み込み指定とフック関数を活⽤して⾃前の読み込みという⼿段もある (それでも100%解決できるわけではないけど) [参考] (https://docs.microsoft.com/en-us/cpp/build/reference/linker-support-for-delay-loaded-dlls) (http://www.ponsoftware.com/archiver/bug.htm) (http://micco.mars.jp/vul/2017/mhsvi20170515_01.htm) (https://ipmsg.org/dllpreload/dllpreload_attack.html) など…
45.
Copyright ©2017 JPCERT/CC
All rights reserved. まとめ 45 DLL 読み込み案件の扱いに苦労しています ユーザがとるべき対策: 安全な形で実⾏ 開発者がとるべき対策: —どのくらいアプリ側でがんばるか決める —使⽤上の注意をきちんとユーザに説明する DLL読み込みと合わせてコマンド呼び 出しについても注意!!
46.
Copyright ©2017 JPCERT/CC
All rights reserved. 関連情報(1) 46 JVNTA#91240916: Windows アプリケーションによる DLL 読み込みやコマンド実 行に関する問題 (https://jvn.jp/ta/JVNTA91240916/) JVNVU#707943: Windows プログラムの DLL 読み込みに脆弱性 (https://jvn.jp/vu/JVNVU707943/) 任意のDLL/実行ファイル読み込みに関する脆弱性の注意喚起 (https://www.ipa.go.jp/about/press/20101111.html) Dynamic-Link Library Security (https://msdn.microsoft.com/en-us/library/windows/desktop/ff919712(v=vs.85).aspx)
47.
Copyright ©2017 JPCERT/CC
All rights reserved.47 Windows DLLプリロード攻撃の新しいパターンと防御法 (https://ipmsg.org/dllpreload/dllpreload_attack.html) UNLHA32.DLL で作成された自己解凍書庫における任意の DLL 読み込 みに関する脆弱性 (http://micco.mars.jp/vul/2017/mhsvi20170515_01.htm) UNLHA32.DLL における任意の DLL 読み込みに関する脆弱性 (http://micco.mars.jp/vul/2017/mhsvi20170515_02.htm) Microsoft Windows における DLL 読み込みに関する脆弱性 (http://www.ponsoftware.com/archiver/bug.htm#load_lib) 関連情報(2)
48.
Copyright ©2017 JPCERT/CC
All rights reserved. セキュアコーディングに関するお問合せ、インシデント対応のご依頼は 48 JPCERTコーディネーションセンター ̶Tel:03-3518-4600 ̶https://www.jpcert.or.jp/ セキュアコーディングに関するお問い合わせ ̶Email:secure-coding@jpcert.or.jp ̶https://www.jpcert.or.jp/securecoding/ インシデントの報告 ̶Email:info@jpcert.or.jp ̶https://www.jpcert.or.jp/form/