2015-01-28 <크라임웨어> 요약


 

<크라임웨어> 쥐도 새도 모르게 일어나는 해킹 범죄의 비밀 | 마커스 야콥슨, 줄피카 람잔 공저 / 민병호, 김수정 공역 | 에이콘출판사 | 2009년 10월 30일 | 원제 : crimeware: understanding new attacks and and defenses

 

26p~641p

하루 154p

 

2015-01-28

 

1장 크라임웨어 개괄

 기존의 악성 프로그램은 이름을 알리기 위해 개발했지만, 악성프로그램으로 적지않은 돈을 벌 수 있다는 사실을 알아채고 범죄로 변모했다.

1.1 소개

1.1.1 기밀 정보 도난

 피싱phishing 하나로 직접적인 금전적 손실이 매년 10억 달러를 넘는다.

 회사의 가상 사설망 VPN 침투

L2PT를 이용한 VPN 접속 예. 사실 접속원리는 접속규격 외에는 전부 동일하다.

- Layer 2 Tunneling Protocol. 줄여서 L2PT라고 부른다. L2F와 PPTP 프로토콜을 결합하여 만든 규격이기 때문에 PPP를 지원한다. L2PT는 터널을 확립해주기만 하며, 암호화는 IPsec 기술을 사용한다. IPsec 기술에는 IKE(Internet Key Exchange)와 ESP(Encapsulation Security Payload)가 사용된다.

 

 

- 모든 과정이 암호화된다는 특성 상 정부의 검열을 프록시 서버나 tor보다 넘사벽급으로 안전하게 피할 수 있다. 프록시 서버 항목을 보면 알겠지만 원래 사용자의 IP가 완전히 오픈되거나, 그대로 기록되는 프록시 서버 규격 또한 있기 때문에 모든 프록시 서버가 완벽한 익명성을 보장하지는 않고, 무엇보다 무료로 돌아가는 프록시 서버들은 IP가 오픈되는 경우가 많기 때문에 원래 사용자의 IP를 특정하는 것은 생각보다 간단한 편이다. Tor의 경우는 일단 접속되면 여러 IP를 거치는 루트를 이용하기 때문에 접속을 성공한 이후부터는 어느정도 안전이 보장되지만, 접속을 시도하고 터널을 확립하는 과정이 암호화가 되어있지 않다. 실제로 이런점을 악용하여 Tor 접속터널을 차단하는 국가도 있다.

 

하지만 VPN는 서버가 해외에 있다면, 전용선과 가까운 보안을 유지해야 하는 만큼 처음 순간부터 모든 과정이 암호화되어 접속 규격 자체의 보안성이 상당히 높다. 때문에 정상적인 방법으론 메인 서버 외에는 원래 사용자를 절대로 특정할 수 없다.

 

1.1.2 크라임웨어 범위

악성프로그램 - 크라임웨어(상업적이익), 불법 소프트웨어(바이러스), 합법 소프트웨어(애드웨어, 스파이웨어)

1.1.3 크라임웨어 전파

 그림 1.1. 크라임웨어의 전파기술

2007년 시만텍의 ISTR(인터넷 보안 위협 보고서)에 따르면, 악성 소프트웨어의 46%가 SMTP (단순 메일 전송 프로토콜)로 퍼졌다.

1.2 크라임웨어 유포

 봇넷(botnet) 크라임웨어가 침투한 컴퓨터들로 구성된 대규모 네트워크로 공격에 이용된다.

1.3 크라임웨어 위협 모델과 분류

 중간자공격 (man in the middle attack) 수집한 정보를 적법한 서버로 전달하기 전에 공격자에게 직접 전송한다. 전송된 정보를 공격자는 적법서버로 리다이렉팅 한다.

1.4 다양한 크라임웨어

1.4.1 키로거와 스크린 스크레이퍼

키로거

- BHO수준 (URL탈취)

- 애플리케이션 수준 (후킹) : 예) SC-Keylog, 자동완성되는 암호까지도 탈취하는 것도 있다.

- 커널수준 장치드라이버 (키보드, 마우스 입력저장) : 자동완성되는 암호는 탈취 불가능하다.

- 스크린스크레이퍼(screenscraper) 화면까지 모니터링(화상키보드 무력화)

1.4.2 메일 리다이렉터와 인스턴트 메신저 리다이렉터

- 메일 리다이렉터 Advanced Stealth Email Redirector

1.4.3 세션 하이재커

- 적법한 사용자 세션을 강제로 탈취

1.4.4 웹 트로이목마

- 가짜 로그인 창을 띄우거나 로그인 이후 추가 창을 띄워서 정보를 입력하도록 유도

1.4.5 거래transaction 생성기

- 예를 들어, 물품을 구매하고 환불을 처리하고 이 때 환불처리 트랜젝션을 여러 번 날리도록 하면 잔고가 올라간다.

1.4.6 시스템 재설정 공격

- host 파일을 수정/DNS캐시를 오염/라우터에 설정된 DNS서버를 변경시켜 www.naver.com 을 해커의 IP로 접속하게 만든다.

- 프록시를 설정해서 모든 트래픽을 해커가 가져갈 수 있다. 예) [SiN] Gateway Manager

1.4.7 데이터 절도

- herman agent

1.4.8 중간자 공격

- 라우터 등에 프폭시를 호스팅하는 것을 트롤러 피싱이라고 한다.

- 중간자 공격은 OTP나 보안토큰에 의한 임시 비밀번호를 탈취할 수 있다.

1.4.9 루트킷

