2021.01.08

솔라윈즈 유형의 공격에 대응하는 방법

Susan Bradley | CSO
최근에 공격 받은 솔라윈즈 오리온(SolarWinds Oiron) 모니터링 제품을 사용하는 기업의 경우, 이미 인프라를 검토하고 도메인 서버에 대한 네트워크 접근을 차단하고 있을 것이다. 솔라윈즈 소프트웨어를 사용하지 않는다면, 자체 프로세스를 검토하고 감염된 코드와 백도어가 있는지 판단할 수 있는 좋은 기회다. 
 
ⓒ Getty Images Bank

미국 사이버 인프라 보안국(CISA)이 제공하는 솔라윈즈 공격을 완화하기 위한 지침은 심지어 국가의 지원을 받는 해커의 정교한 지능형 지속 공격(Advanced Persistent threats, APT)까지도 식별하고 제거하는데 필요한 프로세스의 좋은 예다. 지침대로 단계를 밟을 수 있다면, 필요에 따라 적절하게 대응할 수 있는 유리한 위치를 확보할 수 있다. 

    
포렌식 이미지 생성

먼저 네트워크에서 의심되는 모든 장치를 포렌식으로 이미지화할 수 있는지 확인한다. 포렌식 이미징(Forensic imaging)은 서버 또는 워크스테이션 하드 드라이브의 정확한 복사본(빈 공간 포함)을 생성한다. 엑세스 데이터 FTK 이미저(Access Data FTK Imager)는 시스템의 전체 백업을 수행해 포렌식으로 안전한지 여부를 판단할 수 있는 제품 가운데 하나다. 일반 파일과 디스크 이미지에 대한 해시 보고서를 생성해 드라이브의 정확한 사본이 있는지 확인한다. 

물리적 하드 드라이브를 외부 위치로 이미징할 때, 이미지를 복사할 대상의 용량이 충분해야 한다. 클라우드 서버와 가상머신이 혼합돼 있는 경우, 시스템을 이미지화하고 저장할 위치가 안전한지 확인한다. 일반적으로 서버가 이미 켜져 있으면 실행 중에 시스템을 이미지화 한다. 서버 전원이 꺼져있는 경우 오프라인으로 이미지화한다. 가급적이면 시스템을 원래 상태로 이미지화한 후 오프라인으로 전환하는 것이 좋다. 모든 포렌식 증거가 저장됐는지 확인 후 서버 전원을 끄고 오프라인으로 전환한다. 

공격받은 서버를 오프라인으로 전환해야 하는지에 대한 논쟁이 있다. 예를 들어, 랜섬웨어가 공격하면 시스템을 온라인 상태로 두라는 메시지가 표시되므로 공격자와 협상해야 할 경우에는 필요한 정보를 통신, 전송할 수 있다. 솔라윈즈 사고의 경우, 감염된 모든 정부 시스템에 대한 필수 조치는 오프라인으로 전환해 C&C 컴퓨터와 통신할 수 없도록 하는 것이다. 마이크로소프트는 감염된 컴퓨터가 다시 연결돼 다른 컴퓨터를 감염시킬 수 없도록 의도된 도메인에 랜섬웨어 기능을 멈춰 확산을 저지하는 킬 스위치(Kill Switch)를 설치하는 이례적인 조치를 취했다. 감염된 오리온 소프트웨어를 네트워크에 다시 구축하거나 도입하지 않는 것이 좋다. 


네트워크 트래픽 로그 검토와 분석

다음으로, 저장된 네트워크 트래픽 로그를 검토하고 분석할 리소스가 있는지 확인한다. 솔라윈즈의 경우, 이 백도어는 최소한 2020년 3월 초에 만들어진 것으로 보인다. 그 정도로 길게 로그 파일을 저장하지 못할 수도 있다. 수주 또는 수개월 분량의 스토리지를 저장할 수 있는지 검토한다. 로그 파일을 오프사이트 스토리지로 전송하는 것을 고려한다. 스플렁크(Splunk) 같은 서비스를 사용해 침해 징후를 검토하고 검색할 수 있다. 

