「지웠는데 다음 날 또 생겼다」 — 광고 프로그램과 악성코드가 끈질긴 이유는 대개 예약 작업입니다. 작업 스케줄러에 「매시간」·「로그온 시」 다시 설치하라는 작업을 걸어 두면, 프로그램을 지워도 몇 시간 뒤 되살아납니다. 이 글은 수상한 예약 작업을 찾는 법입니다.
작업 스케줄러 열기
Win + R → taskschd.msc → 확인. 왼쪽 「작업 스케줄러 라이브러리」를 누르면 최상위에 있는 작업이 보이고, 그 아래 Microsoft 폴더 안에 Windows 자체 작업이 수백 개 있습니다.
먼저 볼 곳은 최상위(라이브러리 바로 아래)입니다. 정상 프로그램도 여기에 업데이트 작업을 두지만(Google, Adobe, Microsoft Edge 등), 광고·악성 작업도 대부분 여기 있습니다.
작업 하나를 보는 법
작업을 고르고 아래쪽의 탭을 봅니다.
- 트리거 — 언제 실행되는가. 「로그온할 때」, 「매일」, 「반복 간격 1시간」 같은 값입니다.
- 동작 — 무엇을 실행하는가. 여기가 핵심입니다.
- 일반 → 작성자 — 비어 있거나 무작위 문자열이면 참고할 만한 신호입니다.
「동작」에서 이런 것이 보이면 의심한다
| 보이는 것 | 왜 수상한가 |
|---|---|
powershell.exe + -enc 또는 -EncodedCommand | 명령을 일부러 읽을 수 없게 감춘 것입니다. 정상 소프트웨어가 예약 작업에 이렇게 쓰는 일은 드뭅니다. |
-WindowStyle Hidden 또는 -w hidden | 창을 숨기고 실행합니다. |
http://·https:// 주소, DownloadString, Invoke-WebRequest | 실행할 때마다 인터넷에서 무언가를 받아 옵니다. |
mshta.exe, wscript.exe, cscript.exe, rundll32.exe + 사용자 폴더 경로 | 스크립트·DLL 을 대신 실행하는 Windows 도구를 빌려 쓰는 전형적인 방식입니다. |
C:\Users\…\AppData\, C:\ProgramData\, Temp 아래의 실행 파일 | 관리자 권한 없이 쓸 수 있는 자리라 악성 파일이 주로 둥지를 틉니다. |
하나만 해당한다고 곧 악성은 아닙니다. 하지만 둘 이상이 겹치면 정상일 가능성은 매우 낮습니다.
명령 한 줄로 전체 목록 뽑기
화면으로 하나씩 보기 어렵다면 명령 프롬프트에서 전체를 파일로 뽑을 수 있습니다.
schtasks /query /fo LIST /v > %USERPROFILE%\Desktop\tasks.txt
바탕화면의 tasks.txt 를 메모장으로 열고 -enc, hidden, http, AppData 로 검색하세요.
지우기 전에 — 먼저 끈다
- 작업을 마우스 오른쪽 → 「사용 안 함」. 삭제가 아니라 꺼 두는 것이라 되돌릴 수 있습니다.
- 「동작」에 적힌 실행 파일 경로를 메모해 두고, 그 파일을 Windows 보안으로 검사합니다(파일 오른쪽 클릭 → Microsoft Defender로 검사).
- 며칠 동안 문제가 없고 정체가 악성으로 확인되면 그때 작업을 삭제합니다.
Microsoft 폴더 안의 작업은 건드리지 마세요. Windows 업데이트·디스크 정리·Defender 자체가 그 안에서 돕니다.
같이 봐야 할 자리
예약 작업만 지우면 다른 자리에서 다시 작업을 만드는 경우가 있습니다. 시작 프로그램 네 자리와 브라우저 설정 변조를 함께 확인하세요. 하나의 광고 프로그램이 세 곳에 동시에 자리를 잡는 일은 흔합니다.
울타리 NEO 는 예약 작업의 「동작」을 읽어 인코딩된 명령·창 숨김·인터넷 내려받기·사용자 폴더 실행을 찾아 근거와 함께 보여 줍니다. 끄기는 삭제가 아니라 비활성이며 언제든 되돌릴 수 있습니다.