В моей компании мы очень бережно относимся к своему исходному коду. Мы удовлетворили нашу паранойю, настроив локальную сеть для разработки, которая изолирована от Интернета и остальных сетей нашей компании. В сети разработки у нас есть несколько защищенных машин (сервер управления версиями, сервер сборки, контроллер домена), и все источники должны храниться в зашифрованном виде или в закрытом помещении. Возможность объяснить такую простую политику безопасности нашим клиентам была для нас конкурентным преимуществом, но по мере роста нашей компании затраты на содержание этой сети также увеличивались. Чтобы справиться с проблемами в прошлом году, мы отошли от нашей строгой политики воздушного зазора, разрешив доступ к сети через VPN с двухфакторной аутентификацией только по протоколу RDP.
Однако отсутствие связи между нашей сетью разработки и остальной частью нашей корпоративной сети продолжает оставаться серьезным препятствием для сотрудничества между командами, работающими внутри сети, и командами, работающими вне сети. Мы хотели бы радикально реформировать нашу сетевую архитектуру, но мы не уверены, какие отраслевые передовые методы защиты исходного кода используются. Мы могли бы рассмотреть следующее:
Будет ли это считаться удовлетворительной политикой безопасности в крупных организациях по разработке программного обеспечения, в которых вы работали? Какие еще практики используют организации, занимающиеся разработкой программного обеспечения, для защиты своих источников? Например, являются ли системы обнаружения вторжений общей частью защиты источника?
В "как мы защищаем наш исходный код?" Вопрос тесно связан с нашим, но нас больше волнует сетевая архитектура, чем политика сотрудников или стратегия резервного копирования.
Что ж, это скорее ответ о философии дизайна, чем о реальной архитектуре, но вы, кажется, имеете хорошее представление о том, чего хотите достичь. Я считаю, что лучше всего не только иметь письменную политику, но и спроектировать систему так, чтобы ее нарушение было трудным (если не невозможным). Например, если только определенным машинам разрешено напрямую подключаться к критическому серверу, тогда окружите критический сервер списками контроля доступа или локальным межсетевым экраном, чтобы разрешить подключения только с этих машин.
Что касается ваших маркеров:
Политика компании часто более эффективна, чем технологическое решение для некоторых из этих вещей. Это не означает, что технологии не могут сыграть роль в обеспечении соблюдения политик.
Предлагаю вам изучить Fortigate от Fortinet. У них есть несколько вещей, которыми вы можете воспользоваться, чтобы помочь вам. У них есть возможность помещать в карантин любые компьютеры, которые не соответствуют вашим политикам, так называемым уровням исправлений, аудио / видео и т. Д. Он также может обеспечивать как защиту приложений, так и предотвращение утечки данных. Поэтому вам просто нужно настроить правило предотвращения утечки данных, чтобы заблокировать все, что напоминает код. Поэтому, если у вашей компании есть стандартный заголовок, который помещается в верхней части файлов, вы можете найти его, заблокировать и сообщить о нем. Если вы добавите FortiClients в этот набор, вы можете заблокировать порты USB на локальном компьютере, а также применить политики межсетевого экрана, аудио / видео, предотвращения утечки данных и предотвращения вторжений на каждом клиенте.
Итак, чтобы поговорить о ваших точках.
Я немного смущен. У вас уже есть VPN-подключение к защищенной сети, что предполагает следующее
Исходный код и все работы по разработке могут продолжаться в защищенной сети и выполняться через RDP, в то время как терминалы находятся во внешней сети, и могут запускать другие инструменты параллельно.