검색 상세

BadUSB 취약점 분석 및 대응 방안에 관한 연구

초록/요약

BadUSB 취약점은 이동형 저장 장치인 USB 플래시 드라이브의 펌웨어 영역을 변조한 취약점이다. USB 장치를 호스트에 연결할 때, BadUSB 장치 안에 악의적인 코드가 실행된다. 호스트는 이러한 악의적인 행위를 USB 부팅 시 일반적인 행위로 인식하므로, 악의적인 코드를 탐지하기 힘들다. 또한 안티바이러스 제품은 펌웨어 영역이 아닌 스토리지 영역에 대해 검사를 수행하기 때문에 수정된 펌웨어를 탐지할 수 없다. USB 통신 규격은 이동형 저장 장치나 키보드와 같이 다양한 용도로 사용되기 때문에 취약점 발생 시 파급효과가 크지만, 현재로서는 USB 취약점을 방비하기 위한 대응책은 알려진바 없다. 본 논문에서는 일반적인 USB 장치가 BadUSB 장치로 변경되었을 때의 변조된 펌웨어 영역을 분석하고, USB 부팅 시 해당 영역에 대한 무결성 검증을 통한 대응방안을 제시한다. 제안하는 방식은 두 개의 단계로 구성되어 있다. 첫 번째 방식은 펌웨어가 업데이트 되더라도 고정되어야 하는 영역에 대한 무결성 검증이다. 검증 방식은 해시 값을 사용하며, 대상 영역은 디스크립터 등의 고정 영역이다. 두 번째 방식은 펌웨어 업데이트 시 변경되는 영역에 대한 무결성 검증이다. 검증 방식은 코드 서명을 이용하며, 대상 영역은 펌웨어 내장 함수 등의 가변 영역이다. 또한 제안하는 구조에 맞는 업데이트 프로토콜을 함께 제안하며, 시뮬레이션을 통해 제안하는 내용에 대해서 검증한다.

more

초록/요약

As the BadUSB is a vulnerability, in which a hacker tampers the firmware area of a USB flash drive. When the BadUSB device is plugged into the USB port of a host system, a malicious code acts automatically. The host system misunderstands the act of the malicious behavior as an normal behaviour for booting the USB device, so it is hard to detect the malicious code. Also, an antivirus software can’t detect the tampered firmware because it inspects not the firmware area but the storage area. Because a lot of computer peripherals(such as USB flash drive, keyboard) are connected to host system with the USB protocols, the vulnerability has a negative ripple effect. However, the countermeasure against the vulnerability is not known now. In this paper, we analyze the tampered area of the firmware when a normal USB device is changed to the BadUSB device and propose the countermeasure to verify the integrity of the area when the USB boots. The proposed method consists of two procedures. The first procedure is to verify the integrity of the area which should be fixed even if the firmware is updated. The verification method use hashes, and the target area includes descriptors. The second procedure is to verify the integrity of the changeable area when the firmware is updated. The verification method use code signing, and the target area includes the function area of the firmware. We also propose the update protocol for the proposed structure and verify it to be true through simulation. ii

more

목차

1 서론 1

2 관련 연구 3
2.1 BadUSB 관련 연구 . . . . . . . . . . . . . . . . . 3
2.2 분석 . . . . . . . . . . . . . . . . . . . . . . . 5

3 제안 방법 10
3.1 1단계 펌웨어 고정 영역 무결성 검증 . . . . . . . 12
3.2 2단계 펌웨어 가변 영역 무결성 검증 . . . . . . . 15
3.3 펌웨어 업데이트 프로토콜 . . . . . . . . . . . . 18

4 시뮬레이션 및 검증 20
4.1 무결성 검증 시뮬레이션 . . . . . . . . . . . . . 21
4.2 업데이트 내용 시뮬레이션 . . . . . . . . . . . . 23

5 결론 25

more