SlideShare a Scribd company logo
Windowsストアアプリでウイルスを作るには!? cod2013名古屋
Windows ストア アプリで
ウイルスを作るには!?
わんくま同盟
BluewaterSoft 山本 康彦 (@biac)
コミュニティ 紹介
わんくま同盟
Community Open Day 2013 名古屋 2
わんくま同盟
Community Open Day 2013 名古屋 3
わんくま同盟 名古屋勉強会
次回 2013/05/18
わんくま同盟
Community Open Day 2013 名古屋 4
わんくま同盟って何?
• わんくま同盟は、コミュニティで活動して
いる者たちの集団です。
• 縦の繋がりはなく、横の繋がりで成り立っ
ています。
• ノンジャンルです。開発者が多いです。
• 各自のスタイルで情報提供などをしていま
す
• あなたも一緒に情報発信しませんか?
わんくま同盟
Community Open Day 2013 名古屋 5
主な活動内容
• http://wankuma.com/seminar/
• 東京・大阪・名古屋・福岡、ほか
• ほぼ毎週どこかで勉強会
勉強会
• http://blogs.wankuma.com/
• 主に開発系だけど、ノンジャンルブログ
• http://bbs.wankuma.com/
• C#とVB.NETの掲示板掲示板
わんくま同盟
Community Open Day 2013 名古屋 6
• わんくま同盟の勉強会では、以下のスタイル
での勉強会を開催しています。
– 1枠50分のセッション x 3~5セッション
– 1人5分のLightningTalks x 3つ
– Ustream中継&ビデオ録画(後日公開)
• 名古屋勉強会は2007年12月に第1回開催。
• 名古屋勉強会では、biacさんによるTDD道場、
TDDワークショップやパネルディスカッショ
ン等の独自企画にも取り組んでいます。
勉強会について
わんくま同盟
Community Open Day 2013 名古屋 7
• わんくま同盟 名古屋勉強会 #27
• 日時:2013年5月18日(土) 13:50~
18:20
• 場所:名古屋市西生涯学習センター(浄
心)
• 参加費:無料
★ TDD道場 (第15回) <biac>
★ Windows ストア アプリの肝 ~ データ バインディングを極める!
<biac>
★ Team Foundation Serviceを使ってみる <You&I>
★ 森理式 VSハッカソンのススメ <森理 麟>
★ Visual Studio についてのパネルディスカッション
★ 懇親会
次回勉強会情報
来週 !!
地下鉄鶴舞線
浄心駅 徒歩1分
スピーカー 紹介
BluewaterSoft 山本 康彦 (@biac)
Community Open Day 2013 名古屋 8
スピーカー紹介 • 1957: スプートニク以前に誕生
• 1983: 名古屋大学工学部(修士)卒
• HONDA R&Dで自動車設計
• 1994~ ソフトウェア業界
• 2012~ BluewaterSoft
biac (山本 康彦)
http://www.bluewatersoft.jp
Community Open Day 2013 名古屋 9
スピーカー紹介
本を書いたり
biac (山本 康彦)
http://www.bluewatersoft.jp
Community Open Day 2013 名古屋 10
速攻入門 C#
プログラミング
技術評論社、共著
2012/3
Windows 8
業務アプリ
開発読本
技術評論社、共著
2013/3
C#でマルチス
レッド プログ
ラミング (仮
題)
【近刊予定】
スピーカー紹介
記事を書いたり
biac (山本 康彦)
http://www.bluewatersoft.jp
Community Open Day 2013 名古屋 11
WinRT/Metro
TIPS
@IT ~ 連載中
http://www.atmarkit.co.jp/ait/subtop
/features/da/ap_winrttips_index.html
C#で始める
テスト駆動開発入門
CodeZine
http://codezine.jp/article/corner/446
Metro スタイル・
アプリの開発者が
知るべき
3つのこと
@IT 2012/3
http://www.atmarkit.co.
jp/fdotnet/chushin/read
yforwin8app_01/readyfor
win8app_01_02.html
スピーカー紹介
アプリを作ったり
biac (山本 康彦)
http://www.bluewatersoft.jp
Community Open Day 2013 名古屋 12
スピーカー紹介
講師やったりしてます
biac (山本 康彦)
http://www.bluewatersoft.jp
Community Open Day 2013 名古屋 13
C# / VB.NET による
Windows 8 アプリ開発入門
2013/7/11~12
名古屋ソフトウェアセンター
http://www.nagoya-sc.co.jp/ap/seminar?m=1&key=10734
スピーカー紹介
昨年のCOD、そして…
biac (山本 康彦)
http://www.bluewatersoft.jp
Community Open Day 2013 名古屋 14
Windows ストア アプリで
ウイルスを作るには!?
・ウイルス、というかマルウェアを作る
・ところでウイルスって何?
Community Open Day 2013 名古屋 15
Community Open Day 2013 名古屋 16
広義のウイルス=マルウェア、狭義のウイルス、スパイウェア … …
広義のウイルス=マルウェア (Malicious + Software)
スパイウェア
ユーザーの情報を
盗み出す
・キー入力
・ファイルの内容
・通話内容
・位置情報
… etc
狭義のウイルス
・自己伝染機能
・潜伏機能
・発病機能
※「コンピュータウイルス対策基準」
(通商産業省告示) による定義
バックドア
=遠隔操作(RAT)
アドウェア
・悪質な広告, 詐
欺
・広告から
マルウェアを導
入
あまり見かけな
くなった
「カレログ」
2011 Android
「遠隔操作事件」
2012 Windows
「BadNews」
2013 Android
• 「狭義のウイルス」は、まず不可能
自由なファイルの読み書きが出来ない(後述)の
で、自己伝染機能を実装できない。
• スパイウェア等は…!?
作れるんじゃないのかな?
Community Open Day 2013 名古屋 17
Windows ストア アプリとして、マルウェアを作れるか?
これが本セッションのテーマ
順番に考えていこう
Windows ストア アプリで
ウイルスを作るには!?
・マルウェアのコードが書けただけでは、
役に立たない
・マルウェアが実際に「活躍」しなきゃ!
Community Open Day 2013 名古屋 18
• 役に立つ機能を実装する
* 欲しいモノが手に入る / 出来る
* ユーザーに気付かれない / 騙せる
• バラ撒く
* 多くの / 特定のユーザーに行き渡らせる
• 身元を隠す
* バラ撒いた人物が分からないように
Community Open Day 2013 名古屋 19
「役に立つ」マルウェアとは?
Windows ストア アプリで
ウイルスを作るには!?
・そもそも論として… …
・狙うデータはどこにある?
Community Open Day 2013 名古屋 20
複数デバイスで
シームレスなUX
↓
データはクラウドに
Community Open Day 2013 名古屋 21
Windows ストア アプリのアーキテクチャ思想: Device + Service
データや複雑な処理は
クラウドに配置
複数デバイス間で連続したUX
デバイス側に
めぼしい獲物がいない!
Windows ストア アプリで
ウイルスを作るには!?
・ユーザーに気付かれないように
何か悪いことをするには?
Community Open Day 2013 名古屋 22
こっそり動かしたい!
• 他のアプリに切り替えら
えると、中断される
http://msdn.microsoft.com/ja-
jp/library/windows/apps/xaml/Hh770837.aspx
• バックグラウンド タス
クは、最短で15分に1回、
最長2秒間だけ
http://msdn.microsoft.com/ja-
jp/library/windows/apps/xaml/hh977056.aspx
継続的な監視をしたい
・GPS情報
・キーロガー
・通信内容傍受
そういうマルウェアは、常時稼働
していなければ!!
Community Open Day 2013 名古屋 23
できねぇ… orz
こっそりファイルに
アクセスしたい! • 自由にアクセスできるの
は、画像フォルダなどの
一部だけ
http://msdn.microsoft.com/ja-jp/library/windows/apps/hh967755.aspx
• その他の場所は、ユー
ザー操作が必須
http://msdn.microsoft.com/ja-
jp/library/windows/apps/xaml/hh771180.aspx
ユーザーの重要なファイルを、
こっそり読み取ってどこかに送信
したり、ネットにバラ撒きたい
Community Open Day 2013 名古屋 24
Community Open Day 2013 名古屋 25
《 ファイル オープン ピッカー 》 例: SkyDrive アプリからローカルフォルダー
とあるフォルダーで、
ファイルを2つ選択
したところ。
特別に許可された場
所以外のファイルへ
のアクセスは、この
ようにユーザーの操
作を必要とする。
※ ピッカーはプラット
ホーム側が出している。
アプリからは操作不能。
ぬぅ…
いやマテ、
Win32 がある!!
Win32 APIを使えば
ファイル読み書き自由だ
ぜ!
• Win32 and COM for
Windows Store appshttp://msdn.microsoft.com/ja-jp/library/windows/apps/br205757
• ん!?
上に載ってないAPIも動く
じゃん。
• やった! ファイル読み書き
が自由に出来る!!
WinRT/.NET Framework のAPIでは
ファイルアクセスできないなら、
Win32 API を叩けばいいのよ~♪
Community Open Day 2013 名古屋 26
ょι ょι …
ストアに出してやろう!
開発者用
簡易チェック ツール • 前ページのリストに無い
APIを使っていると…ストアで審査に使ってるチェック
ツールよりは甘いでしょうが、
WACK (Windows App Cert Kit,
Windows アプリ検証キット) が提
供されています。
WACKに通らないようでは、ストア
の審査は絶対に通りません。
Community Open Day 2013 名古屋 27
ダメぢゃん… orz
じゃ、アドレス帳を
狙ってやるか! • Windows.ApplicationMod
el.Contacts名前空間http://msdn.microsoft.com/ja-jp/library/windows/apps/xaml/windows.applicationmodel.contacts.aspx
• え? 列挙できね~っ!?
ユーザーの選択が必須!http://msdn.microsoft.com/ja-jp/library/windows/apps/xaml/JJ152724%28v=win.10%29.aspx
メアドを抜ければ、カネになるぜ!
アドレス帳データを扱うAPIはある
し~♪
Community Open Day 2013 名古屋 28
Community Open Day 2013 名古屋 29
《 連絡先ピッカー 》 例: メッセージング アプリから People アプリの連絡先
Peopleアプリの連絡
先を表示したとこ
ろ。
この連絡先ピッカー
でユーザーに選択し
てもらうと、そのメ
アド等がアプリで取
得できる。
こっそりは
ムリぽ… orz
せめて夜中に印刷して
困らせてやるくらいは!! • PrintManagerオブジェク
トに指示すりゃいいんだ
よね♪
• え? 印刷にも、ユーザー
の操作が必須!?
http://msdn.microsoft.com/ja-
jp/library/windows/apps/xaml/hh849591.aspx
PC用のプラットホームで印刷でき
ないなんて、ありえな~い♪
バックグラウンド タスクで、夜中
に用紙が尽きるまでムダな印刷を
してやんよ!
Community Open Day 2013 名古屋 30
Community Open Day 2013 名古屋 31
《 印刷コントラクト 》 例: Photos アプリから印刷
Photosアプリから、
デバイス チャーム
を開いて、プリンタ
を選択したところ。
印刷コントラクトが
出している右側のフ
ライアウトで、ユー
ザーが [印刷] ボタ
ンをタップしない
と、印刷は始まらな
い。
※ これもプラットホー
ム側が出している。
カンベンして…
orz
動いているデスクトップ
アプリと通信すれば! • プロセス間通信 不可!
Windowハンドルも
取れない!
• Localhost へのループ
バック接続も禁止
※ デバッグ時はOK
http://www.moonmile.net/blog/archives/3414
ガチガチのサンドボックス。
Community Open Day 2013 名古屋 32
そこまでやるか… orz
かくなる上は、
動的に実行ファイルを!
• LaunchFileAsyncメソッ
ドは実行ファイルを起動
できないhttp://msdn.microsoft.com/ja-
jp/library/windows/apps/xaml/hh779671.aspx
• .docにして、Wordのマク
ロとか
……もダメです
か
プロセスを直接起動することはで
きないけれど…
実行ファイル (exe, bat, ps1 等)
として書き出して、
LaunchFileAsync で動かしてやれ
ば♪
Community Open Day 2013 名古屋 33
Community Open Day 2013 名古屋 34
《 ブラック リスト 》 例:ファイルの種類の関連付け設定
ブラックリストに
載っているファイル
は、
LaunchFileAsyncで
起動できない。
載ってるかどうか調
べるには…
糸色 望 し た
… … orz
• ローカルは、ほぼムリ
ファイルI/O、プロセス間通
信、デバイス操作 …ユー
ザー操作抜きでは手も足も
出ない
• インターネット アクセ
スは自由
遠隔操作で掲示板に書き込
むマルウェアなら作れそう
• あとは、騙せばいい
のよ~♪
ユーザーを騙して、Webメール
のアクセス権を貰うとか、い
ろいろ…
• そんなこんなで、作
れたとしましょう♪
Community Open Day 2013 名古屋 35
ユーザーに気付かれないように何か悪いことをするには?
Windows ストア アプリで
ウイルスを作るには!?
・ストアの審査をかいくぐって
マルウェアをバラ撒くには?
Community Open Day 2013 名古屋 36
ストアの審査を
かいくぐるには?
• 隠し画面なんかを XAML で作ってると間
違いなく見つかる。
↓パッケージの中身、XAMLは丸見え
審査では動作しないように時限式
にでもしておいて、あとは見つか
らないようにいかに巧妙にコー
ディングするか、です♪
敵さんは、WACKより高精度な解析
ツールを使ってることも忘れずに。
(自動セキュリティ検査に1時間以上)
Community Open Day 2013 名古屋 37
バラ撒き成功♪
Windows ストア アプリで
ウイルスを作るには!?
・自分の身元を隠すには?
Community Open Day 2013 名古屋 38
• マルウェアが露見した
ときに、犯人が分から
ないようにしなくて
は!!
• しかし、開発者登録に
は、本人名義のクレ
ジットカードが必要http://msdn.microsoft.com/ja-jp/library/windows/apps/jj863494.aspx#verifying_accounts
MS
•クレジット カードに対して少額を請
求、引き落とし
開発者
•クレジット カードの取引明細に載っ
たコードを
MSDN の Web で入力
MS
•口座に返金
Community Open Day 2013 名古屋 39
自分の身元を隠せるか?
アカウントの検証
(無償キャンペーンの場合)
日本で、身元を隠して銀行口座
を開くのは無理ゲー … orz
Windows ストア アプリで
ウイルスを作るには!?
・まとめ
Community Open Day 2013 名古屋 40
立ちはだかる3つの壁
1. (ウォール・マリア)
プラットホームの制限
2. (ウォール・ローゼ)
ストアの審査
3. (ウォール・シーナ)
身元の保証
安全で安心
• 従来のWindowsとは
異次元
Windows reimagined
• 代償は、開発者の苦労
でも、理由が分かれば
苦労し甲斐があるよね♪
Community Open Day 2013 名古屋 41
まとめ
参考URL • MSDN Blogs:
信頼できる Metro スタイ
ル アプリを提供する
http://blogs.msdn.com/b/b8_ja/archive/2012/05/25/metro-trustworthy.aspx
• TechNet Blogs:
Windows 8 セキュリティ特集 #5
Windows ストア アプリ
http://blogs.technet.com/b/jpsecurity/archive/2012/11/29/3535394.aspx
いかに安全で安心な Windows
ストア アプリのエコシステムを
Microsfot は築こうとしているの
か
Community Open Day 2013 名古屋 42
43Community Open Day 2013 名古屋
ご清聴ありがとうございました

