質問

    

この質問にはすでに回答があります:

         

プロジェクトと法律のオープンソース化に加えて、会社/グループ外へのコード漏洩の被害を防ぐ、または少なくとも最小限に抑える方法はありますか?

プログラマが参照を必要とするため、インターネットへのアクセスをブロックすることはできません(コードの電子メール送信を防ぐため)。周辺機器(USB、Firewireなど)もブロックできません

コードは、独自のアルゴリズムと社内で開発された知識(GUIを描画したり、データベースに接続したりするための通常のルーチンコードとは対照的)がある場合に最も重要ですが、一部のアプリケーション(会計ソフトウェアやCRMなど)はそれ:原則として簡単に開発できるが、ゼロから書くのに何年もかかるルーチンコードの複雑なコレクション。これは、漏洩したコードが競合他社に役立つ場所です。

私が見ている限り、漏れを防ぐことは、ほぼ完全に人間のプロセスに依存しています。どう思いますか?どのような予防措置と対策を取っていますか?そして、コード漏洩は以前に影響を及ぼしましたか?

役に立ちましたか?

解決

外に出るのを止めることはできません。だから2つの解決策-あなたを傷つけることを望んでいる人々を停止し、法的予防策を持っています。嫌いな人があなたを正しく扱うのをやめるには(スタックオーバーフローの場合、それ以上のことはおそらく話題外です)。

私は弁護士ではありませんが、自分自身に法的保護を与えるために、もしあなたがそれを信じているなら、アイデアを特許し、コードに著作権表示を入れ、プログラマーの契約が慎重に知的財産権を指定していることを確認してください。

しかし、一日の終わりに、答えは競争よりも速く実行されます。

他のヒント

高度に分類されたもので作業している場合を除き、電子メールやUSBデバイスをブロックできないことを考えると、ソースコードが漏えいしたとしても、それほど大きな損害はないでしょう。問題は、コードがどのようなものであるか、またはどのように機能するのか、その周辺の組織についての知識がなくても価値があるということです。

一般に、「ソース」の値一般的に宣伝されているよりもはるかに少なく、基本的に人や組織のないソースは、競合他社が占有するストレージの価値がありません。

また、最も可能性の高い攻撃ベクトルが欠落しているだけでなく、それが何であれ止められないものでもあります。あなたが本当にあなたがあなたの魔法を作った方法を知りたいのなら、彼らはあなたの開発者を追い払おうとします、そしてあなたが彼らの頭蓋骨の中に情報を持っていることを止められないため専門知識が彼らに残されています。基本的に、従業員の定着と信頼が唯一の方法です。申し訳ありません。

これが実際にどの程度役立つかわかりませんが、:

  1. プログラマーを困らせないでください。競合他社にソースを提供したい 位置にそれらを入れないでください。ほとんどの場所は開発者を過小評価しています。あなたがどこにいるか(SO)を考えると、あなたはそうではないでしょう。毎月1回ピザを手に入れるために戦わなければならなかった一方で、ゴルフのゲームの販売員が会社によって支払われ、支払われたのを見る以上に、私には何も思いつきませんでした。

  2. 本当に、直接の競合他社があなたのコードを今日入手した場合、それはどうなりますか?あなたの製品または垂直市場は、反応する前に新しい、より良いバージョンをリリースしないと停滞していますか?イノベーションの余地はありませんか?ほとんどの企業は、「独自のアルゴリズムと社内で開発した知識」を過大評価しています。確かに、それはいくらかの時間を削減するかもしれませんが、それは問題の約10%に過ぎません。

  3. すべての競合製品のソースをすべて入手した場合、実際の使用量はどれくらいですか?私はそれがあなたを数ヶ月戻すだろうと思います。フォワードではありません。戻る。

クリーンなシステムがあり、外部/内部の知識がほとんどない場合、自分の製品をビルド可能な状態にするのにどれくらい時間がかかりますか?コードを掘り下げて何が起こっているのかを調べるのにどれくらい時間がかかりますか? あなたの作る方法に時間とお金を費やすのではなく、何かを解決しようとするのにどれくらいの時間とお金を無駄にしますか? 製品はより良く機能しますか?

実際には、競合他社の製品のすべてのソース(100万行以上のコード)を所有する立場にあります。私たちはそれを何もしませんでした-ちょっとした突撃を除いて、それを削除しましたが、それは私が快適でした-私は、彼らがいた場所に着くために数ヶ月の時間を噛んだと思いますその後。

それで私たちはそれを否定し、それを手に入れたid10t(はい、他の会社からやって来た開発者/ PM)を平手打ちし、私たちの製品を非常に激しく蹴らせる方法を考えました彼らが何をしたかは関係ありません。時間のはるかに良い使用。うまくいきました。同じ機能を同じ方法で再ハッシュするだけでなく、差別化要因がありました。

