도순씨의 코딩일지

보안시스템 :: VLAN(Virtual LAN), 라우팅 프로토콜, TCP/IP, Spoofing, Sniffing, Snooping 본문

𝐒𝐄𝐂𝐔𝐑𝐈𝐓𝐘/𝐒𝐄𝐂𝐔𝐑𝐈𝐓𝐘 𝐒𝐓𝐑𝐔𝐂𝐓𝐔𝐑𝐄

보안시스템 :: VLAN(Virtual LAN), 라우팅 프로토콜, TCP/IP, Spoofing, Sniffing, Snooping

도순씨 2020. 9. 22. 00:00

🌼 VLAN(Virtual LAN)

브로드캐스트 도메인 분리는 물리적인 라우터 장비가 필요합니다. 하지만 때로는 네트워크를 나누고 싶어도 장비가 부족하거나 포트가 너무 많이 남는 경우가 존재합니다. 이런 경우는 VLAN(Virtual LAN) 은 스위치 포트별로 브로드캐스트 도메인을 논리적으로 분리합니다. 기존 네트워크 물리적 변경 없이 네트워크 구조 변경이 가능합니다. 또 영역별 보안 정책에 따라서 네트워크를 분리할 수 있다는 장점이 있습니다. 동일 스위치라도 서로 다른 VLAN은 라우터를 통해서 통신이 가능합니다. 

 

🌼 라우터를 통한 LAN과 WAN 연결

LAN은 Ethernet을 사용하고 WAN은 PPP와 Frame Replay를 사용합니다. 하지만 WAN은 직접 연결하기 비용이 너무 비싸기 때문에 통신사에서 제공하는 WAN에 연결하는 경우가 많습니다. 통신사 WAN은 어디로 경로를 잡을 지 예측 불가인데, 이럴때는 라우터끼리 신호를 주고받으며 경로를 잡을 수 있습니다. 

 

라우터는 네트워크상에서 가장 좋은 경로를 탐색합니다. Routing table이라는 장소에 이런 경로에 대한 정보를 저장합니다. 네트워크 주소는 목적지까지의 경로를 표시해줍니다.

 

라우팅 프로토콜(Routing Protocol) 은 경로 결정을 위한 라우팅 테이블 정보를 만들고 유지 관리하는 프로토콜입니다. 라우터끼리 통신하며 최적의 경로를 정하는 과정입니다. RIP(Routing Information Protocol) 은 최소 Hop count인 경로를 선택하는 것입니다. 하지만 이러한 방법은 경로는 짧지만 속도는 느릴 수 있다는 단점이 있습니다. 주로 소규모에 적합한 방법입니다. OSPF(Open Shortest Path First) 는 RIP의 단점을 보완한 것으로 전송 시간(비용)을 고려한 최단 경로를 정합니다. 이것은 대규모 네트워크에 적합합니다. BGP(Border Gateway Protocol) 은 AS(독립 네트워크)간 사용되는 외부 라우팅 프로토콜입니다. 주로 대규모 네트워크에서 사용됩니다. 

 

국내 인터넷 라우팅 경로를 간단하게 살펴봅시다.

 

 

ISP(Internet Service Provider) 는 인터넷 서비스 제공자로 KT, SKT, LG U+ 등이 있습니다. 이동통신 ISP는 별개로 존재하고 있습니다. IX(Internet eXchange) 는 인터넷 교환 노드로, ISP간의 트래픽을 원활하게 소통시키기 위한 인터넷 연동 서비스입니다. KINX는 이동통신 3사를 제외한 통신사들이 설립한 IX입니다. IDC(Internet Data Center) 는 ISP가 운영하는 IPC라면 속도가 더 빠르다고 합니다. 보통 정보통신서비스를 제공하는 업체에서 서버를 관리해주는 전문 업체에게 맡기기도 합니다. AS(Autonomous System) 은 동일한 라우팅 정책으로 한 회사나 단체에서 관리하는 라우터 집단입니다. 그들에게는 망 식별번호(AS 번호)를 부여합니다. 

 

 

🌼 전송계층(L4) 프로토콜

1) TCP(Transmission Control Protocol)

TCP는 연결 지향형 프로토콜입니다. 따라서 PC에서 서버로 연결을 요청하여 연결이 지속되어야 합니다. 데이터 전송은 크게 두 가지 기능을 제공합니다. 첫 번째는 흐름제어입니다. 수신측이 데이터를 흘려버리지 않게 도와주는 것입니다. 두 번째는 에러제어입니다. 전송 중 에러가 발생할 경우 자동으로 재전송하는 에러 제어 등의 기능을 통해 데이터의 확실한 전송을 보장하므로 신뢰성이 높습니다. Sequence Number로 패킷들을 구분하는데, 만약 재전송할 일이 생긴다면 Sequence number로 다시 요청합니다. 거리가 먼 경우 효과적이나 상대적으로 시간이 많이 걸리고 오버헤드 발생 가능성이 크다는 단점이 있습니다. 압축을 하거나 실행을 하는 경우 패킷 하나하나가 소중하기 때문에 TCP를 사용합니다. 

 

TCP는 다음과 같은 과정을 통해서 연결을 시작합니다.

출처 : https://afteracademy.com/blog/what-is-a-tcp-3-way-handshake-process

두 시스템이 통신을 시작하기 전에 클라이언트는 포트가 닫힌 closed 상태입니다. 서버는 항상 해당포트로 전송되는 데이터를 알아차릴 수 있을 수 있도록 listening 상태로 유지됩니다. 

