سؤال

هذا السؤال لديه بالفعل إجابة هنا:

إلى جانب إتاحة المصادر المفتوحة لمشروعك وتشريعاتك، هل هناك طرق لمنع أو على الأقل تقليل الأضرار الناجمة عن تسرب التعليمات البرمجية خارج شركتك/مجموعتك؟

من الواضح أننا لا نستطيع منع الوصول إلى الإنترنت (لمنع إرسال الكود عبر البريد الإلكتروني) لأن المبرمجين يحتاجون إلى مراجعهم.لا يمكننا أيضًا حظر الأجهزة الطرفية (USB وFirewire وما إلى ذلك)

تكون التعليمات البرمجية أكثر أهمية عندما تحتوي على بعض الخوارزميات الخاصة والمعرفة المطورة داخليًا (على عكس التعليمات البرمجية الروتينية العادية لرسم واجهات المستخدم الرسومية، والاتصال بقواعد البيانات، وما إلى ذلك)، ولكن بعض التطبيقات (مثل برامج المحاسبة وإدارة علاقات العملاء) هي مجرد:مجموعات معقدة من التعليمات البرمجية الروتينية التي يسهل تطويرها من حيث المبدأ، ولكن ستستغرق سنوات لكتابتها من الصفر.هذا هو المكان الذي سيكون فيه الكود المسرب مفيدًا للمنافسين.

بقدر ما أرى، منع التسرب يعتمد بشكل كامل تقريبا على العملية البشرية.ماذا تعتقد؟ما هي الاحتياطات والتدابير التي تتخذها؟وهل أثر عليك تسرب الكود من قبل؟

هل كانت مفيدة؟

المحلول

لا يمكنك منعه من الخروج.لذا هناك حلان: منع الأشخاص من الرغبة في إيذائك، واتخاذ الاحتياطات القانونية.لمنع الأشخاص من كرهك، تعاملهم بشكل صحيح (قول المزيد ربما يكون خارج الموضوع عن تجاوز سعة المكدس).

أنا لست محاميًا، ولكن لكي تمنح نفسك الحماية القانونية، إذا كنت تؤمن بها، قم بتسجيل براءة اختراع للأفكار، ووضع إشعار حقوق الطبع والنشر في الكود، وتأكد من أن العقود الخاصة بالمبرمجين لديك تحدد بعناية حقوق الملكية الفكرية.

ولكن في نهاية المطاف، يتم تنفيذ الإجابة بشكل أسرع من المنافسة.

نصائح أخرى

ما لم تكن تعمل مع شيء سري للغاية وبالنظر إلى أنه لا يمكنك حظر البريد الإلكتروني وأجهزة USB، أعتقد أنك لست كذلك، فلن يكون هناك الكثير من الضرر الذي قد يحدث حتى لو تسربت شفرة المصدر.الأمر هو ما هي قيمة الكود أو أجزاء منه دون معرفة كيفية عمله والتنظيم المحيط به.

بشكل عام، قيمة "المصدر" أقل بكثير مما يتم الترويج له بشكل شائع، فالمصدر بدون الأشخاص أو المؤسسة لا يستحق مساحة التخزين التي يشغلها لمنافس.

بالإضافة إلى ذلك، فإنك تفتقد ناقل الهجوم الأكثر احتمالاً، وهو أيضًا الذي لا يمكنك إيقافه مهما حدث.إذا كان شخص ما يريد حقًا أن يعرف كيف صنعت سحرك، فسوف يحاول توظيف مطوريك بعيدًا، وبما أنك لا تستطيع منعهم من الحصول على معلومات داخل جمجمتهم وحتى إذا قاموا بتسليم جميع ممتلكاتهم ومعارفهم ومجالهم الخبرة تغادر معهم.إن الاحتفاظ بالموظفين وثقتهم هو الطريقة الوحيدة.آسف.

