雇用主から要求された場合、安全でないコードを書くことを受け入れるべきですか?[閉まっている]


24

雇用主は、パスワードをデータベースにクリアテキストで保存する機能を実装するように要求しました(または、バイナリに保存されたあいまいな暗号化/復号化機能を使用します。これは少し優れていますが、安全ではありません)。

お客様がセキュリティ機能を使用する際のセキュリティの影響を認識していれば、そのような機能を実装しても構わないと答えました。

同僚とこの問題について議論するとき、誰かが私に、ソフトウェアエンジニアとして、私たちが製品に導入するセキュリティ問題に個人的に責任がある(法律上の意味で)と私に言いました。契約を調べましたが、同様のケースに関連するものは見つかりませんでした。

法的な観点から、そのような機能の実装を拒否すべきですか?顧客がこの機能による損害を経験した場合、たとえ彼が同様にセキュリティ上の懸念を知っていたとしても、私の雇用主は私を裁判に連れて行くことができるのは本当ですか?


編集:私はこの質問は弁護士からしか確実に答えられないと理解しています。ライセンスに関する質問についても同じことが言えます。ここでの人々は、時には弁護士に相談した後、別の司法管轄区で適用される保証なしに、理解と経験を与えます。ただし、ここではライセンスがトピックとして明示的に受け入れられています。ここではどのような質問をすることができますか?を参照してください。他のプログラマーも同じ問題を抱えている可能性があり、他のプログラマーは以前にこの状況に直面したことがあり、そのために弁護士に相談した可能性があると思います。


2
弁護士に連絡する必要があります-これは答えを得るのに適切な場所ではありません。
オデッド

11
IANAL、しかし雇用主が従業員に彼が指示したとおりのことを行ったとして従業員をうまく訴えることができるとは思えない。

3
@Oded:クライアントは会社を訴える可能性があります。会社は依然として(「自由意志」の管轄で)従業員を不当に非難して解雇するかもしれませんが、顧客が個々のプログラマーを訴えることができると聞いたことはありません。同社は、それが製品に品質上の問題に責任がある会社で、販売ではなく、従業員の契約を締結した法人です。

8
パスワードをプレーンテキストで保存するだけでなく、ソリューションに対する顧客の信頼を下げるものは何でしょうか?!不条理。あなたの上司が自分の墓を掘るように頼むなら、ただそれをしなさい、しかしあなたがあなたの意見の不一致を彼に知らせ、彼にあなたに命令するように彼に警告したことをメールでそれを書面で確実に入手してくださいとにかくやってください。常にあなたとその通信を保管してください。
maple_shaft

3
法律家が適切に答えることができるのは弁護士だけであるため、この質問をトピック外として終了することに投票しています。

回答:


11

あなたの同僚は、特に契約でセキュリティの責任について何も見つけられなかったため、見当違いです。たとえそれができたとしても、経営陣から矛盾した命令を受けただけです。

潜在的な訴訟の対象となるのは、製品に故意に損傷を与えたり、独自の時限爆弾やイースターエッグなどを作成した場合だけです。

ほとんどの場合、会社はソフトウェアを所有しているため、利益を享受できますが、個々の開発者ではなく、リスクを負うことも意味します。

個人的には、管理者がこのセキュリティ機能の問題を認識していることを確認し、事前に文書化して、作業を続行します。

とはいえ、弁護士のやだやだやだに相談してください。


34

何が起こっても:雇用主の指示に従ったことを明確に示す電子メールまたはその他の証拠がない限り、このようなコードを書かないでください。


6
また、印刷して外部のアカウントにも送信します。
ビルリーパー

7
CYA(Cover Your A ..)として知られています。私はかつて、好ましくない指示のコピーを個人のメールアカウントにメールで送信し、それを会社の法務部門に送信しました(これは機密であるため倫理チームがありました)。それはあなたがどれだけの熱を取る準備ができているか、そしてどれだけの「保護」が必要かによって異なります。検討する価値がある他の人は、マーケティング、取締役会(責任を持って最終的に)、所有者/株主です。「誰が最も負けているのか」と尋ねますか?あなたは多くの重要な人々の時間を無駄にしたか、上司の見た目を悪くしたので、キャリアを制限します。
mattnz

+1-背中を覆います。これが悪いと思う理由についてのあなたの反対と推論を文書化してください。マネージャーの応答を文書化します。熱が戻ってきた場合に備えて、これを印刷して慎重にファイルしてください。
Qwerky

CYAですが、それについて受動的で攻撃的ではありません。雇用主に反対意見を表明し、そのメールも保存してください。
ダグT.11年

単純明快-私はこの答えが好きです。これは法的に責任を負うことは間違いありませんが、それでも自分で倫理的決定を下す必要があります。
stringo0

6

法的な観点から、弁護士に相談してください。私は一人ではありません。また、あなたが住んでいる司法権や法律が何かを説明するのに役立つかもしれないという手掛かりもありません。しかし、いずれにせよ弁護士に相談してください、あなたはあなたの個人的、専門的、財政的な将来についてインターネットQ&Aサイトを信頼しますか?

