본문 바로가기
시스템, 네트워크 보안

시스템 / 네트워크 보안 [네 번째 정리]

by 할 수 있다 ! 2024. 3. 8.

오늘 정리하려고 하는 내용은 네트워크 보안 입니다. 

 

 

 

네트워크 보안은 컴퓨터 네트워크를 보호하고 안전하게 유지하기 위한 전략과 기술을 포함하는 분야입니다. 

네트워크 보안은 정보 기술 시스템에 연결된 모든 장치, 시스템, 소프트웨어 및 데이터를 보호하는 것을 목표로 합니다. 

주요 목표는 인증, 기밀성, 무셜성 및 가용을 유지하는 것입니다.

 

1. 방화벽 : 네트워크 트래픽을 모니터하고 제어하여 외부로부터의 비인가된 액세스를 방지합니다. 

2. 가상 사설망 : 안전한 터널을 통해 인터넷을 통신하는 데이터의 기밀성을 보장합니다. 

3. 암호화 : 데이터를 안전하게 보호하기 위해 암호화 기술을 사용합니다.

4. 인증 및 권한 부여 : 사용자를 확인하고 인가된 사용자만이 리소스에 접근할 수 있도록 합니다. 

5. 침입 탐지 시스템 및 침입 방지 시스템 : 네트워크 내부 및 외부에서의 악의적인 활동을 탐지하고 막습니다. 

6. 보안 업데이트 및 패치 관리 : 시스템 및 소프트웨어의 보안 취약점을 해결하기 위해 업데이트 및 패치를 수행합니다. 

7. 네트워크 세그멘테이션 : 네트워크를 여러 세그먼트로 나누어 공격 영역을 줄이고 보안을 강화합니다. 

8. 보안 정책 및 규정 : 조직 내에서 네트워크 보안을 관리하기 위한 정책과 절차를 수립하고 준수합니다.

 


1. ARPA (고등연구기관) : 1960 중반 

 

여러 연구기관들이 공동으로 프로젝트에 참여한다. -> 네트워크 장치 제조사가 달라서 호환이 안된다. -> 통신이 불가능하다.

 

-DARPA에서 로봇을 연구하고 있다.

 

IP 주소는 컴퓨터에 할당한다. 

 

컴퓨터에는 여러개의 애플리케이션이 동작한다. -> 외부와 통신할 때 구분할 필요 -> 포트 번호가 필요하다. 

 

여러개의 애플리케이션 : 웹서버 , FTP 서버, SSH 서버 , TELNET 서버, 이메일 서버 등 

 

Quiz) 서버는 무엇일까?
1) 컴퓨터 (X)

2) 사람 (X)

3) 프로세스 (O)

 

하나의 컴퓨터에 여러개의 서버가 실행중 입니다. ->> 컴퓨터의 랜카드에는 IP 주소가 할당된다. 

 

각각의 서버를 네트워크에서 구분하기 위해서 포트를 사용한다. -> 서버는 포트가 할당된다. 

 

클라이언트 컴퓨터에는 웹브라우저마다 다른 포트가 할당되어 있습니다. 

 

 

2. TCP/IP의 등장 

 

네트워크 하드웨어를 만드는 회사가 다르더라도 연결 가능하게 된다. 

 

 

 

3. TCP 헤더 (Transmission Control Protocol Header) 

 

1) TCP 헤더는 TCP 세그먼트에 포함이 되며, 데이터 전송의 제어와 관리를 담당합니다. 

 

TCP 헤더에는 출발지 포트와 목적지 포트 : 통신하는 어플리케이션을 식별합니다. 

 

순서 번호와 확인 번호 : 데이터 전송의 순서와 상태를 관리합니다. 

윈도우 크기 : 수신 측이 한 번에 받을 수 있는 데이터 양을 지정합니다. 