申し訳ありませんが、人々が物を取り出すのを止め、実際に仕事をすることができるいいえの方法があります。あなたは彼らにそれをやめさせる ことをやめるか、それを持っていることに価値がないようにすることができます。

私たちはコードを逆コンパイルする人々についても心配していました。 MAPI / Exchangeと通信するC#、C ++、およびHTMLコードの500K行以上で何が起こっているのかを解決するのに十分な問題があることに気付いたとき、私たちは心配することを止めました。誰かがそれを逆コンパイルして解決できるなら、私たちはそれらを雇いたい......

ところで、わかりやすくするために、私が今働いている人を考えると、これは私の現在の雇用主ではないことを指摘すべきです。これはかなり前のことでした。

コードはそれ自体に漏れません。人々がそれを取るには時間がかかります。トラフィック分析やリポジトリのロックダウンなど、使用できるセキュリティ対策が明らかにあるため、承認された開発者のみがリポジトリに接続できます。

しかし、1日の終わりには、誰もあなたから盗まないようにすることが最善の選択肢です。あなたのチームは幸せでなければなりません、彼らはあなたと彼らが会社とお互いに忠実でなければならないために働くことを誇りに思っている必要があります。そのようなチームがある場合、コードを部外者から保護する必要があることを全員に説明するという簡単な質問です。専用のほくろを止めることはありませんが、事故を防ぎます。

PSもちろん、契約の適切な条項も同様に害を及ぼすことはありません。少なくとも、開発者がコードを外部に持ち出すことは道徳的に間違っていることを認識しています。

これらのガイドラインに従ってください。ソースコードリポジトリ全体の内容がstackoverflow全体に投稿されているかどうかは問題ではありません:

http://geocities.com/mdetting/unmaintainable.html

ああ、ソースコードの一部へのアクセスをブロックしたり、送信/受信メールをスキャンしたりして、開発者に信頼していないことを開発者に示してください。職場での少しの不信のように、何も士気を向上させません。

もう1つのクールな方法は、「チームa」であることを半分に伝えることです。残りの半分を信頼できない「チームb」と名付けます。それを逆にして、同じことを「チームb」に言います。メンバー。 「悪者」に目を向けるよう奨励します。他のチームであなたに不忠の兆候を報告します。いくつかの「競合誘因」を振りかけます。 (例:「ジョー」と言って: 'あなたの後ろでエドがあなたについて言っていることを知っていますか?')など。Worksが開発者を互いにセットアップし、いくつかの[発明した- by-you]あちこちで競合しています...

(ええ、いや、私は実際には上記のいずれもお勧めしません。冗談です。しかし、私は人々が上記のすべての戦術を使用するのを見ました。そして、それはうまくいきませんでした。)

さて、ここで少し実用的になります。

  • みんなに親切になり、彼らがあなたを傷つけないことを望んでいるのはうまくいきません。

すべてのプログラマーは、彼が会社に入社したその日から、永遠にそこに留まらないことを知っています。彼はより良い機会を得るのに十分なことを学んだときに変わります。

コードを書くプログラマーは、誰かに貸し出した時間に書いたとしても、その所有権があると信じています。そのため、彼らの多くは通常、誰かを傷つけるつもりはない場合でも、ソースコードを手に入れようとします。

彼らが会社を辞め、彼らとソースコードを携行し、同僚との連絡を失うと、良心は落ち着いて休暇を取り、しばらくするとコードの断片がどこにでも現れ始めます。

それは私が知っていることで、私の会社で起こったことを目撃しました。

では、何をしますか?

  • NDAに署名して、プログラマーがコピーを取らないことを具体的に記載します。
  • プログラマー間で製品を配布し、可能であれば、すべてのプログラマーがすべてのコードを取得しないという責任を持つ責任者が個別にコード化および統合したモジュールを取得します。
  • 終了時に、コーダーから会社の知的財産を所有していないこと、および違反の罰則を理解していることを書面で約束します。
  • 誰かがあなたのIPに違反した場合、男を訴えましょう!例外なく。現在のチームの例として機能します。

極端に聞こえますか?

ValveがHL-2を開発していたときに、これがValveに起こったことを覚えています。興味深いリンク: http://www.shacknews.com/onearticle.x/28619

私は、この種のことについて真の秘密の文化があった場所で働いてきました(歴史的には、「顧客」がアクセスを悪用した会社が小さい時代が何度もありました)当社の製品)。

経営陣は最上位で非常に保護的でしたが、それとは少し異なります。私たちのコードは、完全に無関係ではありませんが、ソフトウェア会社にあると期待するほど重要ではないと思います。

成功している理由:

