2

C# アセンブリ用のプロファイラーと静的コード アナライザーは数多くあります。

剥がされると少し緊張するので、分析されないようにする方法はあるのだろうか。

私はインターネット全体とstackoverflowを検索しました。私の不思議なことに、何もないようです。

私が持っているのは、次のようなさらに恐ろしいタイトルだけです (申し訳ありませんが、新しいユーザーはハイパーリンクを投稿できません。ググってください):

「アセンブリ操作と C#/VB.NET コード インジェクション」

「マネージド .NET アセンブリ (DLL) を別のプロセスに挿入する方法」

私が気にしすぎているだけなのか、それとも?

ところで、C# を使用して、銀行の顧客がオンライン取引を行うための新しい winform クライアントを構築しています。これを winform の方法で行うべきではありませんか、それとも Delphi や C++ などの他の言語を使用する必要がありますか? 現在、C++ Builder でビルドされた winform クライアントがあります。

4

6 に答える 6

3

分析とは、誰かがコードを逆コンパイルして見ることを意味する場合、VS Pro 以降に同梱されている Dotfucstor は、ここで役立つシンプルな (無料の) ツールです。より多くのことを実行できる、より完全な機能 (ただし有料) のバージョンがあります。

展開されたアセンブリが改ざんされるのを防ぐには、厳密な名前を使用します。

于 2009-05-21T15:59:52.340 に答える
3

マネージ コードであろうとネイティブ アセンブリであろうと、意志があるところには方法があります。重要なのは、重要な情報を SERVER 側に保持し、その制御を維持することです。

于 2009-05-21T16:03:41.910 に答える
2

ほぼすべてのアプリケーションを「分析して注入」できます。他のものよりもいくつか。そのため、ユーザー入力を信頼しないでください。サーバー側でユーザーのリクエストを完全に検証し、バッファ オーバーラン、SQL インジェクション、およびその他の攻撃ベクトルに対して脆弱でないことを確認します。

難読化ツールを使用すると、.NET アセンブリの分析が難しくなる可能性があります。セキュア キーを使用してアセンブリに厳密な名前を付けると、コードの変更がはるかに難しくなります。しかし、デジタル世界の他のすべてのものと同様に、誰かが脆弱性を悪用し、あなたが設置した保護手段を回避することができます.

于 2009-05-21T16:04:29.413 に答える
2

保護しようとしているものに対して最初に決定する必要があることは何ですか? 難読化ツールは「秘密のソース」アルゴリズムを保護するためにのみ役立ちますが、攻撃者は単純にコードを抽出してブラックボックスとして使用できます。99% のケースで、難読化ツールはお金の無駄です。攻撃者が物理的にアクセスできる場合、できることはあまりありません。

于 2009-05-21T16:08:58.907 に答える
2

If the end user is running with administrative privileges then they will be able to attach a debugger, and modify your code, including target account details. My local friendly bank has given me a chip & pin reader that I have to enter the last n digits of the target account, which it hashes/encrypts with my bank card's Chip; I then enter the code from the device into the bank's web application which can checked at the bank's end as well. This mitigates "man in the middle" type attacks...

于 2009-05-21T16:25:30.557 に答える
1

セキュリティは、アクセスを物理的に制御するシステム上でのみ可能であり、その場合でも保証されず、単に実現可能です。管理しているシステムで実行されていないコードは、侵害される可能性があり、侵害されると想定する必要があります。Rowland Shaw が述べたように、金融機関にとって最善の策は、侵害されたシステムから操作する攻撃者が事前に (簡単に) 知ることができないオフラインの一意のコンポーネントをすべてのトランザクションに効果的に追加する何らかの物理トークンです。それでも、ユーザーのコンピューターが侵害され、その時点からセッションが終了するまで、攻撃者が自分のセキュア トークンを使用してログインした場合、攻撃者はユーザーが許可されているアクションを自由に実行できるという事実に注意する必要がありますが、少なくともその場合、ユーザーは不正行為に気付く可能性が高くなります。

于 2009-05-21T16:29:34.277 に答える