لا أعرف مقدار المساعدة الفعلية التي ستكون عليها هذه المساعدة، ولكن:

  1. لا تزعج المبرمجين لديك.لا تضعهم في موقف حيث هم يريد لإعطاء المصدر لمنافس.معظم الأماكن تقلل من قيمة مطوريها.بالنظر إلى مكان وجودك (SO)، أعتقد أنك أقل احتمالا للقيام بذلك.لم يكن هناك شيء يلفت انتباهي أكثر من رؤية موظفي المبيعات خارجًا لممارسة ألعاب الجولف - المدفوعة الأجر من قبل الشركة - بينما كان علينا أن نناضل من أجل الحصول على البيتزا مرة واحدة في الشهر.

  2. حقًا، إذا حصل منافسوك المباشرون على الكود الخاص بك اليوم, ماذا سيفعل؟هل يعاني منتجك أو السوق الرأسية من الركود بحيث لا يمكنك إصدار إصدارات أحدث وأفضل قبل أن تتمكن من التفاعل؟ألا يوجد مجال للابتكار؟تبالغ معظم الشركات في تقدير "خوارزميات الملكية الخاصة بها والمعرفة المطورة داخليًا".بالتأكيد، قد يؤدي ذلك إلى قطع بعض الوقت، لكنه يمثل حوالي 10٪ فقط من المشكلة.

  3. إذا حصلت على المصدر الكامل لجميع منتجات منافسيك، فما مقدار الاستخدام الفعلي؟أعتقد أن ذلك سيعيدك أشهرًا إلى الوراء.ليس إلى الأمام.خلف.

إذا كان لديك نظام نظيف، وقليل من المعرفة الخارجية/الداخلية، فكم من الوقت ستستغرق للوصول بمنتجك الخاص إلى حالة قابلة للبناء؟كم من الوقت سيستغرق التعمق في الكود ومعرفة ما يحدث؟ كم من الوقت والمال سوف تضيعه في محاولة حل شيء ما، بدلاً من إنفاق الوقت والمال على كيفية صنعه لك المنتج يعمل بشكل أفضل؟

لقد كنت في الواقع في وضع يسمح لي بالحصول على كل المصدر - مليون سطر + من التعليمات البرمجية - لمنتج منافس.لم نفعل شيئًا حيال ذلك - باستثناء القليل من البحث ثم حذفه، وهو ما كان أكثر مما كنت مرتاحًا له - لكنني أتوقع أننا كنا قد استهلكنا أشهرًا من الوقت فقط للوصول إلى حيث كانوا ثم.

لذلك قمنا بقصفها بالقنابل النووية، وصفعنا الشخص الذي حصل عليها (نعم، مطور/رئيس الوزراء الذي جاء من الشركة الأخرى)، وفكرنا في كيفية صنعها ملكنا المنتج يركل كثيرًا لدرجة أنه لا يهم ما فعلوه.استغلال أفضل بكثير للوقت.عملت بشكل جيد أيضا.كان لدينا أدوات تمييز، ولم يقتصر الأمر على إعادة تجزئة نفس الميزات بنفس الطريقة التي قاموا بها بها.

آسف، ولكن هناك لا الطريقة التي يمكنك من خلالها منع الأشخاص من إخراج الأشياء، وتظل قادرًا على العمل فعليًا.يمكنك إيقافهم الرغبة للقيام بذلك، أو القيام بذلك بحيث لا توجد قيمة لامتلاكهم له.

كنا قلقين بشأن قيام الأشخاص بفك تشفير التعليمات البرمجية الخاصة بنا أيضًا.لقد توقفنا عن القلق عندما أدركنا أن لدينا ما يكفي من المشاكل في حل ما يحدث داخل أكثر من 500 ألف سطر من تعليمات C# وC++ وHTML البرمجية التي تتحدث إلى MAPI/Exchange.إذا كان بإمكان شخص ما فك ترجمته والعمل عليه، فنحن نريد توظيفه......

راجع للشغل، من أجل الوضوح، وبالنظر إلى من أعمل الآن، يجب أن أشير إلى هذا لا صاحب العمل الحالي.كان هذا منذ فترة طويلة.

لا يتسرب الكود من نفسه.يستغرق الناس لاتخاذ ذلك.من الواضح أن هناك بعض الإجراءات الأمنية التي قد تستخدمها مثل تحليل حركة المرور وإغلاق المستودعات بحيث لا يتمكن سوى المطورين المعتمدين من الاتصال بها.

