1. DNS에 대한 이해


DNS는 숫자로 구성된 네트워크 주소인 IP주소를 사람이 이해하기 쉬운 명칭인 도메인 이름으로 상호 매칭시켜주는 시스템이다.

DNS는 인터넷을 사용하는 동안 항상 사용하는 서비스로, 계층 구조를 이용한다. DNS에서 가장 상위 개체는 '.'이다. 이를 루트( Root )라고 한다. 두 번째 개체로는 국가와 조직체의 특성이 있다.


* DNS의 두 번째 개체에 대한 내용


 항목

 내용

 

 항목 

 내용 

 com 

 영리기관 

 

 mil 

 군사기관 

 net 

 네트워크기관 

 

 edu 

 교육기관 

 org 

 비영리기관 

 

 int 

 국제기관 

 gov 

 정부기관 

 

 kr( korea ), jp( japan ) 

 국가 이름 


두 번째 개체가 국가 이름이면 세 번째 개체가 조직의 특성이 된다. 예를 들면, co( Company ), ac( Academy ) 등이다. 그렇지 않은 경우에는 고유한 조직 이름이 오며, 보통 맨 앞에 자신의 DNS 서버에서 지정해 놓은 www, ftp와 같은 특정 서버의 이름이 온다. DNS는 전체적으로 다음과 같은 계층 구조를 이룬다.


* DNS 계층 구조



2. DNS의 동작 원리


DNS를 사용하려면 클라이언트에서 사용할 DNS 서버를 직접 입력하거나 DHCP를 통해 자동으로 할당받아 설정할 수 있다. 리눅스에서는 /etc/resolv.conf 파일에 DNS 서버를 입력할 수 있다.



윈도우에서는 [제어판]-[네트워크 및 공유센터]-어댑터 설정 변경]의 '로컬 영역 연결'에서 마우스 오른쪽 버튼을 누른다. 메뉴가 나타나면 [속성]을 누르고 인터넷 프로토콜(TCP/IP)의 속성을 선택한다. 다음 그림에서 DNS 서버를 두 개까지 입력할 수 있지만, <고급> 버튼을 누르면 좀 더 다양한 설정도 가능하다.



현재 이용 중인 DNS 서버는 명령 창에서 'ipconfig /all' 명령어를 입력하면 다음과 같이 확인할 수 있다.



* DNS 이름 해석 순서



클라이언트가 www.wishfree.com에 접속하기 위해 이 사이트의 IP 주소가 캐시에 존재하는지 확인한다. 과거에 접속한 적이 있는 사이트는 캐시에 정보가 남아 바로 접속할 수 있다.


① hosts 파일에 정보가 없으면 시스템에 설정된 DNS 서버인 로컬 DNS 서버에 질의한다.

② 로컬 DNS 서버에도 해당 정보가 없으면 루트 DNS 서버에 질의를 보낸다.

③ 루트 DNS 서버에 www.wishfree.com에 대한 정보가 없으면 com을 관리하는 DNS 서버에 대한 정보를 보내준다.

④ 로컬 DNS 서버는 com DNS 서버에 www.wishfree.com에 대해 다시 질의한다.

⑤ 해당 정보가 없을 경우 com DNS 서버는 다시 wishfree.com에 질의하도록 로컬 DNS 서버에 보낸다.

⑥ 로컬 DNS 서버는 마지막으로 wishfree.com의 DNS 서버에 질의한다.

⑦ wishfree.com의 DNS서버로부터 www.wishfree.com에 대한 IP 주소를 얻는다

⑧ 해당 IP 주소를 클라이언트에 전달한다.


그러나 이는 일반적인 과정이 아니라 최악의 경우라 할 수 있다. 대부분 자신이 설정해 놓은 로컬 DNS 서버에서 최초 요청한 도메인의 IP 주소를 바로 얻을 수 있다. 그리고 윈도우에서는 이미 조회한 DNS 정보를 메모리에 저장해두는데, 시스템에 캐시된 DNS 정보는 'ipconfig /displaydns' 명령으로 볼 수 있다.



캐시된 DNS 정보를 모두 지우려면 'ipconfig /flushdns' 라고 입력한다.



DNS 서버는 도메인별로 주 DNS 서버, 부 DNS 서버, 캐시 DNS 서버로 나눌 수 있다. 주 DNS 서버는 도메인의 중심 DNS 서버며, 부 DNS 서버는 주 DNS 서버의 백업 서버라 생각할 수 있다. 캐시 DNS 서버는 주 DNS 서버와 부 DNS 서버에 대한 접속이 불가능 할 때를 대비한 임시 DNS 서버와 비슷하다.



