2020.02.11

자격증명 덤핑 공격을 방지하기 위한 5단계

Susan Bradley | CSO
자격증명 덤프(Credential Dumping)는 공격자가 네트워크에 지속적으로 엑세스하기 위해 사용하는 주요 기술이다. 피싱을 통해 워크스테이션에 몰래 침입한 후 관리자가 네트워크를 관리, 모니터링하는 일반적인 방법을 사용해 노출된 자격증명을 찾는다. 
 
ⓒ Getty Images Bank 

자격증명 덤프는 소프트웨어 및 운영체제에 대한 계정 인증 데이터를 얻는 프로세스다('Credential Dumping'이란 사용자가 접속 시 비밀번호를 한번 입력하면 운영체제 메모리에 저장되어 재접속시 반복해 비밀번호를 입력하지 않도록 해 편의성을 증대시킨 프로세스다. 이 자격증명은 프로세스는 악의적인 사용자에 의해 탈취가 가능하며, 탈취한 정보를 통해 한 사용자의 여러 계정에 접근을 시도하게 된다. 편집자 주). 

어떤 기업이든 자격증명 덤핑에 대한 취약점이 있을 수 있다. 이런 취약점을 식별하거나 위험을 제한하는 5가지 방법이 있다. 


1. 자격증명 재사용 제한

먼저 네트워크 관리 방법을 검토해야 한다. 다른 작업에 사용되는 워크스테이션에서 여러 다른 네트워크 자산에 얼마나 자주 로그인하는지, 네트워크뿐만 아니라 온라인 계정에도 비밀번호를 얼마나 자주 재사용하는지를 확인해야 한다. 

미국 국립표준기술연구소(National Institute of Standards and Technology, NIST)는 기업이 유출된 비밀번호의 데이터베이스와 비교해 사용자 비밀번호를 정기적으로 확인하도록 권장한다. 네트워크에서 사용하는 어떤 비밀번호든 유출된 목록에 있다면 네트워크를 공격에 더욱 취약하게 만든다. 

트로이 헌트(Troy Hunt)는 5억 개가 넘는 공격에 노출된 비밀번호를 발표했다. 이 외에도 유출된 비밀번호를 자사 네트워크에 사용되는 비밀번호와 비교할 수 있는 다양한 리소스가 있다. 예를 들어 액티브 디렉토리용 LPP(Lithnet Password Protection)를 ‘패스워드 필터를 사용하는 액티브 디렉토리 도메인’에 설치해 네트워크에서 사용중인 비밀번호를 검사할 수 있다. 그런 다음 그룹 정책을 사용해 이러한 비밀번호에 대한 확인을 사용자 정의할 수 있다. 비밀번호를 거부할지 승인할지 결정할 수 있다. 

오피스 365 비밀번호에 대해 동일한 테스트를 할 수도 있다. 오피스 365 애저(Azure) 비밀번호에 이 비밀번호 확인 프로세스를 사용하면 된다. 또는 여기에 소개한 스크립트를 사용해 메일박스 레벨에서 비밀번호를 검사할 수 있다. 


2. 로컬 관리자 비밀번호 관리

로컬 관리자 비밀번호 관리의 중요성은 아무리 강조해도 지나치지 않다. 네트워크 전체에서 비밀번호가 동일해서는 안된다. 로컬 관리자 비밀번호 솔루션(Local Administrator Password Solution, LAPS)를 배포하는 것도 좋은 방법이다. 추가로 설치할 수 있는 모듈은 리쓰넷 랩스(Lithnet LAPS) 웹 애플리케이션으로, 로컬 관리자 비밀번호에 엑세스하기 위한 간단한 웹 기반 및 모바일 친화적 인터페이스를 제공한다. 

공격자는 일단 네트워크에 접속해 로컬 관리자 비밀번호의 남아있는 해시 값을 수집하면, 네트워크 전체에서 이동할 수 있음을 알고 있다. 무작위로 비밀번호를 할당하면 공격자가 이런 내부망 이동(Lateral movement)을 할 수 없다. 


3. NTLM 사용에 대한 검사와 감사

NTLM(New Technology LAN Manager)을 사용하는 경우, 공격자는 NTLM 해시를 이용해 네트워크에 엑세스할 수 있다. LM이나 NTLM 인증을 어떤 통신 프로토콜(SMB, FTP, RPC, HTTP 등)이든 함께 사용하고 이에 의존하면 공격의 위험에 노출된다. 

