13

おそらく、企業の知的財産を自社の開発者から保護する最も明白な方法は、NDA (秘密保持契約) のようです。このアプローチの有効性は、多くの要因によって異なり、場合によっては期待どおりに機能しない場合があります。

この純粋に合法的な方法以外に、ソフトウェア コードを開発者から保護するために他にどのような方法がありますか? それらはまったく存在しますか?それは実際に意味がありますか?

たとえば、Visual Studio の Team Edition には、この問題に関連するいくつかの機能が既に含まれているのではないでしょうか (たとえば、開発チーム内の役割に応じたコードの一部へのアクセス レベルなど)。

トピックに関する参照:

統計によると、平均して、プログラマーは 3 ~ 4 年ごとに転職する傾向があります。

4

12 に答える 12

34

信頼できるチームを構築するよう努めてください。

于 2010-02-09T20:25:38.793 に答える
34

最初のアプローチは、プログラマーが他のコンポーネントのインターフェイスしか知らないように強制することです。これにより、各コンポーネントはソフトウェア全体のごく一部しか盗むことができなくなります。このアプローチは、靴の生産から借りることができます。ある多国籍企業は、従業員による盗みを防ぐために、各工場が左または右の靴のみを生産するように工場を配置しました。コードで同じことを行うことができます。一部のプログラマーは奇数の行のみを記述し、他のプログラマーは偶数の行を記述します。彼らがお互いの仕事を見ることができないという条件で!これは「ペアプログラミング」と呼ばれることもあります。

一部の組織では、従業員に非競争契約への署名を強制しています。これは、プログラマーが競合他社で働くことを妨げる一種の契約です。この手法は、「同様の分野で 5 年の経験を持つシニア プログラマーを探しています」のような求人情報と組み合わせるのが最適です。

プログラマーが盗むのを防ぐために、ソフトウェアを完成させたらすぐにプログラマーに危害を加えることができます。この方法は最も効率的であることが証明され、何世紀にもわたって使用されてきました。たとえば、ロシアの皇帝イワン雷帝は、赤の広場に美しい教会を設計した建築家の目を焼いたため、設計された教会は今でも最も美しいものです。建築家にこのようなことをすることができます。最新のVisual Studioにはいくつかの機能が含まれていると聞きました...

しかし、今日では、すでに目が見えず、手を失った愚かな人々を雇う方がより人間的です。そのため、彼らはあなたのコードを見て暗記することができず、あなたのコードについて誰にも話すことができず、再度入力することもできません。利点は、これにより、従業員が差別されないようにバランスを監視する、あなたの国の労働機関との取引に役立つことです。

そして、はい、この投稿は皮肉なジョークであり、コード盗用防止策のアイデアを批判しています. 申し訳ありませんが、投稿せずにはいられませんでした。

于 2010-02-09T20:40:48.227 に答える
17

How do you protect a power plant from sabotage by an employee? How do you prevent a boxer from throwing the fight? How do you prevent a brothel from distributing the clap?

Your concern, while valid, is one that can only be properly addressed by personal responsibility and accountability within your team. Any options you employ to secure the code against theft is likely do more harm than good. If you feel a team member is not trustworthy, get rid of them.

于 2010-02-09T20:42:50.140 に答える
6

本当に必要な場合は、アプリケーションをサブアプリケーションに分割できます。各チームは 1 つのアプリケーションで作業し、他のすべてを「ブラック ボックス」と見なします。ここで SOA が役立つかもしれません。

于 2010-02-09T20:28:58.863 に答える
6

あなたのコードが本当の知的財産である可能性はほとんどありません。それはあなたの会社のビジネス知識とプロセスです。

于 2010-02-09T20:32:39.570 に答える
5

SVN には、さまざまなユーザーをさまざまなフォルダーに制限する機能があるため、コードを個別のライブラリに分割し、特定の人だけに読み取り/書き込みアクセスを許可することができます。

このファイルは conf\authz の下にあります。サンプルは次のとおりです。