플래그 : 연결 설정(SYN), 연결 해체 (FIN), 데이터 전송 (PUSH) 등 TCP의 상태를 나타냅니다. 

 

 

 

 

4. IP 헤더 (Internet Protocol Header) 

 

IP 헤더는 IP 패킷에 포함되며, 데이터의 출발지에서 목적지로의 라우팅을 관리합니다. 

IP 헤더에는 출발지 IP 주소와 목적지 IP 주소 : 데이터 패킷의 출발지와 목적지를 식별합니다. 

 

프로토콜 : 상위 계층 프로토콜을 지정합니다. TCP의 경우 값은 6, UDP의 경우 값은 17 입니다. 

 

TTL (Time to Live) : 패킷이 네트워크를 통해서 전달되는 동안 남은 수명을 나타냅니다.

이를 통해서 무한 루프를 방지합니다.

 

패킷 길이 : IP 헤더와 데이터를 포함한 전체 패킷의 길이를 나타냅니다. 

 

 

 

요약하자면 TCP 헤더는 연결 지향적이며 신뢰성 있는 전송을 보장하고 IP 헤더는 패킷의 라우팅과 네트워크 관리를 담당합니다. 함께 사용되어서 데이터를 안전하게 전송하는데 중요한 역할을 합니다.

 

5. LAN (근거리) : Wi-Fi , 이더넷, 토큰 링, FDDI 

 

LAN으로 연결하는 사례 

 

회사 : 건물 한 동은 이더넷으로 연결 --------- 그 이후부터 (WAN) ---------- 통신 회사

 

집 : 집집마다 와이파이 > 아파트 한 동을 이더넷으로 연결한다. > 아파트 단지도 이더넷으로 연결 ------ 그 이후부터 (WAN) ------ 통신회사

 

여기서 MAN 은 Metropolitan Area NetWork 이다. LAN의 확장판이다. ( 라우터 대신 고속 Switch 를 활용한다. ) 

 

WAN (원거리) : PPP, HDLC, ATM, Frame-Realy 등 

 

* 네트워크 장치 

 

- Switch : 2계층 헤더를 보고 목적지 MAC 주소에 따라서 목적지로 보내준다. ----> 네트워크 내부에 배치한다. 

- 라우터 : 3계층 헤더를 보고 목적지 IP 주소에 따라서 목적지로 보내준다. -----> 네트워크의 맨 앞단 배치한다. 

- Load Balancer : 4계층 헤더를 보고 목적지 포트에 따라서 여러 서버에 분산해서 보내준다. 

 

 


* MAC Adress

 

MAC 주소는 네트워크 장치가 네트워크 상에서 고유하게 식별되는 주소입니다. 

MAC 주소는 물리적인 네트워크 인터페이스에 할당되며, 이더넷이나 와이파이와 같은 네트워크 기술에서 사용된다.

 

MAC 주소는 일반적으로 48비트의 이진 숫자로 표현되며, 6개의 16진수 쌍으로 나타낸다. 예를 들어서 '00:1A:2B:3C:4D:5E' 같은 형식이다. 이 주소는 네트워크 카드 제조사에 의해 할당되며, 전 세계적으로 고유합니다. 

 

MAC 주소는 데이터 링크 계층인 OSI 모델의 2계층에서 사용됩니다. 이 주소는 네트워크 장치 간에 데이터 프레임을 전송하는데 사용되며, 목적지 장치를 식별하는 역할을 한다.  따라서 MAC 주소는 로컬 네트워크 내에서만 유효하며, 라우팅을 통해 다른 네트워크로 전달되는 경우에는 다른 주소 체계인 IP 주소가 사용된다. 

 

MAC 주소는 일반적으로 하드웨어에 영구적으로 할당되며 변경하기가 어렵다. 그렇지만 일부 장치에서는 MAC 주소를 소프트웨어적으로 변경할 수는 있으며, 이것은 특정 네트워크 환경에서 유용할 수 있습니다. 

 

