'NCS보안3기'에 해당되는 글 63건

  1. 2017.04.24 [Forensics] MBR 구조
  2. 2017.04.24 [Forensics] MBR
  3. 2017.04.24 [Network Hacking] DNS( Domain Name System )
  4. 2017.04.24 [Forensics] FORENSIC
  5. 2017.04.23 [Network Hacking] OSI 7계층
  6. 2017.04.18 [Network] Switch
  7. 2017.04.18 [Network]ACL
  8. 2017.04.18 [Network] OSPF
  9. 2017.04.18 [Network] EIGRP
  10. 2017.04.17 [Network] RIP

* MBR 구조1

- MBR은 크게 3개 부분으로 나뉘어 진다.

- 부트 코드 부분: offset 0 - 445

- 파티션 테이블 부분: offset 446 - 509

- 시그니처 부분: offset 510 - 511



* MBR 구조2 - 디스크 시그니처

- 부트코드에는 디스크 시그니처 값이 포함된다.

- 디스크 시그니처: offset 440 - 443


- 디스크 시그니처는 운영체제가 설치된 디스크를 확인하는 값으로 MBR에 포함되어 있다.

- 디스크 시그니처는 레지스트르에도 그 값을 저장하고 있다.




* MBR 구조3 - 파티션 테이블

- 파티션테이블은 64바이트 크기로 총 4개의 파티션 정보를 가지고 있다.

- 파티션테이블은 총 4개의 엔트리로 구성되며

- 하나의 엔트리는 16바이트 크기로 하나의 파티션 정보를 가지고 있다.



* MBR 구조4 - 파티션 테이블 세부

- 파티션테이블을 하나의 엔트리를 살펴보면

- 부트 플래그, 시작 CHS주소, 파티션 타입, 끝 CHS주소, 파티션 시작 LBA주소, 파티션 총 섹터의 정보를 가지고 있다.

- 부트 플래그: 1바이트

> 해당 파티션이 부팅 가능한지 아닌지의 여부를 알려준다.

> 0x80이면 부팅 가능

>0x00이면 부팅 불가능


- 시작CHS주소: 3바이트

> 시작 CHS주소는해당 파티션의 실린더 / 헤더 / 섹터 방식의 시작 주소를 나타낸다.

> 현재는 디스크 주소체계가 LBA방식을 사용하여 의미가 없다.

> 과거 CHS방식과 호환성을 위해 존재한다.

> 해당 값이 00으로 채워져 있어도 동작에는 관계없음


- 파티션 타입: 1바이트

> 파티션에 설치되어 있는 파일시스템의 종류를 알려준다.

> FAT32, NTFS 등 파일시스템이 어떤 것이 사용되었는지 확인 가능하다.

> FAT32: 0x0B( 0x0C ) / NTFS : 0x07로 사용


- 끝 CHS 주소: 3바이트

> 시작 CHS주소와 같이 현재는 사용되지 않음


- 파티션 시작 위치: 4바이트

> 해당 파티션이 시작하는 처음 LBA주소를 나타내는 것으로

> 해당 위치로 이동하면 BR지점으로 이동 가능


- 파티션 총 섹터: 4바이트

> 해당 파티션이 가지고 있는 총 섹터 수를 나타낸다.

> 파티션의 총 섹터 수를 구하면 파티션에서 사용하고 있는 전체 용량을 계산 가능하다.



'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] FORENSIC  (0) 2017.04.24
Posted by Imp3rio

1. MBR( Master Boot Record )


디스크에서 가장 중요한 데이터 구조인 MBR은 디스크가 파티션될 때 만들어진다. MBR은 작은 크기의 master boot code, disk signature, 그리고 디스크에 대한 partition table을 포함한다. 

MBR의 끝에는 signature word 또는 sector marker의 끝이라고 불리는 2바이트 구조를 갖으며, 이는 항상 0x55AA로 세팅된다. signature word는 extended boot record( EBR )과 boot sector의 끝을 표시한다.

offset값이 0x01B8인 고유번호인 Disk signature는 운영체제에 대한 디스크를 식별한다.


2. MBR의 역할


- 부팅 가능한 파티션( 활성 파티션 )을 탐색

- 부팅 가능한 파티션의 시작 섹터 탐색

- 부팅 가능한 파티션의 부트 섹터를 복사해 메모리에 로드

- 부트 섹터에서 실행코드 실행


3. Partition Table ?


- 파티션 테이블은 64바이트의 구조체로 하드디스크에서 파티션의 위치, 타입 정보를 담고 있다.

