BadUSB 공격 방어
BadUSB, 최근 공개된 USB의 취약점과 예방 방법
최근 폐쇄망을 공격 할 수 있는 "BadUSB"로 불리는 자동 해킹 USB의 PoC 내용이 상세하게 언론보도에 공개 되었습니다.".
BadUSB는 공격자가 특정한 USB 장치를 조작해서 해킹용 도구로 만들어서 공격하는 것입니다. USB 포트는 처음부터 유연한 확장성을 가지게 되었지만 각각 연결 가능한 장치에 관한 검증이나 보안에 관한 고려는 없었습니다.
공격자는 마이크로프로세서가 들어있는 일반적인 USB 장치를 조작하여 펌웨어(마이크로프로세서가 작동 하도록 하는 작은 개념의 OS)를 변경하여 악성코드 수행이나 자동 해킹 공격이 가능하도록 조작된 USB 장치로 변형하여 시스템을 공격하는 것입니다. 이 방법은 더 나아가 USB 포트에 삽입되는 모든 주변장치를 자동 해킹으로 컴퓨터를 공격하는 도구로 바꾸어 놓을 수도 있습니다.
사실 이 방법은 고도의 전문가가 아니면 매우 어렵지만, 이미 일부 해커를 지원하는 집단들에 의하여 저렴한 가격의 툴들이 공급되고 있습니다. 이런 툴을 구입한다면 초보해커도 충분히 사용 가능한 해킹 기술인 것입니다. 이런 위협을 경고해 온 여러 보안 연구가들은 취약성 입증을 위해 직접 펌웨어를 변조한 USB 저장 장치를 사용해서 실제로 해킹이 가능한 것을 대중에게 시연하였습니다.
변형된 USB 저장장치는 일정 잠복기가 지나면 마치 키보드처럼 작동해서 자동으로 명령어를 입력함으로써 변형된 USB 저장장치가 사용된 컴퓨터를 속입니다. 이 컴퓨터는 USB 포트를 통한 입력들이 사용자가 직접 손으로 타이핑해서 수행한 것인지, 아니면 조작된 USB 저장장치에서 보낸 것인지 구분할 수 없습니다. 컴퓨터 입장에서는 이 두 가지가 똑같이 키보드 입력으로 간주됩니다.
망분리 혹은 폐쇄망 상황에서 내부망의 서버 및 PC를 공격하는 가장 유효한 방법 중의 하나가 BadUSB 기술을 심은 USB장치를 사용하는 것입니다
BadUSB 위협은 최근에 실제로 입증 되었지만, 실은 10년도 더 전부터 USB 기술이 소개되면서부터 제기 되어왔습니다. 이것은 USB와 같은 공개된 기술 표준과 Windows OS와 같은 널리 사용되는 보편적인 운영체제들의 약점이기도 합니다. 운영체제들은 USB 하드웨어의 펌웨어를 확인할 수 있는 별도의 내장 옵션을 갖고 있지 않기 때문에 USB 포트에 연결된 어떠한 하드웨어라도 운영체제가 승인하는 장치로 인식합니다. 응용 프로그램의 실행파일인 경우에 운영체제는 "코드 사인(Code Signing)" 이라는 프로세스를 통해 무결성과 공급자를 검증합니다. 이런 코드 사인 검증 체계는 USB 장치의 펌웨어를 확인하지는 않지만, USB 펌웨어를 검증하기 위한 체계의 구축은 운영체제 및 USB 장치의 개발자들에게 숙제가 되었습니다.
BadUSB 방식을 통한 공격이 발생했을 경우, 피해를 입은 컴퓨터는 어떠한 종류의 악성코드에도 감염될 수 있습니다. 안티바이러스(혹은 안티Malware) 솔루션은 이러한 감염을 탐지할 수도, 탐지하지 못할 수도 있습니다. 공격을 받은 컴퓨터가 무력화되기까지 몇 시간 혹은 며칠이 걸릴 수도 있지만 이렇게 진행이 되면 너무 늦게 됩니다.
그렇다면 BadUSB의 위험에서 안전하게 컴퓨터를 사용하기 위해서 무엇을 해야 할까요?
1. 신뢰 할 수 있고 잘 알려진 제조사에서 만들거나, 출처를 신뢰할 수 있는 USB 장치만 사용하십시오. 예를 들면 Logitech에서 나온 마우스 또는 키보드 등 말입니다.
2. 안티바이러스 및 안티Malware 프로그램을 항상 최신 버전으로 유지합니다. 물론 조작된 펌웨어를 스캔 할 수는 없지만 BadUSB가 악성코드를 실행하려 한다면 도움이 될 것입니다.
3. Endpoint Protector 5와 같은 매체 제어 및 장치관리 솔루션을 사용하여 서버 및 PC에 연결되는 장치들을 감시하고 통제합니다.
Endpoint Protector 5는 이런 종류의 BadUSB 공격에서 다음과 같이 네트워크의 서버 및 PC를 보호 할 수 있습니다.
Endpoint Protector 5의 개선된 장치제어 기능은 추가적인 USB 키보드 및 USB 모뎀을 식별하고 관리할 수 있게합니다. 따라서 승인되지 않은 추가 장치들은 자동으로 차단되고 BadUSB에 대한 보호가 구현됩니다.
1. Endpoint Protector 에이전트를 PC 및 서버에 설치하고 "Additional Keyboard" 및 "USB Modem"을 차단하도록 매체 제어 기능을 사용합니다.
2. USB 장치에 대한 정책을 설정합니다. USB 포트는 "차단"을 기본으로 사용하고, "읽기 허용"으로 사용하지 않습니다. 업무에 필요한 USB 저장장치는 각각의 장치에서 읽기가 허용된 PC 혹은 서버를 지정하여 USB 포트가 "차단"으로 유지된 상태에서 선택적으로 허용합니다. 이를 위해서는 USB 저장장치의 등록이 필요합니다.
3. 사용을 마친 USB 장치들을 포트에 연결하여 두지 않습니다. 또한 허용되지 않은 USB 장치가 연결되는 경우 "차단"과 동시에 즉시 확인합니다.
-
Endpoint Protector 는 매체 제어 제품 및 자료유출방지 제품 규격 뿐 아니라 BadUSB에 대한 테스트 역시 모두 통과한 Global 보안 제품입니다.
동작 순서
보호하기 위해서 할 수 있는 방법
알고 있는 제조사의 USB 장치만 연결 합니다.
(예> 신뢰할 수 있는 제조사의 키보드 및 마우스 등)
항상 안티-악성코드 프로그램을 업데이트 합니다.
펌웨어를 스캔하지 않지만 BadUSB의 설치 또는 안성 코드의 실행을 탐지해야 합니다.
컴퓨터에 연결된 장치의 사용을 모니터링하는
Endpoint Protector 같은 매체 제어 솔루션을 사용합니다.
컴퓨터 사용자 계정에 강력한 비밀번호를 사용하고
결코 로그인 상태에서 자리를 비우지 않습니다.