마이크로소프트의 센티넬(Sentinel) 제품에 접근할 수 있다면 해당 데이터베이스에서 침해 징후를 검색할 수 있다. 깃허브(GitHub)에 명시된대로 쿼리 명령을 실행해 정보를 추출할 수 있다. 저장 중인 모든 로그 파일과 이벤트 로그의 시간대를 알고 있어야 한다. 다른 시간대와 시간 오프셋 간에 연관시킬 수 있으면 이벤트 간에 상관 관계를 만들 수 있다. 


엔터프라이즈 보안 제품 감사

네트워크에서 사용하는 모든 엔터프라이즈 보안 제품을 검토, 감사한다. 업데이트 프로세스를 통해 최신 상태로 유지되는지 확인한다. 공급업체에 보안 프로세스에 대한 정보를 문의한다. 코딩과 개발 프로세스를 안전하게 유지하기 위해 이중 요소 인증 또는 기타 프로세스를 사용하는가? 공격자는 네트워크를 모니터링하는 바로 그 소프트웨어를 공격하는 가치를 분명히 알고 있으므로, 보안 프로세스가 최대한 안전한지 확인하는 것이 중요하다. 


네트워크 분석 기능 검토

네트워크 트래픽과 여기서 생성되는 포렌식 정보를 완전히 이해하기 위해 네트워크를 분석할 수 있는 자원과 전문지식이 있는지 검토한다. 사이버보험을 보유하고 있는지 여부와 지원되는 리소스 보장 범위를 검토한다. 


네트워크에서 커버로스팅 제한

CISA 문서는 비밀번호 재설정을 권장하고 커버로스팅(Kerberoasting)이라는 기술을 네트워크에서 제한하도록 요구한다. 다음의 단계를 따른다. 
 
1. 커버로스팅의 개념을 이해하고 서비스 주체 계정에 길고 복잡한 비밀번호(25자 이상 권장)를 사용해야 한다. 이들 비밀번호에 대해 적절한 순환 정책을 구현한다. 
2. 사용자 계정을 그룹 관리 서비스 계정(group Managed Service Account, gMsa)으로 바꾸고, 구현이 제대로 됐는지 확인한다. 
3. 서비스 계정이 AES256_CTS_HMAC_SHA1_96을 지원하고 DES, RC4, AES 128비트 암호화를 지원하지 않도록 옵션을 설정한다. 이를 위해서는 보안 정책 설정을 정의하고 '네트워크 보안: 커버로스에 허용된 암호화 유형 구성(Network Security: Configure Encryption types allowed for Kerberos)'을 한다. 마이크로소프트 설명서대로 허용 가능한 암호화 유형을 AES256_HMAC_SHA1와 향후 암호화 유형(Future encryption types)으로 설정한다. 
4. 커버로스 TGT(Ticket Granting Ticket) 비밀번호를 재설정하는 방법을 이해하고 재설정을 두 번 수행한다. 

솔라윈즈의 직접적인 영향을 받지 않더라고 액티브 디렉터리에서 서비스 계정 자격증명을 추출하는데 사용되는 방법인 커버로스팅의 개념을 검토하고 이해한다. 이런 공격 유형은 새로운 개념이 아니며 2014년에 처음 도입됐다. 가장 좋은 완화 방법은 서비스 계정 비밀번호가 25자보다 길고, 쉽게 추측하기 없도록 하는 것이다. 

적절한 설정이 있는지 확인해 로깅을 활성화한다. 도메인 컨트롤러는 성공적인 커버로스 TGS 티켓 요청을 기록하도록 ‘계정 로그온’에서 ‘커버로스 서비스 티켓 작업 감사(Audit Kerberos Service Ticket Operations)’를 구성해 커버로스 TGS 서비스 티켓 요청을 기록할 수 있다. 

커버로스팅 공격이 페이로드를 켜기 전에 수행한 작업을 확인하는 것이 중요하다. 마이크로소프트에 따르면, 이 공격은 특정 보안 소프트웨어를 식별한다. 해당 소프트웨어가 활성화 돼있으면, 공격은 시스템에서 실행되지 않는다. 

시간을 내어 네트워크의 침입 활동에 대한 경고를 받기 위해 수행했던 작업을 검토한다. 이런 공격을 예방하지 못할 수 있어도, 경고를 받을 수는 있어야 한다. editor@itworld.co.kr 