- 악성 프로그램의 존재와 그 활동을 숨기는 소프트웨어다.

- 커널 수준에 접근할 정도로 매우 다양하다. 막는 방법은 주요 운영체제를 가상머신 내부에서 게스트 운영체제로 돌리고 외부 호스트 운영체제에서 보안 소프트웨어를 실행시키는 방법이 있다. 하지만, 게스트 운영체제안의 루트킷 프로그램이 호스트와 게스트를 바꿔버릴 수 있기 때문에 이 또한 무력화 될 수 있다.

 이론적으로보면 크라임웨어는 ACPI BIOS나 그래픽 카드 같은 하드웨어의 비휘발성 저장장치에도 설치할 수 있다.

1.5 크라임웨어 배포

1.5.1 첨부파일

1.5.2 P2P 네트워크

1.5.3 피기배킹

 - 겉으로는 정상적으로 동작하는 애플리케이션이 사실은 악성 코드 내장.

1.5.4 인터넷 웜

 - 컴퓨터 웜(computer worm)은 스스로를 복제하는 컴퓨터 프로그램이다. 컴퓨터 바이러스와 비슷하다. 바이러스가 다른 실행 프로그램에 기생하여 실행되는 데 반해 웜은 독자적으로 실행되며 다른 실행 프로그램이 필요하지 않다. 웜은 종종 컴퓨터의 파일 전송 기능을 착취하도록 설계된다. 컴퓨터 바이러스와 웜의 중요한 차이점은 바이러스는 스스로 전달할 수 없지만 웜은 가능하다는 점이다. 웜은 네트워크를 사용하여 자신의 복사본을 전송할 수 있으며, 어떠한 중재 작업 없이 그렇게 할 수 있다. 일반적으로 웜은 네트워크를 손상시키고 대역폭을 잠식하지만, 바이러스는 컴퓨터의 파일을 감염시키거나 손상시킨다. 바이러스는 보통 네트워크에 영향을 주지 않으며 대상 컴퓨터에 대해서만 활동한다.

 

 

1.5.5 웹 브라우저 공격

- 배포 벡터 (보안분야에서는 악성프로그램이 퍼질 수 있는 경로나 공격이 일어날 수 있는 경로를 벡터라고 한다.)

- 제로데이 공격. 취약점이 알려지기 전에 공격.

- 컨텐츠 인젝션: 적법한 사이트에 악성 컨텐츠를 삽입하는 과정을 말한다.

- SQL 인젝션

- 크로스 사이트 스크립팅

- 브라우저 플러그인 공격 : Active X, flash 등 

1.5.6 서버 침투

1.5.7 제휴 마케팅

1.6 감염과 절도 지점, 초크포인트, 대응책

- 감염지점과 데이터 절도 지점을 보면, 크라임웨어를 무력화하는 대응책을 적용할 수 있는 최우선적인 초크포인트를 알 수 있다.

- 배포저지: 스팸필터. 자동 업데이트, 크로스 사이트 스크립팅CSRF 및 SQL인젝션 차단

- 플랫폼 감염방지: 행동기반 시스템은 오탐이라는 문제가 있으나 새로운 공격에 바로 대응할 수 있다.

- 크라임웨어 실행방지: 인증된 코드만 실행되도록

- 기밀데이터 삭제방지: 하드웨어적으로 방어

- 기밀정보제공방지: 악성 사이트에 계정정보 입력시 이를 탐지하는 기능

- 기밀 데이터 수신과 사용저지:  트래픽 감시 (스니핑)

공격을 해도 금전적 이익이 없도록 하는 접근 방식도 있다.

1.7 크라임웨어 설치

- 1차 백도어 설치: 백도어는 피해자의 컴퓨터에 원격 제어 수단을 설치하는 데 사용. ex) BAD R.A.T

1.8 크라임웨어 사용

1.8.1 정보 절도

- 침투된 컴퓨터에 존재하는 사진등의 미디어 파일에 데이터를 섞는 스테가노 그래피 기술이 있다.

1.8.2 스팸 전송

1.8.3 서비스 거부 공격

DDOS는 보통 불법 사이트를 공격한다. 카지노, 토토, 불법성인사이트 등을 공격하여 돈을 요구한다.

1.8.4 부정 클릭

감염된 봇넷을 활용하여 인공적인 광고 수익을 올린다.

1.8.5 데이터 몸값 요구

- 랜섬웨어(암호 바이러스)

1.8.6 정보 수집

1.9 나머지 장의 구성

후기

 

2장 오류의 종류

2.1 골칫거리 삼형제

2.1.1 연결성 - 예전보다 인터넷에 연결되는 컴퓨터의 숫자가 크게 늘어났다. 예) IoT

2.1.2 복잡도 - 코드가 너무 길다. 버퍼 오버플로우 같은 단순한 공격도 방어하지 않는 안전하지 않은 프로그래밍 언어 (C나 C++)을 사용하면 문제는 더욱 커진다.

2.1.3 확장성