기업 내부의 취약한 컴퓨터 하나가 공격자가 도메인에 들어올 수 있는 발판이 된다. NTLMv1과 LM 인증 프로토콜은 윈도우 7/윈도우 서버 2008 R2부터 기본적으로 비활성화 되어있지만, 이제 설정을 검토해 NTLMv2를 의무화하고 있는지 확인해야 한다. 파워쉘(PowerShell)을 사용해 네트워크에서 NTML을 사용하는지 검사할 수 있다. 

그룹 정책에서 값을 설정하는 방법은 다음과 같다. 
1.    “시작” 선택
2.    “실행” 선택
3.    GPedit.msc를 입력
4.    “로컬 컴퓨터 정책” 선택
5.    “컴퓨터 구성” 선택
6.    “윈도우 설정” 선택
7.    “보안 설정” 선택
8.    “로컬 정책” 선택
9.    “보안 옵션” 선택
10.    “네트워크 보안: LAN 매니저 인증 수준” 정책으로 스크롤
11.    “속성”을 마우스 오른쪽 버튼으로 클릭
12.    “NT LMv2 응답만 보냄 / LM & NTLM 거부"를 선택
13.    “확인”을 클릭하고 설정 변경을 확인

레지스트리를 사용해 값을 설정하는 방법은 다음과 같다.  
1.    regedit.exe를 열고 HKLM\System\CurrentControlSet\control\LSA로 이동한다. LS를 클릭한다. 오른쪽 창에 LMCompatibilityLevel이 보이지 않으면 새 레지스트리 키를 추가해야 할 수 있다. 
2.    “편집” 선택
3.    “새로 만들기” 선택
4.    “REG_DWORD” 선택
5.    “New Value #1”을 “LMCompatibilityLevel”로 바꾼다.
6.    오른쪽 창에서 LMCompatibilityLevel을 더블클릭한다. 
7.    변경된 레벨을 나타내려면 “5”를 입력한다. 네트워크에서 NTLMv2를 지원하기 위해 프린터의 펌웨어를 업그레이드해야 할 수도 있다.


4. “디렉토리 변경 복제”에 대한 엑세스 제어 목록 관리

공격자는 우리가 도메인에서 어떻게 계정을 사용하는지 종종 우리보다 더 잘 알고 있다. 이들은 종종 마이크로소프트 익스체인지 권한 그룹을 남용할 수 있다. 따라서 도메인의 주요 기능에 대해 보안 그룹과 엑세스 제어 목록(Access Control Lists, ACL)의 모든 변경 사항을 감사하고 모니터링해야 한다(도메인의 ACL에 대한 모든 변경 사항을 감사하고 모니터링해야 한다.)

공격자가 도메인 개체의 ACL을 수정하면, 이벤트가 ID 5136으로 생성된다. 그런 다음 파워쉘 스크립트를 사용해 로그에서 보안 이벤트 ID 5136을 찾는 윈도우 이벤트 로그를 쿼리할 수 있다. 

Get-WinEvent -FilterHashtable @{logname='security'; id=5136}

그런 다음 SDDL 문자열을 보다 일기 쉬운 ACL 객체로 변환하는 ConvertFrom-SDDL4를 사용한다. 서버 2016 이상에서는 추가 감사 이벤트를 제공해 원본과 수정된 설명자(descriptor)를 문서화할 수 있다. 


5. Isass.exe와 상호작용하는 예기치 않는 프로세스가 있는지 모니터링

마지막으로 lsass.exe 프로세스에서 예기치 않은 스파이크가 있는지 모니터링 한다. 도메인 컨트롤러는 lsass.exe 프로세스를 도메인 트랜잭션의 일반적인 프로세스의 일부로 사용한다. 이런 프로세스에서 서비스 거부와 악성 트래픽이 숨겨질 수 있다. 공격을 받을 때 도메인 컨트롤러에서 무엇이 정상인지 파악하는 것이 모니터링의 핵심이다. 도메인 컨트롤러에서 액티브 디렉토리 데이터 수집기를 실행하고 네트워크에 표시되는 일반적인 프로세스를 기준으로 해야한다. 

공격자를 완전히 막는 것은 네트워크에 대한 기본 지식을 잘 이해하고 자원을 사용하는 것에서부터 시작한다. 공격자가 우위를 점하지 않도록 하려면 시간을 투자해야 한다. editor@itworld.co.kr 