-NIC ( Network Interface  Card, 랜카드 ) 칩 안에 입력되어 있다.  ----> 바꿀 수 없다. 

 ex) 8C-B0-E9-1B-DF-CA

 

- 랜 카드 각 자리는 16진수로 되어 있다. (16은 2의 4승이므로 4bit) ---> 4bit 가 12개이므로 총 48bit --> 48bit 주소체계

- 앞의 24bit를 OUI라고 한다. (OUI : 제조사 식별코드) --> 제조사를 알 수 있다. 

- OUI 번호는 IEEE(전기전자공학회, 표준기관, 논문발표)에서 판매한다. 

 

- 구글에서 'IEEE OUI'로 검색한다. 

 

- 뒤의 24bit는 제품 일련번호 (제조사에서 부여하는 번호이다.)

 

* 휴대폰의 MAC 주소 찾기 : 설정 > 휴대전화 정보 > 상태 정보 > 휴대전화 Wi-Fi MAC 주소

 

* 네트워크 장비의 MAC 주소를 보면 어느 제조사인지 알 수 있습니다. 

 

 

 


* Xerox

 

- Ethernet을 최초로 만든 회사 ---> MAC주소를 처음 사용한 회사이다.

- Dr.Metcalfe가 Xerox 다닐때 만들었다. ----> 3com을 창립 ---> hp에서 인수하였다.

 

여기서 잠깐 !

 

* MAC 주소는 중복이 될까요 ? 원래는 중복이 되지 않아야 합니다. -> 회사마다 다른 OUI를 가지고 있고 회사에서 다르게 뒷자리를 부여하기 때문입니다.

 

참고로 대만의 어떤 회사는 : OUI를 새로 등록하지 않고 기존의 OUI에 뒷 번호를 중복해서 넣어서 판매하였습니다. - > 이것은 MAC 주소 같기도 합니다. 

 

- 같은 네트워크에 있지 않으면 큰 문제가 없습니다. 

 

같은 네트워크에 있으면 ? 트래픽이 동일하게 들어가게 된다. -> 서로 도청이 가능합니다. 즉, 스니핑이 가능하다는거죠. 

 

- 운영체제에서 실제 MAC 주소 위에 가짜 MAC주소를 사용하면 도청이 가능합니다. 

 

EX) "신제품" 을 웹브라우저에 입력 -- > http body에 들어갑니다. 

 

http body + http header + tcp 헤더 + IP 헤더 + Wi-Fi 헤더 : 본인의 스마트폰 ~ IP 공유기 : 사설 IP 

 

http body + http hearder + tcp 헤더 + IP 헤더 + 이더넷 헤더 : IP 공유기 ~ 라우터 (이더넷 구간) 

 

http body + http header + tcp 헤더 + IP 헤더 + PPP 헤더 : 라우터 ~ 통신사 (PPP  네트워크)

 

http body + http header + tcp 헤더 + IP 헤더 +이더넷 헤더 : 구글 

 

데이터 센터 내부망 (이더넷 구간) 

 

*MAC 주소 (48bit)

 

- 앞 24bit : OUI (제조사 코드)

 

- 뒤 24bit : 제품일련번호 

 

- MAC 주소는 chip 안에 새겨져 있습니다. 그렇기 때문에 변경이 불가능하다. 

 

- OS에서는 실제 MAC 주소 위에 가짜 MAC 주소를 얹어서 사용할 수 있습니다. 

MAC 주소 위조 가능하다. (MAC Spoofing)

 

* MAC 주소가 동일한 경우

 

- 동일한 프레임을 같은 MAC 주소를 가진 컴퓨터에서 수신하게 된다. 그래서 MAC 주소 충돌을 확인할 수 있습니다. 

참고로 상대방의 트래픽을 도정 (스니핑) 을 할 수 있습니다. 

 

 