2.2 치명적인 7대 오류과

 1) 입력 확인과 표현 : 입력 확인을 하려면 차단 목록이 아니라 허용 목록을 사용하자. 버퍼 오버플로우, 크로스 사이트 스크립팅, SQL 인젝션, 캐시 오염의 제물이 된다.

 2) API 오용.

 3) 보안기능.(허술한)

 4) 시간과 상태. 분산 컴퓨팅은 시간과 상태를 다룬다. 단순 동기화만 구현한 MMORPG에서 텔레해킹을 통해 자신의 캐릭터를 순간이동 시길 수 있었다. 예기치 못한 상호작용은 공유 상태 (세마포어, 변수, 파일 시스템, 그리고 기본적으로 정보를 저장하는 모든 것을)를 통해 일어난다.

 5) 예외처리. 최근 객체 지향 시스템에서 한 때 금지됐던 개념인 goto를 다시 활용한다. 오류처리를 전혀 하지 않거나 쉽게 공격당할 정도로 대강하는 경우가 있다. 퍼징(fuzzing, fuzz testing)이란, 소프트웨어에 무작위의 데이터를 반복하여 입력하여 소프트웨어의 조직적인 실패를 유발함으로써 소프트웨어의 보안 상의 취약점을 찾아내는 것을 의미한다. 

 6) 코드 품질.

 7) 캡슐화

  + 환경

2.2.1 단순성에 대해: 7 ± 2

2.3 종

2.4 오류과와 종 정리

- 버퍼 오버플로우. 할당된 메모리 경계를 넘어서 데이터를 기록하는 일은 기존 데이터 및 프로그램을 망가뜨린다.

- 크로스 사이트 스크립팅CSRF. 확인되지 않은 데이터를 웹 브라우저로 전송하면 브라우저가 악성 코드를 실행할 수 있다.  웹사이트 관리자가 아닌 이가 웹 페이지에 악성 스크립트를 삽입할 수 있는 취약점이다.

- 포맷 스트링. 공격자는 함수의 포맷 스트링을 조작해서 버퍼 오버플로우를 발생시킬 수 있다.

- XML확인. XML파싱시 확인 과정을 거치지 않으면 공격자가 악의적인 입력을 주입할 수 있다.

2.4.1 완전한 예

2.4.2 개발 능력 향상

 

87p

3장 P2P 네트워크

3.1 P2P 네트워크 내 악성 프로그램

3.1.1 소개

 - 중앙집중식 P2P ex) 위디스크

 - 분산형 비구조화 P2P ex) 토렌트

3.1.2 데이터 수집

3.1.3 악성 프로그램 확산

3.1.4 악성 프로그램 필터링

 - 다운로드 후, 백신 프로그램

 - 다운로드 전, 질의 단계에서 악의적인 응답을 필터링

3.1.5 단일 기준 필터

3.1.6 네트워크 간 단일 기준 필터

3.1.7 복합 필터

결론

 - 파일 크기, 파일 명 기반 필터: 94~98%를 필터링 했다.

 - 호스트 IP주소, 질의 문자열에 기반한 필터를 추가했더니 95~99%를 필터링 했다.

 - 이제까지 알려지지 않은 악성 프로그램 즉, 제로데이 웜은 어떻게 필터링 하는가. 파일명과 크기의 빈도수를 모니터링 하고 지나치게 '활동적인' 파일을 감별해냄으로써 이 절에서 다룬 필터를 이용해서 빠르게 확산되는 제로데이 웜을 악성 프로그램으로 취급해 식별할 수 있다.

3.2 사람을 통해 전파되는 크라임웨어

3.2.1 문제

3.2.2 감염 경로

3.2.3 사례 연구: 서명된 애플릿

 

4장 휴대장치용 크라임웨어

4.1 USB 드라이브를 통한 전파

4.1.1 예: 윈도우 암호 훔치기

 - SAM파일과 system 파일을 탈취하여 LCP, SAM덤프, SAM 인사이드, pwdump같은 암호 복구 도구를 사용해서 오프라인으로 분석한다. 예를 들어 LCP는 SAM 파일에서 사용자명과 이에 대응되는 암호 해시를 추출한 후 사전(dictionary)공격, 브루트포스 공격(가능한 모든 암호를 대입하는 공격), 혼합공격 같은 세 가지 방식으로 사용자 암호를 알아낸다.

4.1.2 예: 그밖의 USB 드라이브 공격

4.1.3 DMA 취약점

 - 직접 메모리 접근 (Direct memory access) 이 문제가 중점적으로 제기된 것은 OHCI 규격으로 주창된 IEEE1394 규격으로 인한 것이었다. IEEE1394 규격은 성능적인 향상을 목적으로 운영체제의 관리를 통하지 않고 직접적으로 메모리에 접근할 수 있도록 함으로서 복잡한 입출력 작업에서 CPU의 점유율을 낮추고 전송 속도를 높이는데 성공한 인터페이스였다. 이러한 접근 방식은 당연히 운영체제와 CPU의 관리를 벗어나 있기 때문에, 그만큼 아무런 통제없이 시스템에 접근할 수 있도록 만드는 문제를 가져왔다. 즉 운영체제가 관리하는 범주 밖의 공간에서 관리범위의 메모리에 접근할 수 있는 길이 열리게 되는 것이다.

4.1.4 위험 측정

4.1.5 대응책

 - 백신 최신 버전으로 업데이트

 - USB 자동 실행을 끈다

 - USB 포트를 비활성화 시킨다.

 - 관리도구를 사용하여 USB 로그를 기록한다.

4.2 RFID 크라임웨어

4.2.1 RFID

4.2.2 RFID 보안 문제

 - 태그 복제: 유사한 저렴한 상품의 태그를 복사하여 사고자 하는 물건에 부착.

4.2.3 RFID 크라임웨어 유형

4.2.4 대응책과 기타 고려사항

4.3 모바일 크라임웨어

 

5장 펌웨어용 크라임웨어

5.1 펌웨어 갱신에 의한 전파