2020.02.11

자격증명 덤핑 공격을 방지하기 위한 5단계

Susan Bradley | CSO
자격증명 덤프(Credential Dumping)는 공격자가 네트워크에 지속적으로 엑세스하기 위해 사용하는 주요 기술이다. 피싱을 통해 워크스테이션에 몰래 침입한 후 관리자가 네트워크를 관리, 모니터링하는 일반적인 방법을 사용해 노출된 자격증명을 찾는다. 
 
ⓒ Getty Images Bank 

자격증명 덤프는 소프트웨어 및 운영체제에 대한 계정 인증 데이터를 얻는 프로세스다('Credential Dumping'이란 사용자가 접속 시 비밀번호를 한번 입력하면 운영체제 메모리에 저장되어 재접속시 반복해 비밀번호를 입력하지 않도록 해 편의성을 증대시킨 프로세스다. 이 자격증명은 프로세스는 악의적인 사용자에 의해 탈취가 가능하며, 탈취한 정보를 통해 한 사용자의 여러 계정에 접근을 시도하게 된다. 편집자 주). 

어떤 기업이든 자격증명 덤핑에 대한 취약점이 있을 수 있다. 이런 취약점을 식별하거나 위험을 제한하는 5가지 방법이 있다. 


1. 자격증명 재사용 제한

먼저 네트워크 관리 방법을 검토해야 한다. 다른 작업에 사용되는 워크스테이션에서 여러 다른 네트워크 자산에 얼마나 자주 로그인하는지, 네트워크뿐만 아니라 온라인 계정에도 비밀번호를 얼마나 자주 재사용하는지를 확인해야 한다. 

미국 국립표준기술연구소(National Institute of Standards and Technology, NIST)는 기업이 유출된 비밀번호의 데이터베이스와 비교해 사용자 비밀번호를 정기적으로 확인하도록 권장한다. 네트워크에서 사용하는 어떤 비밀번호든 유출된 목록에 있다면 네트워크를 공격에 더욱 취약하게 만든다. 

트로이 헌트(Troy Hunt)는 5억 개가 넘는 공격에 노출된 비밀번호를 발표했다. 이 외에도 유출된 비밀번호를 자사 네트워크에 사용되는 비밀번호와 비교할 수 있는 다양한 리소스가 있다. 예를 들어 액티브 디렉토리용 LPP(Lithnet Password Protection)를 ‘패스워드 필터를 사용하는 액티브 디렉토리 도메인’에 설치해 네트워크에서 사용중인 비밀번호를 검사할 수 있다. 그런 다음 그룹 정책을 사용해 이러한 비밀번호에 대한 확인을 사용자 정의할 수 있다. 비밀번호를 거부할지 승인할지 결정할 수 있다. 

오피스 365 비밀번호에 대해 동일한 테스트를 할 수도 있다. 오피스 365 애저(Azure) 비밀번호에 이 비밀번호 확인 프로세스를 사용하면 된다. 또는 여기에 소개한 스크립트를 사용해 메일박스 레벨에서 비밀번호를 검사할 수 있다. 


2. 로컬 관리자 비밀번호 관리

로컬 관리자 비밀번호 관리의 중요성은 아무리 강조해도 지나치지 않다. 네트워크 전체에서 비밀번호가 동일해서는 안된다. 로컬 관리자 비밀번호 솔루션(Local Administrator Password Solution, LAPS)를 배포하는 것도 좋은 방법이다. 추가로 설치할 수 있는 모듈은 리쓰넷 랩스(Lithnet LAPS) 웹 애플리케이션으로, 로컬 관리자 비밀번호에 엑세스하기 위한 간단한 웹 기반 및 모바일 친화적 인터페이스를 제공한다. 

공격자는 일단 네트워크에 접속해 로컬 관리자 비밀번호의 남아있는 해시 값을 수집하면, 네트워크 전체에서 이동할 수 있음을 알고 있다. 무작위로 비밀번호를 할당하면 공격자가 이런 내부망 이동(Lateral movement)을 할 수 없다. 


3. NTLM 사용에 대한 검사와 감사

NTLM(New Technology LAN Manager)을 사용하는 경우, 공격자는 NTLM 해시를 이용해 네트워크에 엑세스할 수 있다. LM이나 NTLM 인증을 어떤 통신 프로토콜(SMB, FTP, RPC, HTTP 등)이든 함께 사용하고 이에 의존하면 공격의 위험에 노출된다. 

