쿼리 ACL
쿼리 ACL을 사용하면 데이터를 쿼리할 수 있는 사용자를 명시적으로 정의하여 보다 세부적인 접근 제어를 정의할 수 있습니다.
쿼리 ACL이란?
쿼리 ACL 의 운영은 query_range 또는 query_match로 설정되어 있습니다. 쿼리 ACL을 사용하면 사용자 설정에 따라 액세스를 제한하거나 활성화하여 사용자 쿼리를 보다 구체적으로 제어할 수 있습니다. 쿼리 ACL은 공격자가 값을 볼 수 없는 경우에도 결과에서 정보를 추출하기 위해 맹목적으로 데이터를 쿼리하는 블라인드 쿼리 공격 에 대한 강력한 도구입니다.
쿼리 ACL 사용 시기
열에 중요한 값이 포함되어 있고 데이터에 대한 부분/조건부 액세스를 허용하는 경우 데이터의 민감도에 따라 필요에 따라 쿼리 ACL을 고려하고 구현해야 합니다. 테이블의 행과 해당 열에 대한 부분적/조건부 액세스가 있는 경우, 특히 데이터 필터에 의해 해당 액세스가 적용되지 않는 경우 쿼리 ACL은 데이터의 민감도에 따라 필요에 따라 구현되어야 합니다.
급여 쿼리 통제
급여 테이블에서 내 급여가 있는 한 행을 볼 수 있지만 급여가 2개의 경계 내에 포함되어 있는 사용자를 쿼리하기 위해 범위 쿼리를 실행할 수 있는 이유가 없습니다. 급여에 대한query_range ACL은 해당 쿼리를 실행할 수 없게 합니다.HR 쿼리 제어
모든 hr_profiles 볼 수 있지만 SSN만 직접 볼 수 있습니다. SSN을 쿼리하는 업무가 없으며 쿼리 ACL은 다른 HR 프로필의 SSN에 대한 쿼리를 실행하여 SSN 매핑을 추출하지 못하도록 해야 합니다.
쿼리 ACL 동작
query_match 및 query_range 작업을 사용합니다. 이들의 행동은 다음과 같습니다.query_match-
query_match는 EQUALS, NOT_EQUALS, IN, NOT_IN, SAMEAS, NSAMEAS, ANYTHING, ISEMPTYSTRING, ISEMPTY, ISNOTEMPTY, ISNULL, ISNOTNULL로 구성됩니다.query_match는 특정 기록을 가져오도록 구축되었으며 다른 기록을 반환하는 데 악용될 수 없다는 의미에서 "안전한 연산자"로 구성됩니다.평가 결과 결과 성공 사용자는 일치 쿼리를 제출할 수 있습니다. 실패 사용자는 일치 쿼리를 제출할 수 없습니다. - 같음
- NOT_EQUALS
- 안에
- NOT_IN
- 동일
- NSAME와
- 모든 대상
- ISEMPTYSTRING
- 비어 있음
- ISNOTEMPTY
- ISNULL
- ISNOTNULL입니다.
query_range-
query_range는 다른 모든 항목(STARTS_WITH, CONTAINS, >=, <= 등)으로 구성되며, 사용자가 경계 값을 조정하여 더 많은 기록을 쿼리할 수 있으므로 더 위험합니다.평가 결과 결과 성공 사용자는 범위 쿼리를 제출할 수 있으며 정렬은 제한 없음 실패 사용자는 (STARTS_WITH, CONTAINS, >=, <= 등을 사용하여 범위 쿼리를 제출할 수 없습니다. 열별 정렬이 제한됩니다.
쿼리 ACL(query_match 및 query_range 모두)은 기본적으로 읽기 액세스를 위임하는 star.star ACL로 설정됩니다. 즉, ACL이 쿼리에 적용되는 경우 쿼리 ACL이 작성되지 않은 경우 열에 대한 읽기 권한이 평가됩니다. 쿼리 ACL이 정의되면 기본 동작이 재정의됩니다.