Blog

EDR 에이전트를 종료하는 드라이버 발견! Microsoft 서명 드라이버도 안심할 수 없다!

Mandiant Intelligence
Dec 15, 2022
17 min read
|   Last updated: Apr 03, 2023
Incident Response
Malware
Threat Research

맨디언트(Mandiant)는 최근 윈도우 운영체제에서 EDR(Endpoint Detection and Response) 프로세스를 종료하는 데 사용되는 악성 드라이버를 관찰하였습니다. 맨디언트는 발견한 악성 드라이버와 해당 로더를 각각 POORTRY, STONESTOP이라는 이름으로 추적하고 있습니다. 맨디언트는 초기 관찰 과정에서 마이크로소프트 윈도우 하드웨어 호환성 프로그램(Microsoft Windows Hardware Compatibility)을 통해 Authenticode로 서명된 POORTRY 드라이버 샘플을 관찰하였습니다. 참고로 Authenticod는 윈도우에서 사용하는 소프트웨어, 앱, 드라이버의 게시자 신원 확인 및 소프트웨어 무결성 확인을 위해 마이크로소프트가 만든 서명 기술입니다. 발견한 샘플의 Authticode 메타 데이터를 살펴보는 과정에서 맨디언트는 Authenticode로 서명된 악성 드라이버를 광범위하게 조사하였습니다. 이를 통해 알게 된 것은 다음과 같습니다.

  • 악성 드라이버는 마이크로소프트에서 직접 서명을 하였습니다. 원본 소프트웨어 공급 업체를 식별하려면 코드로 서명을 검사해야 합니다.
  • 특정 위협 행위자가 배후에 있는 것으로 보이는 맬웨어 계열을 식별하였는데, 이들은 마이크로소프트 윈도우 호환성 프로그램 절차에 따라 서명이 되었습니다.
  • 맨디언트는 서명된 맬웨어 관련해 최소 9개의 조직을 식별하였습니다.

마이크로소프트 윈도우 하드웨어 호환성 프로그램 & 코드 서명

소프트웨어 생태계는 신뢰를 바탕으로 관계가 구축됩니다. 매일 같이 사용하는 컴퓨터에 설치되는 소프트웨어, 앱, 드라이버 역시 업체 간 신뢰를 바탕으로 합니다. 마이크로소프트와 같이 운영체제를 만드는 생태계의 주축은 사용자 컴퓨터에 설치하는 소프트웨어, 앱, 드라이버에 대한 무결성과 신뢰성을 보장해야 합니다. 사용자가 일일이 확인할 수 없기 때문입니다. 마이크로소프트는 특정 소프트웨어, 앱, 드라이버의 게시자와 신뢰성을 확인하기 위해 코드 서명(Code Signing) 기술을 사용합니다. 마이크로소프트는 서명된 코드만 실행을 허용하는 것부터 시작해 서명된 코드 실행에 대한 보안 경고 생성, 애플리케이션 신뢰성을 보여주는 것까지 파일 유형에 맞게 코드 서명 정책을 적용합니다.

Code Signing Overview
그림 1. 코드 서명 개요

코드 서명은 파일의 무결성과 신뢰성을 보장하는 수단입니다. 소프트웨어 공급 업체는 믿을 수 있는 CA(인증 기관)을 통해 코드 서명에 사용하는 인증서를 얻습니다. 마이크로소프트는 소프트웨어 공급 업체가 제출한 바이너리에 대한 코드 서명을 위해 Anthenticode를 사용합니다. Anthenticode에는 드라이버 및 드라이버 패키지와 관련된 몇 가지 기능이 있습니다. 마이크로소프트는 하드웨어 호환성 프로그램 절차에 따라 신뢰할 수 있는 소프트웨어, 앱, 드라이버에 서명을 합니다. 이 프로그램에 대한 마이크로소프트의 설명은 다음과 같습니다.

"윈도우 하드웨어 호환성 프로그램은 귀사가 윈도우와 호환되고 윈도우 10, 윈도우 11, 윈도우 서버 2022에서 안정적으로 실행되는 시스템, 소프트웨어, 하드웨어 제품을 공급할 수 있도록 설계되었습니다. 이 프로그램은 드라이버 개발, 테스트, 배포에 대한 지침도 제공합니다. 윈도우 하드웨어 개발자 센터 대시보드를 사용하여 제출을 관리하고, 장치 또는 앱의 성능을 추적하고, 원격 분석을 검토하는 등의 작업을 수행할 수 있습니다."

Steps in Windows Hardware Compatibility Program
그림 2. 윈도우 하드웨어 호환성 프로그램 단계

윈도우 하드웨어 호환성 프로그램은 그림 2와 같이 여러 단계가 있습니다. 윈도우 10 이상의 버전과 제대로 동작한다는 것을 증명하려면 드라이버를 마이크로소프트에 제출해야 합니다. 절차에 따라 마이크로소프트는 소프트웨어 게시자의 신원을 확인하고 드라이버 패키지의 무결성을 평가합니다. 호환성을 검증받기 위해 바이너리를 제출하는 조직은 다른 코드 서명보다 더 강력한 알고리즘을 사용하는 EV(Extended Validation) 인증서로 드라이버 패키지에 서명을 해야 합니다. 그리고 추가 단계로 공급 업체는 HLK(Hardware Lab Kit) 테스트용 드라이버를 제출하여 윈도우 인증을 받습니다. 마이크로소프트의 코드 서명과 윈도우 인증은 다른 것입니다. 코드 서명은 윈도우에서 드라이버를 신뢰할 수 있다는 것을 보여주는 것입니다. HLK Studio를 이용해 테스트하지 않은 것이므로 호환성과 기능에 대한 보장을 하는 것은 아닙니다.

이제 절차를 자세히 알아보겠습니다. 서명된 드라이버를 제출하고, 이후 마이크로소프트가 서명을 하고, 테스트를 진행하는 과정은 크게 9 단계로 나눌 수 있습니다.

  • 하드웨어 개발자 프로그램 등록
  • EV(Extended Validation) 인증서 구매
  • 윈도우 드라이버 키트(WDK) 다운로드 및 설치
  • 마이크로소프트에 제출할 CAB 파일 생성, CAB 파일에는 드라이버 파일, 드라이버 INF, 심볼 파일 및 카탈로그 파일이 포함됨
  • EV 인증서로 CAB 파일에 서명
  • 대시보드를 통해 EV 서명 CAB 제출
  • 마이크로소프트에서 드라이버에 서명
  • 대시보드에서 서명된 드라이버 다운로드
  • 서명된 드라이버 유효성 검사 및 테스트

맨디언트는 위협 행위자가 손상, 도난 또는 불법으로 구매한 코드 서명 인증서를 사용해 맬웨어에 서명하고 적법한 절차를 거쳐 마이크로소프트의 서명을 받는 것을 관찰하였습니다. 이런 식으로 작업하면 위협 행위자는 애플리케이션 허용 목록이나 보안 제어를 회피할 수 있습니다. 맨디언트는 위협 행위자들이 불법적으로 획득한 EV 코드 서명 인증서를 사용해 윈도우 하드웨어 호환성 프로그램을 악용한 것으로 보고 있습니다.

위협 데이터 및 관찰

맨디언트는 윈도우 호화성 프로그램을 통해 서명된 맬웨어를 활용하는 위협 행위자 집합인 UNC3944를 관찰하였습니다. UNC3944는 적어도 2022년 5월부터 활동한 것으로 보이며, SMS 피싱을 통해 획득한 자격 증명을 사용해 초기 네트워크 접근 권한을 얻은 것으로 파악됩니다. 어떤 경우 UNC3944는 SIM 스와핑 공격에 사용하기 위한 자격 증명을 획득하여 시스템에 접근하는 것을 목표로 삼기도 하였습니다.

UNC3944는 2022년 8월에 STONESTOPPOORTRY를 배포한 것으로 관찰되었습니다. STONESTOP은 악성 드라이버를 생성하고 로드하여 프로세스 종료를 시도하는 유틸리티입니다. 맨디언트는 이 악성 드라이버를 POORTRY라는 이름으로 추적하고 있습니다. POORTRY가 프로세스를 종료하려면 유저 스페이스 유틸리티가 필요합니다. 드라이버 항목에서 '\device\KApcHelper1STONESTOP' 같은 유저 스페이스 유틸리티와 상호작용을 하기 위해 장치를 등록합니다.

