루트킷은 해커가 기기 내에서 탐지할 수 없어 보이는 영구적인 멀웨어를 숨기기 위해 사용합니다. 이 맬웨어는 때로는 수년에 걸쳐 조용히 데이터나 리소스를 훔칩니다. 또한 키 입력과 통신이 감시되어 보는 사람에게 개인 정보를 제공하는 키로거 방식으로 사용할 수 있습니다.
이 특정 해킹 방법은 공급업체가 모든 컴퓨터 드라이버에 디지털 서명을 해야 하는 Microsoft Vista 이전인 2006년 이전에 더 많은 관련성을 보였습니다 . KPP ( Kernel Patch Protection ) 는 맬웨어 작성자가 공격 방법을 변경하도록 했으며 2018년 Zacinlo 광고 사기 작전(Zacinlo ad fraud operation) 으로 최근에야 루트킷이 다시 주목을 받았습니다.
2006년 이전의 루트킷은 모두 특별히 운영 체제 기반이었습니다. Detrahere 악성코드(Detrahere malware) 계열의 루트킷 인 Zacinlo 상황 은 펌웨어 기반 루트킷의 형태로 더욱 위험한 것을 제공했습니다. 그럼에도 불구(Regardless) 하고 루트킷은 매년 발견되는 모든 맬웨어 출력의 약 1%에 불과합니다.
그럼에도 불구하고, 그것이 존재할 수 있는 위험 때문에 시스템에 이미 침투했을 수 있는 루트킷을 탐지하는 것이 어떻게 작동하는지 이해하는 것이 현명할 것입니다.
Windows 10 에서 루트킷 감지 ( 심층(In-Depth) )
Zacinlo 는 (Zacinlo)Windows 10 플랫폼 을 목표로 하는 것이 발견되기 전에 실제로 거의 6년 동안 활동했습니다 . 루트킷 구성 요소는 고도로 구성 가능하고 기능에 위험한 것으로 간주되는 프로세스로부터 스스로를 보호했으며 SSL 통신을 가로채고 해독할 수 있었습니다.
모든 구성 데이터를 암호화하여 Windows 레지스트리(Windows Registry) 내에 저장하고 Windows 가 종료 되는 동안 다른 이름을 사용하여 메모리에서 디스크로 자신을 다시 쓰고 레지스트리 키를 업데이트합니다. 이것은 표준 바이러스 백신 소프트웨어의 탐지를 피하는 데 도움이 되었습니다.
이것은 표준 바이러스 백신 또는 맬웨어 방지 소프트웨어가 루트킷을 탐지하는 데 충분하지 않다는 것을 보여줍니다. 그러나 루트킷 공격의 의심을 경고하는 몇 가지 최상위 맬웨어 방지 프로그램이 있습니다.
좋은 안티바이러스 소프트웨어의 5가지 주요 속성(The 5 Key Attributes Of a Good Antivirus Software)
오늘날 대부분의 저명한 바이러스 백신 프로그램은 루트킷을 탐지하기 위해 이러한 주목할만한 5가지 방법을 모두 수행합니다.
- 서명 기반 분석(Signature-based Analysis) – 안티바이러스 소프트웨어는 기록된 파일을 루트킷의 알려진 서명과 비교합니다. 분석은 또한 공격적인 포트 사용과 같이 알려진 루트킷의 특정 작동 활동을 모방하는 행동 패턴을 찾습니다.
- 가로채기 감지(Interception Detection) – Windows 운영 체제는 포인터 테이블을 사용하여 루트킷이 작동하도록 유도하는 것으로 알려진 명령을 실행합니다. 루트킷은 위협으로 간주되는 모든 것을 대체하거나 수정하려고 시도하기 때문에 시스템이 존재함을 알립니다.
- 다중 소스 데이터 비교(Multi-Source Data Comparison) – 루트킷(Rootkits) 은 숨겨진 상태를 유지하기 위해 표준 검사에 표시된 특정 데이터를 변경할 수 있습니다. 고수준 및 저수준 시스템 호출의 반환된 결과는 루트킷의 존재를 제거할 수 있습니다. 소프트웨어는 RAM(RAM) 에 로드된 프로세스 메모리를 하드 디스크의 파일 내용과 비교할 수도 있습니다 .
- 무결성 검사(Integrity Check) – 모든 시스템 라이브러리에는 시스템이 "깨끗한" 것으로 간주될 때 생성된 디지털 서명이 있습니다. 우수한 보안 소프트웨어는 디지털 서명을 생성하는 데 사용된 코드의 변경 사항에 대해 라이브러리를 확인할 수 있습니다.
- 레지스트리 비교(Registry Comparisons) – 대부분의 바이러스 백신 소프트웨어 프로그램에는 미리 설정된 일정에 따라 이러한 항목이 있습니다. 깨끗한 파일은 클라이언트 파일과 실시간으로 비교되어 클라이언트가 요청되지 않은 실행 파일(.exe)인지 여부를 확인합니다.
루트킷 스캔 수행(Performing Rootkit Scans)
루트킷 검사를 수행하는 것은 루트킷 감염을 감지하는 가장 좋은 시도입니다. 대부분의 경우 운영 체제는 자체적으로 루트킷을 식별할 수 없으며 존재 여부를 확인하는 데 어려움을 겪습니다. 루트킷은 마스터 스파이로서 거의 모든 방향에서 자신의 흔적을 덮고 잘 보이지 않는 곳에 숨어 있을 수 있습니다.
루트킷 바이러스 공격이 컴퓨터에서 발생했다고 의심되는 경우 탐지를 위한 좋은 전략은 컴퓨터의 전원을 끄고 알려진 깨끗한 시스템에서 검사를 실행하는 것입니다. 시스템 내에서 루트킷을 찾는 확실한 방법은 메모리 덤프 분석을 사용하는 것입니다. 루트킷은 시스템 메모리에서 실행할 때 시스템에 제공하는 명령을 숨길 수 없습니다.
맬웨어 분석에 WinDbg 사용(Using WinDbg For Malware Analysis)
Microsoft Windows 는 응용 프로그램, 드라이버 또는 운영 체제 자체에 대한 디버깅 검사를 수행하는 데 사용할 수 있는 자체 다기능 디버깅 도구를 제공했습니다. 커널 모드 및 사용자 모드 코드를 디버그하고 크래시 덤프를 분석하고 CPU 레지스터를 검사합니다.
일부 Windows 시스템에는 WinDbg 가 이미 번들로 제공됩니다. 그렇지 않은 Windows 시스템은 (WinDbg)Microsoft Store 에서 다운로드해야 합니다 . WinDbg Preview 는 보다 현대적인 WinDbg 버전으로 시각적으로 더 쉽고 빨라지며 완전한 스크립팅이 가능하며 원본과 동일한 명령, 확장 및 워크플로를 제공합니다.
최소한 WinDbg 를 사용하여 (WinDbg)BSOD ( Blue Screen Of Death ) 를 포함한 메모리 또는 크래시 덤프를 분석 할 수 있습니다 . 결과에서 맬웨어 공격의 지표를 찾을 수 있습니다. 프로그램 중 하나가 맬웨어의 존재로 인해 방해를 받거나 필요한 것보다 더 많은 메모리를 사용하고 있다고 생각되면 덤프 파일을 만들고 WinDbg 를 사용하여 분석할 수 있습니다.
전체 메모리 덤프는 상당한 디스크 공간을 차지할 수 있으므로 대신 커널 모드(Kernel-Mode) 덤프 또는 작은 메모리(Memory) 덤프를 수행하는 것이 좋습니다. 커널 모드 덤프에는 충돌 시 커널의 모든 메모리 사용 정보가 포함됩니다. 작은 메모리(Memory) 덤프에는 드라이버, 커널 등과 같은 다양한 시스템에 대한 기본 정보가 포함되지만 그에 비해 크기는 작습니다.
작은 메모리(Memory) 덤프는 BSOD 가 발생한 이유를 분석하는 데 더 유용합니다. 루트킷을 감지하려면 전체 또는 커널 버전이 더 유용합니다.
커널 모드 덤프 파일 생성(Creating A Kernel-Mode Dump File)
커널 모드(Kernel-Mode) 덤프 파일은 세 가지 방법으로 만들 수 있습니다 .
- 시스템이 자체적으로 충돌할 수 있도록 제어판(Control Panel) 에서 덤프 파일을 활성화합니다.
- 제어판(Control Panel) 에서 덤프 파일을 활성화하여 시스템을 강제로 충돌시키십시오.
- 디버거 도구를 사용하여 생성
우리는 선택 번호 3으로 갈 것입니다.
필요한 덤프 파일을 수행하려면 WinDbg 의 (WinDbg)명령(Command) 창에 다음 명령을 입력하기만 하면 됩니다 .
FileName 을 덤프 파일의 적절한 이름으로 바꾸고 "? " (FileName)f . _ "f"가 소문자인지 확인하십시오. 그렇지 않으면 다른 종류의 덤프 파일이 생성됩니다.
디버거가 과정을 실행하면(첫 번째 스캔은 상당한 시간이 소요됨) 덤프 파일이 생성되고 결과를 분석할 수 있습니다.
루트킷의 존재를 확인하기 위해 휘발성 메모리( RAM(RAM) ) 사용량 과 같이 찾고 있는 것이 무엇인지 이해 하려면 경험과 테스트가 필요합니다. 초보자에게 권장되지는 않지만 라이브 시스템에서 맬웨어 검색 기술을 테스트하는 것은 가능합니다. 이렇게 하려면 실수로 라이브 바이러스를 시스템에 배포하지 않도록 WinDbg 작동에 대한 전문 지식과 심층 지식이 다시 필요 합니다.
우리의 잘 숨겨진 적을 밝혀내는 더 안전하고 초보자 친화적인 방법이 있습니다.
추가 스캔 방법(Additional Scanning Methods)
수동 탐지 및 행동 분석도 루트킷 탐지를 위한 신뢰할 수 있는 방법입니다. 루트킷의 위치를 찾으려는 시도는 큰 어려움이 될 수 있으므로 루트킷 자체를 대상으로 하는 대신 루트킷과 유사한 동작을 찾을 수 있습니다.
설치하는 동안 고급(Advanced) 또는 사용자 지정(Custom) 설치 옵션 을 사용하여 다운로드한 소프트웨어 번들에서 루트킷을 찾을 수 있습니다 . 세부 정보에 나열된 익숙하지 않은 파일을 찾아야 합니다. 이러한 파일은 폐기해야 합니다. 그렇지 않으면 악성 소프트웨어에 대한 참조를 온라인에서 빠르게 검색할 수 있습니다.
방화벽과 그 로깅 보고서는 루트킷을 발견하는 매우 효과적인 방법입니다. 소프트웨어는 네트워크가 정밀 조사를 받고 있는지 알려주고 설치 전에 인식할 수 없거나 의심스러운 다운로드를 격리해야 합니다.
루트킷이 이미 컴퓨터에 있다고 의심되는 경우 방화벽 로깅 보고서를 살펴보고 비정상적인 동작을 찾을 수 있습니다.
방화벽 로깅 보고서 검토(Reviewing Firewall Logging Reports)
현재 방화벽 로깅 보고서를 검토하여 매우 유용한 도구인 방화벽 로그 필터링 기능을 갖춘 IP Traffic Spy 와 같은 오픈 소스 응용 프로그램을 만들고 싶을 것입니다. (IP Traffic Spy)보고서는 공격이 발생했을 때 확인해야 할 사항을 보여줍니다.
독립 실행형 송신 필터링 방화벽이 있는 대규모 네트워크가 있는 경우 IP 트래픽 스파이(IP Traffic Spy) 가 필요하지 않습니다. 대신 방화벽 로그를 통해 네트워크의 모든 장치와 워크스테이션에 대한 인바운드 및 아웃바운드 패킷을 볼 수 있어야 합니다.
가정에 있든 소규모 비즈니스 환경에 있든 ISP 에서 제공하는 모뎀을 사용 하거나, 모뎀이 있는 경우 개인 방화벽이나 라우터를 사용하여 방화벽 로그를 가져올 수 있습니다. 동일한 네트워크에 연결된 각 장치의 트래픽을 식별할 수 있습니다.
Windows 방화벽 로그(Windows Firewall Log) 파일 을 활성화하는 것도 도움이 될 수 있습니다 . 기본적으로 로그 파일은 비활성화되어 정보나 데이터가 기록되지 않습니다.
- 로그 파일을 생성하려면 Windows key + R실행(Run) 기능을 엽니다 .
- 상자에 wf.msc를 입력 하고 Enter 키(wf.msc) 를 누릅니다 .
- Windows 방화벽(Windows Firewall) 및 고급 보안(Advanced Security) 창의 왼쪽 메뉴에서 "로컬 컴퓨터의 고급 보안(Advanced Security) 이 포함된 Windows Defender 방화벽"을 강조 표시 합니다. "작업" 아래의 맨 오른쪽 메뉴에서 속성 을 클릭 합니다(Properties) .
- 새 대화 상자 창에서 "개인 프로필" 탭으로 이동 하여 "로깅" 섹션에 있는 사용자 지정 을 선택합니다.(Customize)
- 새 창에서는 기록할 로그 파일의 크기, 파일을 보낼 위치, 삭제된 패킷만 기록할지, 연결 성공 여부 또는 둘 다를 기록할지 선택할 수 있습니다.
- 삭제(Dropped) 된 패킷은 Windows 방화벽(Windows Firewall) 이 사용자를 대신하여 차단한 패킷입니다.
- 기본적으로 Windows 방화벽(Windows Firewall) 로그 항목은 마지막 4MB의 데이터만 저장하며 %SystemRoot%\System32\LogFiles\Firewall\Pfirewall.log
- 로그의 데이터 사용량에 대한 크기 제한을 늘리면 컴퓨터 성능에 영향을 미칠 수 있습니다.
- 완료되면 확인을 누릅니다(OK) .
- 다음으로 "비공개 프로필" 탭에서 방금 수행한 것과 동일한 단계를 반복합니다. 이번에는 "공개 프로필" 탭에서만 가능합니다.
- 이제 공용 및 개인 연결 모두에 대한 로그가 생성됩니다. 메모장(Notepad) 과 같은 텍스트 편집기에서 파일을 보거나 스프레드시트로 가져올 수 있습니다.
- 이제 로그 파일을 IP Traffic Spy 와 같은 데이터베이스 파서 프로그램으로 내보내어 쉽게 식별할 수 있도록 트래픽을 필터링하고 정렬할 수 있습니다.
로그 파일에서 비정상적인 내용을 주시하십시오. 아주 작은 시스템 오류라도 루트킷 감염을 나타낼 수 있습니다. 너무 많은 것을 요구하거나 전혀 실행하지 않을 때 과도한 CPU 또는 대역폭 사용과 관련된 것이 주요 단서가 될 수 있습니다.(CPU)
How to Detect Rootkits In Windows 10 (In-Depth Guide)
Rootkits are used by hackers to hidе persistent, seemingly undetectable malware within your device that will silently stеаl data or resources, sоmetimes over the course of multiple years. They can also be uѕed in keylogger fashion where your keyѕtrokes and communications are surveilled providing the onlоoker with privacy information.
This particular hacking method saw more relevance pre-2006, prior to Microsoft Vista requiring vendors to digitally sign all computer drivers. The Kernel Patch Protection (KPP) caused malware writers to change their attack methods and only recently as of 2018 with the Zacinlo ad fraud operation, did rootkits re-enter the spotlight.
The rootkits pre-dating 2006 were all specifically operating system-based. The Zacinlo situation, a rootkit from the Detrahere malware family, gave us something even more dangerous in the form of a firmware-based rootkit. Regardless, rootkits are only around one percent of all malware output seen annually.
Even so, because of the danger they can present, it would be prudent to understand how detecting rootkits that may have already infiltrated your system works.
Detecting Rootkits in Windows 10 (In-Depth)
Zacinlo had actually been in play for almost six years before being discovered targeting the Windows 10 platform. The rootkit component was highly configurable and protected itself from processes it deemed dangerous to its functionality and was capable of intercepting and decrypting SSL communications.
It would encrypt and store all of its configuration data within the Windows Registry and, while Windows was shutting down, rewrite itself from memory to disk using a different name, and update its registry key. This helped it to evade detection by your standard antivirus software.
This goes to show that a standard antivirus or antimalware software is not enough for detecting rootkits. Although, there are a few top tier antimalware programs that will alert you to suspicions of a rootkit attack.
The 5 Key Attributes Of a Good Antivirus Software
Most of the prominent antivirus programs today will perform all five of these notable methods for detecting rootkits.
- Signature-based Analysis – The antivirus software will compare logged files with known signatures of rootkits. The analysis will also look for behavioral patterns that mimic certain operating activities of known rootkits, such as aggressive port use.
- Interception Detection – The Windows operating system employs pointer tables to run commands that are known to prompt a rootkit to act. Since rootkits attempt to replace or modify anything considered a threat, this will tip off your system to their presence.
- Multi-Source Data Comparison – Rootkits, in their attempt to remain hidden, may alter certain data presented in a standard examination. The returned results of high and low-level system calls can give away the presence of a rootkit. The software may also compare the process memory loaded into the RAM with the content of the file on the hard disk.
- Integrity Check – Every system library possesses a digital signature that is created at the time the system was considered “clean”. Good security software can check the libraries for any alteration of the code used to create the digital signature.
- Registry Comparisons – Most antivirus software programs have these on a preset schedule. A clean file will be compared with a client file, in real-time, to determine if the client is or contains an unrequested executable (.exe).
Performing Rootkit Scans
Performing a rootkit scan is the best attempt for detecting rootkit infection. Most often your operating system cannot be trusted to identify a rootkit on its own and presents a challenge to determine its presence. Rootkits are master spies, covering their tracks at almost every turn and capable of remaining hidden in plain sight.
If you suspect a rootkit virus attack has taken place on your machine, a good strategy for detection would be to power down the computer and execute the scan from a known clean system. A surefire way to locate a rootkit within your machine is through a memory dump analysis. A rootkit cannot hide the instructions it gives your system as it executes them in the machine’s memory.
Using WinDbg For Malware Analysis
Microsoft Windows has provided its own multi-function debugging tool that can be used to perform debugging scans on applications, drivers, or the operating system itself. It will debug kernel-mode and user-mode code, help analyze crash dumps, and examine the CPU registers.
Some Windows systems will come with WinDbg already bundled in. Those without will need to download it from the Microsoft Store. WinDbg Preview is the more modern version of WinDbg, providing easier on the eyes visuals, faster windows, complete scripting, and the same commands, extensions, and workflows as the original.
At the bare minimum, you can use WinDbg to analyze a memory or crash dump, including a Blue Screen Of Death (BSOD). From the results, you can look for indicators of a malware attack. If you feel that one of your programs may be hindered by the presence of malware, or is using more memory than is required, you can create a dump file and use WinDbg to help analyze it.
A complete memory dump can take up significant disk space so it may be better to perform a Kernel-Mode dump or Small Memory dump instead. A Kernel-Mode dump will contain all memory usage information by the kernel at the time of the crash. A Small Memory dump will contain basic information on varying systems like drivers, the kernel, and more, but is tiny in comparison.
Small Memory dumps are more useful in analyzing why a BSOD has occurred. For detecting rootkits, a complete or kernel version will be more helpful.
Creating A Kernel-Mode Dump File
A Kernel-Mode dump file can be created in three ways:
- Enable the dump file from Control Panel to allow the system to crash on its own
- Enable the dump file from Control Panel to force the system to crash
- Use a debugger tool to create one for you
We’ll be going with choice number three.
To perform the necessary dump file, you only need to enter the following command into the Command window of WinDbg.
Replace FileName with an appropriate name for the dump file and the “?” with an f. Make sure that the “f” is lowercase or else you’ll create a different kind of dump file.
Once the debugger has run its course (the first scan will take considerable minutes), a dump file will have been created and you’ll be able to analyze your findings.
Understanding what it is your looking for, such as volatile memory (RAM) usage, to determine the presence of a rootkit takes experience and testing. It is possible, though not recommended for a novice, to test malware discovering techniques on a live system. To do this will again take expertise and in-depth knowledge on workings of WinDbg so as not to accidentally deploy a live virus into your system.
There are safer, more beginner-friendly ways to uncover our well-hidden enemy.
Additional Scanning Methods
Manual detection and behavioral analysis are also reliable methods for detecting rootkits. Attempting to discover the location of a rootkit can be a major pain so, instead of targeting the rootkit itself, you can instead look for rootkit-like behaviors.
You can look for rootkits in downloaded software bundles by using Advanced or Custom install options during installation. What you’ll need to look for are any unfamiliar files listed in the details. These files should be discarded, or you can do a quick search online for any references to malicious software.
Firewalls and their logging reports are an incredibly effective way to discover a rootkit. The software will notify you if your network is under scrutiny, and should quarantine any unrecognizable or suspicious downloads prior to installation.
If you suspect that a rootkit may already be on your machine, you can dive into the firewall logging reports and look for any out of the ordinary behavior.
Reviewing Firewall Logging Reports
You’ll want to review your current firewall logging reports, making an open-source application like IP Traffic Spy with firewall log filtering capabilities, a very useful tool. The reports will show you what is necessary to see should an attack occur.
If you have a large network with a standalone egress filtering firewall, IP Traffic Spy will not be necessary. Instead, you should be able to see the inbound and outbound packets to all devices and workstations on the network via the firewall logs.
Whether you’re in a home or small business setting, you can use the modem provided by your ISP or, if you own one, a personal firewall or router to pull up the firewall logs. You’ll be able to identify the traffic for each device connected to the same network.
It may also be beneficial to enable Windows Firewall Log files. By default, the log file is disabled meaning no information or data is written.
- To create a log file, open up the Run function by pressing the Windows key + R.
- Type wf.msc into the box and press Enter.
- In the Windows Firewall and Advanced Security window highlight “Windows Defender Firewall with Advanced Security on Local Computer” in the left side menu. On the far right side menu under “Actions” click Properties.
- In the new dialog window, navigate over to the “Private Profile” tab and select Customize, which can be found in the “Logging” section.
- The new window will allow you to select how big of a log file to write, where you’d like the file sent, and whether to log only dropped packets, successful connection, or both.
- Dropped packets are those that Windows Firewall has blocked on your behalf.
- By default, Windows Firewall log entries will only store the last 4MB of data and can be found in the %SystemRoot%\System32\LogFiles\Firewall\Pfirewall.log
- Keep in mind that increasing the size limit on data usage for logs can impact your computer’s performance.
- Press OK when finished.
- Next, repeat the same steps you just went through in the “Private Profile” tab, only this time in the “Public Profile” tab.
- Logs will now be generated for both public and private connections. You can view the files in a text editor like Notepad or import them into a spreadsheet.
- You can now export the logs’ files into a database parser program like IP Traffic Spy to filter and sort the traffic for easy identification.
Keep an eye out for anything out of the ordinary in the log files. Even the slightest system fault can indicate a rootkit infection. Something along the lines of excessive CPU or bandwidth usage when you’re not running anything too demanding, or at all, can be a major clue.