안전하지 않은 LDAP 인증 (평문 전송)

LDAP Simple Bind Over Cleartext

설명

LDAP 연결에서 ldap:// 프로토콜과 simple 인증을 함께 사용할 경우, 사용자 아이디/비밀번호가 네트워크 상에 평문으로 전송됩니다. 공격자는 같은 네트워크에서 패킷 스니핑이나 중간자(Man-in-the-Middle) 공격을 통해 자격 증명을 탈취할 수 있습니다. 탈취된 자격 증명은 계정 도용, 권한 상승, 추가 내부 시스템 침투로 악용될 수 있습니다.

잠재적 영향

  • 자격 증명 탈취: 네트워크에서 평문으로 노출된 아이디/비밀번호를 스니핑으로 가로챌 수 있음

  • 무단 접근 및 권한 상승: 탈취한 계정으로 AD/LDAP 자원에 로그인하여 더 높은 권한을 획득할 수 있음

  • 내부 확산(Lateral Movement): 동일 자격 증명을 다른 시스템에도 재사용하여 내부망으로 침투 확장

  • 규정 준수 위반: 비밀번호 평문 전송으로 보안 규정, 컴플라이언스(예: ISO27001, 개인정보 보호법) 위반 위험

  • 세션/재사용 공격: 간단한 바인드 자격 증명을 재사용하여 반복 로그인 공격이 가능

해결 방법

  • ldaps:// 사용: TLS가 적용된 포트를 사용(일반적으로 636)하여 전송 구간을 암호화

  • StartTLS 적용: 서버가 지원할 경우 ldap:// 접속 후 TLS로 업그레이드하여 평문 전송 차단

  • SASL 인증 사용: DIGEST-MD5, GSSAPI 등 암호화된 인증 메커니즘 사용하여 비밀번호 평문 노출 방지

  • simple 인증 제한: 암호화되지 않은 채널(ldap://)에서 simple 바인드 금지 정책 적용

  • 인증서 검증: 서버 인증서 신뢰 저장소(truststore) 구성 및 호스트네임 검증 활성화로 MITM 방지

  • 운영 가이드: 서비스 계정 최소 권한 부여, 정기 비밀번호 교체, 실패 시도 제한 등 보안 설정 강화

취약한 코드 및 안전한 코드 예시

취약한 코드

안전한 코드

설명:

  • 취약한 코드: ldap:// + simple 조합은 네트워크 구간에서 비밀번호가 평문으로 흘러갑니다. 스니핑/MITM에 노출되어 계정이 탈취될 수 있어 고위험입니다.

  • 안전한 코드: ldaps://는 TLS로 연결을 보호하여 아이디/비밀번호가 암호화되어 전송됩니다. 또한 필요 시 SASL(DIGEST-MD5, GSSAPI) 같은 메커니즘을 사용하면 평문 노출 없이 인증을 수행할 수 있습니다.

참조

Last updated