1)  MAC Address 는 2계층 데이터링크 계층입니다. 출발지 MAC 주소와 목적지 MAC 주소가 있습니다. 

2)  IP Address 는 3계층 네트워크 계층입니다. 출발지 IP 주소와 목적지 IP 주소가 입니다.

3) 포트번호는 4계층으로 전송 계층 TCP, UDP 가 있으며 출발지 포트와 목적지 포트가 있습니다.

 

 

패킷은 최초 출발지에서 최종 목적지까지 그대로 전달 됩니다.

프레임은 각 구간별 통신 방식에 따라서 달라질 수 있습니다. 

 

정리하자면 ! 

 

1) 패킷은 네트워크 통신에서 데이터를 나타내는 작은 단위 입니다. 

 

주로 네트워크 상에서 전송되는 데이터의 기본 단위입니다. 

 

패킷은 일반적으로 목적지 주소, 출발지 주소, 데이터 조각 등의 정보를 포함합니다. 

 

2) 프레임은 데이터 링크 계층에서 사용되는 데이터 전송 단위 입니다. 

 

프레임은 데이터를 물리적인 링크를 통해서 전송하기 위한 형식을 갖추고 있습니다. 

 

프레임은 주로 네트워크 카드에서 송수신 되는 데이터의 기본 단위 입니다. 

 

프레임은 목적지 MAC 주소, 출발지 M AC 주소, 데이터, 오류 검사 코드 등의 정보를 포함한다. 

 

요약하자면 패킷은 네트워크에서 데이터를 나타내는 논리적인 단위이며, 프레임은 데이터를 물리적인 링크를 통해서 전송하기 위한 형식을 갖춘 데이터 전송 단위입니다. 

 

 

 

* IPv4 

 

- 각 자리가 0 ~ 255로 구성됩니다.

- 8bit 씩 4자리로 구성한다. 각자리는 .(dot)으로 구분합니다. (8bit = 1byte = Octet)

 

ex) 192.168.5.130 

 

- IPv4 는 네트워크 부분과 호스트 부분이 있습니다. ex) 성 + 이름

 

- 네트워크 부분과 호스트 부분을 구별하는 방법입니다.

1) Classful (클래스 기반 방식) 

 

Class A : N.H.H.H 첫 번째 옥텟이 0 ~ 127으로 시작 된다. -> 2의 24승 개의 IP를 사용 가능합니다. 

Class B : N.N.H.H 두 번째 옥텟이 128 ~ 191로 시작 됩니다. -> 2의 16승 개릐 IP를 사용 할 수 있다. 

Class C : N.N.N.H 세 번째 옥텟이 192 ~ 223으로 시작된다. -> 2의 8승 개의 IP를 사용 가능합니다. 

Class D : 멀티캐스트 주소마다 용도가 지정한다. 224 ~239 

Class E : Not Used ( 기능이 비밀 ) 240 ~ 255 

 

2) Classless (클래스를 무시하는 방식) : 1992년부터 ~ 현재 

 

- IP 주소와 함께 서브넷 마스크를 사용하는 방식이다. 

 

- 서브넷 마스크에서 1은 NetWork 를 의미한다. 0 은 Host를 의미합니다. 

 

ex ) 255.255.255.0 (255 = 11111111) , 123.45.67.0 ----> 목적지를 찾을 때 사용한다. 

 

* 특수한 주소체계 ex) 123.45.67.8     255.255.255.0

 

- 네트워크 부분이 모두 0이면 ? 같은 네트워크에서만 전달이 된다. 호스트 부분으로 인식된다. 

 

- 127.x.x.x --> 127로 시작하는 주소 : Loopback (자신에게 전달하는 주소) 

 

- 사설 IP 주소 : 다른 공인 IP 주소와 라우팅이 되지 않는 주소 

10.x.x.x
172.16.x.x ~ 172.31.x.x
192.168.x.x