ولكن في نهاية اليوم، فإن أفضل خيار لديك هو التأكد من عدم رغبة أي شخص في السرقة منك.يجب أن يكون فريقك سعيدًا، وعليهم أن يكونوا فخورين بالعمل من أجلك، ويجب أن يكونوا مخلصين للشركة ولبعضهم البعض.إذا كان لديك مثل هذا الفريق، فالمسألة بسيطة هي أن تشرح للجميع أن الكود يجب أن يكون محميًا من الغرباء.لن يوقف الشامة المخصصة ولكنه سيمنع وقوع الحوادث.

ملاحظة.ونعم، لن تضر البنود المناسبة في العقود أيضًا، على الأقل ستتأكد من أن المطورين يدركون أن أخذ التعليمات البرمجية من الخارج أمر خاطئ من الناحية الأخلاقية.

اتبع هذه الإرشادات ولا يهم إذا تم نشر محتويات مستودع التعليمات البرمجية المصدر بالكامل عبر نظام Stackoverflow:

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

أوه، وأظهر للمطورين أنك لا تثق بهم عن طريق حظر الوصول إلى أجزاء من التعليمات البرمجية المصدر، ومسح البريد الإلكتروني الصادر/الوارد وما إلى ذلك.هذه طريقة مؤكدة لجعلهم يريدون البقاء في الجوار......لا شيء يحسن الروح المعنوية مثل القليل من عدم الثقة في مكان العمل.

هناك طريقة رائعة أخرى وهي إخبار أحد النصفين بأنهم "الفريق أ" وتسمية النصف الآخر باسم "الفريق ب" غير الجدير بالثقة.ثم اعكس الأمر وقل نفس الشيء لأعضاء "الفريق ب".شجعهم على مراقبة "الأشرار" في الفريق الآخر وإبلاغك بأي علامات تدل على عدم الولاء.رش القليل من "محفزات الصراع" (على سبيل المثال.أخبر "جو":'هل تعرف ما يقوله إد عنك خلف ظهرك؟') إلخ.سيكون الأمر رائعًا إذا قمت بإعداد المطورين ضد بعضهم البعض وإنشاء بعض الصراعات [التي اخترعتها أنت] هنا وهناك ...

(إيه، ولا، أنا لا أوصي في الواقع بأي مما سبق.أنا فقط أمزح.لكنني رأيت الناس يستخدمون جميع الأساليب المذكورة أعلاه.ولم ينجح.)

حسنًا، سأكون عمليًا بعض الشيء هنا.

  • أن تكون لطيفًا مع الجميع وتأمل أنهم لن يؤذوك لا يجدي نفعًا.

يعرف كل مبرمج منذ اليوم الذي انضم فيه إلى الشركة أنه لن يبقى هناك إلى الأبد.سوف يتغير عندما يتعلم ما يكفي ليحصل على فرصة أفضل.

يعتقد المبرمجون الذين يكتبون الكود أن لديهم ملكية له حتى لو كتبوه في الوقت الذي قاموا فيه بتأجيره لشخص آخر.سيحاول الكثير منهم عادةً وضع أيديهم على الكود المصدري حتى لو لم يكونوا ينوون إيذاء أي شخص.

بمجرد أن يغادروا الشركة ويحملوا كود المصدر معهم ويفقدوا الاتصال بزملائهم، يستقر الضمير ويذهبون في إجازة وبعد فترة تبدأ أجزاء وأجزاء من الكود في الظهور في كل مكان.

هذا ما أعرفه يحدث لأنني شاهدته يحدث لشركتي.

ذلك ما يمكن للمرء القيام به؟

  • قم بالتوقيع على اتفاقية عدم الإفشاء التي تذكر على وجه التحديد أن المبرمج لن يأخذ نسخًا.
  • قم بتوزيع منتجك بين المبرمجين، وإذا أمكن، احصل على وحدات مشفرة بشكل فردي ومتكاملة بواسطة رئيس تكون مسؤوليته أن جميع المبرمجين لا يحصلون على جميع التعليمات البرمجية.
  • في وقت الإنهاء، احصل على تعهد كتابي من المبرمجين بأنهم لا يمتلكون أي ملكية فكرية للشركة وأنهم يفهمون عقوبات المخالفة.
  • إذا انتهك شخص ما الملكية الفكرية الخاصة بك، قم بمقاضاة الرجل!لا استثناءات.سيكون بمثابة مثال للفريق الحالي.

