Почему, выполняя сервис, поскольку Локальная Система плоха на окнах?

Я использовал и SVN и TFS. Основным преимуществом использования TFS является своя тесная интеграция с Visual Studio. Отслеживание ошибок, Отслеживание Задачи все войдет в одно место. И отчеты, сгенерированные для этих объектов, помогут держателям доли информировать о состоянии проекта.

6
задан Jeff Sternal 16 November 2009 в 14:32
поделиться

5 ответов

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

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

Некоторые из этих эксплойтов включают:

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

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

  • Атака «Человек посередине» , где злоумышленник фальсифицирует сообщения для вашей программы.

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

12
ответ дан 8 December 2019 в 03:39
поделиться

Учетная запись LocalSystem является эквивалентом корневой учетной записи * nix в Windows. Это даже более привилегированный аккаунт, чем учетная запись администратора. Когда вы работаете как LocalSystem, у вас есть полный доступ ко всем ресурсам на машине.

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

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

Обратите внимание, что учетные записи LocalService и NetworkService имеют привилегию «олицетворять», что является потенциально опасной привилегией - она ​​позволяет службе олицетворять пользователя, который звонит в службу. Если этот пользователь является администратором, то, даже если ваш код работает в службе с низким уровнем привилегий, он может делать все, что делает администратор. Если злоумышленник может использовать переполнение буфера в вашей службе с минимальными привилегиями, они могут подключать API-интерфейсы, которые вы используете для олицетворения вызывающего абонента, и ждать, пока вызывающий абонент с высокими привилегиями не вызовет ваш сервис. Этот метод известен как «Похищение токена», и MSRC опубликовал отличное сообщение в блоге , описывающее проблему (и содержащее ссылки, которые описывают, как снизить многие другие риски, связанные с использованием учетных записей LocalService и NetworkService).

8
ответ дан 8 December 2019 в 03:39
поделиться

Самый простой сценарий - это когда служба позволяет пользователю службы выполнять некоторый код в командной строке. Например, в MS SQL Server есть хранимая процедура, которая позволяет вам запускать команду «командной строки» (т.е. запускать программу).

0
ответ дан 8 December 2019 в 03:39
поделиться

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

0
ответ дан 8 December 2019 в 03:39
поделиться

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

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

8
ответ дан 8 December 2019 в 03:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: