- 미국 CISA, NSA, FBI 등에서 러시아 연방 보안국(FSB)과 연관된 것으로 추정되는 Snake 악성코드 분석 보고서 발표
- Snake 악성코드는 50여 개 국가 정부 네트워크, 연구 시설 및 언론 등을 대상으로 민감 정보 탈취를 시도
2. 주요내용
① 러시아 배후 해킹 그룹 Turla는 피싱메일과 무차별 대입 공격을 통해 자격 증명 정보 획득 및 관리자 권한 획득 시도
- 초기 액세스 권한 획득 후 Snake 악성코드 배포
> jpsetup.exe(이미지 뷰어 설치 프로그램)을 통해 Snake 악성코드 배포
> 정상적인 경로(%windows%\WinSxS\)에 WerFault.exe 등록하여 지속성 유지
WinSxS (Windows Side By Side) - Windows OS의 "DLL Hell" 문제를 해결하기 위해 만들어짐 ※ DLL Hell: DLL을 관리할 때 발생할 수 있는 모든 문제를 의미 > Windows OS는 프로그램 사용 시 DLL파일을 사용 > 업데이트 등으로 DLL이 변경되는 경우 DLL 관련 문제가 발생할 수 있음 ※ DLL 버전 충돌 문제, 프로그램이 의존하는 DLL 파일을 찾을 때의 어려움, 불필요한 DLL 파일 복사본이 만들어지는 문제 등 > 이러한 문제를 해결하기 위한 목적으로 등장
- 윈도우 업데이트 시 시스템, 드라이버가 변경되는 폴더, 파일들을 WinSxS 폴더에 백업 > 프로그램 실행 시 해당 디렉터리에서 DLL에 관한 정보를 불러옴 > 이를 통해 의존성 문제를 줄일 수 있음
② 관리자 권한 획득 후 도메인 컨트롤러에 액세스
- 조직의 전체 네트워크에 대한 정보 수집 목적
> 키로거, 네트워크 스니퍼, 오픈 소스 등의 도구를 사용
③ 여러 노드를 경유하여 내부 정보 유출
- 여러 프로토콜을 이용한 통신(TCP, UDP, HTTP, SMTP, DNS 등)과 암호화를 사용해 탐지 우회
3. 탐지규칙
3.1 Snort
- 권고된 탐지 규칙을 적용하기 전 운영 환경을 고려하여 적용여부 검토
alert http any any -> any any (msg: "http rule (Cookie)";pcre:"/[0-9A-Za-z]{10}[0-9A-Za-z\/\+]{11}=/C";flow: established, to_server;sid: 7; rev: 1;)
alert http any any -> any any (msg: "http rule (Other Header)";pcre:"/[0-9A-Za-z]{10}[0-9A-Za-z\/\+]{11}=/H";flow: established, to_server;sid: 8; rev: 1;)
alert http any any -> any any (msg: "http2 rule (Cookie)";pcre:"/[0-9A-Za-z]{22}[0-9A-Za-z\/_=\;]{11}/C";flow: established, to_server;sid: 9; rev: 1;)
alert http any any -> any any (msg: "http2 rule (Other Header)";pcre:"/[0-9A-Za-z]{22}[0-9A-Za-z\/_=\;]{11}/H";flow: established, to_server;sid: 10; rev: 1;)
alert tcp any any -> any any (msg: "tcp rule";content: "|00 00 00 08|"; startswith; dsize: 12;flow: established, to_server; flowbits: set, a8; flowbits: noalert;sid: 1; rev: 1;)
alert tcp any any -> any any (msg: "tcp rule";content: "|00 00 00 04|"; startswith; dsize:8;flow: established, to_server; flowbits: isset, a8; flowbits: unset, a8;flowbits: set, a4; flowbits: noalert;sid: 2; rev: 1;)
alert tcp any any -> any any (msg: "tcp rule";content: "|00 00 00 08|"; startswith; dsize: 4;flow: established, to_client; flowbits: isset, a4; flowbits: unset, a4;flowbits: set, b81; flowbits: noalert;sid: 3; rev: 1;)
alert tcp any any -> any any (msg: "tcp rule";dsize: 8; flow: established, to_client; flowbits: isset, b81;flowbits: unset, b81; flowbits: set, b8; flowbits: noalert;sid: 4; rev: 1;)
alert tcp any any -> any any (msg: "tcp rule";content: "|00 00 00 04|"; startswith; dsize: 4;flow: established, to_client; flowbits: isset, b8; flowbits: unset, b8;flowbits: set, b41; flowbits: noalert;sid: 5; rev: 1;)
alert tcp any any -> any any (msg: "tcp rule";dsize: 4; flow: established, to_client; flowbits: isset, b41;flowbits: unset, b41;sid: 6; rev: 1;)
condition: pe.is_pe and for any rsrc in pe.resources: (rsrc.type == pe.RESOURCE_TYPE_ICON and rsrc.length == 3240) and for any rsrc in pe.resources: (rsrc.type == pe.RESOURCE_TYPE_ICON and rsrc.length == 1384) and for any rsrc in pe.resources: (rsrc.type == pe.RESOURCE_TYPE_ICON and rsrc.length == 7336) }
- 해당 취약점은 발견 당시 Zero-Day 취약점이었으며, 2017.04 MS에서 패치를 진행
- 러시아에서 사이버무기로 활용하던 제로데이 취약점으로, 취약점이 공개되자 북한이 활용한 것으로 판단
※ 보안뉴스 "세계적인 관심 받고 있는 북한의 APT 단체 킴수키, 어떻게 막아야 하나" 취약점이 포함되어 있어 정리
2. 관련 지식
2.1 OLE
- 객체 연결 삽입(Object Linking and Embedding, OLE)의 준말
- MS에서 개발하였으며, 문서와 기타 객체에 연결과 삽입을 도와주는 연결규약
- 다른 응용프로그램에서 작성된 문자나 그림, mp3 등의 개체를 현재 작성 중인 문서에 자유롭게 연결하거나 삽입하여 편집할 수 있게 하는 기능
버전
설명
OLE 1.0
- 1990년에 출시 - MS가 초기 버전의 윈도우 OS용으로 만든 동적 데이터 교환(Dynamic Data Exchange, DDE)를 확장한 것
OLE 2.0
- 자동화, 드래그 앤 드롭 등의 기능이 추가
- 해당 취약점에서는 OLE2 link object를 악용
> OLE2 기술을 사용하여 생성된 객체를 다른 문서나 응용 프로그램과 연결하는 객체
> 원본 객체의 데이터와 OLE2 기술을 사용하여 생성된 링크 정보를 포함하며, 링크 정보를 사용하여 원본 객체를 참조
2.2 RTF 파일
- 서식있는 텍스트 파일 (Rich Text Format, RTF)
- MS가 1987년 개발 및 표준화한 파일 포맷으로 확장자로 ".RTF"를 가짐
- Microsoft Word, LibreOffice, OpenOffice 등 다양한 소프트웨어에서 지원
- 텍스트만 저장하는 일반 텍스트 파일과 달리 글꼴 스타일, 서식, 이미지 등에 대한 정보도 저장되어 서식 유지 가능
> ASCII 텍스트로 작성되어 있으며, 문서에 포함된 서식(글꼴, 색상, 크기, 스타일 등)을 나타내는 태그가 포함
> 서식 태그는 RTF 리더기나 편집기에서 해석되어 문서의 서식이 적용
2.3 URL Moniker
- URL Moniker는 COM 개체의 구성요소로, 인터넷에서 리소스를 찾아내 참조하기 위한 기술
- URL을 사용하여 웹 페이지, 이미지, 비디오, 오디오 등의 인터넷 리소스를 찾아내고, 해당 리소스를 다른 응용 프로그램과 공유할 수 있도록 해줌
COM(Component Object Model) 개체 - Microsoft에서 개발한 소프트웨어 컴포넌트 모델 - 프로그래밍 언어나 기술에 관계없이 서로 다른 소프트웨어 컴포넌트들이 상호작용할 수 있도록 해주는 일종의 인터페이스 규격 - COM 개체는 다른 소프트웨어 컴포넌트와 통신하기 위한 메서드와 속성을 제공하며, COM 라이브러리에 등록된 후 COM의 런타임 환경에서 실행
2.4 HTA 파일
- HTML Application의 약자이며, 확장자로 ".HTA"를 가짐
- 소스 코드가 HTML , 동적 HTML, VBScript, JScript 와 같이 Internet Explorer에서 지원하는 하나 이상의 스크립팅 언어로 구성된 Microsoft Windows 프로그램
- 인터넷 브라우저 보안 모델의 제약 없이 실행되며, "완전히 신뢰할 수 있는" 응용 프로그램으로 실행됨
> 실행 시 실행 경고창이 생성되지 않음
> 신뢰할 수 없는 프로그램을 실행할 수 있고, Powershell을 이용하여 로컬 파일 목록을 획득하거나 랜섬웨어 공격 등에 악용되기도 함
- 개인 소유의 스마트기기 또는 모바일 장비를 이용해 회사 데이터베이스와 애플리케이션 등에 액세스해서 업무를 처리하는 것을 의미
- 기업은 하드웨어 교체 비용, 소프트웨어 라이선스 구입 및 유지 비용 등을 절감 가능
- 장소나 시간에 관계 없이 개인 기기에서 자유롭게 업무 문서를 열람 가능하여 생산성과 업무 속도 개선
2. BYOVD (Bring Your Own Vulerable Device)
- BYOD (Bring Your Own Device)에서 파생된 단어로, 취약점이 존재하는 드라이버를 포함하고 있는프로그램을 악용
> 최신 윈도우 운영체제에서는 더 이상 서명되지 않은 드라이버 로드는 불가
> 그러나, 합법적으로 서명된 드라이버 모듈은 로드할 수 있음
> 이러 악용하여 취약한 공급업체의 드라이버 모듈로 커널 메모리를 조작
- 합법적인 서명을 포함하고 있어 윈도 운영체제에서 정상적으로 구동되지만 사실은 취약점이 있는 드라이버를 활용해 공격 대상의 시스템에 접근 권한을 얻는 방식의 공격 기법
- 즉, 개인의 기기에 설치된 특정 소프트웨어의 보안패치가 미적용된 환경을 이용하는 공격 유형
- 드라이버의 권한을 이용하므로 커널 메모리 영역에 읽고 쓰는 것이 가능해, 백신 및 PC 모니터링 시스템 등도 무력화 가능
2.1 북한 라자루스 그룹의 ene.sys 드라이버를 악용한 루트킷 배포 [1]
- ENE Technology에서 제작한 ene.sys 드라이버 모듈은 오픈소스인 WinIO 라이브러리로 작성됨
- 유저 영역에서 커널의 물리 메모리와 I/O 포트에 직접 접근을 가능하게 해주는 모듈
- 드라이버의 물리 메모리 접근 방식은 “ZwMapViewOfSection” API를 통한 공유 메모리 매핑 방식
- 메모리 매핑은 드라이버의 기능에 따라 필요 여부가 나뉘지만, 해당 기능을 사용하려면 드라이버를 호출하는 프로세스에 대한 검증이 철저히 이루어져야 함
2.1.1 호출 프로세스 검증 로직
① SB_SMBUS_SDK.dll 모듈 로드 검증
- ene.sys는 드라이버 실행 시점에 “PsSetLoadImageNotifyRoutine” API를 호출하여 모듈 처리와 관련된 콜백 루틴을 커널에 등록
- 콜백루틴은 프로세스가 로드하는 모듈이 SB_SMBUS_SDK.dll 인지 확인하고, 맞다면 해당 프로세스를 신뢰할 수 있는 프로세스로 인지하여 PID 정보를 ene.sys 전역변수에 저장
- 신뢰할 수 있는 프로세스가 되어 프로세스와 ene.sys 간 IOCTL 통신을 할 수 있게됨
※ IOCTL
> 컴퓨터 사용자와 커널을 잇는 인터페이스의 일부
> 사용자 공간의 코드가 하드웨어 장치, 커널 구성 요소와 통신할 수 있게 도와주는 역할
② AES 암호화가 이용된 IOCTL 통신 및 호출시간 검증
- 유저 영역의 프로세스가 ene.sys에 물리 메모리 매핑을 요청하기 위해서는 특정 IOCTL 값 (0x80102040) 과 _WINIO_PHYSICAL_MEMORY_INFO_EX 구조체 정보를 드라이버에 전달하여 검증을 받음
typedef struct
_WINIO_PHYSICAL_MEMORY_INFO_EX {
중략
ULONG_PTR BusAddress; // 메모리 매핑을 원하는 물리 메모리 주소
중략
UCHAR EncryptedKey[16]; // 현재 시간 값에 대한 AES-ECB로 암호화한 값
} WINIO_PHYSICAL_MEMORY_INFO_EX, *
PWINIO_PHYSICAL_MEMORY_INFO_EX;
- 검증은 구조체 중 EncryptedKey변수를 이용하며, IOCTL 호출 시점의 시각과 IOCTL을 드라이버로부터 전달받아 처리한 시간의 차이가 2ms 미만일 경우유효한 것으로 인지 후 IOCTL 처리
- ene.sys 드라이버 모듈은 유저 영역에서 물리 메모리 영역 매핑과 관련된 다음 취약점이 존재
- 루트킷 자체는 로더 내 DLL로 위치하여 실행 시 ene.sys를 이용해 루트킷의 PreviousMode 주소 값을 0으로 변조
> PreviousMode 값이 0일 경우 God Mode로, 유저 영역과 커널 영역 모두 사용이 가능함
- 이후 공격자는 커널 메모리를 조작하여 시스템 내 보안 시스템을 무력화 등 악성행위 수행
PreviousMode - 유저 영역에서 동작하는 프로세스가 Nt 또는 Zw 계열의 함수를 호출할 경우 - Zw 계열의 함수는 동일한 기능을 수행하는 Nt 계열의 함수로 매핑 - Nt 계열의 함수는 호출한 드라이브가 유저 영역에서 호출한 것인지, 커널 영역에서 호출한 것인지를 확인 - 호출 위치를 판단하는데 PreviousMode 필드의 값을 통해 결정 - 호출 위치가 유저 영역일 경우 유저 영역의 메모리를 사용하게되고, 커널 영역일 경우 유저 영역과 커널 영역 모두 사용 가능함
3. 대응방안
① 엄격하게 드라이버 로드를 차단
- 일반 사용자 환경에서는 드라이버 로드를 하지 못하도록 통제
- MS는 윈도우 업데이트로 제공하는 취약 드라이버 차단 목록(Microsoft Vulnerable Driver Blocklist)과 HVCI(Hypervisor-Protected Code Integrity)를 통해 확인된 보안 취약점이 있는 드라이버가 기본적으로 차단
> 여러 보안 업체는 윈도우에 대한 계속되는 BYOD 공격과 취약한 드라이버 차단 목록이 정기적으로 업데이트되지 않는 것을 발견
- 시스템, 사용자, 프로그램, 서비스, 드라이버 등 PC 운용에 반드시 필요한 정보를 저장해둔 데이터베이스
- 윈도우+R > regedit.exe(또는 regedit)를 통해 접근하며, 키(Key_폴더의 개념)와 값(Value_파일의 개념)로 구성
- 레지스트리는 수많은 논리를 구분하는 하이브(Hive)로 나눌 수 있으며, 하이브는 모두 HKEY로 시작
하이브
약칭
설명
HKEY_CLASSES_ROOT
HKCR
-파일 확장자와 특정 프로그램을 연결시켜주는 참조 테이블 - OLE 데이터와 확장자에 대한 정보, 파일과 프로그램 각 연결 정보가 포함 - 파일 확장자들이 서브트리로 구성, 각 확장자는 파일타입과 연결되어 해당 프로그램을 확인가능
HKEY_CURRENT_USER
HKCU
- 현재 로그인한 사용자의 설정을 저장
HKEY_LOCAL_MACHINE
HKLM
- 시스템 전체 설정을 저장 - 부팅과 관련된 5개의 하위키를 가짐 ① HKLM\HARDWARE > 휘발성 정보로 메모리에 존재 > 모니터 포트 등 부팅 시 관련된 하드웨어 장치와 드라이버 맵핑 정보들을 저장
② HKLM\SAM > 사용자의 로컬 계정 정보(사용자 패스워드, 사용자 프로필 등)와 그룹 정보를 갖고 있음 (리눅스 /etc/passwd와 비슷) > 일반 관리자 계정으로도 접근이 불가능하며, 시스템 계정으로만 접근 가능
③ HKLM\SECURITY > 시스템 범위의 보안 정책과 사용자 권한 할당 정보, 현재 시스템의 패스워드 또는 마지막 로그온 사용자의 패스워드 등의 정보를 가짐 > 시스템 계정으로만 접근이 가능
④ HKLM\SYSTEM > 시스템이 부팅될 때의 환경 설정 정보를 가짐 > 시스템이 정상적 부팅되었을 때 복사되며, 시스템이 비정상적으로 종료되었을 때 복사해 둔 정보를 바탕으로 부팅할 수 있는 옵션을 사용자에게 제공 > 복사본은 일반적으로 '마지막으로 성공한 구성'이라고 부름 > 해당 하이브에서 중요한 것은 바로 CurrentControlSet 키(보통 2개 이상 존재) > CurrentControlSet은 부팅에서 사용된 ControlSet 키(ControlSet001_최근 부팅에서 사용한 키 또는 ControlSet002_마지막으로 성공한 구성)의 링크이고, 같은 레벨에 있는 Select 키에서 확인 가능
⑤ HKLM\SOFTWARE > 시스템 범위의 소프트웨어 목록과 그 환경 설정 정보가 저장 > 환경설정 정보에는 애플리케이션 이름, 경로, 라이센스 정보, 만료 날짜 등이 포함
HKEY_USERS
HKU
- 시스템의 모든 사용자에 대한 모든 설정을 저장 - HKEY_CURRENT_USER 키에 일치하는 서브키를 가지고 있음
HKEY_CURRENT_CONFIG
HKCC
- 시스템 시작 시 사용되는 하드웨어 프로파일 저장 - 현재 활성화된 하드웨어 알아보기 위해 참조
HKEY_PERFORMANCE_DATA
-
- 런타임 성능 데이터 정보를 제공 - 레지스트리 편집기에 보이지 않지만 윈도우 API의 레지스트리 명령어를 통해 확인 가능
HKEY_DYN_DATA
-
- 윈도우 95, 윈도우 98, 윈도우 Me에만 쓰임 - 플러그 앤 플레이를 비롯한 하드웨어 장치, 네트워크 성능 통계에 대한 정보를 포함
[오토런 설정] - HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\NoDriveTypeAutoRun - USB 같은 이동형 저장장치에 대해 Autorun 설정을 합니다. (0xFF로 설정 시 Block, 0x00으로 설정 시 모두 허용)
[윈도우 주요 설정 툴 실행 방지] - HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\System\DisableRegistryTools - HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\System\DisableTaskMgr - HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\System\DisableCMD
[Image File Execution Options 이용하여 프로그램 실행 방지] - HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution\Options\calc.exe Debugger = notepad.exe - 계산기 실행 시 노트패드로 전환되어 실행. (AV 실행을 막거나, 포렌직 툴 실행을 막기위해 변조함)
- HKLM\Software\Microsoft\Windows\CurrentVersion\policies\Explorer DisableLocalMachineRunOnce=1:DWORD DisableLocalMachineRun=1:DWORD DisableCurrentUserRunOnce=1:DWORD DisableLocalMachineRun=1:DWORD - 이러한 키가 설정되면 시작프로그램에 등록된 프로그램이 실행이 안됨.
[인터넷 익스플로러] - HKCU\Software\Policies\Microsoft\Internet Explorer\Control Panel - 해당 키 안에 ResetWebSettings 값이나 HomePage 값이 있으면 시작 페이지 부분 비활성화. (재부팅이 필요 합니다)
[HKEY_CURRENT_USER\Software\Policies\Microsoft\internet explorer\restrictions] "NoBrowserOptions"=dword:00000001 - 인터넷 옵션 실행불가 관련 레지스트리
[HKCU\Software\Policies\Microsoft\Internet Explorer\Control Panel] "AdvancedTab"=dword:00000001 "PrivacyTab"=dword:00000001 "ProgramsTab"=dword:00000001 "ConnectionsTab"=dword:00000001 "ContentTab"=dword:00000001 "SecurityTab"=dword:00000001 "GeneralTab"=dword:00000001 - 역시 인터넷 옵션 실행불가 관련 레지스트리
[네트워크 관련] HKLM\SYSTEM\ControlSet001\Services\Tcpip\Parameters\MaxUserPort - 윈도우에서 허용하는 네트워크 연결 개수 수정(주로 Spamer가 변조)
[HKLM\SYSTEM\ControlSet001\Services\WinSock2\Parameters\Protocol_Catalog9\Catalog_Entries\00000000000*] "PackedCatalogItem" 이진값 문자열에 악성코드가 삽입되어 있을 경우 네트워크가 정상적으로 동작하지 않음. netsh winsock show catalog 명령어로 확인 가능, 복구툴 : http://www.cexx.org/lspfix.htm
[윈도우 보안 정책 관련] HKLM\SYSTEM\ControlSet001\Services\wscsvc\Start - wscsvc : 윈도우 시큐리티 보안센터, 윈도우 시큐리티 보안센터 시작을 꺼버립니다.
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\policies\system\EnableLUA - 윈도우 VISTA UAC 기능 무효화
HKLM\SYSTEM\ControlSet001\Services\SharedAccess\Parameters\FirewallPolicy\StandardProfile\EnableFirewall HKLM\SYSTEM\ControlSet001\Services\SharedAccess\Parameters\FirewallPolicy\StandardProfile\DoNotAllowExceptions HKLM\SYSTEM\ControlSet001\Services\SharedAccess\Parameters\FirewallPolicy\StandardProfile\AuthorizedApplications\List - 윈도우 방화벽 관련 정책 변경
HKLM\SOFTWARE\Microsoft\Ole\EnableDCOM - 분산 컴포넌트 객체 모형에 해당하는 값을 변경 [DCOM, Distributed Component Object Model]
HKLM\SOFTWARE\Microsoft\Security Center\AntiVirusDisableNotify - 보안센터 바이러스 백신 경보에 해당하는 값을 변경
HKLM\SOFTWARE\Microsoft\Security Center\FirewallDisableNotify - 보안센터 바이러스 사용자지정 백신에 해당하는 값을 변경
HKLM\SOFTWARE\Microsoft\Security Center\AntiVirusOverride - 보안센터 바이러스 방화벽 경보에 해당하는 값을 변경
HKLM\SYSTEM\ControlSet001\Services\SharedAccess\Start - 연결공유서비스에 해당하는 값을 변경한다.
HKLM\SYSTEM\CurrentControlSet\Control\Lsa\restrictanonymous - 익명연결(널세션)에 해당 하는 값을 변경
원래는 "%System%\userinit.exe만 있는게 정상이다. 부팅이 되고,, winlogon 이 실행되서 로그인을 하고 들어가면, userinit 가 실행이 되서 explorer.exe 를 실행하는 것이다. 요런 흐름인데 explorer.exe 가 실행되기 전에 악성코드가 실행되어 버리니.. 백신도 진단을 못할 수도 있는법이다~
[DLL Injection 을 위한 변경 - AppInit_DLLs] HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows\"AppInit_DLLs" = "악성코드경로\attack.dll"
DLL Injection 이라는 것은 여러가지 방법이 있는데 그중 한 방법이다. 레지스트리에 위와 같이 등록이 된다면, 어떠한 프로세스에서 user32.dll (실행시 필요) 을 호출할 시에 user32.dll 은 LoadLibrary() 함수를 이용할 것이고, AppInit_DLLs 안에 지정된 DLL 들을 호출할 것이다. LoadLibrary() 함수에는 인자값이 DLL_PROCESS_ATTACH 를 지정해 준다. 그러므로 중간에 끼어들어갈 수 있다.
ControlSet002 / CurrentControlSet 도 마찬가지 이다. 그리고 위에서는 보라색 글자와 같이 DomainProfile 에서 바꾸어 주었는데 이곳이 아닌 StandardProfile 에서도 바꾸어 준다. 뭐.... 워낙 영어에 취약한 지라.. 한글로 풀어써서 이해를 하였다. 서비스\공유접근\매개변수\방화벽정책\사용자프로파일\권한응용프로그램\목록\ 오호~ 방화벽 정책에서 악성코드에 권한을 주는구만? 이라고.. 난 해석하였다.
위의 내용은 허위로 안내 도움말을 하기 위해 켜놓은 것이다. 원래의 값은 0이다. 보통 허위안티바이러스에서 많이 사용을 한다. 사용자에게 지속적으로 감염되었다고 알려주어 겁주고 결제 요구한다... EnableBalloonTips ==> 표시줄 트레이의 풍선 도움말 HKEY_LOCAL_MACHINE 이외에 HKEY_CURRENT_USER 도 수정한다.
[작업관리자 사용금지하게 하는 것] HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\policies\system\"DisableTaskMgr" = "1"
Task Manager 를 비활성화 시킨다. 이것은 우리가 흔히 알고 있는 작업관리자이다. 작업관리자(Ctrl+Alt+Del)가 뜨지 않는다면 요 레지스트리가 1로 되어있기 때문에 뜨지 않는 것이다. 악성코드들은 자기자신을 은폐하려 들기 때문에 작업관리자를 사용하지 못하도록 한다. HKEY_LOCAL_MACHINE 이외에 HKEY_CURRENT_USER 도 수정한다.
[제어판 사용 금지] HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\"NoControlPanel" = "1"
NoControlPanel 은 제어판에 사용자가 접근하는 것을 제한하는 것이다. 이것을 1로 설정해 놓으면 제어판을 열수가 없다. HKEY_LOCAL_MACHINE 이외에 HKEY_CURRENT_USER 도 수정한다.
[레지스트리 사용 금지] HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\policies\system\"DisableRegistryTools" = "1"
Disable (무능력하게 하다) RegistryTools (레지스트리툴을) 레지스트리 툴 사용을 무능력하게 하여, 사용자의 접근을 막는다.
[업데이트 사용 금지 - HKLM] HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\WindowsUpdate\AU\"NoAutoUpdate" = "1"
자동 업데이트를 막는다.
[업데이트 사용 금지 - HKCU] HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\"NoWindowsUpdate" = "1"
악성코드 자신을 보호하고 파일을 숨기면 사용자는 악성코드에 접근할 수 없다. 그러므로 이 레지스트리 값을 이용하여 자신에게 접근을 보호한다. Type 값에 이상한 글자를 넣게 된다면.. 폴더 옵션에서 아예 메뉴가 나오지 않는다.
[다운시 보안 팝업창 무력화] HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Download "CheckExeSignatures" = "no"
인터넷에서 다운로드를 해 실행을 하면 경고창을 띄우는 것을 우리는 알고 있다. 그러나 위의 레지값을 변경하면 경고창 없이 설치가 되버린다.
[exe 파일이 열리지 않을때 - 프로그램 선택하라는 창이 나올 때 ] HKEY_CLASSES_ROOT\exefile\shell\open\command\"기본값" = ""악성코드경로" /START "%1" %*" HKEY_CLASSES_ROOT\exefile\shell\open\command\"기본값" = "%1" %* 위와 같이 기본값을 변경해 주어야 한다.
HKEY_CLASSES_ROOT\.exe\"기본값" = "secfile" HKEY_CLASSES_ROOT\.exe\"기본값" = "exefile" secfile 값을 exefile 로 고쳐준다.