Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

【17-D-6】.NETアセンブリの宿命

1,908 views

Published on

  • Be the first to comment

  • Be the first to like this

【17-D-6】.NETアセンブリの宿命

  1. 1. .NETアセンブリの宿命 近藤和彦 日本マイクロソフト株式会社 デベロッパー&プラットフォーム統括本部 開発ツール製品部17-D-6 エグゼクティブプロダクトマネージャー 岩沢宏美 株式会社エージーテック プロダクト&プランズ プロダクトマネージャー Developers Summit 2011
  2. 2. Office アプリケーション モバイル/組み込み Web アプリケーション アプリケーション サーバー アプリケーションクライアントアプリケーション 設計 開発 テスト クラウド アプリケーション 管理
  3. 3. Office アプリケーション モバイル/組み込み Web アプリケーション アプリケーション サーバー アプリケーションクライアントアプリケーション 設計 開発 テスト クラウド アプリケーション 管理
  4. 4. Office アプリケーション モバイル/組み込み Web アプリケーション アプリケーション サーバー アプリケーションクライアントアプリケーション 設計 開発 テスト クラウド アプリケーション 管理
  5. 5. Visual Studio 2010 / .NET Framework 4 対応 開発者向けコンテンツ• アプリケーション アーキテクチャ ガイド 2.0• Visual Studio 2010 によるWindows アプリケーション開発の基礎• XAML による Windows アプリケーション開発の基礎• ASP.NET による Web アプリケーション開発の基礎• Silverlight による Web アプリケーション開発 (Coming Soon!)• データアクセス (Visual Studio 2010 /.NET Framework 4 対応)• Visual Studio 2010 開発ガイド• Expression Blend 4 開発者向けガイド (Coming Soon!)• Expression Blend 4 SketchFlow 開発者向けガイド (Coming Soon!)• 単体テストの自動化• ユーザーインターフェイスの自動テスト• Test Manager 2010 を活用したテスト プロセスの包括的な管理• Visual Studio Lab Management 2010 によるテスト環境の仮想化• Team Foundation Server 2010 によるソースコード管理入門www.microsoft.com/japan/vstudio
  6. 6. © 2011 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows 7 and other product names are or may be registered trademarks and/or trademarks in the U.S.and/or other countries.The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft mustrespond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any informationprovided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
  7. 7. 難読化とは 難読化とは逆コンパイラの出力を分り難い ものに変換し、プログラムの解析に必要な 労力を増やすこと。
  8. 8. 難読化の仕組み
  9. 9. 名前の変更 プログラマーは意味のある識別子を使って人が 見て分りやすいコードを書く。 .NETアセンブリには識別子情報がそのまま残っ ている。 意味のある識別子を意味のない文字に変更。 クラス、インターフェイス、メソッド、フィールドなど GetPayroll(int key) => a(int a) 難読化の第一歩
  10. 10. 名前の変更- オーバーロード誘導TM 異なるメソッド名を出来る限り同じ名前に変更。 引数の型が異なる複数のメソッドを同じ名前、”a” に変更。 GetPayroll( ) => a( ) GetPayroll(int key) => a(int a) MakeDeposit(float amt) => a(float a) SendPayment(string key) => a(string a) PreEmptive社の特許技術
  11. 11. 制御フローの難読化 .NETアセンブリには元のソースコードを厳 密に反映する命令シーケンスがそのまま 残っている。 オリジナルのソースコードを反映しない、論 理的に等価な命令シーケンスに変更。 例: ブロックの並べ替え 偽の制御フローの追加 プログラムロジックを保護する。
  12. 12. 文字列の暗号化 .NETアセンブリには文字列はそのままの状 態で残っている。 ハッカーの一般的な攻撃の材料となる。 文字列を暗号化することで攻撃の速度を遅 らせる。
  13. 13. デモ:難読化してみよう (CE/PRO) Dotfuscatorを起動 入力アセンブリを選択 利用する難読化機能  名前変更 (CE、PRO)  制御フローの難読、文字列の暗号化(PRO) Dotfuscatorのプロジェクトファイルを保存 ビルド開始 難読化の結果を確認
  14. 14. VS2010付属Dotfuscator CE 新機能  インストルメンテーション  Runtime Intelligence  改ざん検出  アプリケーションライフサイクルの管理 (Shelf Life)  アプリケーション分析
  15. 15. インストルメンテーションの方法 コードを書かずに既存の.NETアセンブリに実装 RI アセンブリ RI対応 ソースコード コンパイラ 入力 Dotruscator 出力 アセンブリ アセンブリ 拡張属性 ご参考:インストルメンテーション詳細 http://msdn.microsoft.com/ja-jp/vstudio/ff462138
  16. 16. Runtime Intelligence  改ざん検出  改ざんが検出された場合に、アプリケーションを 終了する。  アプリケーションライフサイクル管理  アプリケーションの有効期限を設定。  手軽にアプリケーションの自主規制が可能。
  17. 17. Runtime Intelligence  アプリケーション分析  実行中のアプリケーションから情報を収集  実際の利用状況を把握できる  どのようなアプリケーションを実行しているか? (バージョン単位)  どういう機能をどういう順番で実行しているか?  それら機能にどのくらい時間をかけているか?  開発計画、ビジネス戦略に役立つ
  18. 18. Runtime Intelligence ポータルサイト  無償・有償版ポータルサイト  ご参考: CodePlexのサイト (http://skypefx.codeplex.com/)
  19. 19. Dotfuscatorのソリューション アプリケーションの価値を保護して、高める!保護 測定リバース エンジニア 利用状況、安定性、リング、改ざん、脆弱 実行環境などを安全性攻撃、著作権侵害 かつ効率よく透過的からの保護 に測定防御 管理改ざんや不正な実行 アプリケーションライに対してリアルタイム フサイクルの管理に防御

×