3. DNS를 이용한 정보 습득


DNS를 사용하기 전에 많이 이용되었던 hosts 파일은 아직도 어려가지 목적으로 시스템 운영에 널리 사용되고 있다. hosts 파일에는 여러 시스템에 대한 IP 주소와 URL이 기록되어 있다. hosts 파일은 사용자가 각 시스템에 접근하는데 도움을 주었던 만큼 해커에게도 똑같은 이점을 제공한다.


DNS에도 hosts 파일이 노출되는 것과 비슷한 형태의 정보노출이 있다. 바로 DNS 영역 정보의 접근 허용이다. 부 DNS서버는 주 DNS 서버로부터 영역에 대한 정보를 전송받아 도메인에 대한 정보를 유지한다. DNS 서버의 기본적인 보안 문제는 영역이 전송되는 대상을 부 DNS 서버로 제한하지 않은데서 발생한다. 부 DNS 서버로 전달되어야 할 영역 정보를 해커가 획득하는 것이다.


DNS에 관한 정보를 얻어오는 툴로는 nslookup, dig 등이 있다. 여기서는 가장 일반적인 툴인 nslookup을 사용해본다. nslookup은 윈도우와 리눅스에 기본으로 설치되어 있다.


- 도메인 정보 수집하기

특정 도메인에 관한 정보를 알고 싶을 때는 다음과 같이 해당 도메인 이름을 입력한다.



검색하고자 하는 서버의 종류를 설정할 때는 'set type' 명령을 이용한다. 'set type=ns'라고 입력한 뒤 검색하고자 하는 도메인을 입력한다.



set type 명령으로 출력되는 DNS 정보를 DNS 레코드라고 한다. set type 명령으로 확인할 수 있는 DNS 레코드는 다음과 같다.


종류 

내용 

 A( Address )

 호스트 이름 하나에 IP 주소가 여러 개 있을 수 있고 IP 주소 하나에 

 호스트 이름이 여러개 있을 수도 있다. 이를 정의하는 레코드 유형이 

 A이며, 다음과 같이 정의한다.

 - www        A        200.200.200.20

 - ftp            A        200.200.200.20

 PTR( Pointer )

 A 레코드와 상반된 개념이다. A 레코드는 도메인에 대해 IP 주소를

 부여 하지만 PTR 레코드는 IP 주소에 대해 도메인명을 맵핑한다.

 NS( Name Server )

 DNS 서버를 가리키며, 각 도메인에 적어도 한 개 이상 있어야 한다.

 MX( Mail Exchanger )

 도메인 이름으로 보낸 메일을 받는 호스트 목록을 지정한다.

 CNAME( Canonical Name )

 호스트의 다른 이름을 정의하는 데 사용한다.

 SOA( Start of Authority )

 도메인에 대한 권한이 있는 서버를 표시한다.

 HINFO( Hardware Info )

 해당 호스트의 하드웨어 사양을 표시한다.

 ANY( ALL )

 DNS 레코드를 모두 표시한다.



'NCS보안3기 > 네트워크 해킹' 카테고리의 다른 글

[Network Hacking] 스푸핑 공격  (0) 2017.04.30
[Network Hacking] 스니핑  (0) 2017.04.30
[Network Hacking] TCP 스캔  (0) 2017.04.30
[Network Hacking] ICMP스캔  (0) 2017.04.30
[Network Hacking] OSI 7계층  (0) 2017.04.23
Posted by Imp3rio

1. 포렌식( Forensic ) ?

     Forensic science( 법과학 )은 과학적 범죄수사 방법을 말한다.


2. Inman-Rudin Paradigm


- 사건( 범죄 )의 발생

Divisible Matter( 분열될 수 있는 물질 ) : 사건이 일어나면 물질은 분리된다.

Matter( 물질 ) / Traits( 특성 ) : 분리된 물질은 전송된다. 서로에게( 로카르 법칙 ) 전송

-> 각각의 물질은 서로 다른 특성을 가진다.

해킹사건의 경우

-> 해커에게는 피해자의 정보( 해커가 얻고자 하는 정보 )가 남게 된다.

-> 피해자에게는 시스템에 로그가 남게 된다.

USB를 통한 정보유출의 경우

-> 정보유출자는 정보를 유출한 USB에 정보가 남게 된다.