맨디언트는 2022년 6월에 서명된 POORTRY 드라이버가 여러 인증서를 사용하는 것을 관찰하였습니다. 여기에는 탈취한 인증서도 포함됩니다. POORTRY는 여러 다른 위협 그룹이 사용하였습니다. 이로 보아 구매가 가능하거나 그룹 간 공유를 한 것으로 보입니다.

표 1. POORTRY 샘플

컴파일 시간

서명 시간

MD5

인증서 주체

2022-06-02
10:09:08

20220811
13:27:00

10f3679384a03cb487bda9621ceb5f90

Zhuhai liancheng Technology Co., Ltd.

2022-06-02
10:09:08

 

04a88f5974caa621cee18f34300fc08a

Zhuhai liancheng Technology Co., Ltd.

2022-06-02
10:09:08

20220915
15:49:00

6fcf56f6ca3210ec397e55f727353c4a

Microsoft Windows Hardware Compatibility Publisher

2022-06-06
15:14:46

 

0f16a43f7989034641fd2de3eb268bf1

NVIDIA Corporation

2022-08-20
15:19:01

20220821
05:43:00

ee6b1a79cb6641aa44c762ee90786fe0

Microsoft Windows Hardware Compatibility Publisher

2022-10-02
19:48:02

20221019
17:15:00

909f3fc221acbe999483c87d9ead024a

Microsoft Windows Hardware Compatibility Publisher

예전에 관찰한 샘플은 대부분 부적절하게 서명이 되어 있었습니다. 반면에 위와 같은 POORTRY 샘플은 합법적으로 서명이 이루어졌고, Microsoft Windows Hardware Compatibility Publisher 인증서로 확인되었습니다.

Figure 3: Valid POORTRY signature data
그림 3. 유요한 서명을 포함한 POORTRY

증명 서명에 사용되는 공개 키(부록 C 참조)에는 키 사용 값 내에 두 개의 객체 식별자(OID)가 포함되어 있습니다.

X509v3 Extended Key Usage:

1.3.6.1.4.1.311.10.3.5, 1.3.6.1.4.1.311.10.3.5.1, Code Signing

RFC 5280 섹션 4.2.1.12는 EKU를 정의합니다. 이 서명의 EKU 값은 이 파일에 서명하는 데 사용된 방법과 이 서명 인증서의 용도를 식별하는 데 도움이 됩니다. 정의된 값은 이 인증서가 윈도우 하드웨어 호환성 드라이버 서명 프로세스에서 사용된 것을 보여줍니다.

EKU OID

심볼릭 네임

설명

1.3.6.1.4.1.311.10.3.5

szOID_WHQL_CRYPTO

Windows Hardware Driver Verification

1.3.6.1.4.1.311.10.3.5.1

szOID_ATTEST_WHQL_CRYPTO

Windows Hardware Driver Attested Verification

POORTRY 샘플, 증명 인증서 및 이 인증서로 서명된 수많은 합법적인 샘플을 연계 분석한 결과 맨디언트는 윈도우 하드웨어 호환성 프로세스가 악용되었다는 확신을 갖게 되었습니다. PKCS #7 사양에 대한 RFC 2315는 Authnticode를 사용해 서명한 PE에 대한 Singnerinfo 컨텐츠 유형을 정의합니다. 초기에 식별한 POORTRY 드라이버(6fcf56f6ca3210ec397e55f727353c4a)와 관련된 샘플을 식별하는 데 사용할 수 있는 몇 가지 흥미로운 구조를 포함합니다.

맨디언트가 관심 있게 본 필드는 Authenticode의 SpcSpOpusInfo 속성에 포함되어 있습니다. 맨디언트는 증명 서명된 드라이버(Attestation Signed Driver)의 programName 필드(이하 프로그램 이름으로 칭함)에 드라이버를 제출한 하드웨어 공급 업체를 식별할 수 있는 정보가 포함되어 있다고 봅니다.

SpcSpOpusInfo
  SpcSpOpusInfo is identified by SPC_SP_OPUS_INFO_OBJID
  (1.3.6.1.4.1.311.2.1.12) and is defined as follows:
  SpcSpOpusInfo ::= SEQUENCE {
    programName  [0] EXPLICIT SpcString OPTIONAL,
    moreInfo     [1] EXPLICIT SpcLink OPTIONAL,
  } --#public--

  SpcSpOpusInfo has two fields:
    programName
      This field contains the program description:
      If publisher chooses not to specify a description, the SpcString
      structure contains a zero-length program name.
      If the publisher chooses to specify a
      description, the SpcString structure contains a Unicode string.
    moreInfo
      This field is set to an SPCLink structure that contains a URL for
      a Web site with more information about the signer. The URL is an
      ASCII string.

다음은 POORTRY Authenticode 데이터(6fcf56f6ca3210ec397e55f727353c4a)의 프로그램 이름 값입니다.

大连纵梦网络科技有限公司

이 필드에는 추가 샘플을 식별하는 데 도움이 되는 아티팩트가 포함되어 있으며, 맨디언트는 이를 참조해 11개의 새로운 의심스러운 파일을 식별했습니다.

표 3. 프로그램 이름이 大连纵梦网络科技有限公司인 샘플

MD5

패밀리

파일 이름

서명 날짜

6fcf56f6ca3210ec397e55f727353c4a

POORTRY

4.sys

2022/09/15 11:49

ee6b1a79cb6641aa44c762ee90786fe0

POORTRY

NodeDriver.sys

2022/08/21 01:43

1f2888e57fdd6aee466962c25ba7d62d

 

Air_SYSTEM10.sys

2022/10/01 11:43

22949977ce5cd96ba674b403a9c81285

 

PcieCubed.sys

2022/08/20 09:37

4e1f656001af3677856f664e96282a6f

 

Sense5Ext.sys

2022/08/09 07:20

7f9309f5e4defec132b622fadbcad511

 

 

2022/08/24 07:33

acac842a46f3501fe407b1db1b247a0b

 

 

2022/08/23 04:40

b164daf106566f444dfb280d743bc2f7

 

 

2022/08/17 10:48

bd25be845c151370ff177509d95d5add

 

2.sys

2022/09/19 24:33

dc564bac7258e16627b9de0ce39fae25

 

7.sys

2022/08/19 08:03

f9844524fb0009e5b784c21c7bad4220

 

Sense5Ext.sys

2022/08/22 14:48

증명 서명된 드라이버에 대한 programName 필드는 WHCP 포털에 대한 초기 CAB 제출에 서명하는 데 사용되는 EV 코드 서명 인증서의 X.509 주체 조직 이름(0)으로 채워진 것으로 보입니다. 이는 VirusTotal 및 맨디언트 데이터 세트 내에서 조직 이름 및 기타 해당 프로그램 이름 값과 관련된 샘플에 대한 악성 탐지로 보입니다. 본 포스팅 작성 시점에는 programName 필드가 채워지는 정확한 메커니즘을 마이크로소프트로부터 확인할 수 없었습니다.

표 4. 조직 이름이 大连纵梦网络科技有限公司인 Digicert EV 코드 서명 인증서

MD5

패밀리

인증서 시리얼

05a56a88f34718cabd078dfd6b180ed0

Fast Reverse Proxy

01:15:3e:7a:3c:8d:c5:0b:3d:23:c8:ba:31:d3:70:52

2406150783d3ec5de13c2654db1a13d5

Fast Reverse Proxy

01:15:3e:7a:3c:8d:c5:0b:3d:23:c8:ba:31:d3:70:52

29506adae5c1e97de49e3a0d3cd974d4

Fast Reverse Proxy

01:15:3e:7a:3c:8d:c5:0b:3d:23:c8:ba:31:d3:70:52

48c1288cd35504de6f4bd97ec02decb1

Fast Reverse Proxy

01:15:3e:7a:3c:8d:c5:0b:3d:23:c8:ba:31:d3:70:52