More Related Content

PDF
低レイヤー入門
PPTX
Metro スタイル アプリで印刷
PDF
Xamarin.forms入門
PDF
XAML入門
PDF
今日から業務で使える17の運用系Linuxツール、そして円環の理
PDF
共同作業に使えるオンラインストレージの使い方
PDF
デブサミ関西2011 JAZ紹介
PDF
Androidとインターネット連携
低レイヤー入門
Metro スタイル アプリで印刷
Xamarin.forms入門
XAML入門
今日から業務で使える17の運用系Linuxツール、そして円環の理
共同作業に使えるオンラインストレージの使い方
デブサミ関西2011 JAZ紹介
Androidとインターネット連携

Similar to Windowsストアアプリでウイルスを作るには!? cod2013名古屋 (20)

PPTX
COD2013「ネットワーク パケット解析・基本の基本」
PDF
俺のZabbixがこんなに可愛いわけがない~北海道巡業編~
PDF
20110709 第1回jaz女子会 jaz紹介
PDF
co-meeting_meetup_vol1_利用事例紹介(newデイシス)
PDF
教育向けプログラミング環境 Scratchのご紹介
PDF
EXTREME AZURE 2
PDF
私がMuninに恋する理由 - インフラエンジニアでも監視がしたい! -
PDF
Techcrunch hackathon 2013
PDF
さくらのナレッジの裏側
PDF
秘伝:クラウドに開発環境をえいっ!と構築する方法
PDF
プログラマは一生の仕事のなるか?
PDF
sakura.io体験ハンズオン
PPTX
Vagrantでwindows仮想環境を構築しよう
PDF
Androidアプリ活用の手引き
PDF
Fireworks lover advent calendar 2013
PPTX
わんくま同盟紹介資料
PDF
Azureからアプリに通知してみよう #jazug #win8dev_jp #wpdev_jp
PDF
【Qp08】ざびたん2リリース報告lt 20111022
PDF
20120316 designerworkshoppublished
PPTX
簡単に試せるMicrosoft Cognitive Service! Face APIはヴィジュアル系メイクに勝てるのか???
COD2013「ネットワーク パケット解析・基本の基本」
俺のZabbixがこんなに可愛いわけがない~北海道巡業編~
20110709 第1回jaz女子会 jaz紹介
co-meeting_meetup_vol1_利用事例紹介(newデイシス)
教育向けプログラミング環境 Scratchのご紹介
EXTREME AZURE 2
私がMuninに恋する理由 - インフラエンジニアでも監視がしたい! -
Techcrunch hackathon 2013
さくらのナレッジの裏側
秘伝:クラウドに開発環境をえいっ!と構築する方法
プログラマは一生の仕事のなるか?
sakura.io体験ハンズオン
Vagrantでwindows仮想環境を構築しよう
Androidアプリ活用の手引き
Fireworks lover advent calendar 2013
わんくま同盟紹介資料
Azureからアプリに通知してみよう #jazug #win8dev_jp #wpdev_jp
【Qp08】ざびたん2リリース報告lt 20111022
20120316 designerworkshoppublished
簡単に試せるMicrosoft Cognitive Service! Face APIはヴィジュアル系メイクに勝てるのか???
Ad