-> 피해자의 경우 정보를 유출해 간 USB의 정보가 남게 된다.


- 사건( 범죄 )이 발생한 후 인지( Recognition )

사건이 발생하더라도 그게 발생했는지 인지하는데 까지는 상당한 시간이 필요하다.

-> 해킹사건의 경우 사건이 발생하고 난 후 그 사실을 인지하는데 까지는 오랜 시간이 필요하다.

-> 수사기관에서 해킹사실에 대한 내용을 알려주거나

-> 해커가 직접 알려주거나

-> 감사에서 적발된다.


사건 인지 후에 바로 증거 수집이 필요하다.

-> 있는 그대로의 증거를 수집한다.


-  사건( 범죄 ) 증거의 분류( Classification )

-> 사건현장, 증인, 피의자( 용의자 ), 목격자 등으로 분류

-> 사건현장( Scene )

-> 피해자( Victim )

-> 용의자( Suspect )

-> 목격자( Witnesses )


- 증거에 대한 식별( Identification )

-> 종이, USB, 컴퓨터 등 일반적인 사람이 인식할 수 있는 단계

-> 이름, 주민번호, 통장번호, 카드번호가 기재된 종이 ➞ 단지 종이

-> 책상위에 놓여져 있는 USB

-> 불이 켜져 있는 컴퓨터 본체

-> 이는 USB가 어느 회사 제품이고 용량이 얼마나 되며 속도가 어떻게 되는지에 대한 식별이 아닌 단순한 USB로만 인식하는 단계


- 증거에 대한 개별화( Individualization )

-> 이름, 주민번호, 통장번호, 카드번호가 기재된 종이: 어느 은행 또는 카드사에서 나온 것인지 판단

-> 책상위에 놓여져 있는 USB: 어느 회사 제품인지 용량이 얼마나 되는지 등

-> 불이 켜져 있는 컴퓨터 본체: 윈도우 운영체제는 어떤 것을 사용하고 있는지

-> 스마트폰: 어느회사 제품이고 어느 운영체제를 사용하는지


증거에 대한 연고나성( Association )

-> 증거 대상에 범죄에 대한 행위( transfer )가 일어났는지 증거를 찾는 것.

-> 모든 증거에 대해 상호 분석

-> 다양한 가능성을 염두해 두고 분석


- 증거에 대한 재구성( Reconstruction )

-> 수집된 증거에 대한 연관성 등을 분석해 사건을 다시 재구성하는 것.

-> 이를 통해 어떻게 사건이 일어났는지 추정

-> 타임라인 분석을 통해 시간대별 이벤트를 구성하여 전체적인 사건 재구성

-> 파일시스템 $MFT, $USNJurl, $Logfile, 프리패치, 링크파일, 레지스트리 하이브 등 여러 증거들을 종합해 전반적인 흐름 구성



3. 전통적인 포렌식과 디지털포렌식의 차이

- 전통적인 포렌식

How에 대한 문제는 해결해 주지만 Why에 대해서는 해결해주지 못한다.

범죄현장에서 어떻게 죽었는지, 무엇을 통해 죽임을 당했는지, 누구에 의해 죽임을 당했는지 등에 대해서는 밝혀낼 수 있다. 하지만 왜 죽임을 당했는지에 대해서는 밝혀낼 수 없다.


- 디지털 포렌식

전통적인 포렌식과 마찬가지로 어떻게 사건이 벌어졌는지에 대한 문제 해결이 가능하다. 또한 왜 이 사건이 발생했는지에 대한 문제도 해결 가능하다.


4. 전통적인 포렌식과 디지털포렌식 프로세스 비교


- 이미징: 저장매체의 모든 물리적 데이터를 파일 형태로 만드는 작업

복사 VS 복제 VS 이미징


- 네트워크 패킷 캡쳐: wireshark 등을 통해 네트워크 상에서 돌아다니는 데이터 패킷을 캡쳐한다. 이는 OSI 모델의 2계층인 Data-Link 계층에서 패킷을 캡쳐한다.


- 라이브 포렌식: 전원이 켜져 있는 기기에서 휘발성 데이터가 저장되는 RAM에 대한 증거 수집을 예로 들 수 있다.


5. 디지털 포렌식 절차

1) 조사준비

- 도구 개발 및 마련

분석 대상에 적합한 분석 SW 마련

분석 대상에 적합한 분석 SW 개발

- 교육훈련

각종 파일시스템 분석: FAT32, NTFS, ExFAT, HFS, Ext 2,3,4