578e70a8a7c1972bbc35c3e14e53cbee

Fast Reverse Proxy

01:15:3e:7a:3c:8d:c5:0b:3d:23:c8:ba:31:d3:70:52

6216fba5cf44aa99a73ca919301142e9

Fast Reverse Proxy

01:15:3e:7a:3c:8d:c5:0b:3d:23:c8:ba:31:d3:70:52

69fa8946c326d4b66a371608d8ffbe5e

Fast Reverse Proxy

01:15:3e:7a:3c:8d:c5:0b:3d:23:c8:ba:31:d3:70:52

6e4e37641e24edc89cfa3e999962ea34

Fast Reverse Proxy

0c:25:f1:f2:a8:d4:a2:93:21:e8:28:6e:ed:50:e3:e2

8a930742d1da0fcfe5492d4eb817727c

Fast Reverse Proxy

01:15:3e:7a:3c:8d:c5:0b:3d:23:c8:ba:31:d3:70:52

8fbad6e5aa15857f761e6a7a75967e85

SOGU Launcher

03:25:0b:78:25:67:56:fc:10:db:c6:7a:22:52:7b:44

976bac6cfb21288b4542d5afe7ce7be7

Fast Reverse Proxy

01:15:3e:7a:3c:8d:c5:0b:3d:23:c8:ba:31:d3:70:52

aaeedaa5880e38dc63a5724cf18baf13

Fast Reverse Proxy

01:15:3e:7a:3c:8d:c5:0b:3d:23:c8:ba:31:d3:70:52

ab5d85079e299ac49fcc9f12516243de

SOGU Launcher

0c:59:d4:65:80:f0:39:af:2c:4a:b6:ba:0f:fe:d1:97

c43de22826a424b2d24cf1b4b694ce07

SOGU Launcher

0c:59:d4:65:80:f0:39:af:2c:4a:b6:ba:0f:fe:d1:97

d312a6aeffec3cff78e9fad141d3aaba

Fast Reverse Proxy

01:15:3e:7a:3c:8d:c5:0b:3d:23:c8:ba:31:d3:70:52

d36084aad079ca8d91c2985eca80327b

Fast Reverse Proxy

01:15:3e:7a:3c:8d:c5:0b:3d:23:c8:ba:31:d3:70:52

e086d7d5a5657800a0d7e9c144fac16d

Fast Reverse Proxy

01:15:3e:7a:3c:8d:c5:0b:3d:23:c8:ba:31:d3:70:52

관찰한 모든 EV 코드 서명 인증서는 Digicert에서 발급하였습니다. 시간이 지난 후 인증서 시리얼 번호 01:15:3e:7a:3c:8d:c5:0b:3d:23:c8:ba:31:d3:70:52가 취소되었지만 다른 여러 인증서는 취소되지 않은 것으로 보입니다. 이는 표 4에서 굵은 글자로 처리하였으니 참조 바랍니다. 표 4의 EV 인증서는 SOGU 맬웨어 및 오픈 소스인 Fast Reverse Proxy에 사용되었습니다. 이는 이란 정부가 배후에 있는 것으로 보이는 위협 행위자가 사용했었습니다.

OID 및 인증서 데이터를 활용해 YARA 룰을 작성하였습니다. 맨디언트는 악성 바이너리에서 관찰된 프로그램 이름을 공유하는 57개의 의심스러운 샘플을 발견하였습니다(부록 B 참조). 이 샘플은 9개의 서로 다른 프로그램 이름에 분산되어 있습니다. 다음은 의심스러운 증명 서명 샘플에서 식별한 프로그램 이름의 예입니다.

Qi Lijun

Luck Bigger Technology Co., Ltd

XinSing Network Service Co., Ltd

Hangzhou Shunwang Technology Co.,Ltd

福州超人

北京弘道长兴国际贸易有限公司

福建奥创互娱科技有限公司

门恒信卓越网络科技有限公司

连纵梦网络科技有限公司

As a Service 방식으로 이용할 수 있는 악성 드라이버 서명

맨디언트는 코드 서명을 As a Service 방식으로 이용할 수 있는 것으로 의심되는 시나리오는 이전에 관찰한 적이 있습니다. 이런 방식은 사실 새로운 것은 아닙니다. 2017년 메릴랜드 대학의 인증된 악성 코드 프로젝트 관련 문서에서 그 내용을 볼 수 있습니다. 맨디언트는 이런 서비스 방식이 의심스러운 증명 서명 드라이버 및 EV 서명 샘플에서 발생하고 있다고 생각하고 있습니다.

위협 행위자가 훔치거나 부정한 방법으로 얻은 코드 서명 인증서를 사용하는 것은 일반적인 전술입니다. 따라서 위협 행위자들이 모이는 지하 세계에서는 인증서 또는 서명 서비스를 제공하는 것이 경제성 있는 틈새시장이라 할 수 있습니다. 맨디언트는 위협 행위자를 위해 코드 서명 인증서를 제공하거나 맬웨어에 서명을 해줄 수 있다고 주장하는 영어, 러시아어, 중국어 등 다양한 언어로 광고를 하는 서비스를 발견했습니다. 예를 들어 트위터 사용자인 '@ContiLeaks'의 채팅 메시지를 분석하는 동안 맨디언트는 Trickbot 운영에 참여한 것으로 보이는 여러 위협 행위자가 다른 이에게 코드 서명 인증서를 구매한 사례를 찾았습니다.

광고 대부분은 EV 코드 서명 인증서만 언급을 합니다. 그러나 WHOL을 통한 드라이버 서명에 초점을 맞춘 광고도 있었습니다. 맨디언트는 WHOL로 드라이버 서명을 경험한 위협 행위자를 최소 한 명 이상 관찰하였습니다. 서명된 페이로드를 광고를 하는 서비스와 직접 연결할 정도로 사실 관계를 파악한 것은 아닙니다. 하지만 언더그라운드 포럼을 통해 서비스를 제공하고, 이를 이용해 서명된 드라이버 맬웨어를 획득해 공격에 사용하는 위협 행위자가 있을 가능성은 충분해 보입니다.

다름 악성 샘플에서도 서명한 EV 인증서를 포함한 의심스러운 드라이버 패턴을 찾을 수 있었습니다. 인증서는 주로 Digicert, Globalsing을 통해 중국 고객에게 발급되는 것으로 보이며 이는 중국 시장 인증서 리셀러 또는 서명 서비스의 남용 가능성을 보여줍니다.

확인한 여러 회사와 개발 환경을 고려할 때 맨디언트는 위협 행위자를 대신해 증명 프로세스를 악용해 서명된 맬웨어 샘플을 제공하는 서비스 공급자가 있다고 의심합니다.

헌팅과 블로킹

증명 서명은 합법적인 마이크로소프트의 절차를 따릅니다. 제출한 바이너리는 합법적인 마이크로소프트 인증서로 서명됩니다. 이를 악용할 경우 마이크로소프트 및 다른 기업의 EDR 도구가 악의적인 서명 바이너리를 로드하여 중단될 우려가 있습니다. 이런 경우에 대비하기 위해 서명을 무조건 신뢰하기 보다 행위 탐지를 강화하여 의심스러운 활동이 감지되면 경보를 띄울 수 있어야 합니다. 능동적으로 악의적으로 서명을 활용하는 위협을 탐지하는 방법은 다양합니다. YARA 룰을 통해 알아보겠습니다.

M_Hunting_Signed_Driver_Attestation_1

OLE를 사용하면 증명 프로세스를 통해 서명된 바이너리를 식별하기 위한 검색을 구현할 수 있습니다. 이 룰은 OLE 및 Microsoft Windows Hardware Compatibility Publisher 인증서 주체와 일치합니다.

M_Win_Hunting_CertEngine_Attestation_ProgramName_1

인증 프로그램 이름에 포함된 식별된 회사 이름을 사용하여 의심스러운 샘플을 찾을 수 있습니다. 다만 모든 샘플이 악의적이지 않을 수 있습니다. 예전에 인증서 악용 조사를 통한 별견한 회사 이름으로 찾은 것이므로 추가 조사가 필요합니다.

