TCP/IP 통신 모델
OSI 모델을 일반적으로 참조모델이라는 말을 씁니다. 현업에서 사용되는 모델을 구현모델(간소화된 모델)이라고 합니다.
TCP/IP 뿐만아니라 다양한 통신모델이 존재합니다. (IPX/SPX, Appltalk등) Internet이라는 망은 public 망이고, 이 pulbic망은 누구나 사용할 수 있는데, 이 공용망에 특정기업의 통신모델을 이용하는 것은 위험합니다. 그래서 비상업적 통신모델을 써야한다고 생각했는데, 그 대표적인 비상업적 통신모델이 TCP/IP입니다. 이것은 미국방성에서 만들었고 나중에 대학 연구소 쪽으로 넘어가서 발전을 한 통신모델입니다.
OSI 모델 은 학자들이 만든 것이고, 현업에서 사용하는 것은 TCP/IP 모델입니다.
다양한 통신모델
통신체계 | 프로토콜 종류 | 용도 |
TCP/IP | HTTP, Telnet, TCP, UDP... | 인터넷과 LAN에서 사용 |
IPX/SPX | IPX, SPX, NPC... | Novel 사가 개발 및 판매하는 Netware 시스템에서 사용 |
Appletalk | DDP, RTMP, ATP... | Apple 사 제품의 LAN에서 사용 |
DECnet | DPR, NSP, SCP... | 구 DEC 사의 미니컴퓨터에서 사용 |
XNS | IDP,SPP,PEP... | Xerox 사의 네트워크에서 사용 |
통신규약(Protocol)
독점적 프로토콜(Vendor-Specific Porotocols)
- 특정 업체에서 프로토콜 개발
- 타 프로토콜과 호환 불가
- SNA, IPX/SPX, AppleTalk 등
비독점 프로토콜(Open Protocols)
- 학교 및 연구기관에 의해 개발
- 이중 장비간 통신 가능
- TCP/IP, 802.3 등
OSI 모델과 TCP/IP 모델 비교
우리 컴퓨터는 tcp/ip 망에 들어가기위해 셋팅된 컴퓨터입니다.
크롬과 같은 웹브라우저는 ui만 가지고 있는 것이 아닌 압축, 인코딩, 암호화, 인증서 기능 등을 포함하고 있습니다. SSL을 대표적으로 활용하고 있는 것이 웹브라우저입니다. (Application, Presentation, Session 기능을 가지고 있음)
랜카드에는 기본적으로 MAC Address를 포함하여 출시가 됩니다. 그래서 랜카드는 보통 2계층 이라고 하고, 케이블은 1계층이라고 합니다. 현업에서는 1,2계층 의미가 없어서 그냥 1,2,계층을 합쳐서 사용합니다.(Data Link, Physical)
3,4 계층은 운영체제가 해줍니다. 포트번호, ip 등 3,4계층에 관련된 것들은 운영체제가 합니다.(Transport, Network)
Sniffing 환경 구성 (WireShark 설치)
WireShark는 패킷을 수집하고 분석하는 도구입니다. 네트워크를 통해 전달되는 데이터를 수집하고 해석합니다. WireShark를 관제사가 사용하면 모니터링, 공격자가 사용하면 도청입니다. Sniffing은 도청, Sniffer는 도청 프로그램을 의미합니다.
리눅스 | 윈도우 | |
패킷수집 | TCPdump | TShark |
패킷분석 | WireShark | WireShark |
WireShark는 수집도 가능하지만 주로 분석용으로 사용합니다. 일반적으로 수집은 리눅스에서는 TCPdump, 윈도우는 TShark을 사용합니다.
다운로드 : https://www.wireshark.org/
1) 사이트로 이동하여 하단으로 내리면 Download를 할 수 있습니다. 윈도우 환경의 경우 Windows x64 Installer를 클릭하여 다운로드 합니다.
2) 다운로드된 파일을 설치합니다. 전부 Next를 누르고, 아래 그림과 같은 화면에서는 꼭 체크를 해줘야합니다. 무차별모드로 설정하기 위해 설치하는 것입니다.
3) 설치중에 Npcap setup 화면이 뜨는데 다른 설정없이 Next를 누르면 됩니다. 설치 끝!
WireShark 실행
실행 시키면 주파수 처럼 생긴게 있는데, 그것을 spark line이라고 합니다.
spark line을 더블클릭하면 다음과 같이 현재 내 랜카드로 들어오는 트래픽을 볼 수 있습니다. 상단 빨간 네모 정지버튼을 누르고 [File]-[Export Specified Packets...]를 클릭하여 저장합니다. 패킷 수집을 저장하면 pcap, pcapng 두가지 확장자 형태로 볼 수 있습니다.
무차별모드(Promiscuous mode)
PC1의 IP주소를 간단하게 1.10, PC2는 1.20, Sniffer의 컴퓨터는 1.30이라고 가정해보겠습니다. PC1에서 1.20으로 데이터를 보내는데 중간에 Sniffer가 도청에 성공했다고 하면 Sniffer의 컴퓨터는 그 데이터를 받아들일까? 못받아들일까? 못받아들입니다! 왜냐하면 그 데이터는 1.20으로 가는 데이터이기 때문에 Sniffer의 1.30과는 관련없는 패킷이기 때문입니다. Sniffer의 컴퓨터에서 역캡슐화를 하는 작업 중에 drop해버립니다. 그래서 실제 관제할때는 주소와 상관없이 모든 데이터를 받아들이겠다는 작업모드 변경을 해야합니다.
랜카드는 일반모드와 무차별모드가 있습니다. 우리가 구매했을 때는 일반모드로 데이터링크, 네트워크 계층 주소 필터링이 되어 있습니다. 그것을 해제해주는 것이 무차별 모드입니다.
- 데이터링크 계층과 네트워크 계층의 주소 필터링을 해제한 모드
- 주소 지정에 관계없이 호스트의 프로세서에 모든 패킷을 전달
- 패킷이 CPU에 전달되면 분석을 위해 패킷 스니핑 애플리케이셔넹 넘겨짐
- 유닉스/리눅스에서 ifconfig eth() promisc 로 설정
- 윈도우에서는 winpcap, npcap 설치
Packet Sniffing 환경
1) 허브 환경에서의 스니핑
유니캐스트, 멀티캐스트, 브로드캐스트의 어떤 패킷이 들어오든 플러딩 방식으로 전송합니다. 허브의 경우는 관제사, 공격자가 그냥 준비 잘해놓으면 자동으로 데이터가 들어옵니다.
관제범위를 가시성 창이라고합니다. 사내 망을 허브로 구성하는 것은 위험합니다. 허브는 플러딩 방식으로 전송하고, 관제범위를 넓히기도 하지만 위험합니다.
2) 스위치 환경에서의 스니핑
보통 회사에서는 허브말고 스위치 장비를 사용하는데, 스위치는 2계층 장비이고 포워딩/플러딩 방식을 취합니다.
스위치로 구동하는 경우 관제범위가 좁다 라고합니다. 관제범위를 넓히는 방법으로는 포트미러링(port mirroring), 허빙 아웃(hubbing out), 탭사용(tapping)이 있습니다.
포트미러링
포트미러링은 스위치 엔지니어가 해줘야합니다. target에서 들어오고 나가는 것을 보고 싶다면 스위치 담당자에게 요청해야합니다.
'7번포트에서 들어오고 나가는 것을 8번포트로 복사해줘'라고 스위치담당자에게 요청하는 것입니다. 관제범위가 넓어지는 것을 확인할 수 있습니다.
포트미러링 가능하며, 꼭 둘이 같은 스위치에 물려있을 필요는 없습니다.
허빙 아웃
스위치 밑에 허브를 달면 관제범위를 넓힐 수 있습니다. 이 방식은 많이 사용하진 않습니다. 이것도 스위치 담당자에게 허락을 받아야하는데, 불법적으로 hub를 달아버리면 스위치 담당자가 block 걸어버릴 수도 있습니다.
탭사용
탭은 정말 많이 사용합니다. 이것은 스위치 엔지니어의 도움이 없어도 됩니다. 휴대용 탭을 사용하는 경우도 있습니다. 허브처럼 block될 일이 없습니다. 실제 관제사들이 특정구간에 관제 대상을 설정해서 작업할 경우에는 휴대용 탭을 사용하는 경우가 있습니다. 관제사로 일하는 구역에서는 허브나 스위치 처럼 생긴 탭이 있는데, 그것을 연결시켜서 관제하게 됩니다.
[참고]
[시스템 보안 및 실무/시스템 운영·구축 실무] - Management Solution : NMS, SMS, ESM, SIEM + TAP