هل أبدو متطرفًا؟

أتذكر أن هذا حدث لشركة Valve عندما كانوا يطورون HL-2.رابط مثير للاهتمام هنا: http://www.shacknews.com/onearticle.x/28619

لقد عملت في مكان حيث توجد ثقافة حقيقية للسرية حول هذا النوع من الأشياء (تاريخيًا كان هناك عدة مرات عندما كانت الشركة صغيرة حيث أساء "العملاء"، كما نقول، إمكانية وصولهم إلى منتجنا).

بينما كانت الإدارة في القمة شديدة الحماية، إلا أنني أرى الأمر بشكل مختلف قليلاً.أعتقد أن الكود الخاص بنا، على الرغم من أنه ليس غير ذي صلة تمامًا، ليس أساسيًا كما تتوقع أن يكون في شركة برمجيات.

سبب نجاحنا هو:

1) الكود هو في الأساس الحل لمجموعة من المشاكل.إذا حصلت على الكود الخاص بنا، فستحصل على تلك الحلول ولكن لا يزال لدينا الأشخاص الأذكياء الذين قاموا بحل هذه المشكلات.إنهم يفهمون هذه المشكلات بشكل أفضل منك، ويكونون أكثر قدرة على حل المجموعة التالية من المشكلات بشكل أفضل منك.

2) لأنهم يفهمون حقًا المشكلات (والحلول)، يمكننا القيام بالأشياء بشكل أسرع من منافسينا وهو ما يترجم إلى أرخص (أو أكثر ربحية).

3) أيضًا بسبب هؤلاء الأشخاص والموقف داخل الشركة، قدمنا ​​خدمات جيدة لعملائنا وقدمنا ​​دعمًا جيدًا.

4) وبسبب ذلك لدينا سمعة جيدة وعملاء مرجعيين.

هناك عدد قليل من الشركات لديها تعليمات برمجية تستحق حقًا الحفاظ على سريتها - خوارزميات الملكية وهذا النوع من الأشياء - ولكن بالنسبة للغالبية العظمى منا، يمكن تكرار منتجاتنا بسهولة بواسطة الأشخاص الأذكياء.

ما أقوله هو القيام بالأساسيات - كتابة ذلك في عقود الأشخاص التي لا يمكنهم أخذها، والحفاظ عليها آمنة وما إلى ذلك - ولكن لا تستحوذ عليهم.ما لم تكن في سوق محدد للغاية، فمن غير المرجح أن يكون هذا هو ما سيجعل عملك ينجح أو يفشل.

أفضل خطوة تبدأ من إعادة توجيه الرجال ذوي السلوك الأخلاقي القوي.يمكن اتخاذ خطوات أخرى مختلفة مثل فحص جميع الاتصالات.هناك أماكن يتم فيها فحص البريد الإلكتروني وجميع المعلومات الصادرة.لا يحتوي سطح المكتب/الكمبيوتر المحمول على قرص ثابت أو أن الوصول إليه مقيد وجميع الأعمال تتم على مجلدات الشبكة، حتى عند العمل من المنزل، يجب على المرء الاتصال بالإنترنت.تتم مزامنة العمل دون اتصال بالإنترنت.تم فصل USB ومحركات الأقراص.

السياسات الأخرى هي توفير الوصول فقط على أساس الحاجة.لن تؤدي هذه الأمور إلا إلى التباطؤ والعرقلة إلى حد ما، ولكن إذا كان الشخص مصممًا جدًا، فسوف يجد طرقًا للالتفاف حول هذا الأمر.والطريقة الأخرى هي أنه إذا كان الكود مهمًا جدًا حقًا، فاحرص على حماية فكرة حقوق الطبع والنشر بشكل قانوني.

