2019.04.19

PC HW와 HW 드라이버 취약성을 방어하는 방법

Susan Bradley | CSO
최근 PC 업체 에이수스(Asus)는 2018년 6월부터 11월까지 해커가 에이수스 노트북 컴퓨터에 사전 설치되는 ALU(Asus Live Update) 앱을 이용해 컴퓨터에 백도어를 설치하는 사고가 발생했다고 확인했다. 카스퍼스키도 약 5만 7,000개 시스템에 백도어가 포함된 실시간 업데이트 소프트웨어가 설치됐다고 밝혔다. 에이수스는 업데이트 프로세스에 악성코드가 유입됐음을 인정하고 시스템에 악성 소프트웨어가 설치돼 있는지 확인하는 툴을 공개했다.
 
이 백도어 업데이트 프로그램은 특정 컴퓨터를 겨냥한 것으로 보인다. 조사 결과를 보면, 백도어 소프트웨어에는 MAC 주소를 나타내는 하드코딩 MD5 해시가 포함돼 있다. 즉 해커가 특성 하드웨어 시스템과 그룹, 특정 기업에 판매된 컴퓨터 등을 식별해 해당 기업 시스템에 접근을 시도했을 가능성이 크다. 따라서 현재 사용하는 시스템에 ALU가 설치돼 있다면 업데이트 조작을 방지하는 픽스(Fix)와 추가 메커니즘이 포함된 최신 3.6.9 버전을 설치해야 한다.
 
에이수스 툴은 목표가 된 기기를 찾아낸다.

PC 마더보드를 확인하는 방법
이번 에이수스 공격 이후 필자는 또 다른 취약성이 발생할 경우 시스템이 사용하는 마더보드를 판단하는 방법을 다시 찾아봤다. 시스템에 설치된 마더보드의 제조사와 모델을 확인하는 방법은 다양하다. 먼저 파워쉘에서 다음 명령어를 사용할 수 있다. 

Get-WmiObject win32_baseboard | select Manufacturer

그러면 마더보드 제조사의 이름이 화면에 표시될 것이다.
 
파워쉘 쿼리를 이용해 마더보드 제조사를 확인할 수 있다.
 
필자의 노트북에서 이 명령을 실행하자 다음과 같이 화면에 표시됐다. 
 
필자 노트북에서 실행하자 마더보드 제조사의 이름이 나타났다.
 
이처럼 마더보드를 식별하는 것은 간단하다. 필자가 사용하고 있는 노트북의 제조사가 레노버라는 것도 바로 확인할 수 있었다. 그러나 일부 제품은 더 복잡한 과정을 거쳐야 한다. 예를 들어 인텔의 아폴로 레이크 칩 기반 마더보드 제품군은 마더보드 제조사를 APL로 표시한다.

제조사를 식별하는 데 사용하는 광범위한 명령어는 네트워크에 대한 많은 정보를 제공한다. WMI(Windows Management Instrumentation)는 윈도우 전용 객체 식별 사전 정의 클래스다. _ComputerName 변수를 사용해 한 대 혹은 여러 대의 컴퓨터에 쿼리할 수 있다.

예를 들어, 다음 파워쉘 명령을 이용해 활성 디렉터리에 있는 바이오스, 프로세서, 마더보드 제조사에 관한 도메인 핵심 정보를 목록화해 제조사와 네트워크의 기기를 식별할 수 있다.

foreach($computer in $computers)
{
    Invoke-Command -ComputerName $computer -ScriptBlock {
        Get-WmiObject Win32_bios
        Get-WmiObject Win32_processor
        Get_WmiObject Win32_Baseboard
    }
}


하드웨어 드라이버도 취약
마더보드와 바이오스 업데이트와 마찬가지로 하드웨어 드라이버도 악의적인 활동의 표적이 되는 경우가 많다. 왜냐하면 관리자가 컴퓨터 시스템을 배치할 때 드라이버를 설치하고 업데이트하지 않는 경우가 많기 때문이다. 해커는 이런 드라이버를 표적으로 삼거나 악의적인 소프트웨어를 만들어 드라이버로 위장하곤 한다. 그러면 사용자는 시스템에 영구적인 백도어가 있어도 이를 알아차리지 못한다.