5.1.1 임베디드 제어 시스템: 유비쿼터스와 빠른 변화

5.1.2 가정용 무선 AP 사례

5.1.3 라우터 펌웨어 설정과 업그레이드

5.1.4 표준 보안 기법

- WLAN 접근 제어

AP는 SSID 감춤, vs 키스멧Kismet 은 SSID를 찾아낸다.

MAC주소를 이용한 클라이언트 필터링, vs 트래픽의 모든 프레임에 MAC주소를 전송하기 때문에 스누핑하면 된다.

 802.11 수준에서의 트래픽 암호화 기능. WEP(몇 분만에 뚫을 수 있다.) , WPA , WPA2

 - 관리자 접근 제한

관리자 암호 - 25%의 암호가 65,000개의 낱말 목록에 포함된 단어를 변형했다. 그리고 보통 잘못된 로그인에 AP는 어떠한 제재도 가하지 않는다.

인터넷 관리 기능 - 유선 연결을 통한 관리자 페이지 접근만 가능하도록 하는 것인데, 대부분의 경우 그런 기능을 꺼놓거나 아예 없는 경우가 많다.

와이파이 인증 기능

관리자 클라이언트와 웹 관리 페이지 사이의 SSL사용 의무화 - 관리자 페이지 접근은 HTTPS로 해야한다.

+ 단순히 SSID를 변경하는 것만으로도 해커의 표적에서 멀어질 수 있다. 다른 기본값도 바꿨을 가능성이 있기 때문이다.

5.1.5 취약한 보안 설정이 법이다

 - 설정 마법사의 암호란에 공란으로 두는 경우와 별표(*)로 해두는 경우 별표인 경우에는 25%의 사람들이 암호를 재설정 하지 않았다.

 - 공장 출하시 다양한 WEP 비밀번호를 활성화 시키고 그 비밀번호를 장치 하단에 부착. 사고로 인해 발생하는 문제처리 비용을 고객 지원 비용에서 상쇄.

5.1.6 공격

 - 무선 AP 재킹 공격 (WAP Jack Attack): 설정변경 공격.

 - 파밍: 라우터의 DNS서버를 설정하는 공격자는 라우터의 네트워크에서 공격자의 DNS 서버로 전송되는 모든 DNS 트래픽을 리다이렉트 한다.

 - 인터넷 관리: 기본적으로 꺼져있는 인터넷 관리 기능을 사용하면 라우터의 외부 네트워크에서도 로그인해서 설정을 변경할 수 있다.

 - 무선 브리징: 현재 WAN/인터넷 연결을 끊고 인터넷 트래픽을 근처의 라우터로 라우팅 한다. 현재 인터넷을 끊고 해커의 네트워크를 이용하는 것이다. 해커는 트래픽을 마음대로 감시, 수정, 차단 할 수 있다.

 - 무선 AP 킷 공격: 라우터에 침투한 후 펌웨어를 완전히 교체한 경우 공격 당한 라우터를 무선 AP 킷이라고 한다. 펌웨어까지 교체 당한 AP는 훨씬 다양한 공격을 할 수 있다. 무선AP킷 라우터는 모든 SSL 세션을 하이재킹 할 수도 있다.

  ex) 부정 클릭, 원격제어(좀비PC)

   중간자 공격 - 브라우저와 브라우저 사용자가 SSL 인증서를 적절히 인증하면 앞서 설명한 중간자 공격은 막을 수 있다.

   트롤러 피싱(웹 폼에 입력된 값의 복사본이 공격자에게 전송되는 공격) : 클라이언트가 로그인 정보나 개인 정보를 입력하기 전에 서비스 제공자가 SSL을 초기화 하면 막을 수 있다.

 

   레이스 파밍(라우터가 실제 서버로부터의 응답이 도착하기 전에 HTTP 응답을 스푸핑 할 수 있기 때문에 클라이언트가 자신도 모르게 공격자의 사이트로 포워딩 되는 공격) SYN-ACK 핸드 셰이크를 방해해서 TCP 연결을 하이재킹 하는 공격도 가능.

5.1.7 공격 경로

 - 워키팅: 물리적 근접성에 기반한 무선AP침투기법. 넷스텀블러나 키스멧 같은 와이파이 탐지 소프트웨어를 이용해 무선 네트워크를 찾는다. 에어스노트Airsnort는 WEP암호를 깨는 프로그램이다. 악의적인 펌웨어를 설치하기 위해 공개 웹 관리 페이지를 이용한다. 이를 위해 유향 안테나를 활용하기도 한다. DefCon에서는 2007년 기준 201km밖에서 3시간 동안 11Mbit 연결을 유지했다.

 - 라우터를 이용한 라우터 공격

 - 웹 스크립팅

 - 직접적인 장악과 재판매 : 악의적인 펌웨어 업데이트를 직접 수행한 후 이를 온라인 거래사이트에서 판매.