More from Yasuhiko Yamamoto (20)

PDF
わんくま名古屋 #40 (20161217) Xamarinで自動化テストしよう
PDF
わんくま名古屋 #38 (20160521) Xamarin入門
PDF
UWP アプリを JavaScript で作る 3つの方法
PDF
無償のVisual studioで作るクライアント アプリ
PPTX
わんくま名古屋 #37 (20151114) Windows 10 UWP アプリ開発入門(実践編)
PPTX
わんくま名古屋 #37 (20151114) TDD道場 #25
PDF
わんくま名古屋#36 (20150725) Windows 10 ユニバーサル Windows アプリ開発入門
PDF
第8回 業開中心会議 「Windows 10 ユニバーサルアプリの概要」
PDF
わんくま名古屋#34(20150214) TDD道場#22
PDF
Visual Studio 2015 の新機能: Pex はユニットテストの福音となるか!?
PDF
わんくま名古屋#33(20141115) モノ作り半生
PDF
わんくま名古屋#33(20141115) TDD道場#21
PDF
開発ツールを買わずに作る♪ ユニバーサルWindowsアプリ!
PPTX
わんくま名古屋 #32 (20140823) TDD道場 #20
PDF
わんくま名古屋#31(20140524) TDD道場 #19
PDF
わんくま名古屋#31(20140524) ユニバーサルWindowsアプリ開発の勧め
PDF
Windows ストア アプリでスレッド間排他処理
PPTX
Windows 8.1 Update 1 の噂をまとめてみた
PPT
タダで始めるテストファースト入門 ~ C# Express + NUnit
PPTX
わんくま名古屋 #29 (2013/11/23) TDD道場 #17
わんくま名古屋 #40 (20161217) Xamarinで自動化テストしよう
わんくま名古屋 #38 (20160521) Xamarin入門
UWP アプリを JavaScript で作る 3つの方法
無償のVisual studioで作るクライアント アプリ
わんくま名古屋 #37 (20151114) Windows 10 UWP アプリ開発入門(実践編)
わんくま名古屋 #37 (20151114) TDD道場 #25
わんくま名古屋#36 (20150725) Windows 10 ユニバーサル Windows アプリ開発入門
第8回 業開中心会議 「Windows 10 ユニバーサルアプリの概要」
わんくま名古屋#34(20150214) TDD道場#22
Visual Studio 2015 の新機能: Pex はユニットテストの福音となるか!?
わんくま名古屋#33(20141115) モノ作り半生
わんくま名古屋#33(20141115) TDD道場#21
開発ツールを買わずに作る♪ ユニバーサルWindowsアプリ!
わんくま名古屋 #32 (20140823) TDD道場 #20
わんくま名古屋#31(20140524) TDD道場 #19
わんくま名古屋#31(20140524) ユニバーサルWindowsアプリ開発の勧め
Windows ストア アプリでスレッド間排他処理
Windows 8.1 Update 1 の噂をまとめてみた
タダで始めるテストファースト入門 ~ C# Express + NUnit
わんくま名古屋 #29 (2013/11/23) TDD道場 #17
Ad

Windowsストアアプリでウイルスを作るには!? cod2013名古屋