[정보보안기사] 시스템 보안 - 클라이언트 보안
- 목차 -
2. 클라이언트 보안
(1) 윈도우 보안
① 윈도우 시스템
② 윈도우 인증 시스템
③ 윈도우 실행 프로세스
④ 윈도우 사용자 계정
⑤ NTFS 파일 시스템
⑥ 공유 폴더
⑦ 레지스트리
⑧ 하이브 파일
⑨ 이벤트 로그 및 웹 아티팩트 분석
⑩ 바이러스와 악성코드
(2) 인터넷 활용 보안
① 웹브라우저 보안
② 메일 클라이언트 보안
(3) 공개 해킹 도구에 대한 이해와 반응
① 트로이 목마
② 크래킹
③ 키로그
(4) 도구활용 보안관리
① 클라이언트 보안도구 활용
② 클라이언트 방화벽 운영
2. 클라이언트 보안
(1) 윈도우 보안
① 윈도우 시스템
- GUI, 다중 사용자, 다중 프로세스 구조를 지원하는 운영체제
- 다양한 하드웨어를 자동으로 인식하여 사용할 수 있는 Plug&Play 기능을 지원
- 윈도우의 HAL(Hardware Abstraction Layer) 계층을 통해 표준화된 하드웨어를 인식하며 Micro Kernel이
하드웨어를 관리
- 윈도우 세부내용
▶ HAL(Hardware Abstraction Layer) - 하드웨어 추상화
→ 하드웨어의 자원을 직접 접근을 흉내내는 소프트웨어들의 집합
▶ Micro Kernel
→ 메모리 관리, 스케쥴링, 기본적인 IPC등 최소한의 기능만을 제공
▶ IO Manager
▶ Object Manager
▶ Security Reference Manager
▶ Process Manager
▶ Local Precedure Call
▶ Virtual Memory Manager
▶ Win32/64 Sub System
▶ POSIX
▶ Security Sub System
▶ 윈도우 파일 시스템의 경우 FAT(File Allocation Table)과 NTFS(NT File System)을 지원한다.
▷ FAT : 도스를 기반으로 하는 파일 시스템으로 작은 파일 시스템에서 사용된다.
▷ NTFS : 대용량 파일과 긴 파일명, 압축, 저널링 정보를 통한 오류 처리 등을 지원한다.
② 윈도우 인증 시스템
- 인증 프로세스
▶ winlogon은 내부적으로 msgina.dll 이라는 GINA프로그램을 실행시킨 후 검증을 위해서
아이디를 LSA에 전달한다.
NTLM값과 SAM에 저장된 NTLM 값을 비교하여 같으면 SRM에 권한(토큰)을 부여
- 용어 설명
▶ Winlogon : 윈도우 로그인 프로세스
▶ GINA(msgina.dll) : Winlogon은 msgina.dll을 로딩하여 사용자가 입력한 계정과 암호를 LSA에 전달
▶ LSA(lsas.exe) : 계정과 암호를 검증하기 위해서 NTLM(암호화)모듈을 로딩하고 계정을 검증
SRM이 작성한 감사로그를 기록
▶ SAM : 사용자 계정정보(해시 값)에 저장, 리눅스의 /etc/shadow와 같은 역할
▶ SRM : 사용자에게 고유 SID를 부여하고 SID에 권한을 부여
③ 윈도우 실행 프로세스
- 윈도우 운영체제 관련 프로세스
▶ wininit.exe : 윈도우 시작 프로그램
▶ services.exe : 윈도우 서비스를 관리
▶ lsm.exe : (Local Session Manager) 시스템 관리 작업, 주요 함수 실행, 호스트 PC와 서버의 연결을 관리
▶ lsass.exe : (Local Security Authority Subsystem Service)
사용자 로그인 검사, 비밀번호 변경관리, 엑세스 토큰을 생성; Window Security Log를 작성
▶ svchost.exe : 서비스를 관리하기 위한 프로세스
▶ conhost.exe : 키보드, 마우스 입력 허용, 문자 출력, 콘솔 API 등 셸의 기본 기능을 수행
- 윈도우 운영 체제 관련 프로세스는 c:\window\system32 폴더에 위치
④ 윈도우 사용자 계정
- 내장된 사용자 계정 : 관리자가 계정을 만들지 않더라도 자동으로 윈도우 서버 설치와 함께 생성되는 계정
▶ Users
▶ Account Operators
▶ Printer Operators
▶ Server Operators
- 유니버설 그룹 : 복수의 도메인 환경에서 상호 관련되어 있는 자원에 대한 허가를 부여할 때 주로 사용.
성능저하가 있을 수 있으므로 꼭 필요할 때만 사용
▶ Administrators
▶ Users
▶ Guests
▶ Backup Operators
▶ Power User
⑤ NTFS 파일 시스템
- NTFS 파일 시스템 : 기존의 FAT 파일 시스템을 개선하고 윈도우 서버용으로 사용하기 위해 개발된 시스템.
- NTFS 파일 시스템 주요 특징
▶ USN 저널
▶ ADS(Alternate Data Stream)
▶ Sparse 파일
▶ 파일 압축
▶ VSS
▶ EFS
▶ Quotas
▶ Unicode
▶ 동적 Bad 클러스터 할당
▶ 대용량 지원
- NTFS 파일시스템은 VBR, MFT, Data Area로 구성
▶ VBR (Volume Boot Record)
→ NTFS 파일 시스템의 제일 처음에 있는 것으로 부트섹터, 부트코드, NTLDR 위치 정보등의
정보를 가지고 있다. VBR의 Boot Sector는 섹터 0번에 위치한다.
▶ Master File Table
→ NTFS의 메타정보, 파일 및 디렉터리 등의 정보를 관리하는 파일,
파일위치, 속성, 시간정보, 파일명, 크기 등의 정보를 가지고 있다.
⑥ 공유 폴더
- 자신의 컴퓨터에 있는 폴더를 다른 컴퓨터와 공유할 수 있는 기능
- net share 명령어로 공유폴더를 확인
- 윈도우 운영체제에는 설정하지 않아도 기본적으로 공유되는 폴더가 있다.(C$, ADMIN$, IPC$)
▶ IPC$ - 네트워크 프로그램 간에 통신을 위해서 파이프를 사용하고 네트워크 서버를 원격 관리하기
위한 용도로 사용한다.
- 공유폴더는 정보보안에서 삭제를 권고한다.(악성코드 유포, 시스템 정보 획득 가능)
- nmap도구를 통해 포트를 스캔하고 특정 공유폴더를 통해 공격을 수행할 수 있다.
- 윈도우 SMB를 통해 열려있는 포트로 윈도우 정보를 알아낼 수 있고 이를 통해 다른 공격을 수행할 수 있다.
⑦ 레지스트리
- 마이크로소프트 윈도우 운영체제에서 운영체제 및 응용 프로그램 등에게 필요한 정보를 저장하고
관리하기 위한 계층형 데이터베이스 이다.
- regedit.exe라는 프로그램을 통해서 관리하며 Key, Value, Data Type, Data로 이루어져 있다.
▶ Key : 상위레벨과 하위레벨로 정의되어 있고, 레지스트리가 어떤 정보를 가지고 있는지를 나타낸다.
▶ Value : Key의 이름
▶ Data Type : Value의 데이터 형태
▶ Data : Value의 데이터
- 가장 상위레벨에 있는 레지스트리 키를 루트키 라고 한다.
- systeminfo 명령어를 통해 시스템의 기본정보를 획득할 수 있는데,
레지스트리에서 해당 값들을 직접 확인할 수 있다.
⑧ 하이브 파일
- 레지스트리 정보를 가지고 있는 물리적인 파일을 의미
- 레지스트리 관리 프로그램은 하이브 파일을 읽어서 보여주거나 변경한다.
하이브 파일은 일반 에디터로는 변경하는 것이 불가능하고 커널에 의해서 관리된다.
- 하이브 파일은 SAM, SECURITY, SYSTEM, SOFTWARE, Default, NTUSER.DAT 등에 존재한다.
이러한 하이브 파일 목록을 하이브 셋이라고 한다.
⑨ 이벤트 로그 및 웹 아티팩트 분석
- 윈도우 이벤트 로그 : 윈도우 시스템을 사용하는 중에 발생되는 모든 내용을 볼 수 있다.
- Event Viewer라는 관리도구를 통해 확인하고 .evt 확장자로 로그파일이 기록된다.
-로그 종류
▶ 응용 프로그램 로그
▶ 보안 로그
▶ 시스템 로그
- 웹 아티팩트 분석 : 사용자가 웹사이트를 이용한 흔적을 분석 하는 것
▶ 캐시 데이터
→ 다운로드 받은 파일, 아이콘 등이 있으며 캐시 인덱스에는 다운로드 URL, 다운로드 시간,
크기 등의 정보가 있다.
▶ 히스토리 분석
→ 사용자가 방문한 웹사이트 정보를 분석하는 것
▶ 웹 브라우저 쿠키
→ 자동으로 사용자 PC에 저장되는 작은 저장공간
host 정보, 경로, 수정시간, 만료시간 등의 값이 있다.
⑩ 바이러스와 악성코드
- 바이러스는 컴퓨터 프로그램의 한 종류로 사용자 몰래 은닉하여
정상적인 프로그램이나 사용자의 데이터를 파괴하는 악성 프로그램이다.
- 컴퓨터 바이러스와 악성코드는 혼동하여 사용되지만 가장 근본적인 차이점은 자기복제 여부이다.
★ 바이러스는 자기복제 기능이있음 ★
- 세대별 컴퓨터 바이러스
▶ 제1세대, 원시형 바이러스
→ 일반적으로 아마추어 프로그래머가 개발
단순하고 코드의 변형이 없음(크기 일정), 주기억 장치에 상주해서 부트영역을 감염
▶ 제2세대, 암호화 바이러스
→ 컴퓨터 프로그램 일부 또는 전체를 암호화 시켜서 백신으로 확인 불가
(단, 암호화/복호화 방식이 일정함)
▶ 제3세대, 은폐형 바이러스
→ 자기 스스로 은폐가능, 다른 실행파일에 기생하여 해당 실행파일의 크기를 증가시킴,
파일크기가 변경되나 이전 상태를 백신에 보여줘 발견하기 어렵게 한다.
▶ 제4세대, 갑옷형 바이러스
→ 다양한 기법을 사용하여 은폐함, 백신으로 진단하기 어려움,
전문가 프로그래머에 의해서 개발, 진단이나 치료가 불가능하지는 않으나 어려움
▶ 제5세대, 매크로 바이러스
→ 엑셀, 워드와 같이 매크로를 사용하는 프로그램을 감염시키는 바이러스
전문 프로그래머가 아니어도 누구나 배포 가능
- 감염대상에 따른 컴퓨터 바이러스
▶ 부트 바이러스
→ 부트섹터에 영향을 주는 바이러스
부트 섹터가 영향을 받으면 부팅이 되지 않거나 부팅시간이 오래걸림
▶ 파일 바이러스
→ 사용자의 일반 파일을 감염, EXE, COM 파일을 감염,
기생형, 겹쳐쓰기형, 산란형, 연결형 바이러스로 분류됨
▶ 부트 및 파일 바이러스
→ 부트섹터와 파일영역 모두 감염
- Shellcode와 Heap Spray
▶ Shellcode
→ 작은 크기의 기계어 코드로 소프트웨어의 취약점을 이용하여 명령 셸을 실행시킨다.
어셈블리어로 작성되고 기계어로 번역되어 사용된다
▶ Heap Spray
→ 짧은 기계어 코드인 Shellcode를 Heap 영역에 뿌리는 것
Heap 영역에 임의적으로 shellcode를 삽입하여 실행하는 기법이다.
- 버퍼오버플로우: 프로세스가 사용가능한 메모리 공간을 초과해서 발생하는 보안 취약점
▶ C/C++에서 메모리 공간에 제약을 두지 않는 API를 사용할 때 발생
- 경쟁조건
▶ 다중 프로세스 환경에서 동시에 두개 이상의 프로세스가 수행될 때 발생하는 비정상적인 상태
임의의 공유자원을 여러 프로세스가 공유하여 경쟁상태를 발생
(2) 인터넷 활용 보안
① 웹브라우저 보안
- 검색 기록 / 쿠키 삭제 / 임시파일 삭제
- 익스플로러에서는 보안 수준을 설정하기
▶ 보통 이상으로 사용하고, 세부 설정 가능
- 브라우저에서 개인정보를 수집하는 기술
▶ 쿠키(Cookie) & 슈퍼쿠키(Super Cookie)
▶ 비콘(Beacon ; Web Bug)
▶ History Stealing
▶ Fingerprint
- HTTP(Hyper-Text Transfer Protocol) 프로토콜
▶ 웹 상에서 파일(텍스트, 이미지, 등)을 주고 받기 위한 프로토콜로 TCP/IP와 관련된 프로토콜(80번 포트)
▶ 한 번 접속해서, 정보 주고받고 접속을 끊어버리는 특이한 특징
▷ 이 때문에 세션과 쿠키라는 걸 이용
▶ HTTP 요청 방식
▷ GET 방식 : 클라이언트가 서버로 전송하는 정보를 URL에 담는 방법
▷ POST 방식 : 요청사항을 HTTP 헤더 안에 넣어서 서버로 전송하는 방법
▶ HTTP 1.0
▷ 한 번에 한 종류의 데이터만 받을 수 있음(이미지와 텍스트라면 총 두 번의 접속이 필요)
▷ 요청 방식
ⓐ GET : GET 방식으로 서버에 리소스(정보)를 달라고 요청
ⓑ HEAD : GET방식과 유사하지만, 요청한 리소스가 아닌 Header만 채워서 응답
ⓒ POST : POST 방식으로 서버에 리소스를 달라고 요청
▶ HTTP 1.1
▷ 한 번에 이미지와 텍스트까지 받을 수 있음
▷ 요청 방식
ⓐ GET : 요청 받은 정보를 다운로드하는 메소드
ⓑ HEAD
ⓒ POST : 서버가 전송된 정보를 받아 들이고 서버에서 동작하도록 하는 메소드
ⓓ OPTION : 서버가 요청한 리소스에서 어떤 요청방식들을 처리해주는지 알려줌
ⓔ PUT : 서버에 요청한 리소스를 저장함
ⓕ TRACE : 루프백 메시지를 위한 요청을 함
ⓖ CONNECT
ⓗ DELETE : 명시된 리소스를 서버가 삭제할 것을 요청
▶ HTTP 상태코드
▷ 2xx : 성공
ⓐ 200 : OK
ⓑ 201 : 서버가 성공적으로 요청된 새 리소스를 생성(PUT 메소드인듯)
▷ 3xx : 재전송
▷ 4xx : 클라이언트 측 에러
ⓐ 401 : 유효한 요청에 대해 서버가 응답을 거부(권한이없는 401과는 다름)
ⓑ 403 : Forbidden
ⓒ 404 : Not Found
▷ 5xx : 서버 측 에러
ⓐ 500 : 내부 서버 오류
ⓑ 501 : 해당 메소드 인식 못하거나 기능이 없음
② 메일 클라이언트 보안
- PGP (Pretty Good Privacy)
▶ 데이터 암호화와 복호화하는 프로그램인데, 전자 메일의 보안성을 높이기 위해 자주 사용
▶ IETF에서 표준으로 채택한 PEM과 비교됨
▶ 수신 부인방지와 메시지 부인 방지 기능이 없음
▶ 메시지의 비밀성을 위해 공개키 암호기술을 사용(RSA, IDEA 등)
▶ 메시지의 무결성을 위해 메시지 인증을 사용
▶ 메시지의 생성, 처리, 전송, 저장, 수신 등을 위해 전자서명을 사용
(3) 공개 해킹 도구에 대한 이해와 반응
① 트로이 목마
- 정상적인 프로그램으로 위장하여 램에 상주하며 시스템 내부 정보를 빼돌리는 프로그램
- 바이러스와 달리 직접 전파 등록이 없음
- 대표적인 툴 : AOL4FREE.COM / Shark2 / NetBus / Back Orific
② 크래킹
- 루트킷(RootKit): 서버 내에 침투해서 백도어(관리자 레벨로 접근을 가능하도록 만드는 것)를 만들고
로그를 삭제하는 등의 패키지들
▶ 대표적으로 lrk5
▶ 루트킷을 찾아내는 프로그램은 안티루트킷(Anti-RootKit) : 대표적으로 Icesword
- 패스워드 크랙(Password Crack)
▶ Brute Force Attack / Dictionary Attack / Password Guessing / Rainbow Table 등의 공격 방법으로 크랙
▶ 대표적인 툴 : John the Ripper / pwdump / LOphtCrack / ipccrack / chntpw(to reset pw)
- 포트 스캐닝(Port Scanning) (SAINT와 Nmap 정도만 알고 있어도 될듯)
▶ 다중 취약점 스캔 : SAINT / sscan2k / vetescan / mscan 등
▶ 특정 취약점 스캔 : cgiscan / winscan / rpcsan
▶ 은닉 스캔 : Nmap / stealthscan
▶ 네트워크 구조 스캔 : firewalk / Nmap
▶ 스캐닝 기법
▷ Openning Scanning : TCP Connect Scanning
▷ Half-Open Scanning : SYN Scanning
▷ Stealth Scanning : FIN / X-MAS / NULL Scanning
▷ More Advanced Scanning : Spoofed Scanning(??)
▶ 포트 스캐닝의 구분
▷ TCP 포트 스캐닝 : 특정 Flag값을 설정한 뒤, 패킷을 보내고 그에 대항 응답으로 확인
▷ UDP 포트 스캐닝
ⓐ 포트가 열린 상태 : 아무런 응답 X
ⓑ 포트가 닫힌 상태 : UDP 패킷이 목적지에 도달하지 못했다는 메시지
※ 패킷이 유실되도 아무런 응답이 없기에 신뢰성이 떨어짐
- Nmap 사용법
▶ 스캔 타입
▷ -sS : TCP Syn Scan
▷ -sF / -sX / -sN : FIN / X-Mas / NULL Scan
▷ -sU : UDP Scan
▷ -sP : Ping Sweep
▷ -b : FTP Bounce Attack
▶ 스캔 옵션
▷ -P0 : Don't ping before scanning, ping으로 사전 조사 하는 과정을 뺌
▷ -PT : ICMP Request Packet 보내고, 응답기다리는 대신에 TCP ACK를 보내 응답 기다림
▷ -PS
▷ -PB
▷ -O : 운영체제 확인
▷ -p
▷ -S : Spoofing
▶ 예
▷ #./Nmap -p 1-30,110,65535 192.168.1.1
ⓐ 192.168.1.1의 1~30번, 110번, 65535를 스캔한다.
③ 키로그
- 대표적인 툴 : Winhawk, Key~~로 시작되는 툴들
(4) 도구활용 보안관리
① 클라이언트 보안도구 활용
- BlackICE
▶ 일종의 방화벽이라고 보면될 듯
▶ 외부에서 자신의컴퓨터에 접근하는 것을 탐지 / 제어하는 프로그램
▶ 침입 차단 / 어플리케이션 보호 / IDS 기능 제공
- Snort
▶ 공개 네트워크 IDS
▶ 다양한 OS 지원 / Rule 설정가능
② 클라이언트 방화벽 운영
- Windows 방화벽(ipsec)
- Linux/Unix 방화벽(iptables)
[ 출처 ]
https://kit2013.tistory.com/209?category=288746
http://jemwoo.blogspot.com/2018/08/2.html
을 참고하여 보완하고 수정한 글입니다.
'IT > 정보보안' 카테고리의 다른 글
[정보보안기사] 네트워크 보안 - 네트워크 일반 (0) | 2019.06.24 |
---|---|
[정보보안기사] 시스템 보안 - 서버 보안 (0) | 2019.06.20 |
[정보보안기사] 시스템 보안 - 운영체제 (0) | 2019.06.19 |
시스템보안 - 보안 계정 관리자 SAM (Security Account Manger) (0) | 2019.06.19 |
시스템보안 - SECaas ( Security as a Service ), Saas, Iaas, Paas (0) | 2019.06.19 |
댓글