セキュリティ集約型サイトの小さなバグを修正するために雇われています。コードを見ると、セキュリティホールがいっぱいです。職業はなんですか?[閉まっている]


109

誰かに雇われて、サイトでちょっとした仕事をしています。大企業向けのサイトです。非常に機密性の高いデータが含まれているため、セキュリティは非常に重要です。コードを分析すると、セキュリティホールで満たされていることに気付きました-読み取り、ユーザーのget / post入力をmysqlリクエストとシステムコマンドに直接投げる多くのPHPファイル。

問題は、彼のためにサイトを作った人は、その仕事に依存している家族や子供を持つプログラマーだということです。「あなたのサイトはキディ遊園地のスクリプトです。あなたのためにやり直してください。元気になります。」

この状況で何をしますか?

更新:

私はここでいくつかの良いアドバイスに従い、サイトでいくつかのセキュリティ上の欠陥を発見したことを開発者に丁寧に報告しました。私はそのラインを指摘し、そこにSQLインジェクション攻撃の潜在的な脆弱性がある可能性があると述べ、彼がそれについて知っているかどうか尋ねました。彼は答えた:「確かに、しかしそれを悪用するには、攻撃者はデータベースの構造に関する情報を持っているべきだと思うもっとよく理解しなければならない」

アップデート2:

私はそれが常にそうではないと言って、彼がそれを適切に扱うためにこのStack Overflow質問リンクに従うことを提案しました:PHPでSQLインジェクションを防ぐ方法は?彼はそれを勉強するだろうと言い、以前彼に言ったことに感謝した。おかげさまで、私の役目は終わったと思います。


29
私は本当に誰かの人生を台無しにすることを伴わない解決策を楽しみたいです。私はこれを放っておきますが、そのようなセキュリティホールも一部の人々の生活を台無しにする可能性があることを知っています。複雑です。
MaiaVictor

18
攻撃者はこのエクスプロイトを使用して、データベースの構造に関する情報を入手する可能性があります。いいえSQLインジェクションの脆弱性がなければならない、これまで軽視しないこと。
デイブレイガー

17
データベースの知識を使用せずに、いくつかの脆弱性を悪用する方法を彼に示してください。それは彼からsh * tを怖がらせるでしょう。
陶酔

74
私はあなたが知らない他の人/プログラマーを探して良い仕事をしたいです。彼らは間違いを犯し、あなたは彼らを知らないので、彼らの生活を台無しにすることは恐ろしいことではありません。それを考慮に入れてあなたを賞賛します。
スチール

8
@Dokkat問題はバランスの問題です。プログラマーの観点から見ると、妻と子供を持つ質の悪いプログラマーは実際に会社を危険にさらしているため、妻と子供を持つ多くの従業員の仕事を危険にさらしています。また、この問題は「悪いプログラマーが私の人生をより困難にする何かをする。感情的にも複雑になりがちです。今は家族と過ごすのを逃す必要があります。彼よりも重要です。 」それは非合理的な反応ですが、人々は人々です。
-deworde

回答:


114

ここで何よりもまず、優先順位はセキュリティホールを閉じることです。

これを書いたエンジニアと直接作業している場合は、すべてを文書化し、そのエンジニアに渡します。

そうでない場合は、セキュリティの問題は当初考えられていたよりも大きく、サイトには多くの作業が必要であることを雇用主に伝えてください。サイトにいる主な開発者と協力して、彼らにPHPセキュリティについて教えることを提案します(その人を専門家にすることは約束しませんが、あなたが知っていることすべてを訓練することを申し出てください)終わったら。

これを「この男は悪い、彼を解雇する」問題にしないでください。「ねえ、統計を修正する必要のある潜在的なバグを見つけました。これは、サイトのセキュリティに関する無知/一般的な誤解に起因しているようです。また、サイトを改善できるよう、開発者にも相談したいと思います。将来これらの問題がさらに回避されるよう願っています。」


1
全体的に素晴らしい答え。このトピックは主観的なものであるため、コミュニティで最も受け入れられているものとしてマークします。
MaiaVictor

1
エンジニアと一緒に仕事をしているが、管理職によって支払われている場合、管理職に報告すべきではありませんか?エンジニアがあなたに感謝しているが、あなたが去る瞬間にレポートが破壊された場合はどうなりますか?
コネラック

両方を伝えるか、最初にエンジニアに伝えて、使用しているシステムでバグが作成および追跡されていることを確認してください。バグが作成されない場合は、管理者に伝えてください。
エリックヒドリック