- 파티션 테이블은 총 4개의 파티션 테이블 엔트리를 가지고 있으며, 각 16바이트의 크기를 갖는다.

- 파티션 테이블 엔트리에는 다음과 같은 정보를 포함한다.

1) 부팅 가능한 파티션 정보: 0x80은 부팅 가능 / 0x00은 부팅 불가

2) 시작 CHS 주소: 지금은 사용하지 않는다.

3) 파티션 타입: 파티션의 파일시스템 종류를 나타낸다.

4) 끝 CHS 주소: 지금은 사용하지 않는다.

5) 파티션 시작 위치: 파티션의 시작 위치로 해당 파일시스템의 BR( Boot Record ) or VBR  ( Volume Boot Record )의 위치를 나타낸다.

6) 파티션의 총 섹터: 파티션에서 사용하는 전체 총 섹터를 나타낸다.


4. 파티션 개수는 몇개까지 가능한가 ?


- 파티션의 개수는 파티션 테이블 엔트리의 개수만큼 가질 수 있다.

- 기본적으로 파티션 테이블 엔트리는 4개 이므로 파티션의 개수도 4개까지 가능하다.

- 하지만 확장 파티션을 사용하면 4개 이상의 파티션을 사용 가능하다.


5. 확장 파티션( 논리 드라이브 )이란 ?


- 확장 파티션은 4개 이상의 파티션을 사용하려고 할 때 생성되는 파티션이다.

- 3개의 파티션까지는 주 파티션으로 생성되지만, 4개 이상의 파티션을 생성하려고 하면 확장 파티션으로 생성된다.


- 녹색으로 테두리가 되어 있는 부분이 확장 파티션 부분이다.

- MBR 파티션 테이블에서는 녹색으로 되어 있는 확장 파티션을 하나의 파티션으로 구분한다.

- 따라서, 위와 같이 파티션이 있는 경우

- 4번째 파티션 테이블 엔트리에는 확장 파티션의 시작위치와 전체 크기만 존재한다.

- 4번째 파티션 테이블 엔트리의 정보만으로는 확장 파티션 내에 실제 몇 개의 파티션이 있는지 파악할 수 없다.

- 이를 확인하기 위해서는 확장 파티션의 시작 위치에 가서 추가적으로 분석이 필요하다.


6. 확장 파티션 BR( EBR )



- 확장 파티션 BR은 주 파티션이 아닌 확장 파티션( 논리 드라이브 )을 생성하면 추가되는 섹터다.

- MBR과 구조는 비슷하나 파티션 테이블과 시그니처( 0x55AA ) 정보만 가지고 있다. 부트코드는 존재하지 않는다.

- 4번째 파티션 테이블의 시작 위치를 참고해 확장 파티션으로 이동하게 되면.

- 1 ~ 3번째 파티션 테이블에서 나오는 시작 위치와 달리 MBR과 비슷한 구조를 확인 가능하다.

- MBR 파티션 테이블은 총 4개의 엔트리를 가지고 있지만, 확장 파티션 BR에서는 처음 2개의 엔트리만 사용한다.

- 3, 4번째 파티션 테이블 엔트리는 사용하지 않는다.

- 2개의 엔트리 중 첫번째 엔트리는 확장 파티션의 첫 번째 파티션 정보를 담고 있으며,

- 두번째 엔트리는 다음 파티션 정보를 바로 가리키는 것이 아니라, 다음 확장 파티션 BR 위치를 알려준다.

- 확장 파티션에는 확장 BR을 하나씩 가지고 있는 것이다.

'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] FORENSIC  (0) 2017.04.24
Posted by Imp3rio

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
NCS보안3기/네트워크2017. 4. 18. 22:28

1. 특징

- Data-Link Layer에서 사용하는 네트워크 장비

- MAC 주소를 사용한다.

- 하나의 Broadcast Domain

- 포트 별로 Collision doain 분할

- 전송 에러 복구

- 목적지로 데이터 전달

- 포트 확장 기능


2. Switch와 Router 비교


3. 전송 방식

1) Store and Forward

- 모든 Frame 확인 후 처리

- 목적지 주소, 출발지 주소, 에러발생여부 확인 후 처리

- error 복구 능력 좋음

- 다른 방식에 비해 느리다.


2) Cut-through

- Frame의 목적지 주소만 확인 후 바로 전송

- 속도가 빠르지만 에러 복구 능력이 약하다.

