Вопрос

Помимо открытия исходного кода вашего проекта и законодательства, есть ли способы предотвратить или хотя бы минимизировать ущерб от утечки кода за пределы вашей компании/группы?

Мы, очевидно, не можем заблокировать доступ в Интернет (чтобы предотвратить отправку кода по электронной почте), потому что программистам нужны их рекомендации.Мы также не можем блокировать периферийные устройства (USB, Firewire и т. д.).

Код имеет наибольшее значение, когда он имеет некоторые собственные алгоритмы и собственные знания (в отличие от обычного рутинного кода для рисования графических интерфейсов, подключения к базам данных и т. д.), но некоторые приложения (например, бухгалтерское программное обеспечение и CRM) представляют собой именно это:сложные коллекции рутинного кода, которые в принципе легко разработать, но на написание которых с нуля потребуются годы.Вот тут-то конкурентам и пригодится утекший код.

Насколько я понимаю, предотвращение утечек почти полностью зависит от человеческого фактора.Что вы думаете?Какие меры предосторожности и меры вы принимаете?А утечка кода затрагивала вас раньше?

Это было полезно?

Решение

Вы не можете остановить его выход.Итак, два решения: остановить людей, желающих причинить вам вред, и принять юридические меры предосторожности.Чтобы люди не ненавидели вас, относитесь к ним правильно (сказать больше, вероятно, не по теме из-за переполнения стека).

Я не юрист, но чтобы обеспечить себе юридическую защиту, если вы в это верите, запатентуйте идеи, поместите уведомление об авторских правах в код и убедитесь, что в контрактах для ваших программистов тщательно указаны права интеллектуальной собственности.

Но в конце концов ответ дается быстрее, чем конкуренты.

Другие советы

Если вы не работаете с чем-то строго секретным и, учитывая, что вы не можете заблокировать электронную почту и USB-устройства, я думаю, вы не так уж и велики, даже если исходный код утечет.Дело в том, чего стоит код или его части без знания того, как он работает, и организации вокруг него.

В целом ценность «источника» намного меньше, чем обычно преподносится, по сути, источник без людей или организации не стоит того места, которое он занимает для конкурента.

Кроме того, вы упускаете наиболее вероятный вектор атаки, и именно его вы не сможете остановить ни при каких обстоятельствах.Если кто-то действительно хочет знать, как вы сотворили свое волшебство, тогда он попытается нанять ваших разработчиков, и поскольку вы не можете помешать им хранить информацию в их черепе, и даже если они отдадут все свое имущество своим знаниям и доменам. экспертиза уходит вместе с ними.По сути, единственным способом является удержание и доверие сотрудников.Извини.

Я не знаю, насколько это будет реальной помощью, но:

  1. Не бесите своих программистов.Не ставьте их в такое положение, когда они хотеть передать исходник конкуренту.Большинство мест недооценивают своих разработчиков.Учитывая, где вы находитесь (ТАК), я думаю, у вас меньше шансов.Ничто не задевало меня больше, чем видеть, как продавцы играют в гольф (оплачивается и оплачивается компанией), в то время как нам приходится бороться за пиццу раз в месяц.

  2. Действительно, если ваш код достался вашим прямым конкурентам сегодня, что бы это сделало?Ваш продукт или вертикальный рынок настолько застойны, что вы не выпускаете новые, лучшие версии, прежде чем они успеют отреагировать?Неужели нет места инновациям?Большинство компаний переоценивают свои «собственные алгоритмы и собственные знания».Конечно, это может сократить время, но это только около 10% проблемы.

  3. Если бы у вас были все исходные коды для всех продуктов ваших конкурентов, насколько бы это было реально полезно?Я предполагаю, что это отбросит вас на несколько месяцев назад.Не вперед.Назад.

Если бы у вас была чистая система и мало внешних/внутренних знаний, сколько времени вам потребовалось бы, чтобы привести свой собственный продукт в работоспособное состояние?Сколько времени потребуется, чтобы углубиться в код и понять, что происходит? Сколько времени и денег вы бы потратили, пытаясь что-то придумать, вместо того, чтобы тратить время и деньги на то, как это сделать? твой продукт работает лучше?

На самом деле у меня был весь исходный код — более 1 миллиона строк кода — продукта конкурента.Мы ничего с этим не сделали - разве что немного поковырялись, а затем удалили его, что было больше, чем мне было удобно - но я ожидал, что мы потратим месяцы времени, чтобы добраться до того места, где они были. затем.

Итак, мы взорвали его, ударили id10t, который его получил (да, разработчика/PM, пришедшего из другой компании), и подумали о том, как сделать наш продукт настолько надрал задницу, что не имело значения, что они делают.Гораздо более эффективное использование времени.Тоже хорошо работал.У нас были дифференциаторы, а не просто повторение одних и тех же функций таким же образом, как они их делали.