네트워크 장비 특성 분석: IDS, IPS, WAF

OS 버전별 특징 분석: 윈도우 xp, vista, 7, 10, Cent OS, Ubuntu

어플리케이션 별 특징 분석: MS Office, Kakaotalk, ...

- 장비 및 도구 준비

분해 해체 공구 세트

디스크 복제/이미징 장비

쓰기방지 장치

분석용 소프트웨어

분석용 PC

다양한 규격의 케이블

증거 포장 운반세트

캠코더, 카메라


2) 증거 수집

- 증거 수집 시 고려사항

사진촬영( 무엇을 찍을 것인가? )

수집 대상 확인( 어떤 것을 수집할 것인가? )

전원이 켜진 PC에서 어떻게 증거를 수집할 것인가?

증거 데이터를 어느 범위까지 할 것인가?


- 증거 수집 시 방법

전체 디스크를 이미징

> PC에서 디스크 분리 후 현장에서 이미징

> PC에서 디스크 분리 후 압수 한 뒤 분석실에서 이미징


휘발성 정보 수집( 라이브 포렌식 )

> 메모리 전체를 이미징

> 필요한 정보 수집을 위한 스크립트 작성


디스크에서 일부 정보만 수집


3) 증거 조사/분석

- 삭제된 데이터 복구

- 해쉬 분석

- 인터넷 히스토리 분석

- 이메일 분석

- 링크파일 분석

- 프리패치 파일 분석

- 레지스트리 분석

- 이미지 파일 분석

- 휴지통 분석

- 윈도우 이벤트 로그 분석

- 컴파운드 파일 분석

- 시그니처 분석

- USB 접속기록 분석

- 타임라인 분석


4) 보고 및 증언

분석 보고서 작성: 분석자, 분석 SW, 분석 대상, 분석 내용, 분성 결과

전문가 증언: 법정에서의 전문가 증언

> 분석자로서의 자질 검증 및 의견 수렴

> 관련 학력, 관련 자격증, 관련 경력 등


'NCS보안3기 > 디지털 포렌식' 카테고리의 다른 글

[Forensics] 파티션 복구 실습 III  (0) 2017.04.26
[Forensics] 파티션 복구 실습 II  (0) 2017.04.26
[Forensics] 파티션 복구 실습 I  (0) 2017.04.25
[Forensics] MBR 구조  (0) 2017.04.24
[Forensics] MBR  (0) 2017.04.24
Posted by Imp3rio

1. OSI 7계층이란 ?


국제표준화기구( ISO )에서 개발한 모델로, 컴퓨터 네트워크 프로토콜 디자인과 통신을 계층으로 나누어 설명한 것이다.



2. 목적


이 모델은 프로토콜을 기능별로 나눈것이다. 각 계층은 하위 계층의 기능만을 이용하고, 상위 계층에게 기능을 제공한다. '프로토콜 스택' 혹은 '스택'은 이러한 계층들로 구성되는 프로토콜 시스템이 구현된 시스템을 가리키는데, 프로토콜 스택은 하드웨어나 소프트웨어 혹은 둘의 혼합으로 구현될 수 있다. 일반적으로 하위 계층들은 하드웨어로, 상위 계층들은 소프트웨어로 구현된다.


- 물리계층

물리계층은 네트워크의 기본 네트워크 하드웨어 전송 기술을 다룬다. 네트워크의 높은 수준의 기능은 논리 데이터 구조를 기초로하는 필수 계층이다. 다양한 특징의 하드웨어 기술이 접목되어 있기에 OSI 아키텍처에서 가장 복잡한 계층으로 간주된다.


- 데이터 링크 계층

데이터 링크 계층은 포인트 투 포인트 간 신뢰성있는 전송을 보장하기 위한 계층으로 CRC 기반의 오류 제어와 흐름 제어가 필요하다. 네트워크 위의 개체들 간 데이터를 전달하고, 물리 계층에서 발생할 수 있는 오류를 찾아내고, 수정하는 데 필요한 기능적, 절차적 수단을 제공한다. 주소 값은 물리적으로 할당받는데, 이는 네트워크 카드가 만들어질 때부터 MAC 주소가 정해져 있다는 뜻이다. 주소 체계는 계층이 없는 단일 구조이다. 데이터 링크 계층의 가장 잘 알려진 예는 이더넷이다. 이 외에도 HDLC나 ADCCP 같은 포인트 투 포인트 프로토콜이나 패킷 스위칭 네트워크나 LLC, ALOHA 같은 근거리 네트워크용 프로토콜이 있다. 네트워크 브릿지나 스위치 등이 이 계층에서 동작하며, 직접 이어진 곳에만 연결할 수 있다.