1)このコードは、本質的に多くの問題の解決策です。あなたが私たちのコードを手に入れれば、あなたはそれらの解決策を手に入れますが、それらの問題を解決した賢い人々がまだいます。彼らはあなたよりもそれらの問題をよく理解しており、あなたよりも次の問題をより良く解決することができます。

2)問題(および解決策)を本当に理解しているため、競合他社よりも速く物事を行うことができ、より安価な(またはより収益性の高い)ものになります。

3)また、これらの人々と社内の態度のおかげで、私たちはクライアントにうまく配信し、良いサポートを提供しました。

4)そのため、評判が高く、参照可能な顧客がいます。

少数の企業は、秘密にしておく価値のあるコードを所有しています-独自のアルゴリズムとそのようなもの-しかし、私たちの大多数にとって、私たちの製品は賢い人によって非常に簡単に複製できます。

私が言っているのは、基本を実行することです。人々の契約書に、それを受け取れないように書いて、安全に保管するなどです。しかし、それにこだわらないでください。あなたが非常に特定の市場にいなければ、それはあなたのビジネスを本当に成功または失敗させるものになる可能性は低いでしょう。

最善のステップは、強力な倫理的行動をとる男を退治することから始まります。 すべての通信がスキャンされるように、他のさまざまな手順を実行できます。電子メールや送信されるすべての情報がスキャンされる場所があります。デスクトップ/ラップトップにはハードディスクがないか、アクセスが制限されており、すべての作業はネットワークフォルダーで行われます。自宅で作業している場合でも、インターネットに接続する必要があります。オフライン作業が同期されます。 USBとドライブが切断されています。

その他のポリシーは、必要に応じてのみアクセスを提供することです。 これらは速度を低下させ、ある程度まで妨げますが、1つは非常に決心していて、彼はこれを回避する方法を見つけるでしょう。 もう1つの方法は、コードが本当に非常に重要である場合、アイデアを合法的にコピーライト保護することです。

正直に言うと、ほとんど不可能です。 Daily WTFに間もなく登場する企業が何をするかを提案したい場合:

  1. 「作業コンピューター」を切断します。参照用にインターネットアクセスが必要なため、インターネットから、誰もがwbbookを購入します。

  2. 開発者のUSBスロットにエポキシを詰め、中央サーバーからすべてをロード/アンロードする必要があります。中央サーバーは、通過するすべてのデータをスキャンして構文のようなコードを探します。

または従業員を信頼して、NDAに署名させることもできます...

私は個人的に実際のケースでテストしたことはありませんが、コードの断片化を使用することをお勧めします:

基本的に、プロジェクトをいくつかのライブラリに分割し、それぞれのインターフェイスとユニットテストを定義してから、SVNリポジトリを分離して、各グループが貴重なソースコードの限られた部分にアクセスできるようにします。

これは、何があっても良い習慣であり、海外に外注する場合に役立つはずです。

これまでの答えはすべて、信頼の構築と倫理的な人々の雇用に集中しているようです。

別の可能性として、独自のドメイン固有の言語とツールを作成することがあります。これにより、リークされたコードが使いにくくなります。そこから有用なアイデアを盗むことはまだ可能かもしれませんが、ツールチェーン全体がリークしない限り、単に競合製品をコンパイルすることはできません。

開発者を信頼します。人々は期待に応じて生活する傾向があります。それらをよく扱い、忠誠心が両方の方向に行くことを忘れないでください。結局のところ、サムドライブを遮断できない場合、どれだけ信用していないとしても、コードの漏洩を阻止することはできません。

そうは言っても、企業秘密の専門知識、おそらく知的財産法の他の部分の専門知識を持つ弁護士を見つけ、法的に物事を守る方法を尋ねてください。競合他社があなたのものを手に入れた場合、競合他社がそれから利益を得ることは合法ではないことを確認したいのです。

ほとんどの答えは、道徳的および倫理的価値に基づいています。 Google、Facebookなどは従業員の善意に頼っているのだろうか。ちょっと休んでくださいバカにならないでください。現実的にしてください。

はい、コードの漏洩を防ぐことができます:

仮想マシンをホストする仮想サーバーを使用すると、プログラマーはリモートデスクトップ経由でこれらの仮想マシン(イントラネット)にローカルでしかアクセスできません。リポジトリはローカルで管理されます。リポジトリにアクセスするには秘密鍵が必要です。 仮想マシンからクライアントへのコピー/貼り付けは無効です。クライアントから仮想へのコピー/貼り付けのみが許可されています。

facebookのような企業はそれを行います。

コードを静止させる唯一の方法は、実際のコードに写真を撮ることです。これはまったく実用的ではなく、まったく実行可能ではありません。 / p>

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top