今日、私は会社のセキュリティの責任者が侵入テスト会社に契約の条項を撤回することを要求する状況を経験しました:
"ペンテスト中に、一部のツール、エクスプロイト、テクニックなどの実行が原因で、本番環境の機密データを誤って削除または変更する可能性があります。"
クライアントは、彼がその条項を受け入れるつもりはなく、どの会社もその条項を受け入れないと信じています。彼は、ペンテスト中に情報にアクセスできたが、削除または変更されなかったと考えています。
Webクローラーやスパイダーなどの一部のツールを実行すると、Webアプリケーションのプログラミングが非常に悪い場合にデータが削除される可能性があるため、これらの種類のツールを使用する場合は常に可能性があります。
これらはクライアントの条件であり、受け入れられるべきであることは知っていますが、次のとおりです。
熟練したプロのペンテスターは、ペンテスト中にデータが削除または変更されないことを常に保証できますか?
ペンテストチームにデータの作成や変更ができないという制限がある場合、ペンテストを本当に実行できますか?
万一に備えて、侵入テスト会社は常に免責条項を含める必要がありますか?
システムの可用性が影響を受けないことを保証できないのと同じように、ペンテスターがデータが変更または削除されないことを100%保証できる方法はありません(ポートスキャンまたは単一の '文字)。あなたが言うように、ウェブクローラーは、システムが正しく設定されていない場合、システムからデータを削除できます。
言うべきことは、「テストがレビュー中のシステムに悪影響を及ぼさないように細心の注意が払われ、本番データを変更または削除したり、可用性に悪影響を及ぼそうとする意図的な試みが行われないことです。ただし、すべてのセキュリティテストを実施すると、システムが影響を受けるリスクがあり、お客様は、レビューを開始する前に、すべてのデータとシステムのバックアップがとられていることを確認する必要があります。」
彼が決して生産データを変更しないと主張するペンテスターは、汚い嘘つき、または彼自身が実際よりもはるかに有能であると考えている、またはまったく何もしないことを強く意図している(これは何も壊さない唯一の確実な方法です)。いずれにせよ、その人と一緒に働きたくないのです。
熟練したペンテスターがテスト済みのシステムに損傷を与えることはないと確信し、正確に約束しない限りペンテスターでの作業を拒否する見込み顧客は、1.妖精のユニコーンドリームランドに住んでおり、2.ほぼ確実にそうである顧客です。汚い嘘つきとの商売。彼はある時点で、おそらくかなり壮観な方法で、幻滅に陥っています。
ペンテスターが契約に起こりうる破損についての条項を含めることは道徳的義務であり、さらに基本的な自己保護でもあります。ペンテスターが彼の行動に非常に優れているとしても、付随的な損傷のリスクは本物です(損傷はペンターがどれほど優れているかからではないため、しかしからテストされたシステムの設計と実装の悪さ)ペンテスターは、顧客に警告したではなく訴えられる可能性があります。
そのような条項を伴う契約を拒否する顧客は、別名「トラブル」を持っています。通常、このような顧客はすべてスキップすることをお勧めします。
警告:私はプロのペンテスターではありません。そして、私はバックアップソフトウェアで働いています。
熟練したプロのペンテスターは、ペンテスト中にデータが削除または変更されないことを常に保証できますか?
いや、あなたが物事を壊そうとしているときに何かが誤って削除されないという絶対的な保証はありません。ただし、そうは言っても、ペンテスターは通常、データの削除を伴わない方法でシステムを悪用しようとする必要があります。たとえば、誰もが好きなSQLステートメントは次のとおりです。
_select * from users where userid='dave'; DROP ALL TABLES;
_
より責任のあるアプローチは、単にすべてのデータをリストすることです:
_select * from users where userid='2' OR 1=1;
_
一般に、ほとんどのペンテスターが後者のような非破壊的な種類の一連のエクスプロイトを開発したと思います。
さまざまな形式のJavascriptインジェクションは、本物のエクスプロイトコードではなく、alert("exploited you");
などの単純な概念実証コードを使用できます。
ペンテストチームがデータを作成または変更できないという制限がある場合、ペンテストを本当に実行できますか?
私はノーと言うでしょう。 XSSをデータベースに保存することなく、保存されたXSSの概念実証をどのように示しますか?これにより、常に新しいデータが作成されます。
一時的であっても、エクスプロイトがデータの書き込みを必要とする例は数多くあります。
万一に備えて、侵入テスト会社は常に免責条項を含める必要がありますか?
繰り返しになりますが、私はここで個人的な知識を伸ばしていますが、そうです。
しかし、これはそもそも筆記試験会社を雇うという全体の要点に戻ります。ペンテストのポイントは、悪者がそれらを見つける前に、それらを評価して修正する必要があるかもしれないリスクを特定することです。
私はまた、どんな良いペンテスターも尋ねるだろうし、どんな良いビジネスでもある程度の災害復旧を考えていただろうと思います。確かに、必要に応じて復元できるように、システムに何らかの形式のバックアップが必要です。ペンテストによってデータが破壊される場合だけでなく、悪意のあるユーザーによって本当に侵害された場合に、これが必要になります。この場合、汚染されていないバックアップをロールバックする必要があります。
私のサイトでは侵入テストをかなり定期的に実行しています。
初めて実行したときに、サイトを停止して停止させ、メールサーバーにスパムを殺到させました。
次に、いくつかのフォームを調整してスパムを取り除き、サーバーを停止させることなく、他のすべての既知のホールを特定して修正することができました。
率直に言って、搾取者の不誠実さに驚き、思いもよらなかった穴をふさぎました。
しかし問題は、テストを実行する前は、自分のサイトは安全だと思っていたということです。私はベストプラクティスに従ってウェブサイトのデザインを行っていましたが、それでも問題がありました。
今、後知恵のおかげで、テストが私の実稼働サイトに影響を与える可能性があることを感謝しています。
だから私は先に計画します。
すべてが最初にバックアップされることを確認します。
サイトが本当に重要な場合は、完全なクローンを作成し、そのクローンを最初にテストします。
私は経験から、クローンを作成する場合は別のサーバーで作成することを学びました。そうしないと、クローンが停止して停止しても、サーバーは引き続き本番環境に影響を与えます。
しかし、私はまだ私のテストを実行します。ハッカーはどのようにサイトにアクセスすると思いますか?彼らはおそらくこれらのようなテストを無許可の方法で実行しています。したがって、サイトが保護されるまで、常に脆弱になります。最初にテストを実行し、予防策(バックアップなど)を用意しておくと、予期しないときに部分を取得する必要がなくなります。
したがって、それは許容できますが、予測可能であり、それに応じて管理する必要があります。
この免責事項はCYAの場合ではなく、クライアントがペンテストに備えるために必要な重要な情報です。私はペンテスターではありませんが、IMOこれは細字の最終ページに埋め込むべきではありませんが、契約書の1ページ目、フロントおよびセンターに、太字のフォントで埋め込む必要があります。クライアント企業は、問題が発生した場合に備えて準備する必要があります。バックアップを作成したり、復旧計画を作成して導入したりする必要があります。ペンテストはリスクがないとクライアントに信じさせることは無責任です。定義上、誤った動作をトリガーしようとしていますが、壊れた動作がどこまで拡張または実行されるかは制御できません。
投稿の本文にある3つの質問に対する回答は次のとおりです。(1)いいえ、他のコードについて保証することはできません(2)データを意図的に変更または作成せずに、限定された形式のペンテストを実行できる場合があります(アプリが行う可能性のあるログを除外します)。ただし、結果は完全ではありません。最後に、(3)常にこの免責事項を含める必要があります。
テスターは基本的に悪用する欠陥を探しており、損傷を与える欠陥を見つけられないことを保証することはできません。欠陥を検出または作成することを意図していない何かについて 一般的なソフトウェアの免責事項 を検討し、テストしているコードをおそらく作成していないと考えてください...
おそらく、特定の条件下でのみそれを保証できます。明らかに、Pentestは多くの要因間のトレードオフであり、いくつかの要因はシステムの可用性に直接拮抗し、それらの1つは分析の深さです。一部の人々は、搾取のないペンテストはペンテストではないと主張することができます。
過去には、その脆弱性で非常に有名ないくつかのSCADAシステムをテストする必要があり、ほとんどのツールを十分に優しく調整できることを保証できます。たとえば、NMAPフィンガープリントを無効にしたり、パケット間の遅延を増やしたりすると、非常に役立ちました。
しかし、あなたの質問に個人的に答えるために、私は[〜#〜] never [〜#〜]私のクライアントにそれを保証する条項を置くことに同意します。私は彼に私の言葉をあげますが、あなたのペンテスト中に彼らのアプリケーションがそれ自体で壊れた場合、あなたはビジネス的に責任を負うことができません。
「熟練したプロのペンテスターは、ペンテスト中にデータが削除または変更されないことを常に保証できますか?」
番号。
「ペンテストチームにデータを作成または変更できないという制限がある場合、ペンテストを本当に実行できますか?」
そう思いません。
「万一に備えて、侵入企業は常に免責条項を含めるべきか?」
内部契約は、サードパーティの契約とは大きく異なって見えます。他の保護の中で、責任保険の制限がないペンテスト会社は知りません...