5.1.8 대응책

 - 전통적인 안티바이러스 소프트웨어는 도움이 되지 않는다: 안티바이러스 소프트웨어는 공격자와 무선 라우터 사이의 트래픽을 볼 수도 없다.

 - 적절한 보안 의식만 지녀도 대부분의 문제가 해결된다.

 평균정도의 보안 설정을 유지하는 것이다. 물리적 보안 계층을 추가히기 위해 라우터 설정을 변경하려면 반드시 라우터에 물리적으로 접근하게 해야한다. 라우터의 인터넷 기반 관리 또는 WAN측 관리는 반드시 비활성화해야 한다. 무선 네트워크는 WEP대신 WPA같은 강력한 암호화 기법으로 암호화 해야한다. 최소한 라우터 설정 변경에 필요한 암호는 추측하기 어려워야 한다.

 - 스스로를 해킹하자. 제조사의 펌웨어보다 엄격한 보안정책을 강제하는 펌웨어를 설치하면 된다. 예를들어 오픈WRO(OpenWRT)에는 잘못된 로그인 시도에 대한 벌점 시스템(백오프 기법)이 구현되어 있다.

 - 호스트 스캐닝: 엔맵(nMap)이나 p0f-2 같은 네트워크 호스트 스캐너를 이용하면 침투된 라우터를 탐지할 수 있다.

 - 침입 탐지 시스템 IDS(intrusion detection system)

 출처에 상관없이 악의적인 트래픽을 탐지한다. 침입 탐지 시스템에는 크게 서명 또는 규칙 기반 칩입 탐지 RIDS(rule-based intrusion detection system)와 통계 또는 변칙 탐지 시스템이 있다.

 RIDS의 단점은 알려진 공격과 이를 아주 조금 변경한 공격만 탐지한다는 점이다. 변칙 탐지 시스템은 오탐률이 높은 단점이 있다.

 - 무선 허니팟 : 허술한 AP처럼 위장해서 해커를 불러오는 방식. 공격자와 방어자 사이의 군비경쟁임.

 - 클라이언트 봉쇄: 침입 탐지 시 새로운 연결을 X분동안 금지하는 정책.

5.2 와이파이 악성 프로그램 전염 모델링

5.2.1 기본적인 방법론

5.2.2 연구 개요

5.2.3 라우터 감염

5.2.4 감염 네트워크

5.2.5 전염 모델

5.2.6 인공적인 전염 확산

 - 시카고의 경우 2주면 충분했다.

5.2.7 추가 사항

 

6장 브라우저용 크라임웨어

6.1 거래 생성기: 웹 세계의 루트킷

 - TG(거래생성기: Transaction Generator) : TG는 사용자 컴퓨터에 잠복하면서 사용자가 은행이나 온라인 쇼핑 사이트에 로그인할 때까지 대기한다. 인증을 마치고 나면 대부분의 웹사이트는 세션쿠키를 발행한다. 악성프로그램은 이 세션쿠키에 접근할 수 있다. TG가 수행한 거래는 사용자가 주로 컴퓨터를 사용하는 시간에 사용자의 IP주소에서 진행된 거래이기 때문에 웹사이트 입장에서 볼 때는 사용자가 수행한 적법한 거래와 동일해보이며 분석 도구로 탐지하기도 어렵다.

6.1.1 거래 생성기 구현

6.1.2 은닉형 거래 생성기

6.1.3 대응책

 - Chaptcha: 자동생성방지 문자

 - 무작위 거래 페이지 : 청구서를 이미지화 하거나 구조를 무작위화 해서 거래를 숨기기 어렵게 한다. 

 - 거래 확인: 쇼핑몰에서 모든 거래를 확인하게 해주는 확인 시스템을 사용하면 막을 수 있다.

결론

6.2 드라이브 바이 파밍

 - 사용자가 보기만 해도 사용자의 가정용 광대역 라우터 설정을 변경하려고 시도하는 웹 페이지를 이용한 공격을 말한다.

 - 드라이브 바이 파밍 공격은 라우터에 물리적으로 접근하지 않고도 자바스크립트 호스트 스캐닝과 CSRF로 라우터를 공격한다.

6.2.1 드라이브 바이 파밍 공격 과정

6.2.2 관련 연구

6.2.3 공격 세부사항

6.2.4 그 밖의 내용

6.2.5 대응책

 - 가정용 라우터 암호 변경

 - 로컬 방화벽 규칙

 - 라우터의 CSRF 보호.

결론

6.3 자바스크립트를 사용한 부정 클릭

6.3.1 용어 정의

 - 피싱 : 경제적 이익을 얻기 위해 타인의 계정 정보를 불법적으로 획득하려는 시도.

 - 스파이더링 (= 웹 크롤링)

 - robot.txt : 웹 마스터는 웹 크롤링 제외 대상을 여기에 적시한다.

 - 양면성 페이지 : 브라우저의 종류나 기타 기준에 따라 다르게 보이는 페이지.

6.3.2 구성요소

6.3.3 악성광고 공격 구현

6.3.4 공격 은닉

6.3.5 사용자가 악성 사이트에 방문하는 이유는 무엇일까?

6.3.6 공격 탐지와 차단

6.3.7 간단한 경제적 분석

6.3.8 결론

 

7장 봇 네트워크

7.1 봇넷 소개

 - 원격 관리자가 명령과 제어 네트워크를 통해서 제어할 수 있는 소프트웨어가 설치된 사용자 컴퓨터다.

7.1.1 봇넷 문제 측정의 어려움

 - 풋프린트: 임의의 시점에 감염된 컴퓨터의 총 개수

 - 유효 개수: 언제라도 명령을 수신할 수 있는 감염된 봇의 개수

7.1.2 봇넷 크기 측정

7.2 봇넷의 네트워크적 특징

7.2.1 봇넷 통신의 특징

 

7.2.2 통신 프로토콜

7.2.3 네트워크 수준 유연성

7.3 봇의 소프트웨어적 특정

7.3.1 일반적인 소프트웨어 기능