M_CertEngine_Malicious_Attestation_Signed_Driver

VirusTotal 데이터 세트에는 LiveHunt 룰을 통해 액세스할 수 있는 추가 데이터가 있습니다. 여기에는 관련 샌드박스 실행 관련 태그 및 메타 데이터가 포함되어 있습니다. 이 정보는 M_Hunting_Signed_Driver_Atterstation_2 룰을 메타 데이터와 결합하여 의심스러운 악성 증명 서명 바이너리를 식별하는 데 사용할 수 있습니다.

M_Hunting_Win_ConventionEngine_PDB_Attestation_Multiple_1

Definitive Dossier of Devilish Debug Details에 설명된 대로 PDB 경로를 사용해 맬웨어 내에 있는 문자열을 식별할 수 있습니다. 그러나 이 인증서는 서명이 아니라는 점을 기억해야 합니다.

이외 전체 탐지 룰은 부록 A를 참조 바랍니다.

결론

증명 서명 프로세스를 보면 윈도우 하드웨어 호환성 프로그램을 통해 서명을 받는 하드웨어나 소프트웨어 업체의 ID를 확인하는 책임을 CA에 두는 것을 알 수 있습니다. 이론적으로 보면 CA가 합의된 절차에 따라 신원을 증명하므로 유효하다고 볼 수 있습니다. 그러나 실제로는 위협 행위자가 허점을 노려 마이크로소프트가 서명한 맬웨어를 얻기 위해 절차를 악용하고 있습니다. 이는 새로운 일이 아닙니다. GData와 BitDefender는 모두 2021년에 마이크로소프트가 서명한 악성 드라이버에 대한 보고서를 발표한 바 있습니다.

본 포스팅은 POORTRY 및 증명 서명 프로세스에 초점을 맞추었습니다. 이외에도 예는 많습니다. 맨디언트는 서명을 악용하는 다른 맬웨어도 관찰하였습니다. 예를 들어 TEMPLESHOT은 드롭퍼, 백도어, 필터 드라이버, 보호 드라이버로 구성된 악성 코드입니다. MD5가 포함된 TEMPLESHOT 드라이버 48bf11dd6c22e241b745d3bb1d562ca1는 증명을 통해 서명되었습니다.

끝으로 본 포스팅 작성에 도움을 준 맨디언트 인텔리전스 및 FLARE 조직 분석가들에게 감사의 말을 전합니다. 더불어 Signify.Python 라이브러리를 사용해 Authenticode 데이터 분석을 효율적으로 수행할 수 있었습니다. 이 역시 감사의 말을 전합니다.

부록 A: YARA 룰

import "pe"

rule M_Hunting_Signed_Driver_Attestation_1

{

meta:

author = "Mandiant"

date_created = "2022-10-20"

description = "Find driver signed via Microsoft attestation signing only (no EV certificate signing outside of Microsoft Windows Hardware Compatibility Publisher)" //https://learn.microsoft.com/en-us/windows-hardware/drivers/dashboard/code-signing-attestation

strings:

$whql_oid = {2b0601040182370a030501} //OID 1.3.6.1.4.1.311.10.3.5.1, Windows Hardware Quality Labs (WHQL) crypto -- "szOID_WHQL_CRYPTO"

$spc_statement_type = {2b060104018237020115} //OID 1.3.6.1.4.1.311.2.1.21, SPC_INDIVIDUAL_SP_KEY_PURPOSE_OBJID

$spc_sp_opus_info_oid = {2b06010401823702010c} //OID 1.3.6.1.4.1.311.2.1.12, SPC_SP_OPUS_INFO_OBJID

condition:

pe.signatures[0].subject == "/C=US/ST=Washington/L=Redmond/O=Microsoft Corporation/CN=Microsoft Windows Hardware Compatibility Publisher" and

$whql_oid and

$spc_sp_opus_info_oid and

$spc_statement_type

}

import "pe"

rule M_Win_Hunting_CertEngine_Attestation_ProgramName_1

{

meta:

author = "Mandiant"

description = "Find driver signed via Microsoft attestation signing only with one of the identified company names of interest."

strings:

$whql_oid = {2b0601040182370a030501} //OID 1.3.6.1.4.1.311.10.3.5.1, Windows Hardware Quality Labs (WHQL) crypto -- "szOID_WHQL_CRYPTO"

$spc_statement_type = {2b060104018237020115} //OID 1.3.6.1.4.1.311.2.1.21, SPC_INDIVIDUAL_SP_KEY_PURPOSE_OBJID

$spc_sp_opus_info_oid = {2b06010401823702010c} //OID 1.3.6.1.4.1.311.2.1.12, SPC_SP_OPUS_INFO_OBJID

$unicode1 = {59278FDE 7EB568A6 7F517EDC 79D16280 67099650 516C53F8}

$unicode2 = {51 69 20 4c 69 6a 75 6e}

$unicode3 = {4c 75 63 6b 20 42 69 67 67 65 72 20 54 65 63 68 6e 6f 6c 6f 67 79 20 43 6f 2e 2c 20 4c 74 64}

$unicode4 = {58 69 6e 53 69 6e 67 20 4e 65 74 77 6f 72 6b 20 53 65 72 76 69 63 65 20 43 6f 2e 2c 20 4c 74 64}

$unicode5 = {48 61 6e 67 7a 68 6f 75 20 53 68 75 6e 77 61 6e 67 20 54 65 63 68 6e 6f 6c 6f 67 79 20 43 6f 2e 2c 4c 74 64}

$unicode6 = {54 41 20 54 72 69 75 6d 70 68 2d 41 64 6c 65 72 20 47 6d 62 48}

$unicode7 = {798f 5dde 8d85 4eba}

$unicode8 = {5317 4eac 5f18 9053 957f 5174 56fd 9645 8d38 6613 6709 9650 516c 53f8}

$unicode9 = {798f 5efa 5965 521b 4e92 5a31 79d1 6280 6709 9650 516c 53f8}

$unicode10 = {53a6 95e8 6052 4fe1 5353 8d8a 7f51 7edc 79d1 6280 6709 9650 516c 53f8}

condition:

$whql_oid and

$spc_sp_opus_info_oid and

$spc_statement_type and

pe.signatures[0].subject == "/C=US/ST=Washington/L=Redmond/O=Microsoft Corporation/CN=Microsoft Windows Hardware Compatibility Publisher" and

(1 of ($unicode*))

}

import "vt"

import "pe"

rule M_CertEngine_Malicious_Attestation_Signed_Driver

{

meta:

author = "Mandiant"

description = "Find driver signed via Microsoft attestation signing only and greater than 3 malicious hits in VirusTotal.”

strings:

$whql_oid = {2b0601040182370a030501} //OID 1.3.6.1.4.1.311.10.3.5.1, Windows Hardware Quality Labs (WHQL) crypto -- "szOID_WHQL_CRYPTO"

$spc_statement_type = {2b060104018237020115} //OID 1.3.6.1.4.1.311.2.1.21, SPC_INDIVIDUAL_SP_KEY_PURPOSE_OBJID

$spc_sp_opus_info_oid = {2b06010401823702010c} //OID 1.3.6.1.4.1.311.2.1.12, SPC_SP_OPUS_INFO_OBJID

condition:

for any tag in vt.metadata.tags : ( tag == "signed" ) and

pe.signatures[0].subject == "/C=US/ST=Washington/L=Redmond/O=Microsoft Corporation/CN=Microsoft Windows Hardware Compatibility Publisher" and

vt.metadata.analysis_stats.malicious > 3 and

$whql_oid and

$spc_sp_opus_info_oid and

$spc_statement_type

}

rule M_Hunting_Win_ConventionEngine_PDB_Attestation_Multiple_1

