解析したり注射されてからアプリケーションを防止するための方法はありますか? (C#の)
-
23-08-2019 - |
質問
がありプロファイラの負荷があると、静的なコードはC#のアセンブリのためにそこアナライザます。
分析されている防ぐためにあらゆる方法があるかどうかを剥奪されたとき、それは私は少し神経質に感じることはないので、ただ、疑問に思います。
私は、すべてのインターネットおよびstackoverflowの上で検索しました。私の不思議のためのどれもあるようですません。
私は何を持っていることは、これらのようないくつかだけでももっと怖いタイトル(新しいユーザーがハイパーリンクを投稿することはできません申し訳ありませんが、それらをグーグルしてください)です
"アセンブリの操作とC#/ VB.NETコードインジェクション"
"別のプロセスにマネージド.NETアセンブリ(DLL)を注入する方法"
それはちょうど私があまりにも心配してか、どのようなものですか?
ところで、C#ので、私たちは、オンライン取引を行うには、銀行の顧客のための新しいWinフォームのクライアントを構築しています。我々は、Winフォームの方法でこれを行うべきではないか、我々は、Delphi、C ++のようないくつかの他の言語を使用する必要がありますか?現在、我々は、C ++ Builderで構築されたWinフォームのクライアントを持っています。
解決
ちょうど約すべてのアプリケーションは、「分析され、注入された」ことができます。他よりもいくつかのより。あなたはユーザー入力を決して信用しないでください理由です。あなたは完全にあなたがオーバーラン、SQLインジェクションやその他の攻撃ベクトルをバッファリングする脆弱じゃない作り、サーバー側のユーザーの要求を検証ます。
難読化ツールは、分析する.NETアセンブリが困難にすることができます。あなたのアセンブリを厳密な名前へのセキュアなキーを使用すると、コードを変更することがはるかに困難にすることができます。しかし、デジタルの世界で他のすべてのように、誰かが脆弱性を悪用して、場所に置くものは何でもセーフガードの周りに取得することができます。
他のヒント
分析することにより、あなたは、誰かがコードを逆コンパイルし、意味場合はそれを見て、上記のVS Proとで船がここに支援するための簡単な(無料)ツールであることを、その後Dotfucstor。充実した機能は、より多くを行うことができますバージョンは(しかしために支払った)があります。
、それがコードまたはネイティブアセンブリを管理していますかどうか、方法があります。キーには、サーバー側の重要な情報を保持し、その制御を維持することです。
あなたが保護しようとしているものに対して決定する必要がある最初の事? 難読化ツールは、唯一の「秘密のソース」アルゴリズムを保護するために有用であるが、攻撃者は、単にコードを抽出し、ブラックボックスとして使用することができます。例99%で難読化ツールお金の無駄です。 攻撃者が物理的なアクセスを持っている場合は非常にあなたができることはありません。
エンドユーザーが管理者権限で実行されている場合、彼らはデバッガをアタッチし、対象アカウントの詳細を含め、あなたのコードを変更することができるようになります。私の地元の友好銀行は私がそれをハッシュ対象アカウントの最後のn桁を入力する必要がチップ&ピン読者を与えている/私の銀行カードのチップで暗号化します。私はその後、同様に銀行の終わりに確認することができ、銀行のWebアプリケーションにデバイスからのコードを入力してください。これは、緩和型攻撃「真ん中の男」...
セキュリティを使用すると、物理的にアクセスを制御するシステムでのみ可能であり、その後も、単に達成できる保証はありません。あなたが缶を制御し、妥協されるシステム上で実行されていない任意のコードを仮定しなければなりません。ローランドショーが述べたように、金融機関のための最善の策は、効果的に(簡単に)感染したシステムから操作する攻撃者によって事前に知ることができないすべてのトランザクションへのオフラインユニークなコンポーネントを追加する物理トークンのいくつかの並べ替えです。それでもあなたは、ユーザーのコンピュータが危険にさらされていると、セッションが攻撃を終了するまで、彼はその時点から彼の安全なトークンでログインしている場合は、ユーザーが権限を持っているどんなアクションを実行して自由であるという事実を認識することが、少なくとも必要がありますその場合にはユーザーが不正行為に気付く可能性が高くなります。