web-dev-qa-db-ja.com

アプリ/プロトコル/オペレーティングシステムの安全性が高まるにつれて、侵入テストは客観的に「困難」になりますか?

私は現在、侵入テストの初心者を対象とした、Offensive Securityの「Kaliを使用した侵入テスト」コースに登録しています。このコースは素晴らしいもので、多くの例や演習があり、VPN経由で接続して、これまでに学んだことをすべて実践できる素晴らしい仮想ラボ環境があります。

私が気づいたことの1つは、私たちが研究/実践してきた脆弱性の多くが古いものにあったことです。 Windows XP/2003システム、古いLinuxバージョン、または誤って構成されたシステム(構成されている場合正しくの方がはるかに安全です)またはプロトコルに依存しているそれらに深刻な欠陥があることが知られています。

これらのシステムの新しいバージョンには独自の脆弱性があることはよく知っています。とにかく、古いシステムの多くは、とにかく組織内で引き続き使用されていると思います。ただし、古いシステムに配置されている学習資料の重みにより、将来、開発者がプロ​​トコル/アプリ/ OSを作成する際のセキュリティ意識が高まるにつれて、侵入テストは必然的に有用性が低下するか、その方法を変える必要があるかと思います。 、そしてそれらのツールがより高度になるにつれて。たとえば、多くの高水準言語は開発者のメモリを管理するため、不注意な開発者であってもバッファオーバーフローの可能性ははるかに低くなります。また、最近のオペレーティングシステムは以前のオペレーティングシステムよりもはるかに安全であるというのが私の認識です(私はかなり間違っている可能性がありますが、私は専門家ではありません)。

どのシステムにもいくつかの欠陥があることは知っていますが、専門家レベルとしての侵入テストには、定義により、既知の脆弱性のある程度の標準化されたスキャン/悪用が含まれているようです。 私の質問は、アプリ/プロトコル/ OSの開発者の間でセキュリティ意識が高まり、ツールの組み込みのセキュリティが向上するにつれて、プロの侵入テスターが縮小していることですか?

私はペネトレーションテストが「なくなる」と思うことを意味しているわけではありませんが、たとえばネットワークやソフトウェアの実際の技術的な脆弱性よりもソーシャルエンジニアリングに依存するようになる可能性があります。

7
loneboat

侵入テストの目的は脆弱性を見つけることではないため、脆弱性が見つからなくても失敗することはありません。脆弱性が存在するかどうかを確認することです。システムのセキュリティが強化されても問題はなく、脆弱性が少なくなります。実際、確認する既知の脆弱性のリストが小さくなると、より簡単になります。

11
Mike Scott

脆弱性とITランドスケープは絶えず変化しており、いくつかの種類の問題が蔓延しなくなっている一方で、他の問題はより一般的なものとして取って代わる一方で、いくつかの問題は永遠に続くようです(と思われます)

広く展開されているオペレーティングシステム(MS08-067など)での古典的なネットワークの悪用可能性のある問題のようなものはあまり一般的ではなく(Shadowbrokersダンプはそれらがまだ可能性があることを示しました)、それらが存在する場合、OSメーカーとして悪用するのが難しくなる傾向があります彼らのシステムにさらに防御を追加します(ASLR/DEPなど)

しかし、これがテスターが見つけなければならない問題がないということを必ずしも意味するとは思いません。 Webアプリケーションでの認証の問題など、すべてのプラットフォームで一般的に修正し、個々の開発者に依存することは非常に難しいため、テストするアプリケーションで可能性があります。

また、適切なパスワードの選択のように、多くの人がセキュリティを正しく利用することに依存しているものは、ほぼ永久に存続しているようです。

それに加えて、テスターが見る新しい道が開かれます。たとえば、15年前と比較すると、はるかに多くの企業システムが「クラウド」でホストされているため、防御システムの複数のレイヤーの背後にある内部企業ネットワークにいる場合よりも簡単に攻撃にさらされる可能性があるため、新しい方法があります。テスターはそれを悪用しようとすることができます。

テスターは間違いなく新しいシステムが登場し、古いシステムが時代遅れになることに適応する必要がありますが、すぐに見つけるものが不足することはないと思います。

5
Rory McCune

開発者がフレームワークを使用する代わりにPHPでカスタムアプリケーションを構築しているため、SQLインジェクションを定期的に見つけています。APIについても同様です(特に、私の経験ではモバイルアプリケーションの場合) )外部インフラストラクチャに関しては、既知の脆弱性(metasploitモジュールを使用)を見つけることはまれであると言います。理由は、それらがすでに侵害されているためです。しかし、通常、プローブを行うと結果が得られます。たとえば、デフォルトでインターネット上に公開されているプリンタを見つけました内部ネットワークへのピボットを可能にする資格情報。内部インフラストラクチャに関しては常に弱点がありますが、Responder(LLMNRポイズニング用)などのツールを使用すると、パスワードポリシーに応じてDAの80%の時間を確保できるため、基本的に他のプローブDAへのエスカレーションに使用できるNTLMハッシュを取得できない場合に備えて、Responderの実行中に配置します。

3
whatever489