لنكون صادقين، يكاد يكون من المستحيل.إذا أردت أن أقترح ما ستفعله الشركة التي ستظهر قريبًا على Daily WTF:

  1. افصل "كمبيوتر العمل" عن الإنترنت، لأنهم بحاجة إلى الوصول إلى الإنترنت كمرجع، قم بشراء كتاب wbbook للجميع.

  2. قم بملء فتحات USB الخاصة بالمطورين بالإيبوكسي واطلب منهم تحميل/تفريغ كل شيء من خادم مركزي، والذي يقوم بمسح جميع البيانات التي تمر عبره بحثًا عن تعليمات برمجية مثل بناء الجملة.

أو يمكنك فقط أن تثق بموظفيك وتجعلهم يوقعون على اتفاقية عدم الإفشاء...

أنا شخصياً لم أختبر أبدًا أي حالة حقيقية، لكنني أقترح استخدام تجزئة التعليمات البرمجية:

في الأساس، تقوم بتقسيم مشروعك إلى عدد من المكتبات، وتحديد الواجهات واختبارات الوحدات لكل منها، ثم تقوم بفصل مستودعات SVN بحيث تتمكن كل مجموعة من الوصول إلى جزء محدود من كود المصدر الثمين الخاص بك.

تعد هذه أيضًا ممارسة جيدة بغض النظر عن الأمر ويجب أن تساعدك إذا كنت تقوم بالاستعانة بمصادر خارجية في الخارج.

يبدو أن الإجابات السابقة كلها تركز على بناء الثقة وتوظيف الأشخاص الأخلاقيين.

قد يكون الاحتمال الآخر هو إنشاء لغة وأدوات خاصة بالمجال الخاص بك.سيؤدي ذلك إلى صعوبة استخدام أي كود مسرب.ربما لا يزال من الممكن سرقة أفكار مفيدة منه، ولكن لن يكون من الممكن ببساطة تجميع منتج منافس ما لم يتم تسريب سلسلة الأدوات بأكملها.

ثق بمطوريك.يميل الناس إلى الارتقاء أو الانخفاض إلى مستوى التوقعات.عاملهم جيدًا، وتذكر أن الولاء يسير في كلا الاتجاهين.ففي نهاية المطاف، إذا لم تتمكن من إيقاف محركات الأقراص المصغرة، فلن تتمكن من منع أي شخص من تسريب التعليمات البرمجية، بغض النظر عن مدى عدم ثقتك بهم.

ومع ذلك، ابحث عن محامٍ يتمتع بخبرة في الأسرار التجارية، وربما خبرة في أجزاء أخرى من قانون الملكية الفكرية، واسأل عن كيفية حماية الأشياء بشكل قانوني.أنت تريد التأكد من أنه إذا حصل أحد المنافسين على أغراضك، فليس من القانوني أن يستفيد منها المنافس.

تعتمد معظم الإجابات على القيم الأخلاقية والأخلاقية.أتساءل عما إذا كان Google و Facebook وما إلى ذلك.يعتمدون فقط على حسن نية موظفيهم.أعطني استراحة، وهذا هو طوباوي تماما.لا تكن أحمق.كن واقعيا.

نعم، من الممكن منع تسرب التعليمات البرمجية:

باستخدام خادم افتراضي يستضيف الأجهزة الافتراضية، لا يمكن للمبرمجين الوصول محليًا إلى هذه الأجهزة الافتراضية (الإنترانت) إلا عبر سطح المكتب البعيد.تتم إدارة المستودع محليًا.المفاتيح الخاصة مطلوبة للوصول إلى المستودع. تم تعطيل النسخ/اللصق من الجهاز الظاهري إلى العميل.يُسمح فقط بالنسخ/اللصق من العميل إلى الظاهري.

شركات مثل الفيسبوك تفعل ذلك.

الطريقة الوحيدة لمواصلة البرمجة هي التقاط الصور للرمز الفعلي، وهو أمر غير عملي على الإطلاق وغير ممكن على الإطلاق، ونظرًا لوجود كاميرات مراقبة في كل مكان، سيتعين عليك الذهاب إلى الحمام لالتقاط تلك الصور.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top