2021.01.08

솔라윈즈 유형의 공격에 대응하는 방법

Susan Bradley | CSO
최근에 공격 받은 솔라윈즈 오리온(SolarWinds Oiron) 모니터링 제품을 사용하는 기업의 경우, 이미 인프라를 검토하고 도메인 서버에 대한 네트워크 접근을 차단하고 있을 것이다. 솔라윈즈 소프트웨어를 사용하지 않는다면, 자체 프로세스를 검토하고 감염된 코드와 백도어가 있는지 판단할 수 있는 좋은 기회다. 
 
ⓒ Getty Images Bank

미국 사이버 인프라 보안국(CISA)이 제공하는 솔라윈즈 공격을 완화하기 위한 지침은 심지어 국가의 지원을 받는 해커의 정교한 지능형 지속 공격(Advanced Persistent threats, APT)까지도 식별하고 제거하는데 필요한 프로세스의 좋은 예다. 지침대로 단계를 밟을 수 있다면, 필요에 따라 적절하게 대응할 수 있는 유리한 위치를 확보할 수 있다. 

    
포렌식 이미지 생성

먼저 네트워크에서 의심되는 모든 장치를 포렌식으로 이미지화할 수 있는지 확인한다. 포렌식 이미징(Forensic imaging)은 서버 또는 워크스테이션 하드 드라이브의 정확한 복사본(빈 공간 포함)을 생성한다. 엑세스 데이터 FTK 이미저(Access Data FTK Imager)는 시스템의 전체 백업을 수행해 포렌식으로 안전한지 여부를 판단할 수 있는 제품 가운데 하나다. 일반 파일과 디스크 이미지에 대한 해시 보고서를 생성해 드라이브의 정확한 사본이 있는지 확인한다. 

물리적 하드 드라이브를 외부 위치로 이미징할 때, 이미지를 복사할 대상의 용량이 충분해야 한다. 클라우드 서버와 가상머신이 혼합돼 있는 경우, 시스템을 이미지화하고 저장할 위치가 안전한지 확인한다. 일반적으로 서버가 이미 켜져 있으면 실행 중에 시스템을 이미지화 한다. 서버 전원이 꺼져있는 경우 오프라인으로 이미지화한다. 가급적이면 시스템을 원래 상태로 이미지화한 후 오프라인으로 전환하는 것이 좋다. 모든 포렌식 증거가 저장됐는지 확인 후 서버 전원을 끄고 오프라인으로 전환한다. 

공격받은 서버를 오프라인으로 전환해야 하는지에 대한 논쟁이 있다. 예를 들어, 랜섬웨어가 공격하면 시스템을 온라인 상태로 두라는 메시지가 표시되므로 공격자와 협상해야 할 경우에는 필요한 정보를 통신, 전송할 수 있다. 솔라윈즈 사고의 경우, 감염된 모든 정부 시스템에 대한 필수 조치는 오프라인으로 전환해 C&C 컴퓨터와 통신할 수 없도록 하는 것이다. 마이크로소프트는 감염된 컴퓨터가 다시 연결돼 다른 컴퓨터를 감염시킬 수 없도록 의도된 도메인에 랜섬웨어 기능을 멈춰 확산을 저지하는 킬 스위치(Kill Switch)를 설치하는 이례적인 조치를 취했다. 감염된 오리온 소프트웨어를 네트워크에 다시 구축하거나 도입하지 않는 것이 좋다. 


네트워크 트래픽 로그 검토와 분석

다음으로, 저장된 네트워크 트래픽 로그를 검토하고 분석할 리소스가 있는지 확인한다. 솔라윈즈의 경우, 이 백도어는 최소한 2020년 3월 초에 만들어진 것으로 보인다. 그 정도로 길게 로그 파일을 저장하지 못할 수도 있다. 수주 또는 수개월 분량의 스토리지를 저장할 수 있는지 검토한다. 로그 파일을 오프사이트 스토리지로 전송하는 것을 고려한다. 스플렁크(Splunk) 같은 서비스를 사용해 침해 징후를 검토하고 검색할 수 있다. 