一般的なビジネスアドバイスは、書面でセキュリティの懸念を考慮して、書面で予約を取り下げ、雇用主の直接命令を継続することです。物事が南に行ってファンに当たった場合、あなたはそれを頼りにするでしょう。

これを回避する別の方法は、要件をより深く調べることです。解決している問題ではなく、計画を共有しています。猫の皮を剥ぐ、またはパスワード検索の要件を処理する方法は複数あります。


3

心配するつもりはありません。安全でない機能を後で悪用したり、怠慢だからといって悪用することを悪意を持って決めているわけではありません。会社はこれを望んでおり、誰かが開発時間とユーザーの期待との間のトレードオフが(通常どおり)許容できると判断したので、あなたはそれに取り組むべきです。カムバックが本当に心配な場合は、上司にメールを送信し、応答を保管してください。それができたら、従業員として、あなたはカバーされます。

これが受け入れられる理由がある場合があります-たとえば、プレーンテキストパスワードを保存する非常にミッションクリティカルなソリューションを知っていますが、システムの残りの部分はこれが問題にならないように保護されています。このシステムは、たとえば別のネットワーク上にあります。ストーリーの残りの部分(ほとんどの企業で一般的な状況)がわからない場合は、他の誰かがこれを検討していると合理的に予想できます。同様に、上司からそのメールを受け取った場合、上司が何をしているかを知っていると期待できます。

ちなみに...これは私が(消費者として)使用する製品ですか?もしそうなら..それは何ですか、それで私はそれを避けることができますか?:)


1

開発者によって多数のバグが追加されており、ライブ運用中に同様に大きな資産に顧客を傷つけていることを認識していますか。私たちはそれらが意図的であるとは思いませんが、それはまだ私たちの具体的な仕事の一部の結果であり、まだ重要ではありません。そのため、あなたが行った例は、開発者(または上位)の決定がクライアントに影響を与えるような孤立したケースではありません。

ここに私が提案するものがあります:

  1. まず第一に、すべての手段で-他の会社にソフトウェアを配信しているのは会社です。個人には(チーム内での拍手とせいぜい給料を超えて)直接のクレジットと作品の所有権は与えられません。したがって、これは私たちの配信の一部としては良いことではありませんが、ここでの犯罪者ではありません-決定があなたのものでない限り。

  2. プロのプログラマーとして-コードの制限と、関連するREADMEファイルまたはドキュメントの一部として物事を維持する方法に伴う危険性を明確に示すでしょう。要件ドキュメントがある場合-推奨されるテストレポートなどに制限が明記されている必要があります。

  3. 真の意思決定者に責任を持たせるために、私はそのような文書の電子メールで自分の考えを確認するように上位に要求します。

  4. リスクを正しく評価します。私のデータカードソフトウェアはパスワードを計画テキストに保存しますが、それは重要ではありません。しかし、銀行のパスワードを保存している場合、またはデータベースまたはサーバーへのアクセスである場合、同じことは受け入れられません。したがって、実際のリスクに基づいて、問題を可能な限り上にエスカレートする必要があります。


1

故意に損傷を与える方法で仕事を行わない限り、あなたに求められたタスクを実行することには法的な欠点はほとんどありません。あなたはあなたの負債を述べる雇用契約を結んでいるでしょう、あなたは専門性について弁護士に相談することができます。あなたが本当にさらされていると感じたら、平文パスワードの設計決定の書面による承認を得る。

この機能が最終リリースで機能することを確信するまで、どのソフトウェアであるかは明らかにしません。納得できる方法でお客様にお知らせできることを願っています。

もう少し心配なのは、「顧客への情報提供」に関する引用です。立っている会社、評判などに損害を与えた場合(契約に関する条項)、会社はあなたを訴える可能性があり、「内部告発者」の弁護は、参照や別の仕事が必要なときに役に立たないかもしれません。

セキュリティホールの意味に不満がある場合は、履歴書をブラッシュアップして先に進みますが、それがあなたの決定ではなく、あなたの会社ではない場合は、なぜこれが「法的に」「非難」されるのかわかりません。


1
ご回答有難うございます。私はコメントでひどく表現しました。この特定の決定には満足できませんが、会社や他の人に腹を立てることはありません。Q&Aサイトで公開するのは間違いなく悪い考えです。それはネガティブな広告であり、誰にも役立つ可能性はほとんどありません。
アントワーヌ

このようなフォーラムを開いて、それをベントするのは良いことです。すべてがうまくいくことを願っています。
アメルビン

1

あなたの会社を雇用したときに専門的な損害賠償保険の形態をとるでした。これは、必要がある場合には、すべての従業員のための適切な法的保護を提供するもの(例えば暗号化されていないパスワードなど)のソフトウェアで発見されたソフトウェアや傷のソフトウェア、または誤用と間違って行きます。