- 내부망에서 사설 IP를 사용하는 경우에는 인터넷으로 패킷을 보내려면 출발지 IP주소를 공인 IP 주소로 교체해야 한다.

* NAT 

- 나갈 때 : 내부망에서 사설IP를 사용하는 경우, 인터넷으로 패킷을 보내려면 출발지 IP 주소를 공인 IP 주소로 교체해야 한다.

- 들어올 때 : 목적지 IP 주소를 사설 IP 주소로 바꿔야 한다.

ex) IP 공유기 : 여러 사설 IP가 하나의 공인 IP를 공유하도록 해주는 장치이다.


* CIDR (싸이더)

- CIDR 표기법 : 서브넷 마스크에서 1개의 개수를 IP 주소 뒤에 /를 하고 숫자로 표시하는 방식이다. 

ex) 123.45.67.8  255.255.255.0  -------------> 123.45.67.8/24
ex) 123.45.67.8  255.255.0.0 -------------> 123.45.67.8/16

* IPv4의 주소 부족 문제를 해결하기 위해서 

- 단기 대책 : NAT (사설 IP 사용), CIDR(서브넷 마스크 사용한다.), VLSM (가변길이 서브네팅) 
- 장기 대책 : IPv6 를 사용한다. (IPv5는 IPv4 와 호환이 안된다.)

* ARPA에서 미국에 있는 연구기관들을 연결하는 것이 목적, 전 세계가 다 사용할 것을 예상하지 못한다.

* TTL 

-다른 네트워크로 이동할 때마다 1씩 감소한다. (=라우터를 지나면 1씩 감소한다.)
- TTL 값이 0이 되면 ? 패킷을 버린다. -----> 목적지를 못찾는 패킷들이 인터넷을 혼잡하게 만들기 때문

- 운영체제에 따라서 TTL 초기값이 결정된다. (Unix : 255, Windows : 128 , Linux : 64)

* Port 번호 

- 2의 16승이 할당 되어 있음 (16bit, 655365개, 0 ~ 65535)

1) 시스템 포트 (잘 알려진 포트 , Well-Known Port) : 0 ~ 1023 --------> 공통으로 많이 사용하는 서버용으로 사용한다.

2) Application Port : 1024 ~ 49151 ----> 특정 회사에서 만드는 서버 용도로 사용한다. ex) IRC : 6667, RDP : 3389, MySQL : 3306
(사용 허가를 받고 사용하는 것이 원칙 ----------------> 포트 중복문제 발생할 수 있기 때문)

3) Private Port, Dynamic Port : 49152

* TCP  : 주로 사람이 요청하는 데이터를 전송할 때 ex) E-Mail, http, SSH, FTP (용량이 큰 데이터, 동일 경로, 순차 전송)
* UDP : 주로 시스템 간에 정보를 교환할 때 ex) SNMP, DNS, NTP 실시간 데이터 (음성, 화상, 화면) 

 

* IPv6

- 주소 길이 : 128bit

- 앞 64bit : 네트워크 주소  ----> Prefix

- 뒤 64bit : 호스트 주소   ---> MAC주소 변형 또는 지정해서 사용 가능

---> 고정 길이이다.


*  Wireshark 

- 가장 많이 사용하는 오픈 소스, 패킷을 분석하는 도구

- 처음에는 이더리얼이라고 했는데, 이름을 WireShark 로 바꾼다. 

- 유선, 무선 (Wi-Fi, Bluetooth) USB 등의 트래픽도 분석이 가능하다. 

* NBNS (NetBios Name Service)

- 윈도우 시스템끼리 윈도우 컴퓨터 이름을 지정하고 컴퓨터 이름으로 통신이 가능하다. (파일 및 폴더 공유가 가능하다.)

- IP 주소가 없어도 NBNS는 동작된다.

* 3-Way Handshaking 

- TCP는 데이터를 보내기 전에 먼저 연결을 설정하는데 이 과정을 3-Way Handshaking 이라고 한다.

