LOLDrivers 조회
BYOVD는 정상 서명을 통과하므로 서명 검증만으로는 잡히지 않는다. 해시 대조는 정적 탐지의 핵심 경로 중 하나이지만, 유일한 축은 아니다. 서명 상태·로드 이벤트·경로·타임라인이 함께 움직인다. 이 페이지는 조회와 판정 흐름만 다룬다. exploit 재현·드라이버 로드 절차는 없다.
LOLDrivers란
Living Off The Land Drivers. 정상적으로 서명됐지만 커널 읽기·쓰기 API를 노출하는 취약 드라이버의 커뮤니티 카탈로그다.
| 항목 | 값 |
|---|---|
| 사이트 | loldrivers.io |
| 관리 | magicsword-io 커뮤니티 + MS Vulnerable Driver Blocklist 연계 |
| 규모 | 660+ 드라이버(vulnerable 545, malicious 115; 수록 수는 계속 갱신된다). 샘플 해시는 드라이버당 여러 개라 더 많다 |
| 데이터 | 드라이버별 SHA256, CVE, 서명자, 카테고리, 검증 상태 |
| 탐지 산출물 | Sigma 룰, Sysmon 설정(해시 목록), MDE 쿼리 등 저장소에 동봉 |
공격자는 이 드라이버를 BYOVD 방식으로 호스트에 가져와 커널 접근을 얻는다. 드라이버 자체가 정당한 벤더 서명을 갖고 있어 서명 검증만으로는 탐지되지 않는다.
한계를 먼저 안다
- 해시가 다르면 못 잡는다. 같은 드라이버라도 재서명·리빌드·패치되면 해시가 바뀐다. 카탈로그는 KnownVulnerableSamples에 등재된 샘플 해시만 잡는다.
- 카탈로그 밖은 안 잡힌다. 아직 수집 안 된 취약 드라이버는 조회되지 않는다. Microsoft도 자사 차단 목록이 "모든 취약 드라이버를 포함한다고 보장되지 않는다"고 명시한다.
- Verified 표기의 차이. 카탈로그 항목에는 커뮤니티 검증이 끝난 것과 아닌 것이 있다. 미검증 항목은 힌트로만 쓴다.
- 히트는 존재의 확인이다. 파일이 카탈로그에 있다는 것이지, 악용됐다는 뜻이 아니다. 로드·사용은 서비스 이벤트·CI 로그·타임라인이 증명한다.
SS에서 왜 중요한가
- Ring0 체크에서 서명이 유효해도 LOLDrivers 히트 여부가 핵심 분기점이다.
- 정상 사용과 악용을 가르려면 카탈로그 대조 + 관련 소프트웨어 설치 여부 확인이 둘 다 필요하다.
- BYOVD는 서명 검증을 통과하므로 "이 파일이 알려진 취약 드라이버인가"를 묻는 정적 대조가 로드 이벤트·서명·경로 축과 나란히 필요하다.
조회 방법
1. 웹 검색
loldrivers.io 검색창에 드라이버 파일명 또는 SHA256을 넣는다. 파일명 검색은 같은 이름을 쓰는 다른 샘플이 섞여 나올 수 있으므로 해시로 좁힌다. 결과에서 볼 것:
| 필드 | 쓰임 |
|---|---|
| Category | vulnerable driver / malicious |
| Verified | 커뮤니티 검증 여부 |
| CVE | 할당된 경우 |
| Signer | 원래 서명자. FP 판단의 1차 근거 |
| KnownVulnerableSamples | 등재된 샘플 해시 목록 |
2. 해시 수집과 대조 (권장)
Get-FileHash C:\Windows\System32\drivers\<의심파일>.sys -Algorithm SHA256
Get-FileHash C:\Windows\System32\drivers\*.sys -Algorithm SHA256 |
Export-Csv -Path drivers-hash.csv -NoTypeInformation계산된 SHA256을 사이트나 로컬 카탈로그와 대조한다. 의심 파일이 System32\drivers 바깥(Temp·AppData·게임 폴더)에 있으면 그 경로의 .sys도 같은 방법으로 수집한다.
3. API (대량 대조)
GET https://www.loldrivers.io/api/drivers.jsonJSON 배열로 전체 카탈로그가 온다. 각 항목의 KnownVulnerableSamples[].SHA256 필드가 대조 키다. 로컬에서 비교하면 수집한 해시 목록을 카탈로그 해시 세트와 교집합으로 계산할 수 있다.
4. 저장소의 탐지 룰
LOLDrivers 저장소에는 이 카탈로그를 자동 탐지로 쓰는 산출물이 있다: Sigma 룰 driver_load_win_vuln_drivers.yml(Sysmon 이벤트 6 DriverLoaded 기반), Sysmon 설정의 취약 드라이버 해시 목록 등. 대상 머신에 Sysmon이 이미 구성돼 있는 환경이라면 이벤트 6 로그에 등재 해시가 그대로 남는다. SS 중 새로 설치·배포하지 않는다. 있는 환경에서 읽는 용도로만 쓴다.
5. 로컬 교차
로드된 .sys 목록 → SHA256 → 카탈로그 해시 세트와 교집합 → 히트 목록.
전체 drivers\ 폴더 스캔은 현장에서 시간을 잡아먹는다. 의심 드라이버 단건 조회가 실무적이다.
자주 만나는 드라이버
| 드라이버 | 벤더 (원래 목적) | CVE | 정상 사용 확인 | 악용 이유 |
|---|---|---|---|---|
| RTCore64.sys | MSI (오버클럭·모니터링) | CVE-2019-16098 | MSI Afterburner / RTSS | 커널 임의 메모리 R/W |
| WinRing0x64.sys | OpenLibSys (하드웨어 IO) | — | HWiNFO64, HWMonitor, CPU-Z, OHM | 커널 IO 포트 접근 |
| gdrv.sys | GIGABYTE (시스템 관리) | CVE-2018-19320 | GIGABYTE App Center, SIV | 임의 메모리 접근 |
| dbutil_2_3.sys | Dell (펌웨어 업데이트) | CVE-2021-21551 | Dell SupportAssist, Command Update | 권한 상승 |
| AsUpIO.sys | ASUS (오버클럭) | — | ASUS AI Suite, Armoury Crate | 커널 메모리 읽기 |
| ene.sys | ENE Technology (RGB) | — | ASUS Armoury Crate, 일부 ASUS 보드 | 커널 IO |
| Speedfan.sys | Speedfan (팬 제어) | CVE-2007-5633 | Speedfan 유틸리티 | 커널 R/W |
| AsIO.sys / AsIO2.sys | ASUS (하드웨어 IO) | — | ASUS 계열 유틸리티 | 하드웨어 직접 접근 |
| echo_driver.sys | Inspect Element Ltd. (SS 스캐너 Echo의 드라이버) | CVE-2023-38817(제작사가 이의를 제기한 CVE) | 이번 검사·이전 SS의 Echo 실행 이력 | 접근 제어 결함으로 임의 메모리 R/W, 토큰 탈취로 권한 상승 |
RTCore64.sys는 BYOVD 악용과 정상 사용이 모두 흔한 드라이버다. MSI Afterburner 설치 여부가 1차 분기점이다.
echo_driver.sys는 SS 도구 자체의 드라이버다. LOLDrivers는 2023-07-14에 이 드라이버를 검증된(Verified) 취약 드라이버로 등재했고, 접근 제어가 약해 공격자가 임의 메모리를 읽고 쓸 수 있으며 토큰 탈취로 쉽게 권한을 올릴 수 있다고 설명한다. 등재 샘플 5개는 모두 HVCI가 켜진 환경에서 로드되지 않는 것으로 기록돼 있다. NVD의 CVE-2023-38817(2023-10-11 게시)은 Echo.ac v5.2.1.0의 echo_driver.sys에 조작한 명령을 보내 로컬 공격자가 권한을 얻을 수 있다는 내용이고, 제작사는 사용자 모드 앱이 SYSTEM 권한으로 코드를 실행할 수 있다는 보고 내용을 Microsoft가 이미 비활성화했다며 이의를 제기했다. 대상 PC에서 발견되면 먼저 이번 검사나 이전 SS에서 Echo를 돌린 흔적인지 확인하고, 그 이력과 맞지 않으면 BYOVD 후보로 다룬다.
이 표는 카탈로그의 일부 발췌다. 최신 등재 여부는 loldrivers.io에서 직접 확인한다.
히트 판정 흐름
FP 체크에서 보는 것:
- 서명자·벤더: 카탈로그의 Signer와 파일의 Authenticode 서명자가 같은지. 같은 이름의 다른 파일일 수 있다.
- 설치된 소프트웨어: 해당 벤더의 유틸리티가 실제로 설치돼 있는지.
dbutil_2_3.sys인데 Dell 유틸리티가 없다면 설명이 필요하다. - 서비스·타임라인: 7045 이벤트의 생성 시각, 로드 시각(CI 이벤트·Sysmon 6), 게임 세션과의 정렬.
| 조건 | 판정 방향 |
|---|---|
| 히트 단독 | Confirmed 금지 |
| 히트 + Ring3 로더 흔적(PF+USN+BAM) + FP 배제 + 타임라인 교차 | Confirmed 가능 |
| 히트 + 관련 소프트웨어 설치 + 서비스 생성·로드 시각과 경로가 설치 이력과 맞음 | FP. 증거에 기록 |
| 히트 + 관련 소프트웨어 설치 + 서비스 생성이 게임 세션 직전이거나 경로가 설치 경로 밖 | 리드. Ring3 교차로 판단 |
| 히트 + 관련 소프트웨어 없음 + Ring3 교차 없음 | Suspicious |
Microsoft 취약 드라이버 차단 목록과의 관계
LOLDrivers는 조회용 카탈로그고, Microsoft의 Vulnerable Driver Blocklist는 Windows가 강제하는 차단 정책이다. 둘은 목적이 다르다.
- Microsoft 차단 목록은 알려진 취약점이 있는 드라이버, 악성 행위를 하거나 악성 인증서로 서명된 드라이버, Windows 보안 모델을 우회하는 드라이버를 대상으로 한다.
- Windows 11 2022 업데이트 기기에서는 기본으로 켜져 있고, HVCI·Smart App Control·S 모드가 켜진 환경에서도 강제된다(문서에 명시된 예외 제외).
- 목록은 분기 업데이트와 월간 Windows 서비싱으로 갱신되며, 모든 취약 드라이버 차단을 보장하지 않는다고 Microsoft가 명시한다.
- 차단은 장치·소프트웨어 호환성 문제(드물게 부팅 실패)를 일으킬 수 있어 Microsoft는 감사 모드 시험을 권한다.
SS에서의 함의: 차단 목록에 걸려 CI가 막은 흔적(3077 등)은 "로드 시도가 있었다"는 강한 증거다. 반대로 차단 목록이 꺼져 있거나 대상에 없는 드라이버가 로드됐다면 그것은 환경 가중치다. 이 페이지는 목록을 설명할 뿐이며, 대상 시스템에서 정책을 켜거나 바꾸는 방법은 다루지 않는다.
증거 기록 형식
히트 시 evidence/<case-id>/08-escalation/byovd-match.txt에 남긴다. Ring0·DMA 증거는 전부 08-escalation/이다. 06-은 안티포렌식 슬롯이므로 여기에는 쓰지 않는다.
드라이버: RTCore64.sys
해시: SHA256:01aa...
LOLDrivers: 히트 (CVE-2019-16098, vulnerable driver)
관련 SW: MSI Afterburner [미설치 / v4.6.5 설치됨]
서비스 7045: 2026-08-13 14:22 (UTC+9) — 게임 세션 35분 전
Ring3 교차: mapdrv.exe PF/USN/BAM [있음 / 없음]
판정: [Ring0 신호 / FP]흔한 실수
- 취약점 IOCTL 재현, 드라이버 로드 실험.
- 전체 카탈로그 660+ 덤프를 현장에서 수행. 시간 낭비이고 SS 절차가 아니다.
- 히트 하나로 Confirmed 발급.
- FP를 발견하고 기록 없이 넘어가기.
- "해시가 카탈로그에 없다"를 "안전하다"로 읽는다. 미등재·변형 샘플은 빠진다.
- 대상 머신에 차단 정책·Sysmon을 새로 설정하거나 기존 정책을 바꾼다.
Sources
- MS 권장 드라이버 차단 규칙
- CI 진단 시스템 로그 이벤트
- Sysmon
- loldrivers.io 카탈로그
- drivers.json API
- LOLDrivers 저장소
- Sigma 취약 드라이버 로드 룰
- Sysmon 취약 해시 설정
- LOLDrivers: echo_driver.sys (2023-07-14) · NVD CVE-2023-38817 (disputed, 제작사 입장 NOTE 포함)
Next
- Ring0 절차: Ring0 안전 깊이
- FP 확인: FP 베이스라인
- 판정 기준: 판정 루브릭
- 용어: 용어집
