
CVE-2013-3900의 PowerShell과 Tenable을 사용한 종합적인(End-to-end) 수정 절차입니다. Azure 환경에서 취약점 식별, 레지스트리 강화, 자동화된 검증을 보여줍니다.
이 프로젝트는 실제 환경의 취약점 관리 워크플로우를 시연합니다. Azure VM을 사용하여 높은 심각도의 서명 검증 결함을 추적하고, PowerShell로 수동 확인한 후, 레지스트리 기반 수정을 배포하여 무단 코드 실행으로부터 시스템을 강화했습니다.
Windows의 WinVerifyTrust 함수에는 교활한 결함(CVE-2013-3900)이 있었습니다. 공격자는 디지털 서명을 손상시키지 않고 서명된 파일에 악성 코드를 "동승"시킬 수 있었습니다. 즉, 악성 코드를 포함하고 있더라도 파일이 "신뢰할 수 있는" 것처럼 보일 수 있어 보안 검사를 우회할 수 있었습니다.
Azure VM(Host: Kaddy)에서 Tenable 스캔을 실행하는 것부터 시작했습니다. 스캔은 시스템에 EnableCertPaddingCheck라는 특정 보안 설정이 없기 때문에 "높음(High)" 심각도 취약점(VPR 9.0)으로 플래그를 표시했습니다.

스캐너의 말을 그대로 믿지 않았습니다. PowerShell을 사용하여 레지스트리 키가 실제로 존재하는지 확인했습니다.
powershell Get-ItemProperty -Path "HKLM:\Software\Microsoft\Cryptography\Wintrust\Config" -Name EnableCertPaddingCheck
결과: 명령이 "경로가 존재하지 않음(Path does not exist)" 오류와 함께 실패했습니다. 이를 통해 시스템이 이 특정 익스플로잇에 완전히 노출되어 있다는 사실이 확인되었습니다.

레지스트리를 수동으로 편집(RegEdit)하는 대신 PowerShell 스크립트를 사용하여 수정을 적용했습니다. 이 방법은 특히 수백 대의 머신에서 더 빠르고, 반복 가능하며, 더 안전합니다.
다음 두 곳 모두에 수정을 적용했습니다:
표준 레지스트리 경로
32비트(WoW6432Node) 경로

스크립트가 완료된 후 검증 확인을 다시 실행했습니다. 최종 로그에 표시된 것처럼 EnableCertPaddingCheck 값이 이제 1로 설정되었습니다. 시스템은 이제 인증서 패딩을 엄격하게 검증하여 보안 허점을 효과적으로 차단합니다.

패치 그 이상: 일부 취약점은 "Windows Update"만 실행한다고 해결되지 않는다는 것을 배웠습니다. 때로는 시스템을 실제로 강화하려면 레지스트리에서 직접 작업해야 합니다.
레지스트리 강화: 대규모로 시스템을 관리하는 보안 전문가에게 PowerShell을 통한 HKLM 숙달은 필수적입니다.