Windows 기동에 필수적인 프로세스
게시일: 2006/01/01 | 글쓴이: doa | 11382 번 | 프린트 | 메일


Tital: Vital Process in Windows

가끔 인터넷 사이트를 돌아다니다 보면 자신의 시스템에 너무 많은 프로세스가 기동되고 있다고 하면서 불필요한 프로세스를 골라달라는 질문을 종종 보곤한다. 그러나 이러한 형태의 질문에는 답하기 힘든 부분이 상당히 많다. 그 이유는 사용자의 시스템에서 나타나는 프로세스는 대부분 사용자의 시스템에 따라 달라지기 때문에 누구에게나 적용할 수 있는 답변을 하기 힘들기때문이다.

사실 이런 경우 가장 좋은 답은 불필요한 프로세스를 골라주는 것이 아니라 반드시 필요한 프로세스를 골라주는 것이 최선이다. 따라서 이번 팁에서는 Autoruns를 이용한 알 수 없는 악성 프로그램 제거하기의 부록에서 설명한 필수 프로세스에 약간의 정보를 추가해서 이 팁을 작성하게되었다. Windows를 기동하는데 반드시 필요한 프로세스는 다음과 같다.

csrss.exe Client/Server Run-time SubSystem 콘솔창, 쓰리드의 생성 및 삭제, 16 비트 가상 MS-DOS 환경을 관리한다.
lsass.exe Local Security Authentication Server 사용자 로그온의 타당성을 검증하며 Winlogon 서비스를 위해 사용자 인증을 담당할 프로세스를 생성한다. Msgina.dll 과 같은 인증 패키지를 사용해서 인증을 수행한다. 인증이 성공적이면 사용 접근 토큰을 발생하며, 사용자 접근 토큰은 초기 쉘을 실행하는데 사용된다. 사용자가 시작하는 다른 프로세스는 이 토큰을 상속한다.
services.exe 서비스 관리자 이 프로세스는 시스템 서비스의 시작, 중지 및 시스템 서비스와의 상호 작용을 담당하는 서비스 제어 관리자이다.
smss.exe Session Manager SubSystem 사용자 세션의 시작을 담당하는 세션 관리자 하위 시스템이다. 이 프로세스는 시스템 쓰레드로부터 시작되며 Winlogon 및 Win32(Csrss.exe) 프로세스의 시작과 시스템 변수 설정을 비롯한 다양한 작업을 수행한다. Smss.exe는 이러한 프로세스를 시작한 후 Winlogon이나 Csrss가 종료되기를 기다린다. Winlogon이나 Csrss가 정상적으로 종료되면 시스템을 종료하며 예기치 않은 일이 발생하면 Smss.exe는 시스템이 응답을 중지한다(Hang).
System 대부분의 시스템 커널 모드 스레드가 System 프로세스로 실행된다.
System Idle Process 각 프로세서에서 실행되는 단일 스레드로 시스템이 다른 스레드를 처리하지 않을 때의 프로세서 시간을 나타내는 일만 한다. 일반적으로 작업 관리자에서 이 프로세스가 프로세서 시간의 대부분을 차지한다.
svchost.exe DLL로 실행되는 다른 프로세스의 호스트 역할을 하는 프로세스로서 이 프로세스 항목은 하나 이상 표시될 수 있으며, 보통 4~6개가 실행된다. Svchost.exe에대한 보다 자세한 사항은 Svchost.exe는 무엇일까?를 참조하며, Svchost.exe를 통해 기동되는 서비스는 Svchost.exe를 기동하는 서비스 찾기를 참조하기 바란다.
winlogon.exe Windows Logon 사용자 로그온과 로그오프를 관리하며, Windows XP의 액티베이션 코드를 검사한다.
explorer.exe Windows 쉘 사용자에게 GUI 환경을 제공하는 프로세스로 사용자의 입력을 커널에 전달하는 역할을 한다. 일반적으로 경우에는 꼭 필요한 프로세스이지만 악성 스크립트에 전염된 경우에는 치료를 위해 중지해야하는 프로세스이다.

위에서 설명한 프로세스는 시스템 기동에 필요한 최소한의 프로세스로서 각 프로세스의 종속 관계는 다음 그림과 같다.

추가 정보: 악성 프로세스를 판정하는 방법 파란.com에서 배포하는 스파이웨어라는 글에서 알 수 있듯이 대부분의 악성 프로그램은 csrs.exescvhost.exe처럼 시스템 프로세스와 비슷한 이름을 사용한다. 심지어는 csrss.exe처럼 동일한 이름을 사용하는 경우도 있다. 따라서 다음 기준에따라 프로세스를 종료해야 한다.

  1. 시스템 프로세스와 이름이 비슷한 프로세스: 파란.com에서 배포하는 스파이웨어라는 글에서 알 수 있듯이 대부분의 악성 프로그램은 시스템 프로세스와 비슷한 이름을 사용하는 경우가 많다. 이 경우 가장 먼저 확인해야 할 것은 이 프로세스를 기동한 사용자가 누구인가 하는 점이다. 그림에서 알 수 있는 것처럼 대부분의 시스템 프로세스는 사용자 이름이 System, Network Service, Local Service 중 하나인 경우가 많다. 만약 시스템 프로세스가 사용자 ID로 실행되고 있다면 반드시 프로세스의 이름을 먼저 확인해야 한다. 예를 들어 Csrs.exe, scvhost.exe처럼 시스템 프로세스와 거의 비슷한 이름을 사용하는 경우가 만기때문이다.

  2. 시스템 프로세스와 이름이 같은 프로세스 일부 악성 프로그램은 시스템 프로세스와 동일한 이름을 가진 경우도 존재한다. 이름이 같은 경우 시스템 프로세스를 덮어 쓸 수 없기때문이 대부분의 악성 프로그램은 %SystemRoot%\System32 폴더 이외의 폴더에 존재하는 경우가 많다. 시스템 프로세스를 기동한 사용자 ID가 System, Network Service, Local Service가 아니라 artech처럼 일반 사용자 ID로 기동되고 있다면 악성 프로그램일 가능성이 많다(explorer.exe는 예외). 이 경우 반드시 해당 프로세스가 기동된 폴더를 확인하고 %SystemRoot%\System32 폴더 이외의 폴더에서 기동되었다면 종료하고 악성 프로그램을 치료해야 한다. 현재 기동중인 프로세스의 경로 확인은 Process Explorer 와 같은 3사의 작업 관리자를 사용하는 것이 좋다.


멀티 부팅/Windows에서 리눅스 파티션 마운트 하기 Title: Mounting Linux Partition i... (17886) 2006-01-02
강력한 탐색기 형식의 파일 관리자, Xplorer Title: Powerfull File manager of Window... (12775)2005-12-31

QAOS.com에 게시된지 1년 이상된 자료와 관리자가 공개한 자료는 누구나 제한없이 읽을 수 있습니다.
그러나 QAOS.com의 자료를 퍼가는 것은 금지하고 있습니다.

이 정보가 유용하다고 생각되시면 QAOS.com과 많은 다른 사람들을 위해 퍼가기 보다는 링크로 알려주시기 바랍니다.

세상사는 이야기



RSS 구독 (익명 | 회원 | 강좌 | 포럼)
(C) 1996 ~ 2017 QAOS.com All rights reserved.