Active Directory 환경에서 Kerberos 인증 프로토콜 공격 및 방어 가이드
Active Directory(AD)는 많은 조직에서 사용자 인증 및 권한 관리를 위해 사용하는 핵심 기술입니다. AD의 핵심은 Kerberos 인증 프로토콜이며, 이 프로토콜의 보안 취약점을 악용한 공격은 조직 전체의 보안을 위협할 수 있습니다. 이 가이드에서는 Kerberos 인증 프로토콜의 기본 개념부터 실제 공격 사례, 그리고 효과적인 방어 전략까지 자세히 다룹니다.
Kerberos 인증 프로토콜이란 무엇인가
Kerberos는 네트워크 상에서 안전하게 사용자 및 서비스의 신원을 인증하는 프로토콜입니다. MIT에서 개발되었으며, 암호화 키를 사용하여 통신 당사자의 신원을 확인합니다. AD 환경에서 Kerberos는 사용자가 네트워크 리소스에 접근할 때마다 사용자 이름과 비밀번호를 반복적으로 입력할 필요 없이, 한 번의 인증으로 모든 리소스에 접근할 수 있도록 해줍니다.
Kerberos의 작동 방식
Kerberos 인증 프로세스는 다음과 같은 단계를 거칩니다.
- 인증 요청 (Authentication Service Exchange): 사용자가 Kerberos 서버(KDC, Key Distribution Center)에 인증 요청을 보냅니다. KDC는 사용자의 신원을 확인하고, Ticket-Granting Ticket (TGT)을 발급합니다.
- TGT 요청 (Ticket-Granting Service Exchange): 사용자는 TGT를 사용하여 특정 서비스에 대한 접근 권한을 요청합니다. KDC는 요청된 서비스에 대한 Ticket을 발급합니다.
- 서비스 접근 (Client/Server Authentication Exchange): 사용자는 Ticket을 사용하여 해당 서비스에 접근합니다. 서비스는 Ticket을 확인하여 사용자의 신원을 인증하고, 접근을 허용합니다.
Kerberos 공격의 중요성과 위험성
Kerberos는 강력한 인증 프로토콜이지만, 특정 취약점을 악용한 공격에 취약할 수 있습니다. Kerberos 공격에 성공하면 공격자는 네트워크 리소스에 무단으로 접근하거나, 관리자 권한을 획득하여 시스템 전체를 장악할 수 있습니다. 이는 데이터 유출, 서비스 중단, 그리고 기업의 평판 손상으로 이어질 수 있습니다.
주요 Kerberos 공격 유형
Kerberos 환경을 위협하는 주요 공격 유형은 다음과 같습니다.
Pass-the-Ticket (PtT) 공격
PtT 공격은 공격자가 유효한 Kerberos Ticket을 탈취하여, 해당 Ticket을 사용하여 네트워크 리소스에 접근하는 공격입니다. 공격자는 사용자의 자격 증명을 직접 탈취하지 않고도, 이미 발급된 Ticket을 재사용하여 인증을 우회할 수 있습니다. Mimikatz와 같은 도구를 사용하여 메모리에서 Ticket을 추출하는 방식으로 수행됩니다.
Golden Ticket 공격
Golden Ticket 공격은 공격자가 Kerberos 서버(KDC)의 암호화 키를 탈취하여, 임의의 사용자에 대한 TGT를 생성하는 공격입니다. Golden Ticket을 통해 공격자는 AD 도메인 내의 모든 리소스에 대한 관리자 권한을 획득할 수 있습니다. KDC의 krbtgt 계정이 손상되었을 때 발생할 수 있습니다.
Silver Ticket 공격
Silver Ticket 공격은 공격자가 특정 서비스 계정의 암호화 키를 탈취하여, 해당 서비스에 대한 Ticket을 생성하는 공격입니다. Golden Ticket 공격과 달리, Silver Ticket은 특정 서비스에만 접근할 수 있지만, 공격자는 해당 서비스를 통해 시스템에 침투할 수 있습니다.
Kerberoasting 공격
Kerberoasting 공격은 공격자가 서비스 계정의 암호화된 비밀번호를 탈취하여, 오프라인에서 비밀번호를 해독하는 공격입니다. 공격자는 서비스 계정의 SPN(Service Principal Name)을 이용하여 Kerberos Ticket을 요청하고, 획득한 Ticket을 오프라인에서 크래킹합니다. 비밀번호 강도가 약한 서비스 계정이 주요 공격 대상입니다.
AS-REP Roasting 공격
AS-REP Roasting 공격은 “Do not require preauthentication” 옵션이 설정된 계정을 대상으로, 사전 인증 없이 Kerberos 인증을 요청하여 암호화된 응답을 얻어낸 후 오프라인에서 크래킹하는 공격입니다. 이 옵션은 보안에 취약하므로 사용하지 않도록 권장됩니다.
Kerberos 공격 방어 전략
Kerberos 공격을 방어하기 위해서는 다음과 같은 전략을 적용해야 합니다.
계정 보안 강화
- 강력한 비밀번호 정책 시행: 복잡하고 예측하기 어려운 비밀번호를 사용하도록 강제하고, 주기적으로 비밀번호를 변경하도록 설정합니다.
- 다단계 인증(MFA) 도입: 사용자 인증 시 비밀번호 외에 추가적인 인증 요소를 요구하여, 계정 탈취 시도를 방지합니다.
- 계정 잠금 정책 설정: 잘못된 비밀번호를 여러 번 입력할 경우 계정을 잠금 처리하여, 무차별 대입 공격을 방지합니다.
- 권한 최소화 원칙 적용: 사용자 및 서비스 계정에 필요한 최소한의 권한만 부여하여, 공격 발생 시 피해 범위를 최소화합니다.
Kerberos 설정 강화
- AES 암호화 활성화: DES와 같은 취약한 암호화 알고리즘 대신 AES 암호화를 사용하도록 설정합니다.
- Ticket 수명 제한: Ticket의 유효 기간을 짧게 설정하여, 탈취된 Ticket의 사용 가능 시간을 줄입니다.
- Kerberos 감사 활성화: Kerberos 인증 관련 이벤트를 로깅하여, 이상 징후를 탐지하고 분석합니다.
- “Do not require preauthentication” 옵션 사용 금지: AS-REP Roasting 공격을 방지하기 위해 해당 옵션을 사용하지 않도록 설정합니다.
패치 및 업데이트
- 최신 보안 패치 적용: 운영체제, AD 서버, 그리고 Kerberos 관련 소프트웨어에 대한 최신 보안 패치를 정기적으로 적용합니다.
- 취약점 스캔 및 관리: 정기적으로 시스템의 취약점을 스캔하고, 발견된 취약점을 신속하게 해결합니다.
모니터링 및 탐지
- SIEM(Security Information and Event Management) 솔루션 활용: Kerberos 인증 로그를 포함한 다양한 보안 로그를 수집, 분석하여 이상 징후를 탐지합니다.
- 행위 기반 분석(UBA) 솔루션 도입: 사용자 및 엔티티의 비정상적인 행위를 탐지하여, 공격 시도를 조기에 식별합니다.
- 허니팟(Honeypot) 설치: 공격자를 유인하기 위한 가짜 시스템 또는 서비스를 설치하여, 공격자의 활동을 감지하고 분석합니다.
보안 도구 활용
- Mimikatz 탐지: Mimikatz와 같은 공격 도구의 사용을 탐지하고 차단하는 솔루션을 도입합니다.
- BloodHound 분석: AD 환경의 취약점을 시각적으로 분석하고, 공격 경로를 파악하는 도구를 활용합니다.
- PowerShell 스크립트 실행 제한: PowerShell을 악용한 공격을 방지하기 위해, 스크립트 실행 정책을 강화합니다.
실생활에서의 활용 방법
실제로 Kerberos 공격을 방어하기 위해서는 다음과 같은 단계를 따르는 것이 좋습니다.
- AD 보안 평가 수행: AD 환경의 보안 상태를 진단하고, 잠재적인 취약점을 식별합니다.
- 보안 정책 수립 및 적용: 식별된 취약점을 기반으로 보안 정책을 수립하고, 이를 AD 환경에 적용합니다.
- 보안 교육 실시: 사용자 및 IT 담당자에게 Kerberos 공격의 위험성과 방어 방법에 대한 교육을 실시합니다.
- 정기적인 보안 감사: AD 환경의 보안 상태를 정기적으로 감사하고, 보안 정책의 효과성을 평가합니다.
자주 묻는 질문과 답변
Q: Kerberos 인증은 왜 중요한가요?
A: Kerberos는 AD 환경에서 사용자 및 서비스의 신원을 안전하게 인증하는 데 필수적인 프로토콜입니다. Kerberos 인증이 없다면 사용자는 네트워크 리소스에 접근할 때마다 사용자 이름과 비밀번호를 입력해야 하며, 이는 보안 위험을 증가시키고 사용자 편의성을 저해합니다.
Q: Golden Ticket 공격은 어떻게 방어할 수 있나요?
A: Golden Ticket 공격을 방어하기 위해서는 KDC의 krbtgt 계정을 안전하게 보호해야 합니다. 강력한 비밀번호를 사용하고, 계정 접근을 제한하며, Kerberos 감사 기능을 활성화하여 이상 징후를 탐지해야 합니다. 또한, 정기적으로 krbtgt 계정의 비밀번호를 변경하는 것이 좋습니다.
Q: Kerberoasting 공격을 방어하는 가장 효과적인 방법은 무엇인가요?
A: Kerberoasting 공격을 방어하기 위해서는 서비스 계정의 비밀번호를 강력하게 설정하고, 주기적으로 변경해야 합니다. 또한, 권한 최소화 원칙을 적용하여 서비스 계정에 필요한 최소한의 권한만 부여하고, Kerberos 감사 기능을 활성화하여 이상 징후를 탐지해야 합니다.
전문가의 조언
“Kerberos 보안은 Active Directory 보안의 핵심입니다. 단순히 기술적인 설정을 변경하는 것뿐만 아니라, 사용자 교육, 보안 정책 수립, 그리고 지속적인 모니터링이 함께 이루어져야 효과적인 방어가 가능합니다.” – 보안 전문가 김민수
비용 효율적인 활용 방법
Kerberos 공격 방어는 비용이 많이 드는 작업일 수 있지만, 다음과 같은 방법으로 비용 효율성을 높일 수 있습니다.
- 오픈 소스 보안 도구 활용: BloodHound와 같은 오픈 소스 보안 도구를 활용하여 AD 환경의 취약점을 분석하고, 공격 경로를 파악합니다.
- 클라우드 기반 SIEM 솔루션 도입: 클라우드 기반 SIEM 솔루션을 도입하여 초기 구축 비용과 유지보수 비용을 절감합니다.
- 보안 컨설팅 서비스 활용: AD 보안 전문가의 컨설팅 서비스를 활용하여, 효율적인 보안 전략을 수립하고 적용합니다.
- 무료 보안 교육 프로그램 참여: 정부 또는 보안 기관에서 제공하는 무료 보안 교육 프로그램에 참여하여, IT 담당자의 보안 역량을 강화합니다.