* 프레임에 주소 부여( MAC - 물리적주소 )

* 에러검출 / 재전송 / 흐름제어


- 네트워크 계층

네트워크 계층은 여러개의 노드를 거칠때마다 경로를 찾아주는 역할을 하는 계층으로 다양한 길이의 데이터를 네트워크들을 통해 전달하고, 그 과정에서 전송 계층이 요구하는 서비스 품질을 제공하기 위한 기능적, 절차적 수단을 제공한다. 네트워크 계층은 라우팅, 흐름 제어, 세그멘테이션, 오류제어, 인터네트워킹 등을 수행한다. 

라우터가 이 계층에서 동작하고 이 계층에서 동작하는 시위치도 있다. 데이터를 연결하는 다른 네트워크를 통해 전달함으로써 인터넷이 가능하게 만드는 계층이다. 논리적인 주소 구조( IP ), 곧 네트워크 관리자가 직접 주소를 할당하는 구조를 가지며, 계층적이다.

서브네트의 최상위 계층으로 경로를 설정하고, 청구 정보를 관리한다. 개방형 시스템들의 사이에서 네트워크 연결을 설정, 유지, 해제하는 기능을 부여하고, 전송 계층 사이에 네트워크 서비스 데이터 유닛( NSDU : Network Service Data Unit )을 교환하는 기능을 제공한다.


* 주소 부여( IP )

* 경로설정( Route )


- 전송계층

전송계층은 양 끝단의 사용자들이 신뢰성있는 데이터를 주고 받을 수 있도록 해주어, 상위 계층들이 데이터 전달의 유효성이나 효율성을 생각하지 않도록 해준다. 시퀀스 넘버 기반의 오류 제어 방식을 사용한다. 전송 계층은 특정 연결의 유효성을 제어하고, 일부 프로토콜은 상태 개념이 있고, 연결 기반이다. 이는 전송 계층이 패킷들의 전송이 유효한지 확인하고 전송 실패한 패킷들을 다시 전송한다는 것을 뜻한다. 가장 잘 알려진 전송계층의 예는 TCP이다.

종단간 통신을 다루는 최하위 계층으로 종단간 신뢰성있고 효율적인 데이터를 전송하며, 기능은 오류ㄱ머출 및 복구와 흐름제어, 중복검사 등을 수행한다.


* 패킷 생성


- 세션계층

세션계층은 양 끝단의 응용 프로세스가 통신을 관리하기 위한 방법을 제공한다. 동시 송수신 방식, 반이중 방식, 전이중 방식의 통신과 함께, 체크 포인팅과 유휴, 종료, 다시 시작 과정 등을 수행한다. 이 계층은 TCP/IP 세션을 만들고 없애는 책임을 진다.

통신하는 사용자들을 동기화하고 오류복구 명령들을 일괄적으로 다룬다.


* 통신을 하기 위한 세션을 확립 / 유지 / 중단 ➞ 운영체제가 해준다.


- 표현계층

표현계층은 코드 간의 번역을 담당하여 사용자 시스템에서 데이터의 형식상 차이를 다루는 부담을 응용 계층으로부터 덜어준다. MIME 인코딩이나 암호화 등의 동작이 이 계층에서 이루어진다. 예를 들면, EBCDIC로 인코딩된 문서 파일을 ASCII로 인코딩된 파일로 바꿔 주는 것이 표현계층의 몫이다.


* 사용자의 명령어를 완성 및 결과 표현

* 포장 / 압축 / 암호화


- 응용계층

응용계층은 응용 프로세스와 직접 관계하여 일반적인 응용 서비스를 수행한다. 일반적인 응용 서비스는 관련된 응용 프로세스들 사이의 전환을 제공한다.


* 네트워크 소프트웨어 UI 부분

* 사용자의 입출력( I/O )부분



'NCS보안3기 > 네트워크 해킹' 카테고리의 다른 글

[Network Hacking] 스푸핑 공격  (0) 2017.04.30
[Network Hacking] 스니핑  (0) 2017.04.30
[Network Hacking] TCP 스캔  (0) 2017.04.30
[Network Hacking] ICMP스캔  (0) 2017.04.30
[Network Hacking] DNS( Domain Name System )  (0) 2017.04.24
Posted by Imp3rio