Windows에서는 다양한 프로세스가 동작하고 있다. 다양한 프로세스 중 일부 프로세스는 운영체제의 일부이며, 다른 프로세스는 시작 시 자동으로 실행되거나 사용자 또는 공격자가 수동으로 실행하는 응용프로그램들이다. Windows의 정상적인 기능을 알면 잠재적인 멀웨어를 빠르게 찾는데 도움이 된다.
1. svchost.exe (service host)
svchost.exe는 Windows 서비스에 대한 일반 호스트 프로세스로 서비스 DLL을 실행하는 데 사용된다. Windows는 유사한 서비스를 그룹화하기 위해 각 고유한 "-k" 매개변수를 사용하는 svchost.exe의 여러 인스턴스를 실행한다. 일반적인 "-k" 매개변수에는 BTsvcs, DcomLaunch, RPCSS, LocalServiceNetworkRestricted, netsvcs, LocalService, NetworkService, LocalServiceNoNetwork, secsvcs, LocalServiceAndNoImpersonation이 포함된다.
svchost.exe 프로세스를 사용하여 악성 서비스(서비스로 설치된 맬웨어)를 시작할 수 있으며, 악성 서비스가 시작되면 "-k"가 표시되지 않는다. svchost.exe 프로세스를 악의적인 목적으로 활용하는 경우 단어의 철자를 틀리게 하여 눈에 잘 띄지 않게 숨기거나, 다른 디렉터리와 경로에 배치한다. 그러나 이러한 경우 services.exe는 하위 프로세스로 동작하지 않는다.
2. services.exe
svices.exe 프로세스는 서비스 시작 및 종료, 서비스 상호 작용을 포함한 시스템 서비스 처리를 주로 담당하는 서비스 제어 관리자를 시작한다. 서비스는 HKLM\SYSTEM\CurrentControlSet\Services에 정의되어 있으며, services.exe 프로세스는 svchost.exe, dllhost.exe, taskhost.exe, spoolsv.exe 등의 상위 프로세스이다.
services.exe는 인스턴스는 하나만 있어야 하며, 조작을 어렵게 만드는 보호된 프로세스이다. 또한 이벤트 ID 4697(보안) 및 이벤트 ID 7045(시스템)으로 추적이 가능하다.
3. lsass.exe(Local Security Authority Subsystem Service)
lsass.exe 프로세스는 HKLM\SYSTEM\CurrentControlSet\Control\Lsa에 지정된 적절한 SSP(보안 서비스 공급자) 인증 패키지를 호출하여 사용자를 인증하는 역할을 한다. 이 프로세스의 인스턴스는 하나만 존재해야 하며 자식 프로세스가 없어야 한다.
lsass.exe 위협은 종종 눈에 잘 띄지 않게 숨겨져 있다. "lass.exe" 또는 "lsasss.exe"와 같은 맞춤법 오류가 있는지 확인하는 것이 좋다.
4. wininit.exe (windows initialization)
wininit.exe 프로세스는 Windows OS의 필수 부분이며, 백그라운드에서 실행된다. wininit.exe 프로세스는 Windows 초기화 프로세스를 시작하는 역할을 한다. Wininit는 세션 0 내에서 주요 백그라운드 프로세스를 시작한다. 이는 서비스 제어 관리자(services.exe), 로컬 보안 기관 프로세스(lsass.exe) 및 로컬 세션 관리자(lsm.exe)로 시작한다.
wininit.exe 프로세스는 인스턴스가 하나만 있어야하며, 부모 프로세스로 wininit.exe 프로세스를 생성하는지 확인해야 한다. 그리고 wininit.exe 프로세스가 일반적인 경로가 아닌 다른 위치에 있는지 확인하며, 맞춤법도 확인해야 한다.
5. csrss.exe (Client/Server Run-Time Subsystem)
csrss.exe는 항상 실행되어야 하는 필수 하위 시스템으로, 콘솔 창 프로세스/스레드 생성 및 스레드 삭제를 담당한다.
공격자는 눈에 잘 띄지 않는 곳에 숨어 정상적인 프로세스로 보이도록 멀웨어 이름을 csrss.exe와 유사하지만 철자가 틀린 이름으로 변경할 수 있다. (예 : cssrss, crss, cssrs, csrsss)
6. winlogon.exe (Windows Logon Process)
Winlogon은 대화형 사용자 로그온 및 로그오프를 처리한다. 로그온 화면에서 사용자 이름과 암호를 수락하고 자격 증명을 lsass.exe에 전달하여 자격 증명의 유효성을 검사하는 LogonUI.exe를 시작한다. 사용자가 인증되면 Winlogon은 사용자의 NTUSER.DAT를 HKEY_CURRENT_USER 레지스트리 하이브에 로드하고 Userinit.exe를 통해 사용자의 셸(explorer.exe)을 시작한다.
winlogon.exe 프로세스 남용은 로그인 프로세스의 여러 구성 요소 내에서 발생하는 경우가 많다. 맬웨어는 때때로 SHEL 레지스트리 값을 잘못 처리하며, 이 값은 explor.exe여야 한다.
7. smss.exe (Session Manager Subsystem)
smss.exee 프로세스는 사용자 세션 시작과 winlogon.exe 및 csrss.exe 프로세스 시작, 시스템 변수 설정 및 기타 활동을 포함한 다양한 기타 활동을 관리한다. 실행 후 winlogon.exe, csrss.exe 프로세스가 정상적으로 종료되면 smss.exe가 시스템을 종료하고 예기치 않게 종료되는 경우 smss.exe로 인해 시스템이 중단된다.
csrss.exe, wininit.exe, winlogon.exe를 시작하는 smss.exe는 정상이다. 공유 컴퓨터에서 RDP 및 빠른 사용자 전환으로 추가 세션을 생성할 수 있으나, smss.exe 프로세스는 1개의 인스턴스만 실행해야 함을 기억해야 한다.
8. System.exe (System)
시스템 프로세스는 각 프로세서에서 실행되는 단일 스레드이며, USB, 터치패드, 포트, 오디오, 네트워크 등과 같은 모든 종류의 장치 드라이버의 호스트이다.
일반적으로 시스템은 커널 모드 스레드에서 발생하는 악의적인 활동을 처리한다. 시스템 프로세스에는 일부 DLL과 커널 실행 파일이 포함되어 있어 DLL에 대한 화이트리스트를 만드는 것이 좋다.
'Security Incident Analysis' 카테고리의 다른 글
[Windows] OpenSaveMRU 분석 (0) | 2022.11.21 |
---|---|
Windows RDP 이벤트 IDCheatsheet (0) | 2022.02.18 |
이메일 발신자 IP 추적 방법 (0) | 2022.02.18 |
[Linux] Linux 로그 디렉터리 및 파일 목록 (0) | 2022.01.13 |