방망이
[프로젝트]UEFI DXE 바이너리 취약점 분석기 8주차 - Ghidra Script 로직 보강 본문
이번 주에는 지난 주에 여러 취약점을 추가한 기드라 스크립트에 필요한 로직 보강과 추가 취약점 분석을 추가하는 방향으로 진행하였다.
[수정 사항]
- 논리식 평가 고도화
- 빈 DEPEX (Empty DEPEX) 조기 탐지 로직 추가 및 Apriori 파일에 존재하는 드라이버일 경우 제외 처리 추가
- OP_SOR 오프코드 처리 방식 수정
- 프로토콜 제공자(Provider) 추론 로직 경량화
- 악성 코드가 들어있는 드라이버를 하나 정의하고, DEPEX에 그 드라이버의 GUID가 존재한다면 잡아내는 취약점 추가
- 취약점 탐지라는 핵심 목적과 무관하게 폴더에 생성되던 dependency_graph.txt 및 protocol_providers.txt 관련 변수 (graphWriter, protocolWriter)와 생성 메서드 삭제
- 이 외의 자잘하게 로직 보강
GhidraDepexHunter_v8.java
0.05MB
위 수정 사항 외에 필요한 부분은 아래와 같다. 다음주부터 보강할 계획이다.
[수정 예정 사항]
- SOR 연산 로직 보강 필요 ( -> 굉장히 까다로움)
- bypass (TRUE OR), dead (FALSE AND)에 대해 좀 더 알아보기
- simplifyExpression 함수 로직 보강 필요 (AST 기반 parser 필요할듯)
- Missing protocol 로직 보강 필요 -> 많은 protocol이 DXE Driver가 제공하는 것은 맞지만, SMM core, PEI phase, Platform code 등에서 제공되는 경우도 존재. 이에 대한 보강 필요.
- currentProgram.getMemory().findBytes(...) 로직 보강 필요 (GUID Search 로직)
- Malicious GUID detection 로직 보강 필요(Protocol GUID와 Driver GUID 구분 필요 -> 일반적인 AND/OR 조합에서 쓰는 guid는 protocol, before/after 조함에서 쓰는 guid는 driver)
- protocol provider inference 로직 보강 필요 (휴리스틱함)
현재 8개의 취약점을 탐지하고 있는데, 가장 치명적이고 중요한 취약점을 소량 정하여 집중적으로 탐지하면서 오탐률을 줄이는 것이 좋을 것 같다는 생각이 들었다.
이제 앞으로 진행할 부분에 대해 정리를 해보자면,
- 성능 실험
- 위 [수정 예정 사항] 부분 로직 보강 및 조사
- 탐지하면 좋을만한 취약점 추가 조사 및 CVE 조사
- 취약점 조사를 마치고, 그 중 4~5개정도 추려서 기준을 잡은 후 집중적으로 로직 보강 및 정확도 올려나가기
- 타임스탬프 찍기
[교수님, 팀원분들과 상의할 내용]
- 지난주에 protocol_providers.txt 파일(protocol을 제공해주는 driver 정리)과 dependency_graph.txt 파일(DEPEX를 기반으로 한 의존성 그래프)을 생성 했었는데, "취약점 탐지 스크립트"라는 주제와는 살짝 멀어진 것 같아서 이번주에는 뺀 상황. 이를 복구시키는 것이 좋을지, 아니면 유지하는 것이 좋을지
- 취약점 4~5개에 집중하는 것이 괜찮을지
- JSON 파일 형식 정확히 정하기


'2026_졸업프로젝트' 카테고리의 다른 글
| [프로젝트]UEFI DXE 바이너리 취약점 분석기 10주차 - Ghidra Script 수정 (0) | 2026.03.29 |
|---|---|
| [프로젝트]UEFI DXE 바이너리 취약점 분석기 9주차 - 취약점 선정 및 Ghidra Script 수정 (0) | 2026.03.18 |
| [프로젝트]UEFI DXE 바이너리 취약점 분석기 7주차 - Ghidra Script 작성 (0) | 2026.02.28 |
| [프로젝트]UEFI DXE 바이너리 취약점 분석기 6주차 - DXE Dispatcher 취약점 및 Ghidra Script 작성 (0) | 2026.02.26 |
| [프로젝트]UEFI DXE 바이너리 취약점 분석기 5주차 - DEPEX 확인법/Ghidra Script 기본 틀 (0) | 2026.02.26 |