이런 조용한 공격을 찾아내기 위해서는 밖으로 나가는 트래픽의 '이례적인' 움직임을 모니터링해야 한다. 특히, 이례적인 RPC(Remote Procedure Call)와 SMB(Server Message Block) 통신을 잘 살펴야 한다. 방화벽에 차단 규칙을 만들어 두는 것도 좋다. 포트를 워크스테이션 또는 외부 방화벽 수준에서 차단해야 한다. 단, 이러한 차단 때문에 현재 네트워크에 좋지 않은 영향을 주는지도 함께 검토해야 한다. SMB v1 이하 및 더 취약한 프로토콜에 얼마나 의존하고 있는지 확인하는 것을 권한다.

미 국토안보부는 랜섬웨어 공격에 대응해 모든 경계 장치의 TCP 포트 445 그리고 UDP 포트 137~138 및 TCP 포트 139를 차단해 네트워크 경계에서 모든 SMB 버전을 차단하도록 권고한다. 

또한 인터넷 연결 RDP(Remote Desktop Protocol) 서버(터미널 서버)를 그 앞의 다인자 게이트웨이로 보호해 해커가 억지 기법(Brute Force)을 이용해 RDP 비밀번호를 빼내지 못하게 하고 비밀번호 재사용 공격을 이용해 액세스하지 못하도록 하는 것이 좋다. 다인자 인증을 사용할 수 없다면 NLA(Network-Level Authentication)를 활성화하고 LAPS(Local Administration Password Solution) 툴킷을 이용해 컴퓨터와 서버의 로컬 관리자 비밀번호를 무작위로 변경해야 보안을 강화할 수 있다.

이런 식으로 시스템을 검토하고 마더보드 목록을 작성하며 네트워크의 이례적인 외부 트래픽을 조사하면 PC 하드웨어와 하드웨어 드라이버 취약성을 방어할 수 있다. ciokr@idg.co.kr



2019.04.19

PC HW와 HW 드라이버 취약성을 방어하는 방법

Susan Bradley | CSO
최근 PC 업체 에이수스(Asus)는 2018년 6월부터 11월까지 해커가 에이수스 노트북 컴퓨터에 사전 설치되는 ALU(Asus Live Update) 앱을 이용해 컴퓨터에 백도어를 설치하는 사고가 발생했다고 확인했다. 카스퍼스키도 약 5만 7,000개 시스템에 백도어가 포함된 실시간 업데이트 소프트웨어가 설치됐다고 밝혔다. 에이수스는 업데이트 프로세스에 악성코드가 유입됐음을 인정하고 시스템에 악성 소프트웨어가 설치돼 있는지 확인하는 툴을 공개했다.
 
이 백도어 업데이트 프로그램은 특정 컴퓨터를 겨냥한 것으로 보인다. 조사 결과를 보면, 백도어 소프트웨어에는 MAC 주소를 나타내는 하드코딩 MD5 해시가 포함돼 있다. 즉 해커가 특성 하드웨어 시스템과 그룹, 특정 기업에 판매된 컴퓨터 등을 식별해 해당 기업 시스템에 접근을 시도했을 가능성이 크다. 따라서 현재 사용하는 시스템에 ALU가 설치돼 있다면 업데이트 조작을 방지하는 픽스(Fix)와 추가 메커니즘이 포함된 최신 3.6.9 버전을 설치해야 한다.
 
에이수스 툴은 목표가 된 기기를 찾아낸다.

PC 마더보드를 확인하는 방법
이번 에이수스 공격 이후 필자는 또 다른 취약성이 발생할 경우 시스템이 사용하는 마더보드를 판단하는 방법을 다시 찾아봤다. 시스템에 설치된 마더보드의 제조사와 모델을 확인하는 방법은 다양하다. 먼저 파워쉘에서 다음 명령어를 사용할 수 있다. 

Get-WmiObject win32_baseboard | select Manufacturer

그러면 마더보드 제조사의 이름이 화면에 표시될 것이다.
 
