
펌웨어 공격은 소프트웨어 공급망에 상당한 위험을 초래하며, 악명 높은 기가바이트 UEFI 펌웨어 백도어가 이를 강조하고 있습니다. 펌웨어 취약점은 일반적으로 탐지하기 어렵고, 대부분의 엔드포인트 보안 솔루션의 레이더 아래에 존재하며, OS를 재설치한 후에도 지속될 수 있습니다. 이 기술 블로그 게시물에서는 펌웨어 백도어가 어떻게 작동하는지, 왜 기가바이트 사건이 산업계에 충격을 주었는지, 최신 도구가 그러한 위협을 어떻게 밝히는지, 보안 실무자들이 이러한 고급 공격을 방어하기 위해 무엇을 할 수 있는지를 배우게 될 것입니다. 초급에서 고급 개념을 다루고, 실제 사례를 해부하고, 포렌식 기술을 직접 보여드리며, 스캔 및 자동화를 위한 실용적인 Bash 및 Python 코드 예제를 제공합니다.
펌웨어는 하드웨어와 직접 인터페이스하는 가장 낮은 계층의 소프트웨어로, 일반적으로 마더보드, 디스크 드라이브, 네트워크 카드 등에 있는 재기록 가능한 플래시 메모리 칩에 저장됩니다. 이들의 특권적 기반 및 지속성 때문에 펌웨어 백도어는 과도한 위험을 제기합니다. 하나의 손상된 펌웨어 업데이트는 비밀 채널을 생성할 수 있으며, OS 수준의 방어를 우회하고 모든 드라이브가 삭제된 후에도 은밀히 지속될 수 있습니다.
최근의 고유명사 사례들, 특히 기가바이트 마더보드 UEFI 펌웨어 백도어는 신뢰할 수 있는 공급업체가 실수로 취약하거나 악성 펌웨어를 배송할 수 있음을 보여주었으며, 수백만 대 시스템의 위험을 초래했습니다. 이 위협은 현대 공급망 보안이 직면한 문제와 강력한 펌웨어 포렌식의 필요성을 강조합니다.
펌웨어는 현대 컴퓨팅 플랫폼의 부팅을 위해 필수적입니다. 펌웨어는 부팅 시 하드웨어를 초기화할 뿐만 아니라 공급업체 서명된 패키지를 통해 안전하게 업데이트할 수 있습니다. 그러나 펌웨어의 보편성과 복잡성은 상당한 위험을 초래합니다:
공급망은 완성된 장치를 전달하기 위해 공급업체, 개발자, 통합업체가 함께 작업하는 네트워크입니다. 사고, 악성코드, 국가 행위자 등으로 인해 어느 링크가 취약점을 도입하더라도 모든 하류 장치는 손상될 수 있습니다.
2023년 5월, Eclypsium 및 ReversingLabs의 연구원들은 충격적인 연구 결과를 발표했습니다: 기가바이트 마더보드 270개 이상의 모델이 원격으로 악용될 수 있는 숨겨진 백도어를 포함한 채로 배송되었습니다.
기가바이트 백도어는 마더보드의 SPI 플래시 칩에 위치한 일반적인 UEFI 펌웨어 바이너리로부터 발생했습니다. 이 바이너리는 다음 논리를 포함하고 있었습니다:
GigabyteUpdateService.exe, 기가바이트의 클라우드 서버에서 HTTP(암호화되지 않음)로 코드를 가져와 SYSTEM 권한으로 호스트에서 실행했습니다.중요하게도, 이 모든 것이 사용자나 OS의 명시적인 동의 없이 발생했으며, 업데이트 엔드포인트는 평문 HTTP 채널을 사용하여 현대 보안 가정을 위반하였습니다.
+-----------------------+
| UEFI Firmware |----> Installs
+-----------------------+ (at OS boot)
|
v
+--------------------------+
| GigabyteUpdateService.exe|
+--------------------------+
|
v
Fetches Updates via HTTP ---> Executes as SYSTEM
기가바이트 백도어는 우리의 소프트웨어 공급망의 취약성을 보여줍니다:
펌웨어 임플란트를 탐지하고 해부하는 데는 일반적인 OS 기반 악성코드 분석과는 다른 전문적인 포렌식이 필요합니다. 비교부터 ELF 역공학까지 실용적인 분석을 탐구해 봅시다.
장치에 따라, flashrom 같은 저수준 유틸리티를 사용하거나 공급업체 도구를 사용하여 펌웨어를 추출합니다:
# Linux에서, 루트 권한 및 지원되는 하드웨어로
sudo flashrom -p internal -r gigabyte_spi_dump.bin
악의적인 수정을 찾기 위해 추출된 펌웨어 이미지를 비교합니다:
# 바이너리 수준 비교
cmp -l firmware_v1.bin firmware_v2.bin
# 시각적 차이를 위해 hd, xxd, 또는 radare2 사용
xxd firmware_v1.bin > f1.hex
xxd firmware_v2.bin > f2.hex
diff f1.hex f2.hex
binwalk을 사용하여 펌웨어 섹션을 분리합니다:
# UEFI 모듈 및 압축 엔티티 추출
binwalk -e gigabyte_spi_dump.bin
# 분리된 파일 나열 및 PE/ELF 섹션 분석
ls _gigabyte_spi_dump.bin.extracted/
file _gigabyte_spi_dump.bin.extracted/*
공격자는 종종 모듈을 추가하거나 수정합니다. 빌드 타임스탬프를 추출하고 공급망 이벤트를 정렬하여, IR팀은 조직적 맥락 내에서 의심스런 변경을 찾을 수 있습니다.
import pefile
pe = pefile.PE("GigabyteUpdateService.exe")
print("Compile time:", pe.FILE_HEADER.TimeDateStamp)
매니페스트 파일 또는 UEFI 캡슐 메타데이터 비교:
strings firmware_old.bin | grep -i "Build" > old_buildinfo.txt
strings firmware_new.bin | grep -i "Build" > new_buildinfo.txt
diff old_buildinfo.txt new_buildinfo.txt
많은 UEFI 펌웨어 구성 요소는 표준 PE32(Windows) 또는 ELF(Linux) 바이너리입니다.
find _extracted_firmware/ -type f | xargs file | grep -E "ELF|PE32"
예: 의심스러운 바이너리 검사
radare2 -A suspicious_module.efi
# 또는
ghidraRun
# 그런 다음 suspicious_module.efi를 로드하고 디컴파일
strings suspicious_module.efi | grep -i -E "http|socket|connect"
펌웨어 컨텍스트에서의 의심스러운 네트워크 로직은 경고 신호입니다.
하드코딩된 C2 IP 또는 HTTP 엔드포인트를 탐지하기 위한 YARA 규칙 작성:
rule GigabyteUEFI_HTTP {
strings:
$http = "http://mb.download.gigabyte.com"
condition:
$http
}
히트 검색:
yara GigabyteUEFI_HTTP.yara _extracted_firmware/
BombShell 사건은 Framework 장치에서의 또 다른 공급망 백도어를 보여주며, 이번에는 서명된 UEFI 드라이버에 있었습니다. 드라이버는 서명이 잘못된 합법성을 제공하며 직접 최종 고객에게 배송되었습니다.
보안 팀은 점점 더 UEFI/BIOS에 대한 전문 스캐너를 의존하고 있습니다. 예로는:
예: CHIPSEC으로 스캔하기
# 종속성 설치
sudo apt install python3-pip build-essential
pip3 install chipsec
# 기본 검사 실행
sudo chipsec_util uefi decode
sudo chipsec_main -m tools.uefi.find_guids
Eclypsium 또는 EDR 로그가 의심스러운 지속성을 드러낸다면, 프로그램적으로 출력을 파싱하세요:
# 샘플 출력
cat eclypsium_scan.log | grep -i suspicious
import re
with open("chipsec_results.txt") as f:
for line in f:
if "suspicious" in line.lower() or re.search(r"http://", line):
print("ALERT:", line.strip())
ls -l /Windows/System32/drivers/ | grep -v "Microsoft"
title: 비인가 펌웨어 업데이터 탐지
logsource:
product: windows
service: system
detection:
selection:
Image|contains: 'GigabyteUpdateService.exe'
ParentImage|contains: 'wininit.exe'
condition: selection
level: high
펌웨어 수준 공급망 위협에 대한 강력한 전략을 수립하려면 다방면적인 접근이 필요합니다.
펌웨어 백도어 — 기가바이트 및 BombShell 사건에서 본 것처럼 — 공격자와 방어자 모두에게 새로운 전선이 되었습니다. 펌웨어가 하드웨어와 소프트웨어 간에 투명하게 가교 역할을 하므로, 공급망이 손상되면 가장 보안 의식이 높은 조직조차 취약해질 수 있습니다.
주요 교훈:
펌웨어 분석 기술을 마스터하고, 보안 제일의 공급망 관리 문화를 채택함으로써, 조직은 이러한 새로운 위협을 방어하고 미래 백도어의 잠재적 영향을 줄일 수 있습니다.
더 많은 펌웨어 포렌식 또는 공급망 보안 워크스루를 보길 원하십니까? 댓글을 남기거나 트위터에서 연결하세요!
이 콘텐츠가 유용하다고 생각하셨다면, 저희의 포괄적인 47주 엘리트 교육 프로그램으로 무엇을 달성할 수 있을지 상상해 보세요. Unit 8200 기술로 경력을 변화시킨 1,200명 이상의 학생들과 함께하세요.