7.3.2 감염 상태를 유지하기 위한 기술

 - 안티바이러스 소프트웨어 설치 : 이미 감염된 PC를 다른 악성코드로부터 방어하기 위해 해커가 설치함. (트로이 목마)

 - 안티디버깅과 안티가상화 기술의 결합.

7.3.3 봇넷의 활용 분야

7.4 웹 봇과 봇넷의 전망

7.4.1 봇넷 2.0: 브라우저 기반 봇

7.4.2 봇넷의 미래

7.5 대응책

 - 차단 : 안티바이러스 최신버전 업데이트

 - 탐지 : 봇넷은 네트워크 모니터링으로 탐지할 수 있다. 시스템 관리자는 패킷 스니퍼 같은 도구를 사용해서 자신이 관리하는 네트워크에 봇넷 활동이 있는지 여부를 알아낼 수 있다.

 - 억제 : 검역소로 고립

 - 제거 : 안티바이러스 SW로 제거. 허나 루트킷 기술을 적용한 봇의 경우 어렵다.

결론

 

8장 루트킷

8.1 루트킷이란?

 - 컴퓨터에서 자신의 존재를 탐지 불가능한 형태로 유지하기 위한 은닉 컴포넌트다.

 ex) 삼성 복원 솔루션은 사용자가 실수로 백업 디렉터리를 삭제하지 못하도록 막아준다.

8.2 루트킷의 역사

8.3 사용자 모드 윈도우 루트킷

 - DLL 인젝션 : 원격 스레드 생성, 윈도우 훅의 사용, AppInit_Dlls 레지스트리의 사용.

8.3.1 타겟 프로세스에 루트킷 로딩하기

8.3.2 실행 경로 수정하기

 - IAT 후킹

 - 임포트 주소 테이블 IAT

8.4 커널 모드 루트킷 기술

8.4.1 인터럽트 디스크립터 테이블 후킹

8.4.2 시스템 호출 후킹

8.4.3 시스템 서비스 디스크립터 테이블 후킹

8.4.4 스레드 기반 SSDT 후킹

8.4.5 시스템 호출 코드 패치

8.4.6 계층화 드라이버

8.4.7 IRP 패치

8.4.8 커널 객체 직접 변경

8.4.9 스케줄러에게 스레드 숨기기

8.4.10 가상 메모리 접근 리다이렉션하기

8.4.11 SCM 없이 커널 드라이버 로딩

8.5 리눅스 루트킷

8.5.1 실행파일 교체 루트킷

8.5.2 로딩 가능한 커널 모듈 루트킷

8.5.3 실행시간 커널 패치 루트킷

8.5.4 VFS 루트킷

8.6 바이오스 루트킷

8.7 PCI 루트킷

8.8 가상 기계 기반 루트킷

8.8.1 소프트웨어 기반 VMBR

8.8.2 하드웨어 보조 VMBR

8.9 루트킷 방어

8.9.1 루트킷 차단

 - 설치되지 못하도록. 시스템 자원수정을 하기 때문에 해당 자원에 접근을 하지 못하도록 설정.

   - 프로세스 주소 공간으로의 쓰기 접근 거부하기

   - 물리 메모리로의 쓰기 접근 거부하기

   - 패치카드 보호 사용하기 ex) 사용자 계정 컨트롤 UAC, 서명 드라이버 로딩

   - ROM 업데이트 차단하기

8.9.2 루트킷 탐지

   - 비교 탐지 : 정상적인 시스템과 비교

   - 가상 머신 탐지

9장 가상 세계와 사기

9.1 소개

9.1.1 사기와 게임

9.1.2 속임수와 게임

 - 속임수 (cheating) : 게임 규칙을 어기는 행위

 - 사기 : 법을 어기는 행위

9.2 사기 행각의 무대 MMOG

9.2.1 MMOG의 기능적 측면

9.2.2 MMOG의 구조적 측면

 - 클라이언트/서버 모델 : 게임 플레이

 - P2P모델 : 파일 배포에.

 - 사설 서버를 운영하는 경우도 있다.

9.3 전자 사기

9.3.1 피싱과 파밍

 - 스피어 피싱 (spear-phishing) 즉, 상황인지피싱이다.

9.3.2 속임수 애플리케이션

9.4 MMOG에서의 사기

9.4.1 MMOG용 확장 보안 모델

 - 데이터 손실 (기밀성)

 - 데이터 수정 (무결성)

 - 서비스 거부 (가용성)

 - 허위 표시 (신빙성)

9.4.2 MMOG 보안 가이드라인

9.4.3 대응책

결론

 

10장 사이버범죄와 정치

스푸핑(Spoofing)의 사전적 의미는 '속이다'이다. 네트워크에서 스푸핑 대상은 MAC 주소IP주소포트 등 네트워크 통신과 관련된 모든 것이 될 수 있고, 스푸핑은 속임을 이용한 공격을 총칭한다.

10.1 도메인 네임 악용

10.1.1 배경지식

10.1.2 2008년 연방 선거에서의 도메인 투기

 - 타이포 스쿼트: 일반적인 실수 다섯가지에 기반해서 오타 도메인 네임을 생성한다.

10.1.3 도메인 파킹

10.1.4 악의적 의도

10.2 선거 본부를 타겟으로 하는 피싱

10.2.1 이익을 노린 피싱

10.3 악성 코드와 보안 위험 요소

10.3.1 애드웨어

10.3.2 스파이웨어

10.3.3 악성 코드: 키로거와 크라임웨어

10.4 서비스 거부 공격

10.5 인지적 선거 해킹