파워쉘 쿼리를 이용해 마더보드 제조사를 확인할 수 있다.
 
필자의 노트북에서 이 명령을 실행하자 다음과 같이 화면에 표시됐다. 
 
필자 노트북에서 실행하자 마더보드 제조사의 이름이 나타났다.
 
이처럼 마더보드를 식별하는 것은 간단하다. 필자가 사용하고 있는 노트북의 제조사가 레노버라는 것도 바로 확인할 수 있었다. 그러나 일부 제품은 더 복잡한 과정을 거쳐야 한다. 예를 들어 인텔의 아폴로 레이크 칩 기반 마더보드 제품군은 마더보드 제조사를 APL로 표시한다.

제조사를 식별하는 데 사용하는 광범위한 명령어는 네트워크에 대한 많은 정보를 제공한다. WMI(Windows Management Instrumentation)는 윈도우 전용 객체 식별 사전 정의 클래스다. _ComputerName 변수를 사용해 한 대 혹은 여러 대의 컴퓨터에 쿼리할 수 있다.

예를 들어, 다음 파워쉘 명령을 이용해 활성 디렉터리에 있는 바이오스, 프로세서, 마더보드 제조사에 관한 도메인 핵심 정보를 목록화해 제조사와 네트워크의 기기를 식별할 수 있다.

foreach($computer in $computers)
{
    Invoke-Command -ComputerName $computer -ScriptBlock {
        Get-WmiObject Win32_bios
        Get-WmiObject Win32_processor
        Get_WmiObject Win32_Baseboard
    }
}


하드웨어 드라이버도 취약
마더보드와 바이오스 업데이트와 마찬가지로 하드웨어 드라이버도 악의적인 활동의 표적이 되는 경우가 많다. 왜냐하면 관리자가 컴퓨터 시스템을 배치할 때 드라이버를 설치하고 업데이트하지 않는 경우가 많기 때문이다. 해커는 이런 드라이버를 표적으로 삼거나 악의적인 소프트웨어를 만들어 드라이버로 위장하곤 한다. 그러면 사용자는 시스템에 영구적인 백도어가 있어도 이를 알아차리지 못한다.

이런 조용한 공격을 찾아내기 위해서는 밖으로 나가는 트래픽의 '이례적인' 움직임을 모니터링해야 한다. 특히, 이례적인 RPC(Remote Procedure Call)와 SMB(Server Message Block) 통신을 잘 살펴야 한다. 방화벽에 차단 규칙을 만들어 두는 것도 좋다. 포트를 워크스테이션 또는 외부 방화벽 수준에서 차단해야 한다. 단, 이러한 차단 때문에 현재 네트워크에 좋지 않은 영향을 주는지도 함께 검토해야 한다. SMB v1 이하 및 더 취약한 프로토콜에 얼마나 의존하고 있는지 확인하는 것을 권한다.

미 국토안보부는 랜섬웨어 공격에 대응해 모든 경계 장치의 TCP 포트 445 그리고 UDP 포트 137~138 및 TCP 포트 139를 차단해 네트워크 경계에서 모든 SMB 버전을 차단하도록 권고한다. 

또한 인터넷 연결 RDP(Remote Desktop Protocol) 서버(터미널 서버)를 그 앞의 다인자 게이트웨이로 보호해 해커가 억지 기법(Brute Force)을 이용해 RDP 비밀번호를 빼내지 못하게 하고 비밀번호 재사용 공격을 이용해 액세스하지 못하도록 하는 것이 좋다. 다인자 인증을 사용할 수 없다면 NLA(Network-Level Authentication)를 활성화하고 LAPS(Local Administration Password Solution) 툴킷을 이용해 컴퓨터와 서버의 로컬 관리자 비밀번호를 무작위로 변경해야 보안을 강화할 수 있다.

이런 식으로 시스템을 검토하고 마더보드 목록을 작성하며 네트워크의 이례적인 외부 트래픽을 조사하면 PC 하드웨어와 하드웨어 드라이버 취약성을 방어할 수 있다. ciokr@idg.co.kr

X