- 가상의 경로로 데이터를 보내면 모든 패킷이 같은 경로로 이동하게 된다. 

- Client 가 SYN를 보낸다. 서버에서 SYN의 응답으로 ACK와 SYN를 같이 보낸다.

Client 는 ACK를 보내서 연결 설정이 완료된다. 

 

1. FTP_sniff.pcapng 

 

- 3-Way Handshaking 패킷의 번호는 몇 번일까요? 

 

21번 : FTP 명령어 포트  ----> 1(SYN) 2(ACK/SYN) 3(ACK)
20번 : FTP 데이터 포트  ----> 

 

- FTP 로그인 ID와 PW를 전송한 패킷의 번호는?

- FTP는 명령어 전송을 4글자로 함 --->   USER : 계정,   PASS : 비밀번호,   QUIT : 종료

 

FTP 명령어 포트 

 

* TCP Stream 확인하기 : 오른쪽 마우스 > 따라가기(Follow) > TCP 스트림

- 빨간색 글씨 : 클라이언트가 서버에게 보내는 내용

- 파란색 글씨 : 서버가 클라이언트에게 보내는 내용

 

 

2. telnet_sniff.pcapng

- 3-Way Handshaking 번호는?  1,4,5

- Telnet 로그인 ID와 PW는 무엇일까요?

 

 

- Telnet은 클라이언트에서 입력한 글자에 대해 서버에서 에코를 보내주고 PW는 에코를 하지 않습니다.

 

 

마지막으로 인터넷 프로토콜 정리

  주소의 전체 길이(bit) 주소의 구성 앞부분의 의미 뒷부분의 의미
IPv4 32비트(bit) 4개의 8비트 바이트로 구성된다. 1) 앞부분의 비트는 네트워크를 식별하는 데 사용됩니다.
2) 네트워크 부분에는 IP 주소에 대한 네트워크 식별자가 포함됩니다.


3)네트워크 부분의 길이는 네트워크 클래스에 따라 달라지며, 일반적으로 서브넷 마스크를 사용하여 나타냅니다.



1) 뒷부분의 비트는 호스트를 식별하는 데 사용됩니다.


2) 호스트 부분에는 네트워크 내에서 개별적인 호스트를 식별하는 호스트 주소가 포함됩니다.


3) 호스트 부분은 네트워크 클래스와 서브넷 마스크에 따라 달라집니다.

IPv6 128비트(bit) 8개의 16비트 블록으로 구성된다. 1) 앞부분의 비트는 네트워크 프리픽스(prefix)를 나타냅니다.

2) 네트워크 프리픽스는 해당 주소가 속한 네트워크를 식별합니다.


3) 네트워크 프리픽스는 네트워크 주소 부분입니다.

1) 뒷부분의 비트는 인터페이스 식별자(identifier)를 나타냅니다.
2) 인터페이스 식별자는 해당 네트워크에서 호스트를 고유하게 식별합니다.


3) 인터페이스 식별자는 해당 네트워크 내에서 개별적인 호스트를 식별하는 부분입니다.

MAC Address 48비트(bit) XX:XX:XX:YY:YY:YY 1) 앞부분은 제조사 식별자(Organizationally Unique Identifier, OUI)를 나타냅니다.
2) OUI는 네트워크 카드를 제조한 회사를 식별하는데 사용됩니다.
3) OUI24비트(6자리의 16진수)로 구성되어 있습니다.

1)뒷부분은 제조사에서 할당한 고유 번호를 나타냅니다.
 
2) 이 고유 번호는 해당 제조사에서 생산한 각 카드에 대해 고유합니다.


3) 이 부분은 나머지 24비트(6자리의 16진수)로 구성됩니다.

 

 

따라서 IPv4 주소, IPv6, MAC 주소는 각각 네트워크에서 서로 다른 목적으로 사용되는 고유한 주소 체계입니다.