2
私はこの回答のほうが好きでした:Programmers.stackexchange.com/a/189206/28351、雇用者にとって優先順位が異なるため。最初にセキュリティホールを報告してから、小さなバグを修正します。
nalply

80

無知と無能には違いがあります。SQLインジェクションが何であるかを知らなかった時代があり、元のプログラマーが問題に気付いた後に問題を修正できないと信じる理由はありません。

だから彼らに言って。具体的かつ客観的になり、質問に答え、悪用の例を提供し、修正のための推奨事項を提供できるようにします。それでもポイントを取得できない場合、あなたが本当にできることは、自分の個人情報をサイトに掲載しないことです。


26
+1。無知は修正できます。無能は一部のキャリアです!
ミッチ小麦

20

あなたの仕事は、彼のためにサイトをやり直すことではありません。小さなバグを修正するためです。ただし、修正すべきセキュリティの問題に気付いた場合は、サイトの所有者に報告して、問題が何であるかについての洞察を提供できます。

元の開発者についてbe辱したり否定的に話したり、コードがどれほど恐ろしいのかについてコメントしたりしないでください。敬意と専門性を持ちましょう。開発者と協力して問題を解決することを提案できます。問題に対処するために契約していない限り、自分で修正したり、解決策を提供したりしないでください。彼らがあなたのアドバイスに従い、あなたが間違っているなら、彼らはあなたに戻ってくるかもしれません。


17

何よりもまず-彼らがあなたのために雇ったものを修正します。そうしないと、仕事を終わらせるのではなく、自分でもっと仕事をすることに興味があるタイプのコンサルタントとみなされます。

修正に加えて、セキュリティの観点から間違っていることに気付いたもののリストと、これらの問題がなぜ間違っているのかをリストに提供する必要があります。


13

問題を報告しないことは誰にとっても有益ではありません。特定のタスクがある場合は、そのタスクを完了のために雇いましたが、他のセキュリティ問題を確認し、それらを適切な個人、おそらくあなたが雇用されたタスクのために報告している個人に報告します。

これは、強力なソフトスキルがタクトでこれを処理するのに役立ちます。サイトで他のユーザーが行った作業を停止せず、開発者に自分の才能に疑問を感じているように感じさせないようにする必要があります。

サイトを書いた開発者のためのコード/欠陥および同様の単語を参照するとき、「がらくた、悪い、貧しい、なぞなぞ」などの単語を明らかに避けてください。


4
私は付け加えます:開発者が欠陥の重大度とそれらがどのように悪用されることができるかを知っていることを確認してください。この開発者がいるローカルマシンで制御された「攻撃」を開始するために時間をかけると、問題について彼を教育するために多くのことができ、コードを強化する方法を提案できるようになります。
アンドリューグレー

7

他の回答に加えて、開発者に、SQLインジェクションの問題をいかに簡単に悪用できるか、開発者に、自動化されたSQLインジェクション活用ツールであるsqlmapなどを指摘してください。

過去にこの種の問題の深刻さを実証するのに効果的であることがわかったのは、それで何ができるかを示すことです。データの抽出などを行うためのサイトのコピーは、彼らに深刻さを納得させるかもしれません。


4
「ハッカー」のように見せられる可能性があるという点で、これにはいくつかのリスクがあることに注意してください。管理者は、「既存の脆弱性」、「開発コピー」、「ホワイトハットセキュリティアナリスト」などの用語を必ずしも理解していない
-deworde

0

最初で唯一。経営陣は問題について聞きたくありません。人事管理局(ホワイトハウスのセキュリティクリアランス)から解雇されました。システムがどれほど安全でないかを指摘したからです。それはしばらく前のことですが、経営者の態度は変わっていません。

電子メールで開発者との問題に対処し、追跡できるようにしてから、歩いたり逃げたりします。彼らが最終的に問題を抱えるとき、請負業者として、彼らはあなたが問題にリモートで接続されていても関与しているにもかかわらず、あなたを責めようとします。

SQLインジェクションと同じくらい基本的な問題があることは、システムを最初に開発したときに安価だったことを示しています。彼らがまだビジネスにいる間に彼らからできることを手に入れてください。


3
あなたの主張をサポートするために、いくつかの推理/参照を追加します(私にはもっともらしく聞こえるが、これは本当に重要ではありません)、私はdownvote取り消します- 「管理問題について聞きたくありません」
ブヨ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.