Карточка уязвимости
Характеристики уязвимости
Уровень опасности
Оценка CVSS
Производитель ПО
Наименование ПО
SAP Notes
(927637-10)
Описание
Для аутентификации на узле, на котором запущен экземпляр SAP, требуется пользователь ОС, чьи учетные данные могут быть проверены. Если проверка пользователя/пароля прошла успешно, то система проверяет наличие у этого пользователя прав на запуск файла sapstartsrv.exe (Windows) или прав на запись в файл sapstartsrv (платформы не-Windows). Запрашиваемая операция выполняется при наличии у пользователя соответствующих прав. Таким образом, можно проводить более тонкую настройку доступа к защищенным операциям, устанавливая права доступа к файлам.
В версии 640 patch 337, версии 700 patch 263, версии 701 patch 30, версии 710 patch 139, версии 711 patch 26 и версии 720, для предоставления прав доступа пользователям, используется параметр service/admin_users (список пользователей разделенных пробелами). В Unix-системах, для предоставления прав доступа группам, используется параметр service/admin_groups. В версии 710 patch 139, версии 711 patch 26 и версии 720, для предоставления пользователям прав на использование функций J2EEEnableDbgSession и J2EEDisableDbgSession, необходимых для отладки Java, используется параметр service/java_debug_users.
Если проверка пользователя/пароля закончилась отказом, то система генерирует SOAP-исключение "Invalid Credentials" (неверные ученые данные). Если проверка прошла успешно, но пользователь не обладает достаточными полномочиями, то система генерирует SOAP-исключение "Permission denied" (в доступе отказано).
Sapstartsrv контролирует внутренний перечень защищенных операций (настройки по умолчанию зависят от версии, например: "Start Stop StopService J2EEControlProcess SendSignal OSExecute"). При необходимости, можно изменить настройки при помощи параметра профиля запуска "service/protectedwebmethods". Для ограничения доступа в сети, можно при помощи параметра профиля запуска "service/hostname" назначить IP-адрес или имя узла, к которому будет привязан порт веб-службы (по умолчанию: all (все) / 0.0.0.0). После этого необходимо перезапустить sapstartsrv.
В версии 640 patch 337, версии 700 patch 263, версии 701 patch 30, версии 710 patch 139, версии 711 patch 26 и версии 720 sapstartsrv поддерживает расширенный синтаксис для "service/protectedwebmethods":
[ALL|NONE|DEFAULT] +|-<method1> +|-<method2>... +|-<methodN>
При помощи данного синтаксиса можно выбрать один из трех наборов, доступных по умолчанию (ALL: все методы; NONE: ни одного метода; DEFAULT: критичные методы, выбранные по умолчанию), с возможностью добавления или исключения отдельных методов, например: "DEFAULT +ReadLogFile" или "ALL -GetEnvironment -GetInstanceProperties -GetSystemInstanceList -ParameterValue -GetProcessList". ВНИМАНИЕ: Расширенный синтаксис должен использоваться только для указанных пакетов исправлений. Более ранние версии sapstartsrv интерпретируют подобный набор как обычный перечень методов, поэтому ни один из методов не будет защищен.
В версии 640 patch 337, версии 700 patch 263, версии 701 patch 101, версии 710 patch 208, версии 711 patch 93 и версии 720 patch 42 sapstartsrv поддерживает настройку "SDEFAULT" для "service/protectedwebmethods", а также технологию единого входа (SSO) на основе сертификатов X.509 (см. бюллетень 1439348).
Для Windows не требуется специальной авторизации для проверки пользователя/пароля, поэтому sapstartsrv может проверять любые параметры пользователя. Для записей без доменов пользователей, система ищет подходящую учетную запись во всех доверенных доменах. Если заменить DCOM-интерфейс Windows на платформонезависимый интерфейс веб-службы, SAP MMC SnapIn не сможет выполнить неявную (скрытую) аутентификацию для текущего пользователя. Поэтому при вызове защищенной операции, MMC (в версии 7.00) потребует от вас ввести имя пользователя и пароль.
Некоторые механизмы защиты были представлены для других операционных систем, которые позволяют проверять пароль только для определенных пользователей с правами суперпользователя (root) (например: shadow passwd). Sapstartsrv не может, как правило, проверять пользователей данного типа. Чтобы избежать подобных проблем, можно, например, использовать пользователей NIS. Для многих UNIX-платформ (Linux, Sun, AIX), sapstartsrv поддерживает аутентификацию при помощи PAM (подключаемых модулей аутентификации). При правильной настройке, это может, по крайней мере, позволить вам установить проверку для своих пользователей (другими словами, создать пользователя <sid>adm). К сожалению, на некоторых платформах существуют проблемы с настройкой PAM (см. прилагаемые бюллетени по платформам). Если для аутентификации используется пользователь домена Windows (<Domain>\<User>), то для других, отличных от Windows, платформ для аутентификации используется только пользовательская (user) часть.
Для временного решения проблемы, связанной с данными ограничениями на UNIX-платформах, в sapstarstrv была включена аутентификация при помощи сторонней программы "sapuxuserchk"; доступно в 640 patch 222, 700 patch 149 и 710 patch 89. Если установить подобную программу с битом идентификатора (user ID bit) для пользователя "root" (s-битом), то данные ограничения, накладываемые использованием пользователя <sid>adm, будут сняты. Однако, установка программы или модернизация (апгрейд) и sapcpe не назначают s-бит автоматически. Поэтому, необходимо вручную назначить его в соответствующих каталогах и обеспечить защиту sapuxuserchk от перезаписи, например, программой sapcpe. Для этого, войдите в систему, используя учетную запись суперпользователя (root), и перейдите в каталог экземпляра, который содержит sapstartsrv и sapuxuserchk, например:
/usr/sap/BIN/D53/exe:
-rwxr-xr-x 1 binadm sapsys 28922395 2008-02-29 08:21 sapstartsrv
-rwxr-xr-x 1 binadm sapsys 1509173 2008-02-29 08:21 sapuxuserchk
Выполните следующие команды:
chown root:sapsys sapuxuserchk
chmod u+s,o-rwx sapuxuserchk
Авторизация в итоге должна принять, например, следующий вид:
-rwsr-x--- 1 root sapsys 1509173 2008-02-29 08:21 sapuxuserchk
Внимание: sapuxuserchk содержится только в полных архивах SAPEXE.SAR (также включающих в себя списки копирования sapcpe *.lst), а в архиве исправлений ядра dw.SAR - отсутствует.
Более того, sapstartsrv позволяет устанавливать так называемое "доверенное соединение" (trusted connect) при помощи доменных сокетов UNIX с уже имеющейся защитой доступа (/tmp/.sapstream5<NR>13) или именованных каналов Windows (\\.\pipe\sapcontrol_<NR>). Если используется функция "-prot NI_HTTP" или "- prot PIPE", то sapcontrol может использовать данное соединение. Если удается установить соединение подобным образом, то никакая дополнительная аутентификация не требуется. Это работает, когда вход в систему осуществляется с правами пользователя <sid>adm. Данный механизм является платформозависимым, поэтому не может быть использован для взаимодействия между узлами UNIX и Windows. Более того, для взаимодействия на собственном узле можно использовать только доменные сокеты Unix.
В версии 640 patch 337, версии 700 patch 263, версии 701 patch 30, версии 710 patch 139, версии 711 patch 26 и версии 720, для предоставления прав доступа пользователям, используется параметр service/admin_users (список пользователей разделенных пробелами). В Unix-системах, для предоставления прав доступа группам, используется параметр service/admin_groups. В версии 710 patch 139, версии 711 patch 26 и версии 720, для предоставления пользователям прав на использование функций J2EEEnableDbgSession и J2EEDisableDbgSession, необходимых для отладки Java, используется параметр service/java_debug_users.
Если проверка пользователя/пароля закончилась отказом, то система генерирует SOAP-исключение "Invalid Credentials" (неверные ученые данные). Если проверка прошла успешно, но пользователь не обладает достаточными полномочиями, то система генерирует SOAP-исключение "Permission denied" (в доступе отказано).
Sapstartsrv контролирует внутренний перечень защищенных операций (настройки по умолчанию зависят от версии, например: "Start Stop StopService J2EEControlProcess SendSignal OSExecute"). При необходимости, можно изменить настройки при помощи параметра профиля запуска "service/protectedwebmethods". Для ограничения доступа в сети, можно при помощи параметра профиля запуска "service/hostname" назначить IP-адрес или имя узла, к которому будет привязан порт веб-службы (по умолчанию: all (все) / 0.0.0.0). После этого необходимо перезапустить sapstartsrv.
В версии 640 patch 337, версии 700 patch 263, версии 701 patch 30, версии 710 patch 139, версии 711 patch 26 и версии 720 sapstartsrv поддерживает расширенный синтаксис для "service/protectedwebmethods":
[ALL|NONE|DEFAULT] +|-<method1> +|-<method2>... +|-<methodN>
При помощи данного синтаксиса можно выбрать один из трех наборов, доступных по умолчанию (ALL: все методы; NONE: ни одного метода; DEFAULT: критичные методы, выбранные по умолчанию), с возможностью добавления или исключения отдельных методов, например: "DEFAULT +ReadLogFile" или "ALL -GetEnvironment -GetInstanceProperties -GetSystemInstanceList -ParameterValue -GetProcessList". ВНИМАНИЕ: Расширенный синтаксис должен использоваться только для указанных пакетов исправлений. Более ранние версии sapstartsrv интерпретируют подобный набор как обычный перечень методов, поэтому ни один из методов не будет защищен.
В версии 640 patch 337, версии 700 patch 263, версии 701 patch 101, версии 710 patch 208, версии 711 patch 93 и версии 720 patch 42 sapstartsrv поддерживает настройку "SDEFAULT" для "service/protectedwebmethods", а также технологию единого входа (SSO) на основе сертификатов X.509 (см. бюллетень 1439348).
Для Windows не требуется специальной авторизации для проверки пользователя/пароля, поэтому sapstartsrv может проверять любые параметры пользователя. Для записей без доменов пользователей, система ищет подходящую учетную запись во всех доверенных доменах. Если заменить DCOM-интерфейс Windows на платформонезависимый интерфейс веб-службы, SAP MMC SnapIn не сможет выполнить неявную (скрытую) аутентификацию для текущего пользователя. Поэтому при вызове защищенной операции, MMC (в версии 7.00) потребует от вас ввести имя пользователя и пароль.
Некоторые механизмы защиты были представлены для других операционных систем, которые позволяют проверять пароль только для определенных пользователей с правами суперпользователя (root) (например: shadow passwd). Sapstartsrv не может, как правило, проверять пользователей данного типа. Чтобы избежать подобных проблем, можно, например, использовать пользователей NIS. Для многих UNIX-платформ (Linux, Sun, AIX), sapstartsrv поддерживает аутентификацию при помощи PAM (подключаемых модулей аутентификации). При правильной настройке, это может, по крайней мере, позволить вам установить проверку для своих пользователей (другими словами, создать пользователя <sid>adm). К сожалению, на некоторых платформах существуют проблемы с настройкой PAM (см. прилагаемые бюллетени по платформам). Если для аутентификации используется пользователь домена Windows (<Domain>\<User>), то для других, отличных от Windows, платформ для аутентификации используется только пользовательская (user) часть.
Для временного решения проблемы, связанной с данными ограничениями на UNIX-платформах, в sapstarstrv была включена аутентификация при помощи сторонней программы "sapuxuserchk"; доступно в 640 patch 222, 700 patch 149 и 710 patch 89. Если установить подобную программу с битом идентификатора (user ID bit) для пользователя "root" (s-битом), то данные ограничения, накладываемые использованием пользователя <sid>adm, будут сняты. Однако, установка программы или модернизация (апгрейд) и sapcpe не назначают s-бит автоматически. Поэтому, необходимо вручную назначить его в соответствующих каталогах и обеспечить защиту sapuxuserchk от перезаписи, например, программой sapcpe. Для этого, войдите в систему, используя учетную запись суперпользователя (root), и перейдите в каталог экземпляра, который содержит sapstartsrv и sapuxuserchk, например:
/usr/sap/BIN/D53/exe:
-rwxr-xr-x 1 binadm sapsys 28922395 2008-02-29 08:21 sapstartsrv
-rwxr-xr-x 1 binadm sapsys 1509173 2008-02-29 08:21 sapuxuserchk
Выполните следующие команды:
chown root:sapsys sapuxuserchk
chmod u+s,o-rwx sapuxuserchk
Авторизация в итоге должна принять, например, следующий вид:
-rwsr-x--- 1 root sapsys 1509173 2008-02-29 08:21 sapuxuserchk
Внимание: sapuxuserchk содержится только в полных архивах SAPEXE.SAR (также включающих в себя списки копирования sapcpe *.lst), а в архиве исправлений ядра dw.SAR - отсутствует.
Более того, sapstartsrv позволяет устанавливать так называемое "доверенное соединение" (trusted connect) при помощи доменных сокетов UNIX с уже имеющейся защитой доступа (/tmp/.sapstream5<NR>13) или именованных каналов Windows (\\.\pipe\sapcontrol_<NR>). Если используется функция "-prot NI_HTTP" или "- prot PIPE", то sapcontrol может использовать данное соединение. Если удается установить соединение подобным образом, то никакая дополнительная аутентификация не требуется. Это работает, когда вход в систему осуществляется с правами пользователя <sid>adm. Данный механизм является платформозависимым, поэтому не может быть использован для взаимодействия между узлами UNIX и Windows. Более того, для взаимодействия на собственном узле можно использовать только доменные сокеты Unix.
Как исправить
В зависимости от используемой платформы и имеющихся проблем выполните следующие действия:
1. Используйте пользователей, которых можно проверить (например, пользователь домена Windows, пользователь NIS, не пользователь shadow passwd).
2. Правильно настройте подключаемые модули аутентификации (PAM).
3. Используйте функцию "доверенное соединение" (trusted connect) в sapcontrol.
1. Используйте пользователей, которых можно проверить (например, пользователь домена Windows, пользователь NIS, не пользователь shadow passwd).
2. Правильно настройте подключаемые модули аутентификации (PAM).
3. Используйте функцию "доверенное соединение" (trusted connect) в sapcontrol.
Ссылки