私は Web 開発者であり、セキュリティを非常に意識しており、Web アプリケーションを可能な限り安全にしようとしています。
C# で自分の Windows アプリケーションを書き始めたにもかかわらず、自分の C# アプリケーションのセキュリティをテストすることになると、私は本当に初心者にすぎません。
独自の Windows アプリケーションをハックして安全なコードを作成する方法について、誰かが良いチュートリアル/readme を持っているかどうか疑問に思っています。
Michael Howard の本は良い出発点です。
ここには、Michael Howard のブログからのリンクや興味深い記事がたくさんあります。
脅威の評価、リスク、ASP に関する Microsoft の興味深いパワーポイント プレゼンテーションがここにあります。
これはあなたにとって非常に難しいことであり、間違った角度から問題に取り組んでいると思います。任意のサイズのアプリケーションを作成している場合、自分のソフトウェアを破壊する特定の方法を探して、最後にセキュリティに対処しようとすることはほとんど不可能です。
これにはいくつかの理由があります。あなたはすでに自分のソフトウェアについて特定の方法で考えています。あなたはそれと相互作用する特定の方法を考え、それを最大限に活用する方法を知っています. それを悪用する方法について考えることはありません。これは、よく知っているソフトウェアでは難しいことです。
もう 1 つの問題は、この時点でのタスクが大きすぎて対処できないことです。見つけた問題は、他の多くの問題を引き起こす可能性があります。システム全体のセキュリティ チェックは、十分な粒度ではありません。
あなたがすべきことは、ソフトウェアを書くときにセキュリティについて考えることです。ベスト プラクティスを学び、作成する各メソッドとクラスをセキュリティの観点から検討してください。これは単体テストと密接に関連しています。プログラムのこの特定の部分を壊す可能性のある入力を検討してみてください。そして、そのレベルでそれらに対処します。
その後、セキュリティ上の懸念に気付いた場合は迅速に対応することが重要だと思います。
バッファオーバーフロー、コードインジェクション、セッションハイジャックなどを防ぐためのすべての明白な答えとは別に. アル。あなたのソフトウェアをハッキングする方法は、自分が防ぐ方法を知っていることしか考えられないため、コード/ソフトウェアをチェックする誰かを見つける必要があります。自分のソフトウェアをハッキングする方法が見つからないからといって、他の誰もできないというわけではありません。
私自身の経験を通して出会った小さなこと。
これは決して完全なリストではありません。私が最近遭遇したものだけです。
Ross Anderson のSecurity Engineeringの本を読むよりも、はるかに悪い結果になる可能性があります。初版は PDF としてダウンロードでき、読みやすくなっています。私は第 2 版を読んでいませんが、より良く、より多くの特典が含まれていると思います。
これは、セキュリティを破る方法ではなく、最初からセキュリティを組み込む方法を説明する本であることに注意してください。ただし、さまざまなセキュリティの欠陥を説明することで、どこから始めればよいかについての良いアイデアが得られるはずです。
Win フォーム アプリケーションを保護するには、アプリケーションを開いて、ラムダ ユーザーがすべきでないことをすべて実行してください。説明します:
yes
「enterまたは」と言う場合はno
、AZ、0-9 を試してください。これは、一部のユーザーが興味深いスタック トレースを見つけようとするためです。したがって、バリデーターをあらゆる場所に配置してください。
データベースへの接続に注意してください。ただし、Web 開発者の場合は、私よりも注意する必要があります :)。
最も難しい部分は、メモリ リークなどに注意することですが、それは大規模なアプリや十分に開発されていないアプリの場合です。