비즈니스 규칙 엔진에 대한 중요한 보안 정보
이 항목에서는 Microsoft BizTalk Server 알려진 보안 문제와 보안 위험을 완화하기 위해 수행해야 하는 단계를 요약합니다.
서비스 거부 공격을 일으키는 악의적인 스키마 입력
팩트를 어설션하는 동안 정책 내에서 지원되는 유형과 일치하는 모든 개체에 대해 각 규칙을 확인합니다. 선택기를 사용하여 전달된 스키마 요소 중 하나를 사용하는 규칙이 정책에 있다고 가정합니다. 이때 선택기와 일치하는 이 요소/특성이 여러 번 반복되면 해당 인스턴스가 모두 어설션되어 성능이 저하되고 DoS(서비스 거부)가 발생할 수 있습니다.
이러한 문제를 완화하려면 정책을 실행하는 동안 전달되는 모호한 모든 입력의 유효성을 검사해야 합니다.
팩트를 어설션하기 전에 개체의 유효성을 검사하지 않는 규칙 집합
RuleSet에 팩트로 전달된 모든 스키마 instance 선택기를 사용하여 규칙을 어설션하기 전에 스키마에 대해 유효성이 검사되지 않습니다. 정책을 실행하는 동안 전달되는 모든 입력의 유효성을 검사해야 합니다.
RuleStore 보안이 설정되어 있는 경우 예상되는 비즈니스 규칙 작성기의 동작
RuleStore 클래스의 EnableAuthorization 메서드를 호출하여 규칙 저장소에 대한 역할 기반 보안 기능을 사용하도록 설정할 수 있습니다. 이 보안 기능이 설정되어 있는 경우 비즈니스 규칙 작성기에서 예상되는 동작은 다음과 같습니다.
사용자에게 읽기 액세스 권한이 없는 규칙 집합 및 어휘는 개체 모델에서 필터링되어 제외되므로 비즈니스 규칙 작성기에 표시되지 않습니다.
정책 또는 어휘에 대한 쓰기 액세스 권한이 없는 사용자가 저장을 시도하면 예외가 throw됩니다.
규칙 저장소 관리자의 사용자 유형
규칙 저장소 관리자에게는 규칙 저장소에 저장된 아티팩트의 인증 그룹을 정의할 수 있는 권한이 있습니다. 그러나 규칙 저장소 관리자의 사용자 유형에 따라 다음과 같은 차이가 있습니다.
규칙 저장소 관리자가 Windows 인증을 사용하여 규칙 저장소에 연결하는 Windows 사용자인 경우, 사용자가 Windows 그룹 또는 Windows 사용자인 인증 그룹을 정의할 수 있습니다.
규칙 저장소 관리자가 SQL 인증을 사용하여 규칙 저장소에 연결하는 SQL 사용자인 경우, 사용자가 Windows 그룹인 인증 그룹은 정의할 수 없지만 사용자가 Windows 사용자인 인증 그룹은 정의할 수 있습니다.
사용자는 권한이 부족한 아티팩트에 인증 그룹을 연결할 수 없음
SQL dbo 사용자도 아니고 RE_ADMIN_USERS의 구성원도 아니며 아티팩트에 대한 MODIFY_DELETE 권한이 없는 아티팩트 작성자는 아티팩트에 새 인증 그룹을 연결할 수 없습니다. 다음 시나리오는 이러한 동작의 예입니다.
규칙 집합 작성자가 dbo가 아니고 RE_ADMIN_USERS 그룹의 구성원도 아니며 규칙 집합을 만든 후 MODIFY_DELETE 권한이 없습니다.
작성자가 규칙 집합을 만듭니다.
RE_ADMIN_USERS 그룹의 구성원이 User2에 대한 MODIFY_DELETE 권한을 갖는 인증 AG1을 만듭니다.
작성자가 AG1을 규칙 집합에 연결합니다.
규칙 저장소 인증을 사용합니다.
RE_ADMIN_USERS 그룹의 구성원이 User2에 대한 READ_EXECUTE 권한을 갖는 인증 AG2를 만듭니다.
작성자가 AG2를 규칙 집합에 연결합니다. 작성자에게 이 작업을 수행할 수 있는 권한이 없어도 오류 메시지가 나타나지 않습니다.
User2가 규칙 집합을 읽을 수 없습니다.