- 거의 사용하지 않음


3) Fragment-Free

- 1)과 2) 방식 결합

- 앞부분 64byte 확인

- 속도는 Store and Forward보다 빠르다.

- 에러 감지 능력 좋음


4. Switch 기능

- Learning

포트에 연결된 pc의 MAC 주소를 읽어 MAC address table에 저장한다.


- Flooding

목적지의 주소를 모를 경우 해당 패킷이 들어온 포트를 제외한 모든 포트에 해당 패킷을 전달한다.


- Forwarding

목적지의 주소가 MAC address table에 있을 경우 해당 주소가 있는 포트에 패킷을 전달한다.


- Filtering

출발지가 목적지와 같은 세그먼트에 존재할 경우 다른 세그먼트로 패킷을 전달하지 않는다.


- Aging

MAC address table의 효율적인 관리를 위해 일정 시간이 지나면 MAC address를 삭제한다.


5. STP( Spanning-Tree Protocol )

- 다중화에서 사용

- 스위치에 자동 설정

- 하나의 포트만 이용한다. -> 문제 발생시 다른 포트를 사용


6. STP 동작

1) Root switch 선출

2) 나머지 Switch는 Root port 지정

3) 각 Switch별 Designated 포트 지정

4) Loop 방지를 위해 alternate 포트 지정


7. BPDU( Bridge Protocol Data Unit )

- Switch는 서로 BPDU를 교환

-> BPDU를 바탕으로 Loping 없는 논리적인 경로를 구성한다.


8. BPDU 종류

1) Configuration BPDU

- Root switch 선출

- 각 Switch port의 역할 지정

- Root Switch가 생성한다.

- 다른 Switch에 전달한다.

- 다른 Switch는 수신 및 중계 역할을 한다.


2) TCN BPDU

- Switch에 연결된 Link 변화 시 사용

- Root Switch에 알리는 역할



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

[Network]ACL  (0) 2017.04.18
[Network] OSPF  (0) 2017.04.18
[Network] EIGRP  (0) 2017.04.18
[Network] RIP  (0) 2017.04.17
[Network] 라우팅  (0) 2017.04.17
Posted by Imp3rio
NCS보안3기/네트워크2017. 4. 18. 21:41

1. 개념

- 특정 트래픽의 허용여부를 결정하는 것

- 보안을 위해 사용한다.

- Router에서 설정한다.

- 완벽한 차단은 불가능하다 -> 방화벽 장비가 필요

- Numbered와 Named로 구분되며 Standard와 Extended로 구성된다.


2. 종류

1) Standard ACL

- 1 ~ 99번을 사용한다.

- 출발지 주소( Source Address )로 허용 여부를 판단한다.


2) Extended ACL

- 100 ~ 199번을 사용한다.

- 목적지 주소( Destination Address )까지 확인한다.

- 상세 프로토콜 설정이 가능하다.


3. ACL 규칙

- 윗줄부터 적용한다. -> 좁은 범위부터 설정해야 한다.

- 마지막에는 deny any가 자동으로 적용된다.

- 추가하는 순서대로 등록이 된다. -> 중간 삽입 및 수정이 불가능하다.


4. 동작 방식

- inbound

-> Router 내부로 들어오는 packet에 대한 filtering


- outbound

-> Router 외부로 나가는 packet에 대한 filtering


5. Standard ACL 설정

- 정책 설정

1 : list-number는 1 ~ 99까지의 번호를 사용한다.

2 : 아래 3번 조건에 맞는 패킷을 permit할 것인지 deny할 것인지 결정한다.

3 : source address. 출발지 주소를 입력하며 이 주소에서 출발하는 패킷에 대한 정책이다.

4 : source address의 서브넷 마스크


- 정책 적용

1 : 앞에서 정의한 ACL을 불러와 filtering 내용을 인터페이스에 적용한다.

2 : inbound와 outbound 설정


6. Extended ACL 설정

- 정책 설정

1 : list-number는 100 ~ 199까지의 번호를 사용한다.

2 : 조건에 맞는 트래픽을 permit할지 deny할지 결정한다.

3 : filtering할 프로토콜을 정의한다.( TCP, UDP, IP 등 )

4 : source address를 지정한다.

5 : destination address를 지정한다.

6 : 목적지 TCP/UDP 포트 이름 및 번호를 지정한다.


- 정책 적용

Standard ACL의 정책 적용과 같다.



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

