Computer >> 컴퓨터 >  >> 시스템 >> Windows 10

Windows 10의 COM 서로게이트(COM Surrogate)란? 바이러스 여부와 확인 방법

Windows 10 작업 관리자에서 COM Surrogate(컴 서로게이트)라는 프로세스를 본 적이 있으신가요? 프로세스 목록을 살펴보다 보면 시스템에서 두 개 이상 실행 중인 것을 발견할 수 있습니다.

작업 관리자의 다양한 프로세스를 이해하는 것은 쉽지 않은 일입니다. 예를 들어 svchost.exe는 여러 Windows 서비스를 호스팅하는 프로세스로, 언제든지 10~15개가 동시에 실행되고 있기도 합니다.

이 글에서는 Windows 10의 COM Surrogate가 정확히 무엇인지, 그리고 걱정해야 할 대상인지 아닌지를 간단히 살펴보겠습니다.

COM Surrogate란 무엇인가?

COM Surrogate는 이름만 봐서는 어떤 역할을 하는지 전혀 짐작하기 어려운 프로세스입니다. 고유한 아이콘도 없고, 하는 일에 대한 정보도 거의 제공하지 않은 채 조용히 자리 잡고 있습니다.

때때로 COM Surrogate 프로세스가 여러 개 동시에 실행되는 경우도 있는데, 작업 관리자를 열면 보통 두 개 정도가 실행 중인 것을 볼 수 있습니다.

프로세스를 마우스 오른쪽 버튼으로 클릭하고 세부 정보로 이동(Go to Details)을 선택하면 실제 프로세스 이름이 dllhost.exe라는 것을 알 수 있습니다. 또한 이 프로세스는 System, Local Service, Network Service 계정이 아닌 사용자 본인의 계정으로 실행된다는 점도 확인할 수 있습니다.

다행히 COM Surrogate는 바이러스가 아닙니다(대부분의 경우). 백그라운드에서 실행되는 정상적인 Windows 10 프로세스입니다. dllhost라는 이름이 붙은 이유는 이 프로세스가 DLL 파일을 호스팅하기 때문입니다. 다소 생소하게 느껴질 수 있으니 좀 더 자세히 설명해 드리겠습니다.

COM 객체와 COM Surrogate의 원리

Microsoft는 개발자들이 프로그램 확장 기능을 만들 수 있도록 'COM 객체(COM Object)'라는 인터페이스를 만들었습니다. Windows 10의 일부 프로그램에서도 이 기능이 활용됩니다. 예를 들어, 파일 탐색기에는 폴더 내 이미지와 동영상의 미리 보기(썸네일)를 생성하는 COM 객체가 포함되어 있습니다.

그런데 이러한 COM 객체에는 큰 문제점이 있었습니다. COM 객체가 충돌하면 탐색기(Explorer) 프로세스까지 함께 종료되어, 시스템 전체가 멈추는 상황이 발생할 수 있었던 것입니다.

이 문제를 해결하기 위해 Microsoft는 요청한 프로세스와 분리된 별도의 프로세스에서 COM 객체를 실행하는 COM Surrogate 프로세스를 도입했습니다. 즉, 탐색기의 경우 COM 객체가 explorer.exe 내에서 실행되지 않고, 새로 생성된 COM Surrogate 프로세스에서 실행됩니다.

이렇게 하면 COM 객체가 충돌하더라도 COM Surrogate만 종료될 뿐, 탐색기는 계속 정상적으로 작동합니다. 꽤 영리한 설계죠?

실제로 Process Explorer를 다운로드하면 앞서 언급한 COM 객체를 직접 확인할 수 있습니다. dllhost.exe 항목에 마우스를 올려보면 COM 클래스가 Microsoft Thumbnail Cache로 표시되는데, 이것이 바로 탐색기에서 미리 보기를 생성하는 데 사용되는 확장 기능입니다.

COM Surrogate가 바이러스일 가능성은?

과거에는 트로이목마나 바이러스가 COM Surrogate 등의 Windows 프로세스로 위장해 운영체제에 숨어 있는 사례도 있었습니다. 따라서 몇 가지만 확인하면 안심할 수 있습니다.

작업 관리자에서 해당 프로세스를 마우스 오른쪽 버튼으로 클릭하고 파일 위치 열기(Open file location)를 선택하면 프로세스의 실제 위치를 확인할 수 있습니다.

COM Surrogate 프로세스가 C:\Windows\System32 폴더의 'dllhost' 파일을 가리킨다면 바이러스일 가능성은 거의 없습니다. 반면 다른 위치를 가리킨다면 즉시 바이러스 검사를 실행하는 것이 좋습니다.

일반적으로 COM Surrogate는 메모리와 CPU를 아주 적게 사용하며, 한두 개의 인스턴스만 실행됩니다. 만약 dllhost.exe 프로세스가 비정상적으로 많이 실행되거나, CPU 점유율이 1~2%를 크게 초과한다면 은닉형 바이러스를 더 잘 탐지할 수 있는 오프라인 바이러스 검사를 수행하는 것이 좋습니다.

이 글을 통해 COM Surrogate와 Windows 10 백그라운드 프로세스에 대해 조금이나마 이해하셨기를 바랍니다. 앞으로 이런 프로세스가 백그라운드에서 실행되는 것을 보아도 불필요하게 걱정하지 않으셔도 됩니다.

궁금한 점이 남아 있다면 댓글로 남겨주세요. 성심껏 답변해 드리겠습니다!