10.6 공공의 유권자 정보 제공자: FEC 데이터베이스

 - 미국 연방 선거 위원회에서는 200달러 이상의 기부금을 낸 사람의 정보를 공개하게 되어 있다. 이 데이터를 해커들이 악용할 수 있다.

10.7 음성 통신 가로채기

결론

후기

 

11장 온라인 광고 사기

11.1 온라인 광고의 역사

11.2 수익 모델

 - CPM : cost per mile, 천 번당 비용

 - CPC : cost per click, 클릭당 비용

 - CPA : cost per action, 행위당 비용

 

11.2.1 광고 노출 기반 모델

11.2.2 클릭 기반 모델

11.2.3 행위 기반 모델

11.2.4 신디케이션

11.2.5 참조 거래

11.3 스팸 유형

11.3.1 노출 스팸

11.3.2 클릭 스팸

11.3.3 변환 스팸

11.4 공격 형태

11.4.1 사람에 의한 클릭

11.4.2 로봇에 의한 클릭

11.5 대응책

11.5.1 방지

11.5.2 탐지

11.5.3 봉쇄

11.6 부정 클릭 감사

11.6.1 지표의 기밀성

11.6.2 데이터 제약

11.6.3 프라이버시

11.7 부정 클릭의 경제적인 측면

결론

후기

 

12장 크라임웨어 비즈니스 모델

12.1 크라임웨어 비즈니스

 - 크라임웨어도 불법 복제의 대상이다.

12.1.1 서론

12.1.2 애드웨어

12.1.3 스파이웨어와 트로이

12.1.4 봇과 봇넷

결론

12.2 애드웨어 자세히 알아보기

12.2.1 온라인 광고 플랫폼

12.2.2 광고의 악의적인 면 

 

13장 보안 교육의 방향

13.1 왜 교육이 중요한가?

13.1.1 교육의 역할

13.1.2 보안 교육이 어려운 이유

 - 간략한 교육: 많은 사람을 이해시킬 수 있으나 역이용으로 인한 피해가 심각해질 수 있다.

  예) SSL 잠금 표시를 확인하라. (많은 해커들이 잠금 표시를 한다)

 - 복잡한 교육: 이해하기 어렵고 시간을 들여 설명을 들으려 하지 않는다.

13.1.3 기존 교육 방식

13.1.4 기존 교육 방식의 문제점

 - 교실에서 이뤄지는 스키강습과 같다. 실전 연습도, 피드백도 없이 오로지 한 가지 메시지만 전달할 뿐이다.

  "넘어지지 말 것"

13.1.5 교육 목표

13.2 사례 연구: 만화를 통한 교육

 - 웹툰 형식의 보안 교육이 필요하다.

결론

 

14장 은닉형 악성 코드와 관련 법

14.1 서론

14.2 은닉형 악성 코드의 특징

14.2.1 은닉형 악성 다운로드, 설치, 혹은 작동 

14.2.2 위장과 흉내

14.2.3 개인 데이터 수집과 전송

14.2.4 컴퓨터 작동과의 인터페이스 

14.2.5 은닉형 악성 소프트웨어의 참을성

14.2.6 은닉형 악성 소프트웨어의 또 다른 악행 

14.2.7 가로챈 정보 악용

14.3 주요 관계 법령

14.3.1 컴퓨터 사기 및 방지 법안

14.3.2 연방 통상 위원회 법안

14.3.3 동산 점유 방해 금지 청구

14.3.4 안티스파이웨어에 대한 연방 주 법안

14.4 부수적인 관련 법안

14.4.1 전자통신사생활보호법

14.4.2 CAN-SPAM 법

14.4.3 지적재산권법

14.4.4 명의도용사기방지법

14.4.5 통화기록불법취득법

14.4.6 절도법

결론

 

15장 크라임웨어와 신뢰컴퓨팅

15.1 서론

신뢰컴퓨팅(TwC)이란 무엇인가?

 마이크로소프트의 "신뢰할 수 있는 컴퓨팅"(TwC)은 전기와 가스, 수도 등과 같은 수준으로 신뢰할 수 있는 컴퓨팅 환경을 제공하는 것을 의미한다. TwC는 보안(security), 프라이버시(privacy), 안정성(reliability), 비즈니스 무결성(business integrity)으로 구성된다.

- 보안(Security): 악의적인 공격으로부터 시스템의 데이터, 무결성, 가용성을 안전하게 보호하고, 공격으로 인한 장애로부터 신속하게 회복할 수 있도록 한다.

- 프라이버시(Privacy): 모든 개인이 자신의 사적 정보를 제어할 수 있도록 하며, 모든 제품과 온라인 서비스는 공정한 정보 관리 원칙을 준수한다.

- 안정성(Reliability): 제품에 상시 의존할 수 있고, 필요할 때마다 사용할 수 있으며, 기대하는 수준으로 동작하도록 한다.

- 비즈니스 무결성(Business Integrity): 고객과 개방적이고도 투명한 방법으로 대화하고, 제품과 서비스의 이슈들을 강조하며, 고객들이 적절한 솔루션을 찾을 수 있도록 돕는다.

 

15.2 공격 해부

15.3 크라임웨어와 신뢰컴퓨팅의 전쟁 

15.3.1 무결성 측정과 스토리지

15.3.2 검증