[aliases]
# joe = /C=XZ/ST=Dessert/L=Snake City/O=Snake Oil, Ltd./OU=Research Institute/CN=Joe Average

[groups]
# harry_and_sally = harry,sally
# harry_sally_and_joe = harry,sally,&joe

[/
# [/foo/bar]
# harry = rw
# &joe = r
# * =

# [repository:/baz/fuz]
# @harry_and_sally = rw
# * = r

一部のドキュメントはここにあります

ディレクトリごとのアクセス制御」の下

于 2010-02-09T20:54:37.150 に答える
4

信頼できる開発者のチームを構築するか、システムを完全にロックダウンして、USB ポート、CD ドライブ、または Web メール クライアントにアクセスできないようにします。彼らができる唯一のことは、コードで作業することと、場合によっては Web を閲覧することです。また、担当しているコードへのアクセスのみを許可します。

しかし、これらすべてのセキュリティ対策により、開発者はあなたと一緒に仕事をすることを嫌い、仕事を辞める可能性があります

于 2010-02-09T20:32:52.940 に答える
2

コードが同じプロジェクト内にある場合(つまり、コードの一部へのアクセスを許可し、他の部分へのアクセスを許可しない場合)、これを行う簡単な方法はありません。ただし、異なるセキュリティレベルを必要とする個別のプロジェクトがある場合は、開発者が特定のプロジェクトにのみコードアクセスできるようにしてから、共通のビルドサーバーからビルドをプルすることができます。

.NETのようなILに対して機能するフレームワークの逆コンパイルは比較的簡単であるため、コードファイルへのアクセスを防ぐことは必ずしもIPを保護するための特効薬ではないことに注意してください。

于 2010-02-09T20:37:02.007 に答える
1

モジュールでソフトウェアを開発します。

前後に渡されるオブジェクトと、それらのオブジェクトに作用するユーティリティクラスを含む1つの共通モジュールがあります。

他のモジュールについてあまり知る必要なしに、各グループにその上にモジュールを構築させます。

1人の信頼できる開発者チームに各モジュールの内容の計画を行わせ、そのチームにすべてのモジュールの全体への統合も行わせます。

また、バージョン管理サーバーを実行している人には多くの信頼があります。それは安定していますが、誰もそれほど多くの害を及ぼすことはできません。たとえば、すべてを削除することはできません。彼らが何をしたのか、それがいつ問題になるのかを正確に知ることができます。

于 2010-02-09T21:15:56.020 に答える
1

アプリケーションの残りの部分とは別のモジュールを開発させることができます。プラグイン/モジュール タイプのシステムを使用している場合は、これが適しています。開発者が開発するための API をリリースし、それらをソース コードではなく DLL と統合することができます。

人々はこれに非常に批判的であるように見えますが、これを行うには正当な理由があります。つまり、潜在的な競合他社と提携するということです。

于 2010-02-09T20:50:48.637 に答える
1

純粋に合法的なものとは別にあなたが言ったことは知っていますが、あなたが言及した合法的なものに加えて、非競争もあると付け加えたいと思います。基本的には、一度仕事を辞めると、前の雇用主とはまったく競争できなくなると言っています。1 年か 2 年使用できない場合、コードを盗むことはそれほど魅力的ではありません。

于 2010-02-09T20:24:22.127 に答える
1

従うべきビジネスモデルに脳細胞の活動を費やすことは価値があるかもしれません. コアバリューがコードに組み込まれている場合、コードを盗むことでコアバリューを盗むことができます。しかし、あなたのビジネスの核となる価値が、エンジニア、営業担当者、顧客サポート担当者などの従業員のグループに具現化されている場合、ソフトウェアがこれらの従業員のビジネスを継続させるネットに過ぎない場合、ビジネスの価値を盗む簡単な方法はありません。そして、ソフトウェア盗まれた場合、泥棒はそれをあまり利用できなくなります。

したがって、cherouvim が言ったことに加えて、信頼できるだけでなく、ビジネスのコアバリューとなるチームを構築してください。

于 2010-02-09T21:01:07.683 に答える