[Network] Switch  (0) 2017.04.18
[Network] OSPF  (0) 2017.04.18
[Network] EIGRP  (0) 2017.04.18
[Network] RIP  (0) 2017.04.17
[Network] 라우팅  (0) 2017.04.17
Posted by Imp3rio
NCS보안3기/네트워크2017. 4. 18. 17:02

1. 특징

- Link-state 방식

- Classless 방식

- Metric 설정에 cost 사용( 10^8/Bandwidth(bps) )

- Multicast를 사용

- AD는 110

- SPF 또는 Dijkstra 알고리즘 사용


2. 장점

- Area 단위로 구성

- 축약 기능 제공 -> Stub

- 표준 Routing Protocol -> 모든 라우터에 사용 가능

- VLSM 및 CIDR 지원

- 빠른 Convergence time


3. 단점

- 복잡한 설정

- 많은 자원 소모( CPU, DRAM )


4. OSPF 패킷

- Hello packet

인접한 Router간 Neighbor 관계를 형성하고 Neighbor 관계를 유지하는데 사용


- DBD packet( Database Description Packet )

OSPF의 네트워크 정보인 LSA들의 요약된 정보를 알려줄 때 사용


- LSR packet( Lisk-State Request )

Neighbor에게서 수신한 DBD에 자신이 모르는 네트워크가 있을 경우 상세 정보를 요청할 때 사용


- LSU packet( List-State Update )

LSR을 받거나 자신이 알고 있는 네트워크 상태가 변했을 경우 해당 네트워크 정보를 전송할 때 사용


- LSA packet( Link-State Acknowledgement )

OSPF packet을 정상적으로 수신했음을 알려줄 때 사용( DBD, LSR, LSU일 경우에만 응답 )


5. 동작방식

1) Hello packet 교환

2) adjacent Neighbor간에 LSA 교환

3) 최적경로 계산 후 Routing table 등록

4) 주기적 Hello packet 교환

5) 네트워크 상태 변화 시 위 과정 반복


6. OSPF Neighbor 상태

- Down

Hello packet을 전송만 한 상태


- Init

근접 Router에게 Hello packet을 받았지만 상대 Router가 아직 내가 보낸 Hello packet을 받지 못한 상태

-> 상대방이 전송한 Hello packet 안에 내 Router-ID가 없는 경우


- Two-way

Neighbor와 쌍방향 통신이 이루어진 상태

Multi Access 네트워크일 경우 이 단계에서 DR/BDR 선출


- Exstart

adjacent neighbor가 되는 첫 번째 단계

Master와 Slave Router를 선출( Router-ID가 높은 것이 master )


- Exchange

각 Router가 자신의 Link-state Database에 저장된 LSA의 Header만을 DBD packet에 담아 상대방에게 전송


- Loading

DBD packet 교환이 끝난 후 없는 정보를 LSR packet으로 요청

LSR을 요청받은 Router는 정보를 LSU packet에 담아 전송


- Full

adjacent neighbor간 라우팅 정보 교환이 모두 끝난 상태


7. 네트워크 종류

1) Broadcast Multi Access

- 하나의 Broadcast pacekt 사용

- 동일 네트워크의 모든 장비에 전달

- 하나의 인터페이스만 사용


2) Non Broadcast Multi Access( NBMA )

- Broadcast packet 지원하지 않음

- 대부분 내부에 Virtual Circuit 방식을 사용

- 가상 회로 하나당 하나의 packet 사용


3) Point to Point

- 1 대 1 연결



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

[Network] Switch  (0) 2017.04.18
[Network]ACL  (0) 2017.04.18
[Network] EIGRP  (0) 2017.04.18
[Network] RIP  (0) 2017.04.17
[Network] 라우팅  (0) 2017.04.17
Posted by Imp3rio
NCS보안3기/네트워크2017. 4. 18. 16:38

1. 특징

- Cisco 전용 Routing Protocol

- RIP와 동일하게 Split-Horizon이 적용된다.

- Major 네트워크 경계에서 auto-summary 동작

- routing table 정보 전송 시 IP 프로토콜 88번을 사용한다.

- DUAL( Diffusing Update Algorithm ) 사용 -> Successor와 Feasible Successor를 선출

- AD값 : 내부 90, 외부 170

- AS( Autonomous System ) 단위로 구성

- Classless routing protocol


2. 장점

- 빠른 convergence time

- Unequal cost 부하분산( load balancing ) 지원


3. 단점

- Cisco 전용 -> 타사의 라우터에 사용할 수 없다.