기업 내부의 취약한 컴퓨터 하나가 공격자가 도메인에 들어올 수 있는 발판이 된다. NTLMv1과 LM 인증 프로토콜은 윈도우 7/윈도우 서버 2008 R2부터 기본적으로 비활성화 되어있지만, 이제 설정을 검토해 NTLMv2를 의무화하고 있는지 확인해야 한다. 파워쉘(PowerShell)을 사용해 네트워크에서 NTML을 사용하는지 검사할 수 있다. 

그룹 정책에서 값을 설정하는 방법은 다음과 같다. 
1.    “시작” 선택
2.    “실행” 선택
3.    GPedit.msc를 입력
4.    “로컬 컴퓨터 정책” 선택
5.    “컴퓨터 구성” 선택
6.    “윈도우 설정” 선택
7.    “보안 설정” 선택
8.    “로컬 정책” 선택
9.    “보안 옵션” 선택
10.    “네트워크 보안: LAN 매니저 인증 수준” 정책으로 스크롤
11.    “속성”을 마우스 오른쪽 버튼으로 클릭
12.    “NT LMv2 응답만 보냄 / LM & NTLM 거부"를 선택
13.    “확인”을 클릭하고 설정 변경을 확인

레지스트리를 사용해 값을 설정하는 방법은 다음과 같다.  
1.    regedit.exe를 열고 HKLM\System\CurrentControlSet\control\LSA로 이동한다. LS를 클릭한다. 오른쪽 창에 LMCompatibilityLevel이 보이지 않으면 새 레지스트리 키를 추가해야 할 수 있다. 
2.    “편집” 선택
3.    “새로 만들기” 선택
4.    “REG_DWORD” 선택
5.    “New Value #1”을 “LMCompatibilityLevel”로 바꾼다.
6.    오른쪽 창에서 LMCompatibilityLevel을 더블클릭한다. 
7.    변경된 레벨을 나타내려면 “5”를 입력한다. 네트워크에서 NTLMv2를 지원하기 위해 프린터의 펌웨어를 업그레이드해야 할 수도 있다.


4. “디렉토리 변경 복제”에 대한 엑세스 제어 목록 관리

공격자는 우리가 도메인에서 어떻게 계정을 사용하는지 종종 우리보다 더 잘 알고 있다. 이들은 종종 마이크로소프트 익스체인지 권한 그룹을 남용할 수 있다. 따라서 도메인의 주요 기능에 대해 보안 그룹과 엑세스 제어 목록(Access Control Lists, ACL)의 모든 변경 사항을 감사하고 모니터링해야 한다(도메인의 ACL에 대한 모든 변경 사항을 감사하고 모니터링해야 한다.)

공격자가 도메인 개체의 ACL을 수정하면, 이벤트가 ID 5136으로 생성된다. 그런 다음 파워쉘 스크립트를 사용해 로그에서 보안 이벤트 ID 5136을 찾는 윈도우 이벤트 로그를 쿼리할 수 있다. 

Get-WinEvent -FilterHashtable @{logname='security'; id=5136}

그런 다음 SDDL 문자열을 보다 일기 쉬운 ACL 객체로 변환하는 ConvertFrom-SDDL4를 사용한다. 서버 2016 이상에서는 추가 감사 이벤트를 제공해 원본과 수정된 설명자(descriptor)를 문서화할 수 있다. 


5. Isass.exe와 상호작용하는 예기치 않는 프로세스가 있는지 모니터링

마지막으로 lsass.exe 프로세스에서 예기치 않은 스파이크가 있는지 모니터링 한다. 도메인 컨트롤러는 lsass.exe 프로세스를 도메인 트랜잭션의 일반적인 프로세스의 일부로 사용한다. 이런 프로세스에서 서비스 거부와 악성 트래픽이 숨겨질 수 있다. 공격을 받을 때 도메인 컨트롤러에서 무엇이 정상인지 파악하는 것이 모니터링의 핵심이다. 도메인 컨트롤러에서 액티브 디렉토리 데이터 수집기를 실행하고 네트워크에 표시되는 일반적인 프로세스를 기준으로 해야한다. 

공격자를 완전히 막는 것은 네트워크에 대한 기본 지식을 잘 이해하고 자원을 사용하는 것에서부터 시작한다. 공격자가 우위를 점하지 않도록 하려면 시간을 투자해야 한다. editor@itworld.co.kr 


X