15.3.3 보호 스토리지: 바인딩과 봉인

 - TPM : 신뢰 플랫폼 모듈(Trusted Platform Module, 줄여서 TPM) 또는 신뢰할 수 있는 플랫폼 모듈[1]은 컴퓨팅 환경에서 암호화 키를 저장할 수 있는 보안 암호 처리자를 자세히 기록한 규격의 이름을 말한다. 또, "TPM 칩", "TPM 보안 장치"라 불리는 규격 기능의 총체적 이름이기도 하다.

 - 바인딩 : 수신자의 TPM에서 가져올 수 없는 비공개 키에 대응하는 공개 키를 사용해서 데이터를 암호화함을 뜻한다. 비공개 키를 관리하는 TPM만이 메시지를 해독할 수 있다.

 - 봉인 : 바인딩 과정에 한 가지 작업을 더 추가한 것이다. 중요 데이터가 무결성 메트릭과 결합된뒤 암호화된다.

15.3.4 보안 부트

15.3.5 하드웨어적 격리 (하드웨어적 소프트웨어 격리)

15.3.6 신뢰컴퓨팅은 만병 통치약?

 - 신뢰컴퓨팅의 가장 큰 문제는 '방지'에 있는게 아니라 '진단'에 있다는 점이다. 정상 시스템을 기준으로 변경이 된 것을 문제로 간주하기 때문에 정확히 어떤 악성코드가 어디에서 활동하고 있고 이를 제거하는 방법을 알 수 없다.

15.4 사례 연구

15.4.1 신용 카드 거래 보호

15.4.2 컨텐츠 보호

 -DRM

 

결론

 

16장 방어 기술

16.1 케이스 스터디: 스파이웨어 심층 방어

16.1.1 서론

 - 크라임웨어 감염은 이제 지극히 평범한 일이 돼버렸다. 미국 컴퓨터 사용자 중 89%가 스파이웨어에 감염되었으며 한 대당 평균 30개의 스파이웨어가 설치됐다고 예측했다.

 - 예방, 탐지, 봉쇄

 - Signature(시그니처): 정책 위반, 취약한 상태, 침입과 관련되었을 수 있는 활동을 나타내는 작업의 상태 또는 패턴입니다.

16.1.2 패킷 백신 (예방)

16.1.3 AGIS(탐지와 제거) : 자동 감염 시그니처 생성 기술.

16.1.4 스파이쉴드(봉쇄)

결론

16.2 크라임웨어 저항 인증

16.2.1 서론

 - 개인확인 질문은 공공 데이터베이스 조회로 알아낼 수 없어야 하고, 높은 엔트로피를 지녀야 하고(사용자 응답의 불확실성이 엔트로피. 높을 수록 좋다), 시간이 지나면 바뀌는 것이 좋다. 예) 마지막으로 키스한 이성은?

16.2.2 기존의 크라임웨어 저항 방식 

 - 텍스트 패스워드의 약점: 1) 사전(dictionary)공격에 약하다 2) 사용자는 여러 계정에 동일한 패스워드를 사용하는 경향이 있다. 3) 사용자는 자신의 패스워드를 잘 바꾸지 않는다. 4) 패스워드는 유저를 확인시켜줄 수 있지만 은행이나 기관을 확인시켜주지 못한다.(일방향)

 - 화상키보드

 - SSL인증서

 - 이중 보안 인증 : 다음 중 2가지 이상을 사용한다. 1) 사용자가 알고 있는 것(패스워드) 2) 사용자가 갖고 있는 것(보안 토큰, SMS인증) 3) 사용자 자신 (지문, 홍채)

 - 패스워드 해싱 : SSO(Single Sign On) 기술. 하나의 마스터 패스워드로 각 사이트마다 다른 패스워드를 생성해준다.

 - 스파이블락 : 사용자가 가상머신에서 웹을 탐색하게 한다.

 - 인간 중심, 시도 응답 프로토콜 : 안드로이드 패턴락과 비슷

16.2.3 선호도 근거 개인 정보 확인 질문

 - 매우 좋아함~ 매우 싫어함 까지 5가지 항목으로 나누고 질문Set을 미리 풀게하고 암호를 잃어버린 경우 해당 질문Set을 다시 풀어보게 하는 방식.

16.2.4 바람직한 개인 정보 확인 질문 

같은 장르에 대한 질문이라고 해도 선택지의 개수와 범주에 따라 좋은 질문이 되기도 하고 나쁜 질문이 되기도 한다. 해당하는 내용에 대한 구체적인 결과는 624p를 참조할 것.

16.2.5 좋은 질문 찾기

16.2.6 오류율 결정

16.2.7 질문과 엔트로피

결론

16.3 크라임웨어 방어 메커니즘으로 활약하는 가상 머신

 

17장 크라임웨어의 미래

17.1 크라임웨어, 테러웨어, 반달웨어, 랜섬웨어

 - 테러웨어: 민족이나 국가에 해를 끼칠 목적으로 제작된 악성 소프트웨어.

 - 반달웨어: 테러웨어의 동생 뻘. 정치 혹은 기업을 공격할 목적으로 느슨하게 구성된 공격자 그룹에 의해 움직인다. 핵티비즘의 중심. (ex. 잘못된 선거 정보를 유포하는 봇)

17.2 새로운 애플리케이션과 플랫폼

17.2.1 평판 시스템, 경매 사이트와 도박 애플리케이션 

17.2.2 전화, 자동차와 착용식 컴퓨터

17.3 소셜 네트워크를 이용한 공격

17.4 인터넷의 새로운 용도: 인프라스트럭처 제어

17.5 크라임웨어의 향후 전망

17.6 지식정보사회의 발전: 점점 더 약해지고 있지는 않은가?

17.7 총괄

 

 

 

 


+ Recent posts