분류: 입력데이터 검증 및 표현 / XML 삽입, 부적절한 XML 외부개체 참조
가. 항목명
XML 조회 및 결과 검증
나. 취약점 설명
XQuery 나 XPath와 같은 XML 질의문의 구조를 임의변경하여 허가되지 않은 데이터를 조회 하거나 인증절차를 우회하는 취약점
다. 보안대책
① XML 질의문에 사용되는 파라미터에 조작할 수 없는 필터링을 사용하거나 자료형으로 바인딩하여 사용
라. 설계시 고려사항
① XML 질의문을 조작할 수 없도록 필터링하거나 자료형으로 바인딩하여 사용
- 공통 검증 컴포넌트를 이용한 필터링
- XML 삽입공격이 가능한 문자열 Validator 컴포넌트 일괄적용하도록 설계
- 필터 컴포넌트를 이용한 필터링
- 웹 입력값(", [, ], /, =, @) 필터링하도록 설계
- 개별 코드 입력값 필터링
- XML 삽입을 발생시키는 문자열(", [, ], , =, @ 등)을 제거 및 치환
- 안전한 API 사용
- 외부입력값이 질의문 구조를 바꿀 수 없도록 API(Java-API-XQuery)를 사용
마. 진단기준 및 세부사항
① 외부 입력값이 XML 조회 구문을 변경하지 않도록 설계
- 외부 입력값을 필터링하는 기능이 설계되어있거나 외부라이브러리를 사용하도록 설계되어있는지 확인
- XML 필터링 적용하는 규칙 또는 API에 대한 갭라가이드가 정의되어있는지 확인
바. 안전한 보안설계의 예
No | 요구사항명 | 해결방안 | 검수기준 | 비고 |
1 | DB사용자 계정에 최소권한 부여 | 애플리케이션에서 사용하는 DB 사용자 계정은 애플리케이션에서 사용하는 테이블, 뷰, 프로시저에 대해서만 사용권한을 부여한다 | 애플리케이션에서 사용하는 DB사용자 계정은 테이블, 뷰, 프로시저에 대한 권한만 적용된다. | 지속적인 DB사용자 계정 관리가 필요 |
'보안 > SW보안약점 진단원' 카테고리의 다른 글
[설계보안] 시스템 자원 접근 및 명령어 수행 입력값 검증 (0) | 2022.06.22 |
---|---|
[설계보안] 디렉토리 서비스 조회 및 결과 검증 (0) | 2022.06.22 |
[설계보안] DBMS 조회 및 결과 검증 (0) | 2022.06.22 |
준비 ③ (0) | 2022.06.22 |
준비 ① (0) | 2022.06.21 |