처음 클라이언트가 통신을 하길 원한다면 임의의 포트 넘버가 클라이언트 프로그램에 할당됩니다. 클라이언트는 서버에 연결하고 싶다는 의사 표시로 SYN을 보냅니다.

클라이언트의 연결 요청을 받은 서버는 SYN Received 상태로 변합니다. 그리고 클라이언트에게 연결을 해도 좋다는 의미의 SYN+ACK를 전송합니다.

마지막으로 클라이언트는 연결을 요청한 것에 대한 응답을 확인했음을 알리기 위해 ACK를 보냅니다.

SSH 쉘로 접속한 경우 이 과정이 끝나고 나서 로그인 과정을 진행하게 됩니다.

 

출처 : https://blogger.pe.kr/390

TCP 세션을 종료하는 방법을 간단하게 말하자면 서로 FIN/ACK를 주고 받은 뒤 종료합니다.

통신을 종료하기 전에는 클라이언트와 서버 모두 'ESTABLISHED' 상태를 유지합니다.

통신을 끊고자 하는 클라이언트가 서버에 FIN 패킷을 보내면 클라이언트는 Close Wait 상태가 됩니다.

서버는 클라이언트의 연결 종료 요청을 확인하고 클라이언트에게 응답을 의미하는 ACK 패킷을 보냅니다. 서버도 클라이언트의 연결을 종료하겠다는 의미로 FIN 패킷을 보내고 Closed Wait 상태가 됩니다.

마지막으로 클라이언트는 연결 종료를 요청한 것에 대해서 확인했다는 의미로 ACK 패킷을 서버에 전송합니다. 

2) UDP(User Datagram Protocol)

UDP는 비연결형 프로토콜입니다. 클라이언트에서 서버프로그램에게 1회성으로 전송합니다. 작고 복잡하지 않으며 신뢰성이  없습니다. 오버헤드가 적고 빠른 전공 서비스를 제공하기 위해서 동영상 스트리밍(e.g 유튜브)에서 주로 사용하고 있습니다. 예전에는 데이터 회선 오류율이 굉장히 높아서 주로 TCP를 사용했지만 최근에는 신뢰성이 매우 높은 회선이 늘어나서 UDP를 사용하는 경우도 많아졌습니다. 데이터의 확실한 전송을 요구하지 않는 통신을 하거나 한 번에 많은 상대에게 데이터를 전송하고자 하는 경우에는 TCP 프로토콜의 연결 과정이 필요 없기 때문에 효과적입니다.

 

 

🌼 네트워크 보안 시스템

네트워크 보안 위협에 대해서 알아봅시다. 전송 방해(Interruption) 는 메시지가 못 가게 차단해버리는 것입니다. 가용성 침해라고 할 수 있으며, Dos  공격이 이와같은 방식으로 이루어집니다. 가로채기(Interception) 는 내용을 볼 수 없는 제3자가 내용을 몰래 보는 행위입니다. 기밀성 침해로 볼 수 있으며, Snooping, Sniffing의 방식이 가로채기 방식으로 이루어집니다. 변조(Modification) 는 메시지가 전송되지 못하도록 막은 다음 가로챈 메시지의 내용을 변조합니다. 이는 무결성 침해에 해당하며 Spoofing 방식이 해당합니다. 위조(Fabrication) 은 처음부터 데이터를 조작하는 방식입니다. 인증(Authentication)을 침해하는 방식으로 진행됩니다. 

 

앞에서 살펴본 공격 예시들을 하나씩 더 자세하게 살펴봅시다.

먼저 Spoofing에 대해서 살펴봅시다, Spoof은 '속이다, 사기치다' 라는 의미를 가지고 있습니다. 스푸핑은 TCP/IP의 구조적 결함을 이용하여 시스템 권한을 획득하여 정보를 탈취합니다. 

 

이런식으로 데이터를 전송할 때는 데이터에 대한 헤더가 붙습니다. 발신자 정보를 다른 사람의 정보로 바꿈으로써 spoofing 공격을 진행할 수 있습니다. IP Spoofing 은 접근 권한이 허용된 IP 주소를 도용하여 권한을 획득합니다. ARP Spoofing 은   MAC 주소를 속여서 랜에서의 통신 흐름을 왜곡시키는 방법입니다. 여기서 ARP란 IP주소와 MAC 주소를 매핑시켜주는 테이블입니다. DNS Spoofing 은 DNS Query에 위조된 Response 패킷 응답을 이용하며 파밍(Pharming)을 유도합니다. DNS는 도메인(URL)을 IP로 바꾸어주는 역할을 합니다. DNS를 바꾸어 놓으면 가짜 웹사이트로 유도가 가능한데, 이러한 점을 이용한 것입니다. 

 

Sniffing은 네트워크 상에서 자신이 아닌 다른 상대방들의 패킷을 훔쳐보는 행위입니다. Passive Sniffing 은 모든 노드에 전달되는 패킷을 단순하게 수집합니다. 랜 카드에서 모든 패킷을 다 올리도록 하여 수집합니다. Active Sniffing 은 ARP Spoofing 등으로 패킷을 강제로 유도하여 수집합니다. 원래 공격자에게는 권한이 없는 패킷인데 강제로 넘쳐서 나에게 오게 됩니다.

 

Snooping은 네트워크 상에 떠도는 중요정보를 몰래 획득하는 행위입니다. 

 

 

 

 

Comments