2014-04-30 3 views
2

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

Таким образом, любой, у кого есть только одно разрешение на сборку проекта, может получить исходный код всех командных проектов, создав определение сборки и задав «Source Setting» для root TeamProjectCollection, а затем в сообщении MSBuild post, XCopy ', чтобы переместить исходный код на любой удаленный сервер.

+0

+1 Интересно, я хотел бы услышать ответы на это. – codenheim

ответ

0

Сервер сборки связан с базовым проектом команды. Решение нескольких проектов использовать один и тот же сервер сборки - это решение реализации, которое не является неотъемлемым недостатком безопасности, если важна сегрегация безопасности, важно использовать несколько серверов сборки с разными учетными записями. Подробную информацию о настройке Team Team см. В http://msdn.microsoft.com/en-us/library/ms253062(v=vs.90).aspx

+0

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

+0

Не обходной путь, модель безопасности является детальной, поскольку она должна быть администратором tfs, чтобы правильно настроить систему, чтобы отразить проблемы безопасности организации. Аналогия будет иметь несколько дверей и решит поставить тот же замок на всех дверях. Не является неотъемлемым недостатком безопасности, но является решением, принятым лицом, настраивающим tfs. И если вы обеспокоены тем, что разработчики крадут код, у вас больше проблем, которые не будут исправлены ПО. –

+0

Сервер сборки не связан на основе командного проекта. Он связан на основе сбора. Таким образом, при базовой настройке службы построения каждый разработчик может запускать код в unittest, выполненном на том сервере сборки, используя разрешения учетной записи сборки. Учетная запись сборки по умолчанию имеет доступ ко всей коллекции. Поэтому каждый разработчик может получить источник всех проектов во всей коллекции. И многое другое! Я написал много серверных плагинов, чтобы принудительно назначить единую службу сборки для одного командного проекта. – Scordo

0

Это по дизайну. И это плохо :(

Из документов в Microsoft, они говорят вам, что разработчик рассматривается в качестве доверенного лица Это их обоснование:..

Installing Team Foundation Build Service increases the attack surface of the computer. Because developers are treated as trusted entities in the build system, a malicious user could, for example, construct a build definition to run arbitrary code that is designed to take control of the server and steal data from Team Foundation Server. Customers are encouraged to follow security best practices as well as deploy defense in-depth measures to ensure that their build environment is secure. This includes developer workstations. For more information regarding security best practices, see the TechNet Article Security Guidance. 

Вот original article

Так при использовании сервера сборки вы всегда подвергаетесь риску! Как я упоминал в комментарии. Я написал много плагинов на стороне сервера и т. д., чтобы защитить среду tfs крупной компании. tfs build environment.

0

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

+0

Это не помогает, пока unittest запускается внутри сборки. – Scordo

+0

Это делается, если вы обращаетесь к каждой сборке на соответствующий сервер. –

+0

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

Смежные вопросы