Извините, но есть нет Таким образом, вы можете помешать людям распространять вещи и при этом иметь возможность работать.Ты можешь остановить их желая сделать это или сделать так, чтобы для них это не имело никакой ценности.

Мы также беспокоились о том, что люди декомпилируют наш код.Мы перестали волноваться, когда поняли, что у НАС достаточно проблем с пониманием того, что происходит внутри более чем 500 тысяч строк кода C#, C++ и HTML, взаимодействующих с MAPI/Exchange.Если кто-то сможет его декомпилировать и разобраться, мы хотим его нанять…

Кстати, для ясности и с учетом того, на кого я сейчас работаю, я должен отметить, что это нет мой нынешний работодатель.Это было довольно давно.

Код не вытекает сам по себе.Чтобы это принять, нужны люди.Очевидно, что вы можете использовать некоторые меры безопасности, такие как анализ трафика и блокировка репозиториев, чтобы к ним могли подключиться только авторизованные разработчики.

Но в конечном итоге лучший вариант — убедиться, что никто не ХОЧЕТ у вас воровать.Ваша команда должна быть счастлива, они должны гордиться тем, что работают на вас, они должны быть лояльны к компании и друг другу.Если у вас есть такая команда, то просто объяснить всем, что код нужно защищать от посторонних.Это не остановит выделенного крота, но предотвратит несчастные случаи.

P.S.И да, правильные пункты в контрактах тоже не повредят, по крайней мере, они будут уверены, что разработчики ОСОЗНАЮТ, что выносить код наружу морально неправильно.

Следуйте этим рекомендациям, и не имеет значения, размещено ли содержимое всего вашего репозитория исходного кода по всему stackoverflow:

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

Да, и покажите своим разработчикам, что вы им не доверяете, заблокировав доступ к частям исходного кода, сканируя исходящую/входящую электронную почту и т. д.Это верный способ заставить их захотеть остаться......ничто не улучшает моральный дух так, как небольшое недоверие на рабочем месте.

Еще один крутой способ — сказать одной половине, что они «команда А», а другую половину назвать ненадежной «командой Б».Затем переверните все наоборот и скажите то же самое членам «команды Б».Поощряйте их следить за «плохими парнями» в другой команде и сообщать вам о любых признаках нелояльности.Добавьте несколько «провоцаторов конфликтов» (например,скажи «Джо»:'ты знаешь, что Эд говорит о тебе за твоей спиной?') и т. д.Творит чудеса, если настроить разработчиков друг против друга и создать тут и там несколько [придуманных вами] конфликтов...

(Да, и нет, на самом деле я не рекомендую ничего из вышеперечисленного.Просто шучу.Но я видел, как люди использовали все вышеперечисленные тактики.И это не сработало.)

Хорошо, я собираюсь быть здесь немного практичным.

  • Быть добрым со всеми и надеяться, что они не причинят тебе вреда, не работает.

Каждый программист с того дня, как он пришел в компанию, знает, что он не останется там навсегда.Он изменится, когда научится достаточно, чтобы получить лучшую возможность.

Программисты, пишущие код, считают, что они владеют им, даже если они написали его в то время, когда сдали его в аренду кому-то другому.Многие из них обычно пытаются заполучить исходный код, даже если они не собираются никому причинять вред.

Как только они покидают компанию, уносят с собой исходный код и теряют связь с коллегами, совесть успокаивается, они уходят в отпуск, и через некоторое время кусочки кода начинают проявляться повсюду.

Я ЗНАЮ, что это происходит, потому что я был свидетелем того, как это произошло с моей компанией.

Так что же делать?

  • Подпишите соглашение о неразглашении, в котором конкретно упоминается, что программист не будет делать копии.
  • Распределите свой продукт между программистами и, если возможно, получите модули, написанные индивидуально и интегрированные руководителем, чья обязанность заключается в том, чтобы все программисты не получили весь код.
  • При расторжении получите письменное подтверждение от кодировщиков о том, что они не владеют IP компании и понимают ответственность за нарушение.
  • Если кто-то нарушит ваш IP, подайте на него в суд!Без исключений.Это послужит примером для нынешней команды.

Я кажусь экстремальным?

Я помню, как это случилось с Valve, когда они разрабатывали HL-2.Интересная ссылка здесь: http://www.shacknews.com/onearticle.x/28619

Я работал где-то, где существовала настоящая культура секретности в отношении подобных вещей (исторически было несколько раз, когда компания была маленькой, когда «клиенты», скажем так, злоупотребляли своим доступом к нашему продукту).

Хотя руководство наверху очень защищало, я вижу это несколько иначе.Я думаю, что наш код, хотя и не совсем неактуален, не так важен, как можно было бы ожидать от компании-разработчика программного обеспечения.

Причина нашего успеха в том, что:

1) Код по сути является решением кучи проблем.Если вы получите наш код, вы получите эти решения, но у нас все еще есть умные люди, которые решили эти проблемы.Они понимают эти проблемы лучше, чем вы, и способны лучше вас решить следующий набор проблем.

2) Поскольку они действительно понимают проблемы (и решения), мы можем делать все быстрее, чем наши конкуренты, что приводит к более дешевым (или более прибыльным) результатам.

3) Также благодаря этим людям и отношению внутри компании мы обеспечиваем хорошие услуги нашим клиентам и хорошую поддержку.

4) И благодаря этому у нас хорошая репутация и надежные клиенты.

У небольшого числа компаний есть код, который действительно стоит хранить в секрете — собственные алгоритмы и тому подобное — но для подавляющего большинства из нас наши продукты очень легко воспроизводятся умными людьми.

Я говорю о том, что нужно делать основы — прописывать в контрактах с людьми, что они не могут это взять, обеспечивать безопасность и так далее — но не зацикливаться на этом.Если только вы не работаете на очень специфическом рынке, вряд ли именно это действительно приведет ваш бизнес к успеху или провалу.

Лучший шаг — перерутовать парней с сильными этическим поведением.Могут быть предприняты различные другие шаги, как и все сканируемые сообщения.Есть места, где сканируется электронная почта и вся выходящая информация.На настольном компьютере/ноутбуке нет жесткого диска или доступ ограничен, и вся работа ведется с сетевыми папками, даже при работе дома необходимо подключение к Интернету.Офлайн-работа синхронизируется.USB и диски отключены.

Другая политика заключается в предоставлении доступа только при необходимости.Это лишь в некоторой степени замедлит и помешает, но если человек очень решителен, он найдет способы обойти это.Другой способ: если код действительно очень важен, защитить идею от копирования на законных основаниях.

Честно говоря, это практически невозможно.Если бы я хотел предложить, что бы сделала компания, которая вскоре появится в Daily WTF:

  1. Отключите «рабочий компьютер» от Интернета, потому что им нужен доступ в Интернет для справки, купите всем книгу.

  2. Заполните USB-слоты разработчиков эпоксидной смолой и потребуйте, чтобы они загружали/выгружали все с централизованного сервера, который сканирует все данные, проходящие через него, на предмет кода, такого как синтаксис.

Или вы можете просто довериться своим сотрудникам и заставить их подписать соглашение о неразглашении...

Лично я никогда не тестировал ни одного реального случая, но я бы предложил использовать фрагментацию кода:

по сути, вы разделяете свой проект на несколько библиотек, определяете интерфейсы и модульные тесты для каждой из них, затем разделяете репозитории SVN, чтобы каждая группа имела доступ к ограниченной части вашего драгоценного исходного кода.

Это также хорошая практика, несмотря ни на что, и она должна помочь, если вы используете аутсорсинг за границей.

Все предыдущие ответы, похоже, сосредоточены на построении доверия и найме этичных людей.

Другой возможностью может быть создание собственного языка и инструментов для конкретной предметной области.Это затруднит использование любого просочившегося кода.Возможно, еще можно украсть у него полезные идеи, но просто скомпилировать конкурирующий продукт будет невозможно, если не будет раскрыта вся цепочка инструментов.

Доверяйте своим разработчикам.Люди склонны оправдывать или оправдывать ожидания.Относитесь к ним хорошо и помните, что лояльность действует в обе стороны.В конце концов, если вы не можете отрезать флэш-накопители, вы не сможете остановить утечку кода, независимо от того, насколько вы им не доверяете.

При этом найдите себе юриста с опытом коммерческой тайны, возможно, с опытом работы в других областях права интеллектуальной собственности, и спросите, как юридически защитить материал.Вы действительно хотите быть уверены, что, если конкурент получит ваши вещи, то для него незаконно получить от этого выгоду.

Большинство ответов основано на моральных и этических ценностях.Интересно, Google, Facebook и т. д.просто положитесь на добрую волю своих сотрудников.Дай мне передохнуть, это полная утопия.Не будь дураком.Быть реалистичным.

ДА, можно предотвратить утечку кода:

Используя виртуальный сервер, на котором размещены виртуальные машины, программисты могут получить доступ к этим виртуальным машинам только локально (интрасеть) через удаленный рабочий стол.Репозиторий управляется локально.Для доступа к хранилищу необходимы закрытые ключи. Копирование/вставка с виртуальной машины на клиент отключено.разрешено только копирование/вставка из клиента в виртуальный.

Такие компании, как Facebook, делают это.

Единственный способ запечатлеть код — это сфотографировать сам код, что совершенно непрактично и вообще не осуществимо, а поскольку камеры наблюдения повсюду, вам придется пойти в ванную, чтобы сделать эти снимки.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top