- 대규모 네트워크에서 관리 어려움


4. EIGRP 패킷

1) Hello packet

- Neighbor를 구성하고 유지하기 위한 packet

- 멀티캐스트( 224.0.0.10 )를 목적지 IP로 전송

- EIGRP는 인접 Router에게 주기적으로 Hello packet을 전송


2) Update packet

- Routing 정보를 전송

- 유니캐스트 혹은 멀티캐스트 이용


3) Query packet

- Routing 정보 요청

- 유니캐스트 혹은 멀티캐스트 이용

- Routing table 변동 시 Feasible successor( 대체 경로 )가 없을 시 동작

- 인접 Router에 경로 요청


4) Reply packet

- Query packet에 대한 응답

- routing 정보 전달

- 항상 유니캐스트 사용


5) Acknowledgement packet

- 다른 packet에 대한 수신 확인

- Ack와 Hello 예외

- 항상 유니캐스트 사용


5. EIGRP 동작

1) 경로 계산 시

- Hello packet 교환

- Neighbor 관계 형성

- Neighbor table 생성

- Update packet 교환 -> Routing 정보 교환

- Topology table 생성

- Topology table 정보를 종합해 Routing 경로 계산

- Best path를 Routing table에 저장


2) 문제 발생 시

- Query packet Routing 정보 요청

- 응답상태 테이블 생성

- Reply packet으로 Routing 정보 수신 및 Topology table 저장

- Routing 경로 계산

- Best path를 Routing table에 저장


* Feasible Successor가 있는 경우 예외


6. Metric

- Bandwidth( 대역폭 )

- Delay( 지연 )

- Reliability( 신뢰성 )

- Load( 부하 )

- MTU

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

[Network]ACL  (0) 2017.04.18
[Network] OSPF  (0) 2017.04.18
[Network] RIP  (0) 2017.04.17
[Network] 라우팅  (0) 2017.04.17
[Network] 라우터  (0) 2017.04.17
Posted by Imp3rio
NCS보안3기/네트워크2017. 4. 17. 22:25

1. RIP 특징

- Distance Vector Routing Protocol

- RIP은 2가지 버전이 존재한다.

- UDP 520번 포트 사용

- AD 값은 120

- 소규모 및 대형 네트워크 말단에 유용

- 최초의 Dynamic Protocol

- 표준 Routing Protocol


2. RIP 장점

- 간단한 설정

- 모든 Router에 사용이 가능


3. RIP 단점

- Metric을 Hop-Count만 반영 -> 최적 경로 산출 비효율적

- 최대 gop-count가 15 -> 대규모 네트워크 구성 불가능

- 30초 단위 정보 전달 -> 정보 전송 방식이 비효율적


4. RIP version

1) RIPv1

- Classful 라우팅 프로토콜( VLSM 미지원 )

- 라우팅 정보 전달에 Broadcast 주소 사용( 255.255.255.255 )


2) RIPv2

- Classless 라우팅 프로토콜( VLSM 지원 )

- 라우팅 정보 전달에 Multicast 주소 사용( 224.0.0.9 )

- 각 라우터에서 네트워크 경로 정보에 대한 인증이 가능하다

- tag 사용이 가능하다.

- Autoo Summary 및 manual Summary 지원


5. Convergence Time

- 변화 발생 시 인식하고 수정하는 시간을 의미한다.

- Routing protocol에 따라 상이하다

- 시간이 짧을수록 좋다

- RIP는 30초 소요 -> Routing Loop 문제가 발생한다.


6. Routing Loop

- 해결책

1) Split Horizon

- 단일 방향으로 정보를 전달한다.

2) Route Poisoning, Poison reverse

- 문제 발생 시 Infinity 선언

3) Hold Down Timer

- 잘못된 경로에 대한 정보를 일정시간 무시한다.

4) Triggered Update

-변화 감지 시 즉각 업데이트


7. RIP 설정

1) RIPv1

- Routing Protocol 선언

「 router rip 」

- Routing 설정

「 network 네트워 주소 」


2) RIPv2

- Routing Protocol 선언

「 router rip 」

- 버전 설정

「 version 2 」

- auto-summary 해제

「 no auto-summary 」

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

[Network] OSPF  (0) 2017.04.18
[Network] EIGRP  (0) 2017.04.18
[Network] 라우팅  (0) 2017.04.17
[Network] 라우터  (0) 2017.04.17
[Network] 네트워크 보안  (0) 2017.04.06
Posted by Imp3rio