従業員として、あなたは彼らが尋ねることをすることになっています、そして、彼らはクライアントが望んでいることをすることになっています、どちらの当事者も法律に違反していない限り、問題はありませんクライアントが望んだ/要求したものではないことが判明した場合、それはそれらの間にあり、専門的な補償保険はあなたの個人的な責任/責任からあなたをカバーするべきです。

IANAL、しかし、私はあなた自身の弁護士に確認することに加えて、会社の法務チームにこれを取り上げます。

PS、もしあなたがこれに真剣に驚いたなら、可能であれば、オフサイトのどこかに電子メールとハードコピーですべての関連するメールを保存してください。


1

新しい仕事の時間。これを実装することを忘れてください。移動する時が来ました。彼らがこれでとても無頓着で欺くのをいとわないなら、彼らはあなたをバスの下に投げることを恐れません。

さらに、人々のソフトウェアのセキュリティホールを指摘している多くのグループの1つに匿名で連絡を取ったら、恐れる必要はありません。これは起こるのを待っている災害です。これらを保存する正当な理由はまったくありません。上司はあなたに理由を教えてくれましたか?ユーザーとしてログインしますか?パスワードを簡単に取得できるようにしたいですか?上記のいずれかに対してより安全に対処できる答えが得られない場合は、次に進みます。あなたが去るとき、彼らに理由を言わないことが最善でしょう。


Googleでさえパスワードをプレーンテキストで保存していることに気付いていますか?あなたがサイトの管理者であれば、アカウントのパスワードを見ることができます。
apscience

1
ええ、私はそうは思いません。パスワードは保存しません。元に戻すことができない一方向ハッシュを実行し、それを保存します。それが標準的な方法です。アカウントが侵害された最近のハッキングでさえ、そのようにしました。主な問題は、誰かがハッシュを取得し、それらが生成された方法を知っている場合、辞書でヒットすることです。しかし、パスワードは暗号化されていても、決して保存することはありません。ただそれで問題を求めています。もっと知りたい。ここにアクセスして
ビルリーパー

グーグルがやると確信しています。アプリを管理している場合は、ユーザーのすべてのパスワードを検索できます。google.com/support/forum/p/Google%20Apps/…、回答#4を参照してください。
apscience

1
RTFA。申し訳ありませんが、ユーザーとしてログインできます。これは、特定の権限を持つユーザーが別のユーザーになりすますことができる方法です。googleが他の人のパスワードを提供することはありません。自分の資格情報でログインしてから、他のユーザーになりすます。これは非常に一般的であり、上司が特定のユーザーとしてログインしたいという私の最初のコメントに対する解決策の1つです。
ビルリーパー

0

非対称暗号化を使用しているプログラムへの完全なアクセス権を持っている場合に取得することはまだ不可能であるが、回復可能な形式でパスワードを保存する指示に従うためにできること

バイナリに保存された公開キーで(常に塩漬けされた)キーを暗号化します。

パスワードがプレーンテキストで必要な場合、人間は秘密鍵を提供する必要があります。秘密鍵はサーバーから離れた場所で安全に保管されます。


要求の理由によっては、これはOPの上司を満足させるには至らない場合があります。
からCVn

0

個人的には、契約やその他の正式な契約の条項がない限り、ソフトウェアエンジニアが作業している製品のセキュリティ問題について法的責任を負っているということを聞いたことはありません。ソフトウェアエンジニアリングの法律と倫理について読んだことから、システムのセキュリティ要件は要件仕様によって決まります。要件仕様は、法的要件、業界要件、または企業要件も参照します。システムを構築する際、セキュリティ要件を満たしていない場合は、システムが指定どおりに構築されていないため、契約の条件を満たしていないとして扱われます。特定のイベントがどのように展開されるかは、エンジニアと雇用主、雇用主と顧客の間の契約に依存します。

法律もあなたがすべきことを教えてくれませんが、できること/できないことを教えてくれます。あなたがどの業界にいるのかは言及していませんが、特定の種類のデータを処理する方法に関する法律、規制、規則を持っているものもあります。などなど。お住まいの地域(国、州)にセキュリティに関するルールがなく、業界にセキュリティに関するルールがなく、ソフトウェアの要件がセキュリティの要件や標準を示していない場合は、法律問題。

ソフトウェア開発における倫理的な問題に関しては、ソフトウェアエンジニアリングの倫理および専門職行動規範を購読しています。最終的には、あなたの電話です。ただし、プレーンテキストまたは解読可能な形式でパスワードを保存するのは非倫理的だと思います。


-3

プロジェクトの開発プロセスに準拠するだけです。この機能が要件ドキュメントに記述されている場合は、実装する必要があります。


ただ命令に従う。そうは思いません。プログラマーは、考え、質問し、創造的になるために雇われます。このようなくだらないソフトウェアは、業界に悪い名前を与え、私たちの個人情報を危険にさらします。
ビルリーパー

私の答えは正反対です。上司が要件に矛盾している場合、上司を安全に回避できます。暴露されたケースでは、上司は注文が要件で書かれていることを受け入れるとは思わない。
mouviciel
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.