인터넷
인터넷은 미 국방부 산하에 RAPA(알파, 국방과학연구소)에서 전쟁에 쓰이는 무기를 연구를 하면서 멀리 떨어진 연구기관 및 대학교 등 연결의 필요성이 있어서 개발을 하였지만 서로 다른 회사의 네트워크 장치를 사용하다 보니 호환이 안되고 통신 방법이 다 달랐다. 그리하여 알파에서 공통의 프로토콜(ARPAnet)을 만들기로 하였다.
‣ 인터넷의 종류 : WWW, FTP, Telnet, Torrent, SSH, Archie, Gopher 등
‣ 전세계 미군부대를 연결할 계획(1960년대) ---> ARPAnet을 둘로 나누어서 미군 전용 네트워크(Milnet)와 인터넷(TCP/IP)으로 분리되었다.
Milnet의 중심이 되는 슈퍼컴퓨터 : Skynet
인터넷은 악성코드에 점령을 당함
------> Skynet과 인터넷을 연결하자!! 존 코너 반대!!
- ARPAnet의 시작
프로토콜 동작 원리
TCP/ IP 프로토콜의 데이터 캡슐화 구조이다.
• Packet과 Frame의 구조
Packet : 최초 출발지에서 최종 목적지까지 그대로 전달된다.
Frame : 각 구간별 통신 방식에 따라 달라질 수 있다.
• Preamble(7 bytes) : 수신 시스템에게 프레임이 도착하는 것을 알려준다.
• SFD(1byte) : 정상적인 프레임의 시작을 표시
• Destination Address(6 bytes) : 패킷을 수신하는 목적지의 물리 주소
• Source Address(6 bytes) : 패킷 송신자의 물리 주소
• Type or Length(2 bytes) : 길이 또는 종류로 정의된다.
• Data / payload(46~1500 bytes) : 상위 계층의 프로토콜로부터 캡슐화된 데이터
• FCS(CRC)(4 bytes) : 에러를 판별
※ Ethernet의 경우 최대 전송 단위가 1500byte이므로 Data + TCP + IP 모두 합해 1500byte 이내여야 한다.
• Frame 전송 방식의 종류
Wi-Fi, Ethernet, Token Ring, FDDI ---> LAN( 근거리 통신)
ATM, PPP, HDLC, Frame-Relay 등 ---> WAN( 원거리 통신)
- 카톡을 보내면?
Wi-Fi -- (공유기)--> Ethernet --(라우터. 스위치) -----> Frame-Relay ---> ATM ---> FDDI ---> Ethernet
• TCP/UDP
TCP를 이용하는 경우
‣ 주로 User가 데이터를 송/수신할 때
‣ 전송이 확실해야 할 때
‣ 데이터 큰 경우 (파일, 사진, 동영상, 로그인 등)
UDP를 이용하는 경우
‣ 주로 시스템 간 정보를 교환할 때
‣ 정확성보다 속도가 중요할 때
‣ 실시간으로 음성, 비디오, 게임 화면 등 전송
• TCP/UDP 분할
TCP를 사용하는 경우에는 TCP가 데이터를 분할(Segmentation)을 하고, TCP를 사용하지 않는 경우에는 IP가 데이터를 단편화(Fragmentation) 한다.
※ TCP가 자르면 TCP 헤더를 다 붙이고, IP가 자르면 IP 헤더를 다 붙인다.
• Ethernet
• Ethernet은 누가 만들었는가?
Xerox의 연구원이었던, Dr.Metcalfe가 Ethernet을 처음으로 만듦 ---> 3COM이라는 회사를 설립 ---> HP에서 인수(HP Networks)
MAC Address라는 주소체계를 만들어서 장비마다 번호를 부여하는 방식
현재 가장 많이 사용되는 LAN 방식
표준화하면서 이름을 IEEE 802.3으로 지정
IEEE 802.3을 속칭 Ethernet ll라고 한다.
• MAC 주소 : D0-3C-1F-2E-3D-47
각 자리는 16진수, 16은 2의 4승이므로 4bit ---> 각 자리는 4bit
4bit가 12자리(8bit가 6자리)이므로 48bit 주소체계 ---> 주소의 개수는 2의 48승
앞의 24bit를 OUI(제조사 식별코드) : 어느 회사 제품인지 알 수 있다.
뒤의 24bit은 제품 일련번호
구글에서 MAC OUI IEEE로 검색하면 두 번째 링크에 https://standards.ieee.org/products-programs/regauth/oui/ (MAC 주소 OUI를 공식 관리하는 기관)
구글에서 'default password'로 검색하면 제조사별 모델별 기본 ID와 PW를 알 수 있다.
---> 기본 패스워드를 변경하지 않는 경우 로그인 가능
• IPv4
IPv4 주소는 컴퓨터를 식별하기 위한 목적으로 사용
0부터 255까지의 번호가 4자리로 되어 있다(구분자 :.(dot) )
각 자리는 8bit로 되어 있음 --> 8bit는 2의 8승이므로 256(0~255) ---> 8bit = 1byte = Octet
8bit씩 4자리이므로 32bit 주소체계 (4 Octet이라고 한다) ---> MAC 주소보다도 작고, 주소 고갈 문제 발생
네트워크 부분과 호스트 부분으로 나누어짐(네트워크 : 집안 이름, 호스트 : 개인 이름)
※ 어디까지가 네트워크 부분일까?
=> 192.168.190.1 ---> 알 수 없다!!!
1) Classful : 클래스 기반
class A : N.H.H.H ----> Host 부분은 사용 범위 8bit * 3 = 24bit = 2의 24승 = 1777만 개
Class B : N.N.H.H ----> Host 부분은 사용 범위 8bit *2 = 16bit = 2의 16승 = 65535개
Class C : N.N.N.H ----> Host 부분은 사용 범위 8bit = 2의 8승 = 256개
Class D : Multicast용으로 지정되어 있다.
Class E : Not Use
---> 문제점 : 주소 낭비 -> Classful방식을 더 이상 사용하지 않기로 함
2) Classless : 클래스를 무시하는 방식 (오늘날)
----> 네트워크와 호스트를 (서브넷 마스크)로 구분(인진수로 1에 해당하는 IP 부분은 Network, 0에 해당하는 IP 주소 부분은 Host)
=> 192.168.190.1 --> 255.255.255.0 (255=11111111)
--> 192.168.190.0 네트워크 주소를 표기할 때는 호스트 부분을 0으로 사용
--> 네트워크 주소를 알아서 어디에 쓸까요? => 목적지를 찾아준다.
• IPv4 헤더
‣ version (4bit) _ _ _ _ : 0100 = 4 ----> IPv4 (만일 IPv6헤더라면 0110 )
‣ Total Length : IP 프로토콜이 만들 수 있는 최대크기 (16bit = 65535bytes까지 만들수 있다)
-> Frame에 실어서 보내려면 1500으로 잘라서 보낸다.
‣ TTL (Time to Live : 패킷의 수명) : 다른 네트워크로 이동할 때마다 TTL 값이 1씩 줄어든다. --> TTL이 0 이 되면 라우터가 버린다.(더 이상 전달 안 한다)
=> TTL이 0이 되면 패킷을 버리는 이유는 네트워크의 혼잡을 방지하기 위해서
운영체제에 따라 TTL의 초기값이 다름 : Unix : 255, Windows : 128. Linux : 64 --> 관리자가 설정을 변경할 수 있다.
• 지역 DNS 로드밸런싱
사용자가 접속한 위치 (국가별, ISP)에 따라 다른 서버에 접속
Quiz) 출발지 IP주소를 다른 주소로 바꿀 수 있다. ---> IP Spoofing이라고한다. (Spoofing : 속임수)
• IANA
IP 주소는 IANA에서 관리하고 있다
IANA(인터넷 주소 관리 위원회)
IANA를 관리하는 곳은 ICANN에서 관리한다.
IPv4, IPv6, Port번호, AS번호(기관 식별자)
IANA의 사이트 주소 : www.iana.org
• PORT
• port 번호 (16bit 할당) : 컴퓨터 내부의 서비스를 식별하기 위해서 사용한다.(= Application 식별)
• 16bit = 2의 16승 = 65536 *( 0~65535)
• 1~1023번까지 Well-known Port --> system Port
‣ 범용 서비스를 위한 포트 -> http(80), FTP(21), SSH(22), Telnet(23), SMTP(25) https(443)
‣ 용도를 미리 지정해 놓으면 물어보지 않아도 된다.
• Registered Port : 1024~49151
‣ 사설 Application을 개발하는 경우 사용하는 포트
‣ Appliction을 개발하면. 다른 기존의 Application과 중복되지 않는 번호를 사용해야 한다.
‣ 등록을 하고 사용하면 중복을 막을 수 있음
cf) Port Scanning
어떤 포트가 열려있다는 것은 어떤 서비스가 실행 중임을 알 수 있기 때문에 어떤 포트가 열려있는지 조사하는 것
• Dynamic Port : 49152~65535
‣ 주로 클라이언트용 프로그램들이 사용하는 주소
‣ 사용에 제한이 없다.
• 사용 중인 포트 확인하기
외부 주소의 서버 포트가 443 또는 80이면 로컬 주소에서 사용하는 포트는 '웹 브라우저'일 가능성이 높다.
• Wireshark
‣ Wireshark는 패킷 분석 도구이다.
‣ 최근에 기능이 확장되어서 USB트래픽을 분석할 수도 있고 다양한 PAN(Personal Area Network : Bluetooth, Zigbee, RFID 등) 도 분석 가능
‣ 가장 많이 사용하는 오픈소스
각자 맞는 운영체제를 다운로드한다.
Npcap 설치 : Nmap에서 만든 Packet Capture 도구이다.
• WireShark 실습
ubuntu에서 VM Gateway(192.168.5.2) |
WireShark를 실행시켜준다.
터미널에서 ping 192.168.5.2를 날려준다.
WireShark에서 ping이 응답/요청이 된 걸 확인할 수 있다.
※ 98 bytes 가 나온 이유는? => Ethernet헤더 14 + IP 헤더 20vytes + ICMP 64bytes = 98bytes
(사진 첨부)
• DVWA 실습
FTP로 로그인한 계정의 ID와 PW를 찾아보세요 |
WireShark를 실행을 시키고 dvwa 홈페이지에 들어가 로그인을 해보자.
File > save 클릭하고 http_sniff.pcapng로 저장 (pcapng : packet capture next generation )
디스플레이 필터에 http.request.method == POST 방식으로 찾아보자.
※ 여러 가지 방법으로 패킷을 찾는 방법
|
'Rookies 9기 > 시스템 네트워크보안' 카테고리의 다른 글
시스템/네트워크 보안 6일차 (0) | 2022.09.22 |
---|---|
시스템/네트워크 보안 5일차 (0) | 2022.09.21 |
시스템/네트워크 보안 4일차 (0) | 2022.09.20 |
시스템/네트워크 보안 3일차 (0) | 2022.09.19 |
시스템 / 네트워크 보안 2일차 (0) | 2022.09.16 |