{

meta:

author = "Mandiant"

description = "Looking for PDB path strings that has been observed in malicious samples which were attestation signed"

strings:

$anchor = "RSDS"

$pdb1 = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\.{0,250}gamehacks.{0,250}boot_driver.{0,250}\.pdb\x00/ nocase

$pdb2 = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\.{0,250}MyDriver1.{0,250}wfp_vpn.{0,250}\.pdb\x00/ nocase

$pdb3 = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\.{0,250}FilDriverx64_win10.{0,250}\.pdb\x00/ nocase

$pdb4 = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\.{0,250}RedDriver_win10.{0,250}\.pdb\x00/ nocase

$pdb5 = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\.{0,250}sellcode.{0,250}MyDriver.{0,250}\.pdb\x00/ nocase

$pdb6 = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\.{0,250}Users\\ljl11{0,250}\.pdb\x00/ nocase

$pdb7 = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\.{0,250}RkDriver64.{0,250}MyDriver1.{0,250}\.pdb\x00/ nocase

$pdb8 = /RSDS[\x00-\xFF]{20}[a-zA-Z]:\\.{0,250}\\ApcHelper.{0,250}TSComputerManager.{0,250}\.pdb\x00/ nocase

condition:

(uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and filesize < 20MB and $anchor and (1 of ($pdb*))

}

부록 B: 관심 지표

의심스러운 프로그램 이름 값이 있는 증명 서명 바이너리

이 표는 서명 날짜별로 정렬되어 있습니다. 서명 날짜는 서명의 타임스탬프를 포함하는 인증된 속성입니다. 날짜별로 나열하면 programName이 어떻게 사용되고 변경되었는지 확인할 수 있습니다. 한 샘플( 688c138fffbb4e7297289433c79d62f5)에는 서명 날짜가 없으며, 이는 서명 및 기타 수정 후 VMProtect 사용을 포함한 바이너리 변조로 인한 것이라 볼 수 있습니다.

MD5

프로그램 이름

서명 날짜

688c138fffbb4e7297289433c79d62f5

北京弘道际贸易有限公

N/A

0b4a0fe7db8400ef65ce7618177351cf

福建奥科技有限公

2021/07/09 11:35

6e3516775e7e009777dcdb7a314f1482

福建奥科技有限公

2021/07/19 07:39

ea5f6ab5666193f805d13a49009f0699

福建奥科技有限公

2021/07/20 06:43

63960dbc7d63767edb6e1e2dc6f0707b

福建奥科技有限公

2021/07/28 13:05

ddee86b84dcb72835b57b1d049e9e0cd

福建奥科技有限公

2021/07/29 09:25

19d99758b1f33b418cb008530b61a1e7

福建奥科技有限公

2021/07/29 10:02

f9aad310a5d5c80bbc61d10cc797e4f0

北京弘道际贸易有限公

2021/11/06 17:38

ff43f91f2465504e5e67d0b37d92ef18

恒信卓越网科技有限公

2021/12/30 06:12

45be5c0e7dfe37f88f1fa6c2fbb462c5

恒信卓越网科技有限公

2022/01/13 24:00

26d6833b1875b138ea34d6ab430cafcd

恒信卓越网科技有限公

2022/02/07 03:47

561bc6902367d9e43e27c5543e7a5818

恒信卓越网科技有限公

2022/02/09 11:35

929b293090bcc7900c1e8f9ba519e219

恒信卓越网科技有限公

2022/02/13 12:25

b500ee8d8cb045936d2996a1747bcded

恒信卓越网科技有限公

2022/02/14 24:25

42200c8422347f63b3edb45ea5aa9c45

恒信卓越网科技有限公

2022/02/14 12:25

48fc05c42549d0b3ec9e73bbb5be40dc

恒信卓越网科技有限公

2022/02/14 12:25

bf13a2f4e2deb62b7dee98a012e94d61

恒信卓越网科技有限公

2022/02/14 12:25

d66fc4e2f537566bb4d91cdea0ac64e5

恒信卓越网科技有限公

2022/02/14 12:25

de4b5043c82ab3b36b4ae73a2e96d969

恒信卓越网科技有限公

2022/02/14 12:25

cc29cf2294175315acbf33054151f3cd

恒信卓越网科技有限公

2022/02/15 06:07

6e730cf4ebcd166d26414378cab3a6d8

恒信卓越网科技有限公

2022/02/18 06:58

8e4d0f679b092296a2f74cf812907d05

恒信卓越网科技有限公

2022/02/18 06:58

f8ccabcbe08bbd2c8420f4d1cffcefd8

恒信卓越网科技有限公

2022/02/18 06:58

9f1d3b0fb49e063f4804aa60b7b708ac

恒信卓越网科技有限公

2022/02/18 08:23

2bbfb9cb4550109da5ae336d3d3dd984

恒信卓越网科技有限公

2022/02/23 03:55

42a417e54639c69f033f72bbafe6e09a

北京弘道际贸易有限公

2022/02/25 09:18

7ee0c884e7d282958c5b3a9e47f23e13

北京弘道际贸易有限公

2022/02/26 24:58

66c145233576766013688088b03103e3

恒信卓越网科技有限公

2022/03/08 07:16

1f929fd617471c4977b522c71b4c91ed

北京弘道际贸易有限公

2022/03/26 24:09

4a0f22286134a58d9d20f911a608f636

福州超人

2022/03/28 09:34

947ebc3f481a7b9ee3cf3a34d9830159

福州超人

2022/03/28 09:40

33b5485b35b33fd8ead5a38899522cce

福州超人

2022/03/28 10:20

721b40a0c2a0257443f7dcc2c697e28a

福州超人

2022/04/09 17:06

b44dfd8c5e7b0c8652d7a647dfe252e4

福州超人

2022/05/03 09:25

1a57c1d80018bfef1e243f9eba2955f2

北京弘道际贸易有限公

2022/05/09 01:18

ac2a1f2ae6b547619bef93dfadb48937

福州超人

2022/05/19 07:09

8ac6ef2475ec89d3709fc124573cb380

北京弘道际贸易有限公

2022/05/31 11:06

b34403502499741762912c7bfc9ff21f

Hangzhou Shunwang Technology Co.,Ltd

2022/06/13 08:25

734b3a6e6cbd1f53fbb693140d2c3049

北京弘道际贸易有限公

2022/06/13 08:45

c0471f78648643950217620f6e7e24cc

北京弘道际贸易有限公

2022/06/13 08:45

228f9f0a0466fba21ac085626020a8e1

Qi Lijun

2022/08/02 16:10

65a3f812ea031f4d53ba09f33c058ab6

Qi Lijun

2022/08/02 16:10

7d78b5773845c5189ca09227d27a9d5a

Qi Lijun

2022/08/03 01:56

e7ff38a94ad765eb305fc7f0837f5913

Qi Lijun

2022/08/03 01:58

4e1f656001af3677856f664e96282a6f

连纵梦网科技有限公

2022/08/09 07:20

b164daf106566f444dfb280d743bc2f7

连纵梦网科技有限公

2022/08/17 10:48

dc564bac7258e16627b9de0ce39fae25

连纵梦网科技有限公

2022/08/19 08:03

22949977ce5cd96ba674b403a9c81285

连纵梦网科技有限公

2022/08/20 09:37

ee6b1a79cb6641aa44c762ee90786fe0

连纵梦网科技有限公

2022/08/21 01:43

f9844524fb0009e5b784c21c7bad4220

连纵梦网科技有限公

2022/08/22 14:48

acac842a46f3501fe407b1db1b247a0b

连纵梦网科技有限公

2022/08/23 04:40

7f9309f5e4defec132b622fadbcad511

连纵梦网科技有限公

2022/08/24 07:33

7ba744b584e28190eb03b9ecd1bb9374

XinSing Network Service Co., Ltd

2022/09/07 02:24

6fcf56f6ca3210ec397e55f727353c4a

连纵梦网科技有限公

2022/09/15 11:49

bd25be845c151370ff177509d95d5add

连纵梦网科技有限公

2022/09/19 24:33

1f2888e57fdd6aee466962c25ba7d62d

连纵梦网科技有限公

2022/10/01 11:43

909f3fc221acbe999483c87d9ead024a

Luck Bigger Technology Co., Ltd

2022/10/19 13:15

서명된 POORTRY 샘플

컴파일 시간

서명 상태

서명 시간

PDB 경로

MD5

파일 이름

시리얼

이름

20220602 10:09:08

Revoked

20220811 13:27:00

D:\KApcHelper\x64\
Release\KApcHelper.pdb

10f3679384a03cb4
87bda9621ceb5f90

prokiller64.sys

62:7d:fd:f7:3a:14:55:de:
51:43:a2:70:79:9e:6b:7b

Zhuhai liancheng Technology Co., Ltd.

20220602 10:09:08

Revoked

 

D:\KApcHelper\x64\
Release\KApcHelper.pdb

04a88f5974caa621
cee18f34300fc08a

gftkyj64.sys

62:7d:fd:f7:3a:14:55:de:
51:43:a2:70:79:9e:6b:7b

Zhuhai liancheng Technology Co., Ltd.

20220602 10:09:08

 

20220915 15:49:00

 

6fcf56f6ca3210ec
397e55f727353c4a

 

33:00:00:00:57:ee:4d:65:9a:9
2:3e:7c:10:00:00:00:00:00:57

Microsoft Windows Hardware Compatibility Publisher

20220606 15:14:46

Expired

 

D:\KApcHelper\x64\
Release\KApcHelper.pdb

0f16a43f79890346
41fd2de3eb268bf1

KApcHelper_x64.sys

43:bb:43:7d:60:98:66:28:
6d:d8:39:e1:d0:03:09:f5

NVIDIA Corporation

20220820 15:19:01

 

20220821 05:43:00

 

ee6b1a79cb6641aa
44c762ee90786fe0

NodeDriver.sys

33:00:00:00:57:ee:4d:65:9a:9
2:3e:7c:10:00:00:00:00:00:57

Microsoft Windows Hardware Compatibility Publisher

20221002 19:48:02

 

20221019 17:15:00

 

909f3fc221acbe99
9483c87d9ead024a

LcTkA.sys

33:00:00:00:57:ee:4d:65:9a:9
2:3e:7c:10:00:00:00:00:00:57

Microsoft Windows Hardware Compatibility Publisher

EV 서명 샘플

다음 표에는 조직 이름이 大连纵梦网络科技有限公司인 EV 인증서로 서명된 샘플이 포함되어 있습니다.

컴파일 시간

서명 시간

MD5

패밀리

파일 이름

인증서 시리얼

CA

조직 이름

19700101 00:00:00

20201006 16:26:00

05a56a88f34718ca
bd078dfd6b180ed0

Fast Reverse Proxy

frpc.exe

01:15:3e:7a:3c:8d:c5:0b:
3d:23:c8:ba:31:d3:70:52

DigiCert EV Code Signing CA

连纵梦网科技有限公司

19700101 00:00:00

20201128 18:12:00

2406150783d3ec5d
e13c2654db1a13d5

Fast Reverse Proxy

frpc.exe

01:15:3e:7a:3c:8d:c5:0b:
3d:23:c8:ba:31:d3:70:52

DigiCert EV Code Signing CA

连纵梦网科技有限公司

19700101 00:00:00

20210226 22:11:00

29506adae5c1e97d
e49e3a0d3cd974d4

Fast Reverse Proxy

%home%\unpack\
sakuralauncher_v2.0.1.2
\frpc.exe

01:15:3e:7a:3c:8d:c5:0b:
3d:23:c8:ba:31:d3:70:52

DigiCert EV Code Signing CA

连纵梦网科技有限公司

19700101 00:00:00

20220219 13:29:00

48c1288cd35504de
6f4bd97ec02decb1

Fast Reverse Proxy

svchost.exe

01:15:3e:7a:3c:8d:c5:0b:
3d:23:c8:ba:31:d3:70:52

DigiCert EV Code Signing CA

连纵梦网科技有限公司

19700101 00:00:00

20200820 12:34:00

578e70a8a7c1972b
bc35c3e14e53cbee

Fast Reverse Proxy

frpc.exe

01:15:3e:7a:3c:8d:c5:0b:
3d:23:c8:ba:31:d3:70:52

DigiCert EV Code Signing CA

连纵梦网科技有限公司

19700101 00:00:00

20201128 18:13:00

6216fba5cf44aa99
a73ca919301142e9

Fast Reverse Proxy

 

01:15:3e:7a:3c:8d:c5:0b:
3d:23:c8:ba:31:d3:70:52

DigiCert EV Code Signing CA

连纵梦网科技有限公司

19700101 00:00:00

20220219 13:29:00

69fa8946c326d4b6
6a371608d8ffbe5e

Fast Reverse Proxy

frpc_windows_amd64.exe

01:15:3e:7a:3c:8d:c5:0b:
3d:23:c8:ba:31:d3:70:52

DigiCert EV Code Signing CA

连纵梦网科技有限公司

19700101 00:00:00

20200802 07:11:00

6e4e37641e24edc8
9cfa3e999962ea34

Fast Reverse Proxy

frpc.exe

0c:25:f1:f2:a8:d4:a2:93:
21:e8:28:6e:ed:50:e3:e2

DigiCert EV Code Signing CA

连纵梦网科技有限公司

19700101 00:00:00

20210605 19:09:00

8a930742d1da0fcf
e5492d4eb817727c

Fast Reverse Proxy

c:\program files\sakurafrplauncher
\frpc.exe

01:15:3e:7a:3c:8d:c5:0b:
3d:23:c8:ba:31:d3:70:52

DigiCert EV Code Signing CA

连纵梦网科技有限公司

20211220 07:37:56

 

8fbad6e5aa15857f
761e6a7a75967e85

SOGU Launcher

powerdvd18.exe

03:25:0b:78:25:67:56:fc:
10:db:c6:7a:22:52:7b:44

DigiCert EV Code Signing CA

连纵梦网科技有限公司

19700101 00:00:00

20201224 19:02:00

976bac6cfb21288b
4542d5afe7ce7be7

Fast Reverse Proxy

frpc.exe

01:15:3e:7a:3c:8d:c5:0b:
3d:23:c8:ba:31:d3:70:52

DigiCert EV Code Signing CA

连纵梦网科技有限公司

19700101 00:00:00

20210605 19:09:00

aaeedaa5880e38dc
63a5724cf18baf13

Fast Reverse Proxy

frpc_windows_386.exe

01:15:3e:7a:3c:8d:c5:0b:
3d:23:c8:ba:31:d3:70:52

DigiCert EV Code Signing CA

连纵梦网科技有限公司

20200704 03:53:04

20200704 08:13:00

ab5d85079e299ac4
9fcc9f12516243de

SOGU Launcher

SmadavMain.exe

0c:59:d4:65:80:f0:39:af:
2c:4a:b6:ba:0f:fe:d1:97

DigiCert High Assurance Code Signing CA-1

连纵梦网科技有限公司

20200522 10:23:03

20200523 06:16:00

c43de22826a424b2
d24cf1b4b694ce07

SOGU Launcher

AdobeHelp.exe

0c:59:d4:65:80:f0:39:af:
2c:4a:b6:ba:0f:fe:d1:97

DigiCert High Assurance Code Signing CA-1

连纵梦网科技有限公司

19700101 00:00:00

20201006 16:28:00

d312a6aeffec3cff
78e9fad141d3aaba

Fast Reverse Proxy

frpc.exe

01:15:3e:7a:3c:8d:c5:0b:
3d:23:c8:ba:31:d3:70:52

DigiCert EV Code Signing CA

连纵梦网科技有限公司

19700101 00:00:00

20210321 09:12:00

d36084aad079ca8d
91c2985eca80327b

Fast Reverse Proxy

c:\program files\sakurafrplauncher
\frpc.exe

01:15:3e:7a:3c:8d:c5:0b:
3d:23:c8:ba:31:d3:70:52

DigiCert EV Code Signing CA

连纵梦网科技有限公司

19700101 00:00:00

20201224 19:02:00

e086d7d5a5657800
a0d7e9c144fac16d

Fast Reverse Proxy

frpc.exe

01:15:3e:7a:3c:8d:c5:0b:
3d:23:c8:ba:31:d3:70:52

DigiCert EV Code Signing CA

连纵梦网科技有限公司

의심스러운 증명 서명 샘플

다음 MD5 목록은 수많은 보안 솔루션에서 의심스러운 것으로 식별한 증명 서명 바이너리입니다.

0080fde587d6aedccb08db1317360d32

ff985a86bfa60576a8e86b05603ac5fa

b00c95692923b8c1e2d45c4a64a5ff05

00a7538086c266e8bcf8a0b1c2b6a2e4

62f289f3b55b0886c419a5077d11eb3c

b0fea98c70e510f88b57f45a3f516326

00dd476fa04da76fc2ed37cfdde59875

63960dbc7d63767edb6e1e2dc6f0707b

b164daf106566f444dfb280d743bc2f7

024e92733def0b1180f0ee54b81e5836

63d877650a3219f5991fd66bafc46bc5

b34403502499741762912c7bfc9ff21f

03710450e5bebd207bbe471c4685dc49

64a81238d20dcbd4b21abb609040f698

b44dfd8c5e7b0c8652d7a647dfe252e4

07bac50f875f09ad644827c8918e6837

66c145233576766013688088b03103e3

b500ee8d8cb045936d2996a1747bcded

07c4309678ce891fdd868e10c6e7aad4

66d2860a078fb11832ceef28b23481c2

b5c73db8e70d6f46ad9b693f3ce060d2

0ae78b90151ec2b0457bb0c2675048f5

67ff9de8e72c4dfdf4b4404abf253e7e

b7239e06bcbe6e2c7bb2f7a859cbf4f7

0b4a0fe7db8400ef65ce7618177351cf

688c138fffbb4e7297289433c79d62f5

b83d8761748abb032ab5ae75519eaf71

0d0ffa28823276732a9e4dea5c25cc34

688ca3c12b63fec9f921334d24cf6f78

b849deae20052d72c3c623660fa97e64

14a1d3e07520df607635a3356877f5b9

6916b29893f618ba76b36bd8c297b7ac

b8783155d6be5bb3a6d75edaa7ae7f71

14e6507566a404e3158b3e36314bb3a1

6a066d2be83cf83f343d0550b0b8f206

b9d40581ae936662c37f2edc979d7e99

1548b70d8581cbde703b1fb50b48a6a8

6a23d752fbc30e603bbb050a83a580eb

ba9907be3a0752369082199ed126f8d8

163118c947aacd0978ad3e019c7d121f

6a893aab7b79b73da7a049c2707aabf1

bb46eb379caae3b05e32d3089c0dd6d0

179ca82f2e523be47df0dcebe808408d

6b0a733568d80be653fc9a568cdd88c5

bd25be845c151370ff177509d95d5add

198877a8ce99289f7281b1475c13ba9f

6c3180163e4a5371647e734c7c817de5

bf13a2f4e2deb62b7dee98a012e94d61

19d14bf80b3dc4e5b774b362f079a102

6c7479b5bb27f250fa32331b6457883a

c0471f78648643950217620f6e7e24cc

19d99758b1f33b418cb008530b61a1e7

6d32d2d7a44584c92115ac2a2c3ba3af

c0debd2cfb62fc2c56bfd4104b1ff760

1e63ec5b89edb805956f347b5b5cfaae

6e1bb443369973923c8eced16fcbd5cf

c12d465743b9c167fc819b7872cd014c

1f2888e57fdd6aee466962c25ba7d62d

6e3516775e7e009777dcdb7a314f1482

c35e6a0e1aef31ed9855499df4317acd

1f46065ac9479253e4babc42b72bc4a8

6e730cf4ebcd166d26414378cab3a6d8

c5120095bf08655407c2f0215d10ac1d

1f929fd617471c4977b522c71b4c91ed

6fcf56f6ca3210ec397e55f727353c4a

c77e931a6388b2040cc7c5a1a0f56d93

207cfc647647419adcfcc44c6059a1d1

7182ed3da406ba19bb9ffd8e4948d858

c7850060cfe574a2ef278ba46a136a5e

20f94c9cfc3cf012bf90546985f9f3c4

721b40a0c2a0257443f7dcc2c697e28a

c812fa7c628c3e19a3da5910acf6206e

22519936cd9e8c7d524b0590826c3e6e

72dbbd1dd61c6b0c2571e83f2c3d1825

c8495649615bf1b9f839d7f357d6d02f

228f9f0a0466fba21ac085626020a8e1

734b3a6e6cbd1f53fbb693140d2c3049

cadc3e4090aed708526f0d6016aba7fd

22949977ce5cd96ba674b403a9c81285

761939b0e442821985ab3281f97e6ceb

cb68b7979bbb55bbde0a8c60fe3e5184

232b0156173a9f8f5db6b65aa91e923b

76c6ae0157ea7f41f55ed7e7d241f910

cb6a416204b57470fab0b944d7b59756

23cebc6b0eb76262d796577895f418d2

7737e5e40a439899f326279b7face22c

cbc3d1c88a5d0491b7b50bb77ada93fe

24eb9eef69475e4980a555898b25f0c1

77392be5eae901ae371c37861aa88589

cc29cf2294175315acbf33054151f3cd

262c92f2437c80adf232ef147ca2d734

787782e0395b3d5e32cda6fdea2faba0

cd4b6d8bb762c2281c9b1142588ede4c

267c30e484322ad31fa9e1374d6653f0

79ebae9ab3f3b59c754ab1cc82bf7e95

ce455358bf71c88b45fcb5789100969a

26caf3361ec353593f51ebbd3fe5bbde

7a5896673b81beb5589b512c6d781a85

ce4d3a69331ff87920c903a4e4091904

26d6833b1875b138ea34d6ab430cafcd

7a9df5c46c7c65b807f78c6c0bb2c38c

ce658935ef6e223893121dce22908655

2739311a6bb1a7b0b88ff24bf603a54d

7b6e3fe75c5ae68d7d5a3ae7b00097e0

ce6ef4dc1dd54baddaa51eaf594a496a

27bb03f2659cd95bf9e7af899ee32728

7ba744b584e28190eb03b9ecd1bb9374

d11b9a4664ea03dfe3e8e1d737cd15f8

286b10451fe364310f4a7baeb0e94a3f

7c6c1b7e6378b4c0bcceee84e0e26fde

d22a56e31b4e1fd5b06d46fa56f59151

2a12b959c55f4a2d34f96e45e2417a71

7cb012393114dfb35d60e70166a97986

d27fac80339ad1f2ee86374884996c52

2aa8dc7a5dff7817ce0a9c7cf30847bf

7d78b5773845c5189ca09227d27a9d5a

d2ed678542a5d1db494dc47359861467

2bec13be352db14fc9665ddf128deb8c

7dd800f100a049a72983dd75f5286d70

d47494b717c82eca8278dea610e1265d

2cc14f20cf6847a2084f2c9cc0622015

7e0a6a234a64350e684544e272c7fc41

d60d8f3f12550dca4ba07ff61263b67f

2d84c734d813af49cec3c3aa4aa4e6e3

7e2e29707e7a601e8ea7f3e2f4d672a2

d60e235b769cadbc7e83090b79b73ed3

2e323c67a8781531a294684f7d2761ec

7e7002dc10c62fb674a3184f4ad6688a

d617c9a86328921a8caf924575faf2a2

2f6daca66d2f64c7b1b6f8693ea09cb7

7ee0b286003dc9e8006c22dcd70663f0

d66fc4e2f537566bb4d91cdea0ac64e5

309f16f50e9074ce797eb38eda279298

7f9309f5e4defec132b622fadbcad511

d6b2947d8ff985fa84d697cc6cfdb7ff

331113d1d54a3610f9c9bd72fc783721

811f8d76ff00c9eda27b51a0fb2b0d39

d6e506a1e0417c4507a5314529d84e34

33b5485b35b33fd8ead5a38899522cce

822bbdec4e5630c3170ee05119dcfb5c

d77209a21352486435d85e339596eeae

3452586b669e12c1c4ee9db3c1006018

8264b3bdf46c0ece4f66151a613baed5

d87f08d1e50f2a3423813bf161b40859

35c95b6b5f4a6a0bda56276846dae17b

832fe73a91993b387f9a49fafb9d4ea7

dc170d9bba14b0421c2514465055a93f

35deaa9d004714dc6ef9661b91889148

84ce2a917e3d4aefcfc7d17e4a840a99

dc564bac7258e16627b9de0ce39fae25

3608b3a24736dea4bf24a8ac5ae00e30

85063d67203b91bef9772446a1723021

dd1a5bd34f8cfa56e439c6fb275356d6

37d4ba16136986bfded2b6fc698abf02

860f5812d65dc157a59c14e57bc0eaaf

ddee86b84dcb72835b57b1d049e9e0cd

395ea8b7d0f257850a3a04a1484bac4d

8986b5b6013cfb2bd3e6c8d22c453390

de4b5043c82ab3b36b4ae73a2e96d969

398384a6cf2b7e26947d2e0acbfeeda5

8ac6ef2475ec89d3709fc124573cb380

e051141b1dcb9e7f889fea7c8b1d6ba5

39ee31f03fe1bb93d47f560f73deffa9

8af6a129902a594ddaceafba38b7c060

e0e0c46ba4f969919e2879717c60ef2a

3d4b685dcaebc5bba5f9421572a4ab91

8b423e0395ba6419fcedc0701327c97c

e2465ea5c2d5dac4ae1b8d50da1d7cce

3db8146544ee26866a8e99bacb11188c

8d38a092ae5a3511bedadb7243a84409

e2c146a2522e4f40e5036c3fe12c3560

3ecaf3ba4e93916714cc43320f6f2c58

8e4d0f679b092296a2f74cf812907d05

e30830c05ed3d2a3178a3678f3169bec

3fd815ebb7d2ab2b62cff3c777b51e30

8fc8c6e1b2a1047752f60549878fb55f

e5f62ef06b0dd656e1e47913f01f9f8a

4070a8b16f318d108be0984e628421ad

909f3fc221acbe999483c87d9ead024a

e6960ae657786979493da1786191bcf4

40fda9a3c1be41be414f3795b25647f5

90affc996a2932cb0fec4e31cd673ae9

e777e5a8d2ba97c82128f04272e7841c

415240633837ebcbd80e080ba99c03a9

90b9a4328c4f712815760f9da49bcb6a

e7ff38a94ad765eb305fc7f0837f5913

42200c8422347f63b3edb45ea5aa9c45

913d50851abf337abc3c73f2d4e7fb34

ea033ee6df904d863448ffef6386b6ae

42a417e54639c69f033f72bbafe6e09a

929b293090bcc7900c1e8f9ba519e219

ea45419d992c15002c93067840568121

4349378822e2316f18784c10c7ca08a1

934d0cda4cba428e9b75ff16d5f4b0b1

ea5f6ab5666193f805d13a49009f0699

45991757d4ca2dab9e81f2fcbbc1ae23

93c5faf90bc889963f10c608cbde5a14

ee3bad1f5508e2129e0b423b009383e3

45be5c0e7dfe37f88f1fa6c2fbb462c5

947ebc3f481a7b9ee3cf3a34d9830159

ee6b1a79cb6641aa44c762ee90786fe0

467e60b9a0d1153057e0cfd0e721e198

95a04866e6afb8e9b0426f5890681f9a

f07506c30237c96e49eecafa0e5a4ed4

48190fd615dcea5c6679b8e30a8bfec0

9885d56d64ac2391a43f02abb2202181

f111bd9b8e55f60f909649820e116430

486b1afce3484a784a1662513ca1272a

9a8323bc7187441a0d85b9a2e8f580e3

f35a8a8f36c13769b9e9fff05fa4f720

48bf11dd6c22e241b745d3bb1d562ca1

9c4034691f6508e2361b6fca890671f9

f4ee6bee04b2ed18024e3a64a0d58385

48fc05c42549d0b3ec9e73bbb5be40dc

9d1424c87d89095e3cd6785adb54d2ec

f59a1409ce773658e72ad73424841890

4a0f22286134a58d9d20f911a608f636

9dabf30a780794200cd068b145730317

f783277840bbd2023879a87d0788f36e

4b2e59a821589ab091a63770f4a658ed

9e91e55c89f9c17c0a2acaf4376cd72b

f78915cbf89d8749a0a4ab18a2b182bd

4d4c17d8b52cd89da0b17cc9653b2010

9f1d60d3cddea7f7558fad0217759094

f8ccabcbe08bbd2c8420f4d1cffcefd8

4d947e4163e8aeafbfc626eb033bc665

a0fdc4543687a1b341b365d6dd16551c

f9844524fb0009e5b784c21c7bad4220

4e1f656001af3677856f664e96282a6f

a2ee1cc9e80390ca248863004adbde60

f9aad310a5d5c80bbc61d10cc797e4f0

4e8d5c44bfdeffd0168f8a05f6a04e8b

a2f3bce86beef23aede69396dcf7e184

fa00cc96c5bea2979a59d0da0d22c83d

4f5c7367f2ebae0097b6f2f1bebd19b6

a55cb8be2887e99b4f662fc1ae08d265

fa914061f5a40b324454d3fb9fc85ca5

508d42f26f8bd562728e6fca866e05eb

a7251aad1e81c6194b34dabf6edd6b4a

faa5806826ff1ba749b70de0e14835c3

50d13758b811c794bc13769ee3b42e85

a9541530619a3ac2615b92603b705fe6

fbd9ba2b8b2d677d41c30a01c02cfd01

52494f624378ef6ee298f0fc73082d0e

aba1be25da0691761f593725e9c067e5

fd3b7234419fafc9bdd533f48896ed73

52fc9ec7a5c177fe27fb00b6c2c5ff09

ac2a1f2ae6b547619bef93dfadb48937

fd4cee1c7b8167f25a8b4b864ede3c5d

548d48b658305ffb77cc814ea080b542

ac7f0fcb6040eb47ea9855d418c32510

fdb6dae1e8c182089fdb86996436330c

561bc6902367d9e43e27c5543e7a5818

acac842a46f3501fe407b1db1b247a0b

fe2f8e46ae540d7299c61ba083d52399

5800a88d39fdf63e5a43bfcc6700d907

adab615712eac2719691d01b69254f29

fe7ecd399eec7036a63f0b7eb5ebcfb1

5b281df4aaa915f660e075dc944a02c2

add02792cfff7b19b8e526a247acb0ba

ff43f91f2465504e5e67d0b37d92ef18

5e5d9971c90287a6aa905e54b2a21b1c

ae2f3e2412925a767e372c9c0ccf7ced

 

부록 C: POORTRY 인증서 세부 정보

다음 정보는 POORTRY 샘플에 서명하는 인증서에서 추출하였습니다. 이는 적법한 마이크로소프트 인증서입니다. 참고로 일부 세부 정보는 제거하였습니다.

Certificate:

    Data:

        Version: 3 (0x2)

        Serial Number:

            33:00:00:00:57:ee:4d:65:9a:92:3e:7c:10:00:00:00:00:00:57

        Signature Algorithm: sha256WithRSAEncryption

        Issuer: C = US, ST = Washington, L = Redmond, O = Microsoft Corporation, CN = Microsoft Windows Third Party Component CA 2014

        Validity

            Not Before: Jun  7 18:08:06 2022 GMT

            Not After : Jun  1 18:08:06 2023 GMT

        Subject: C = US, ST = Washington, L = Redmond, O = Microsoft Corporation, CN = Microsoft Windows Hardware Compatibility Publisher

        Subject Public Key Info:

            Public Key Algorithm: rsaEncryption

                RSA Public-Key: (2048 bit)

               Exponent: 65537 (0x10001)

        X509v3 extensions:

            X509v3 Extended Key Usage:

                1.3.6.1.4.1.311.10.3.5, 1.3.6.1.4.1.311.10.3.5.1, Code Signing

            X509v3 Subject Key Identifier:

                41:8F:FB:78:B4:1F:1F:7F:19:8E:36:12:08:D0:22:76:6B:58:FA:29

            X509v3 Subject Alternative Name:

                DirName:/OU=Microsoft Operations Puerto Rico/serialNumber=232147+470769

            X509v3 Authority Key Identifier:

                keyid:C8:3A:9C:A7:4A:C3:23:F2:25:7E:B9:DA:AB:29:53:0E:54:00:C3:A1