해커로부터 펌웨어 및 하드웨어를 보호하는 방법 (1) "퍼징(Fuzzing)을 사용한 문제 해결"

기술 / 문광주 기자 / 2023-01-29 09:19:11
2'50" 읽기
- 임베디드 시스템의 펌웨어에서 취약점과 해커의 액세스 가능성을 확인하는 것은 어려워
- 퍼징(fuzzing)을 사용하여 프로그램 코드의 오류를 감지
- Fuzzer는 테스트할 소프트웨어에 무작위 입력을 제공하고 이를 사용해 애플리케이션을 충돌시킬 수 있는지 확인하는 알고리즘

민감한 시스템 보호
새로운 방법이 해커로부터 펌웨어 및 하드웨어를 보호하는 방법


세상은 점점 더 IT 시스템에 의존하고 있지만 이로 인해 일상적인 기술과 중요 인프라도 취약해진다. 공격자는 펌웨어 또는 하드웨어 자체의 취약성을 사용하여 데이터에 액세스할 수 있다. Ruhr University Bochum의 IT 연구원들은 이러한 공격으로부터 민감한 기술을 보호하기 위한 새로운 방법을 개발하고 있다.

▲ 팀은 이와 같은 산업용 제어 장치의 펌웨어를 테스트한다. © Michael Schwettmann/ RUB

스마트 전구, 지능형 온도 조절 장치 또는 산업 플랜트 및 기타 중요 인프라용 제어 소프트웨어 등 컴퓨터는 오랫동안 우리가 거의 알아채지 못하는 곳에 있다. 그러나 이러한 임베디드 시스템의 펌웨어에서 취약점과 해커의 액세스 가능성을 확인하는 것은 지금까지 어려웠다. 해커가 이를 통해 데이터에 액세스할 수 있기 때문에 카드 판독기와 같은 민감한 시스템을 하드웨어 조작으로부터 보호하는 데에도 동일하게 적용된다. 바로 이 시점에서 Ruhr University Bochum의 IT 연구원들의 작업이 시작됐다.

코드 정글에서의 맨헌트(Manhunt)
임베디드 시스템에서 취약점을 찾는 방법은 무엇일까?


프로그램 코드는 정글과 비슷하다. 복잡하고 외부에서 확인하기 어려우며 통과할 수 있는 경로가 무수히 많다. 이러한 코드에서 취약점을 찾는 것은 정글의 나무 사이에서 동물을 찾는 것과 같다. 동물이 있다는 것을 알지만 직접 볼 수는 없다. Ruhr University Bochum의 토비아스 샤르노브스키Tobias Scharnowski는 그의 지도교수인 토르스틴 홀츠Thorsten Holz와 함께 1과 0의 정글에서 프로그래밍 오류를 효율적으로 추적하는 새로운 방법을 개발하고 있다.

스마트 냉장고에서 산업용 시스템까지

연구원들은 특히 임베디드 시스템에 관심이 있다. "우리는 대부분 사람이 컴퓨터인지조차 모르는 컴퓨터의 보안을 강화하려고 노력하고 있다." 임베디드 시스템은 더 큰 시스템(예: 자동차의 전자 시트 제어) 내에서 특정 목적을 수행하는 하드웨어와 소프트웨어의 조합이다.

본질적으로 임베디드 시스템은 좁은 목적을 수행하는 컴퓨터다. 스마트 전구, 인터넷에 연결된 냉장고 또는 지능형 온도 조절 장치는 시스템 보안 연구원의 의제에 포함된 임베디드 시스템의 예다. 이러한 항목에는 오류가 발생할 수 있는 여러 줄의 프로그램 코드가 포함된 전자 제어 기술이 포함되어 있다.

IT 전문가들이 생활용품에만 관심이 있는 것은 아니다. 무엇보다도 그들은 예를 들어 에너지 공급과 같은 중요한 인프라 영역과 같은 산업 제어 시스템에 관심이 있다. 보안 틈새는 여기에서 특히 극적인 영향을 미칠 수 있다.

퍼징을 사용한 문제 해결

Scharnowski와 Holz는 소위 퍼징(fuzzing)을 사용하여 프로그램 코드의 오류를 감지한다. Fuzzer는 테스트할 소프트웨어에 무작위 입력을 제공하고 이를 사용해 애플리케이션을 충돌시킬 수 있는지 확인하는 알고리즘이다. 이러한 충돌은 프로그래밍 오류를 나타낸다. fuzzer는 가능한 한 많은 프로그램 구성 요소를 단계별로 탐색하기 위해 입력을 반복적으로 변경한다.

예를 들어 퍼징은  Windows 또는 Linux와 같은 운영 체제를 테스트하기 위해 특정 응용 프로그램 영역에 대해 이미 설정되었다. 반면에 임베디드 시스템은 광범위하게 연구되지 않았다. 많은 문제가 있기 때문이다. 소프트웨어(소위 펌웨어)는 상호 작용하는 하드웨어에 내장되어 있다.

연구원들은 일반적으로 하드웨어와 작동 방식에 대한 정보가 거의 없다. Thorsten Holz는 "이것은 우리에게 블랙박스와 같다"고 말했다. 이 블랙박스는 일반적으로 특별히 강력하지 않다. 시스템에는 메모리가 상대적으로 적고 프로세서가 느린 경우가 많다. 연구원이 시스템에서 직접 퍼징을 수행하려는 경우 문제가 된다. 가능한 모든 입력을 시도하고 시스템이 응답할 때까지 기다리는 데 너무 오래 걸린다. (계속)

[더사이언스플러스=문광주 기자]

[ⓒ the SCIENCE plus. 무단전재-재배포 금지]