보안/SW보안약점 진단원

[설계보안] XML 조회 및 결과 검증

re-bugger 2022. 6. 22. 22:26

분류: 입력데이터 검증 및 표현 / 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사용자 계정 관리가 필요