익명 LDAP 연결 (Anonymous LDAP Binding)
Missing Authentication for Critical Function (LDAP)
설명
LDAP(Lightweight Directory Access Protocol) 서버에 익명으로 연결(Anonymous Binding)하면 인증 없이 데이터에 접근할 수 있어 보안 위험이 발생할 수 있습니다. 익명 바인딩이 허용되면 공격자가 LDAP 서버의 데이터를 조회하거나 조작할 수 있으며, 이는 민감한 정보 유출로 이어질 수 있습니다.
잠재적 영향
민감한 데이터 노출: 익명 사용자가 LDAP 서버에 접근하여 조직의 사용자 정보, 그룹 목록 등을 조회할 수 있습니다.
권한 없는 데이터 조작: 인증 없이 데이터를 수정할 수 있는 경우, 공격자가 권한을 상승시킬 수 있습니다.
서비스 악용: 익명 사용자가 대량의 LDAP 요청을 보내 서비스 거부(DoS) 공격을 수행할 수 있습니다.
해결 방법
LDAP 연결 시 인증을 필수적으로 수행
Context.SECURITY_AUTHENTICATION값을"none"대신"simple"또는"strong"으로 설정하여 인증을 활성화합니다.
강력한 인증 방식 사용
사용자 이름 및 비밀번호 기반 인증을 적용하고, 비밀번호는 안전한 저장소(KMS, 환경 변수 등)에 보관합니다.
LDAP 접근 권한을 최소화
LDAP 서버 설정을 통해 익명 사용자의 조회 및 수정 권한을 차단합니다.
취약한 코드 및 안전한 코드 예시
취약한 코드
안전한 코드
설명:
취약한 코드:
Context.SECURITY_AUTHENTICATION을"none"으로 설정하여 인증 없이 LDAP 서버에 접근할 수 있음.
안전한 코드:
SECURITY_AUTHENTICATION을"simple"로 설정하여 인증을 필수적으로 수행함.비밀번호를 환경 변수 또는 보안 저장소에서 로드하여 코드 내에 직접 하드코딩하지 않음.
참조
Last updated