마이크로소프트의 센티넬(Sentinel) 제품에 접근할 수 있다면 해당 데이터베이스에서 침해 징후를 검색할 수 있다. 깃허브(GitHub)에 명시된대로 쿼리 명령을 실행해 정보를 추출할 수 있다. 저장 중인 모든 로그 파일과 이벤트 로그의 시간대를 알고 있어야 한다. 다른 시간대와 시간 오프셋 간에 연관시킬 수 있으면 이벤트 간에 상관 관계를 만들 수 있다. 


엔터프라이즈 보안 제품 감사

네트워크에서 사용하는 모든 엔터프라이즈 보안 제품을 검토, 감사한다. 업데이트 프로세스를 통해 최신 상태로 유지되는지 확인한다. 공급업체에 보안 프로세스에 대한 정보를 문의한다. 코딩과 개발 프로세스를 안전하게 유지하기 위해 이중 요소 인증 또는 기타 프로세스를 사용하는가? 공격자는 네트워크를 모니터링하는 바로 그 소프트웨어를 공격하는 가치를 분명히 알고 있으므로, 보안 프로세스가 최대한 안전한지 확인하는 것이 중요하다. 


네트워크 분석 기능 검토

네트워크 트래픽과 여기서 생성되는 포렌식 정보를 완전히 이해하기 위해 네트워크를 분석할 수 있는 자원과 전문지식이 있는지 검토한다. 사이버보험을 보유하고 있는지 여부와 지원되는 리소스 보장 범위를 검토한다. 


네트워크에서 커버로스팅 제한

CISA 문서는 비밀번호 재설정을 권장하고 커버로스팅(Kerberoasting)이라는 기술을 네트워크에서 제한하도록 요구한다. 다음의 단계를 따른다. 
 
1. 커버로스팅의 개념을 이해하고 서비스 주체 계정에 길고 복잡한 비밀번호(25자 이상 권장)를 사용해야 한다. 이들 비밀번호에 대해 적절한 순환 정책을 구현한다. 
2. 사용자 계정을 그룹 관리 서비스 계정(group Managed Service Account, gMsa)으로 바꾸고, 구현이 제대로 됐는지 확인한다. 
3. 서비스 계정이 AES256_CTS_HMAC_SHA1_96을 지원하고 DES, RC4, AES 128비트 암호화를 지원하지 않도록 옵션을 설정한다. 이를 위해서는 보안 정책 설정을 정의하고 '네트워크 보안: 커버로스에 허용된 암호화 유형 구성(Network Security: Configure Encryption types allowed for Kerberos)'을 한다. 마이크로소프트 설명서대로 허용 가능한 암호화 유형을 AES256_HMAC_SHA1와 향후 암호화 유형(Future encryption types)으로 설정한다. 
4. 커버로스 TGT(Ticket Granting Ticket) 비밀번호를 재설정하는 방법을 이해하고 재설정을 두 번 수행한다. 

솔라윈즈의 직접적인 영향을 받지 않더라고 액티브 디렉터리에서 서비스 계정 자격증명을 추출하는데 사용되는 방법인 커버로스팅의 개념을 검토하고 이해한다. 이런 공격 유형은 새로운 개념이 아니며 2014년에 처음 도입됐다. 가장 좋은 완화 방법은 서비스 계정 비밀번호가 25자보다 길고, 쉽게 추측하기 없도록 하는 것이다. 

적절한 설정이 있는지 확인해 로깅을 활성화한다. 도메인 컨트롤러는 성공적인 커버로스 TGS 티켓 요청을 기록하도록 ‘계정 로그온’에서 ‘커버로스 서비스 티켓 작업 감사(Audit Kerberos Service Ticket Operations)’를 구성해 커버로스 TGS 서비스 티켓 요청을 기록할 수 있다. 

커버로스팅 공격이 페이로드를 켜기 전에 수행한 작업을 확인하는 것이 중요하다. 마이크로소프트에 따르면, 이 공격은 특정 보안 소프트웨어를 식별한다. 해당 소프트웨어가 활성화 돼있으면, 공격은 시스템에서 실행되지 않는다. 

시간을 내어 네트워크의 침입 활동에 대한 경고를 받기 위해 수행했던 작업을 검토한다. 이런 공격을 예방하지 못할 수 있어도, 경고를 받을 수는 있어야 한다. editor@itworld.co.kr 


X