Вопросы Daria Khokhlova
6 881

Как Google, Facebook и Rambler удаётся предотвратить утечки исходного кода

Пользователи сервиса вопросов и ответов Quora обсудили, как крупным технологическим компаниям удаётся избегать утечек исходного кода, когда доступ к нему имеет большое число сотрудников. ЦП проследил за ходом дискуссии и поинтересовался мнением представителей Rambler.

Дональд Пинкус, участник YCombinator School 2014, бывший сотрудник Facebook, объясняет: ничто (на аппаратном и программном уровне) не мешает любому из сотрудников Facebook скопировать и распространить исходный код социальной сети. Но за этим может последовать серьёзное административное наказание, которое, несомненно, навредит карьере правонарушителя.

Кроме того, сами по себе части кода не так уж и ценны — просто запустив отдельный его фрагмент, нельзя создать «новый Facebook». Лишь ограниченное число инженеров Facebook имеют доступ ко всем исходникам социальной сети. В то же время любой из сотрудников Facebook может просматривать код только на рабочем компьютере.

Другой пользователь Quora, программист Уэйн Харпер, считает, что в больших компаниях вообще не должно быть строгих ограничений на использование отдельных частей кода. В большинстве своём такие части бесполезны — на их основе не выстроить готовый продукт, а наличие жестких запретов только деморализует сотрудников и мешает привлечь к работе талантливых разработчиков.

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

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

Ценность Facebook, говорит Гайсен, не в исходном коде — проще написать всё заново, чем пытаться проанализировать и частично скопировать алгоритмы, использующиеся в социальной сети. Ценность Facebook в заложенной в нём идее — и чтобы «приобщиться» к его успеху, нужно действовать под брендом Facebook, а не просто применять кусочки кода.

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

Редакция ЦП попросила представителей Rambler рассказать, как в их компании исходный код защищают от утечек.

Дмитрий Малов,исполнительный директор Rambler&Co

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

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

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

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

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

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

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

#quora #обсуждение #как_избежать_утечек_кода #как_google_rambler_и_facebook_избегают_утечек_кода

Статьи по теме
Утечка информации из компании: польза или вред
Как бороться с утечкой информации в компании
{ "author_name": "Daria Khokhlova", "author_type": "editor", "tags": ["\u043e\u0431\u0441\u0443\u0436\u0434\u0435\u043d\u0438\u0435","\u043a\u0430\u043a_\u0438\u0437\u0431\u0435\u0436\u0430\u0442\u044c_\u0443\u0442\u0435\u0447\u0435\u043a_\u043a\u043e\u0434\u0430","\u043a\u0430\u043a_google_rambler_\u0438_facebook_\u0438\u0437\u0431\u0435\u0433\u0430\u044e\u0442_\u0443\u0442\u0435\u0447\u0435\u043a_\u043a\u043e\u0434\u0430","quora"], "comments": 12, "likes": 15, "favorites": 1, "is_advertisement": false, "subsite_label": "ask", "id": 5822, "is_wide": true, "is_ugc": false, "date": "Tue, 25 Nov 2014 16:34:16 +0300" }
{ "id": 5822, "author_id": 5723, "diff_limit": 1000, "urls": {"diff":"\/comments\/5822\/get","add":"\/comments\/5822\/add","edit":"\/comments\/edit","remove":"\/admin\/comments\/remove","pin":"\/admin\/comments\/pin","get4edit":"\/comments\/get4edit","complain":"\/comments\/complain","load_more":"\/comments\/loading\/5822"}, "attach_limit": 2, "max_comment_text_length": 5000, "subsite_id": 199125 }

12 комментариев 12 комм.

Популярные

По порядку

Написать комментарий...
13

Facebook, Google.... Rambler? LOL!

Ответить
5

сеть автозаправок, сеть супермаркетов, пивной ларек )))

Ответить
–2

Ммм?

Ответить
0

Самолайк, зачем?)

Ответить
1

Карма, не могу других хейтить.

Ответить
2

Вопрос не в тему... Где вы находите такие картинки?

Ответить
–1

Присылают на почту.

Ответить
1

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

Ответить
2

А нехрен было разработчиков кидать. У Навитела кстати галимый говнокод изночально был.

Ответить
0

Google, facebook и .. эмм... rambler? Эта полудохлая поисковая система? Мне кажется, не самый удачный пример.

Ответить
1

они надежно защищают репу с "общей шиной"

Ответить
1

Почему нет? У Рамблера вполне есть код, почему они не могут сказать как они его защищают?

Ответить

Комментарий удален

Комментарий удален

Комментарий удален

Комментарий удален

0

Прямой эфир

[ { "id": 1, "label": "100%×150_Branding_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox_method": "createAdaptive", "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfl" } } }, { "id": 2, "label": "1200х400", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfn" } } }, { "id": 3, "label": "240х200 _ТГБ_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fizc" } } }, { "id": 4, "label": "240х200_mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "flbq" } } }, { "id": 5, "label": "300x500_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfk" } } }, { "id": 6, "label": "1180х250_Interpool_баннер над комментариями_Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "bugf", "p2": "ffyh" } } }, { "id": 7, "label": "Article Footer 100%_desktop_mobile", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjxb" } } }, { "id": 8, "label": "Fullscreen Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjoh" } } }, { "id": 9, "label": "Fullscreen Mobile", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjog" } } }, { "id": 10, "disable": true, "label": "Native Partner Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyb" } } }, { "id": 11, "disable": true, "label": "Native Partner Mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyc" } } }, { "id": 12, "label": "Кнопка в шапке", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "p1": "bscsh", "p2": "fdhx" } } }, { "id": 13, "label": "DM InPage Video PartnerCode", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox_method": "createAdaptive", "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "bugf", "p2": "flvn" } } }, { "id": 14, "label": "Yandex context video banner", "provider": "yandex", "yandex": { "block_id": "VI-223676-0", "render_to": "inpage_VI-223676-0-1104503429", "adfox_url": "//ads.adfox.ru/228129/getCode?pp=h&ps=bugf&p2=fpjw&puid1=&puid2=&puid3=&puid4=&puid8=&puid9=&puid10=&puid21=&puid22=&puid31=&puid32=&puid33=&fmt=1&dl={REFERER}&pr=" } }, { "id": 15, "label": "Плашка на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byudx", "p2": "ftjf" } } }, { "id": 16, "label": "Кнопка в шапке мобайл", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byzqf", "p2": "ftwx" } } }, { "id": 17, "label": "Stratum Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fzvb" } } }, { "id": 18, "label": "Stratum Mobile", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fzvc" } } }, { "id": 19, "label": "Тизер на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "p1": "cbltd", "p2": "gazs" } } } ]
Хакеры смогли обойти двухфакторную
авторизацию с помощью уговоров
Подписаться на push-уведомления