가. 취약점 개요
외부입력값이 LDAP 조회를 수행하기 위한 필터 생성에 사용되는 경우 필터규칙을 변경할 수 있는 입력값에 대한 검증 작업을 수행하지 않게 되면 공격자가 의도하는 LDAP 조회가 수행될 수 있는 취약점이다
나. 설계시 고려사항
① LDAP 인증서버로 인증을 구현하는 경우 인증요청을 위해 사용되는 외부입력값은 LDAP 삽입 취약점을 가지지 않도록 필터링해서 사용해야 한다.
LDAP 인증이 포함되는 기능 설계시, 외부입력값이 LDAP 조회를 위한 검색 필터 생성에 삽입 되어 사용되는 경우, 필터 규칙으로 인식 가능한 특수문자(=, +, <, >, #, ;, \ 등)들을 제거하고 사용할 수 있도록 시큐어코딩 규칙을 정의해야 한다.
다. 진단 요구사항
1. LDAP 인증서버로 인증을 구현하는 경우 인증요청을 위해 사용되는 외부입력값은 LDAP 삽입 취약점을 가지지 않도록 필터링해서 사용해야 한다.
2. LDAP 질의문 생성 시 사용되는 입력값과 조회결과에 대한 검증방법(필터링 등)을 설계하고 유효하지 않은 값에 대한 처리방법이 명시되어 있는지 확인한다.
[테스트 문제]
LDAP 인증서버로 인증을 구현하는 경우 인증요청을 위해 사용되는 외부입력값은 LDAP 삽입 취약점을 가지지 않도록 필터링해서 사용해야 한다.
정답: O
LDAP 인증이 포함되는 기능 설계시, 외부입력값이 LDAP 조회를 위한 검색 필터 생성에 삽입 되어 사용되는 경우, (ㄱ)으로 인식 가능한 (ㄴ)들을 제거하고 사용할 수 있도록 시큐어코딩 규칙을 정의해야 한다.
(ㄷ)로 인증을 구현하는 경우 인증요청을 위해 사용되는 외부입력값은 LDAP 삽입 취약점을 가지지 않도록 (ㄹ)해서 사용해야 한다.
LDAP 질의문 생성 시 사용되는 입력값과 조회결과에 대한 (ㅁ)을 설계하고 유효하지 않은 값에 대한 처리방법이 명시되어 있는지 확인한다.
정답
ㄱ: 필터 규칙
ㄴ: 특수문자
ㄷ: LDAP 서버
ㄹ: 필터링
ㅁ: 검증방법(필터링)