시스템/네트워크 보안 1일차
* 인터넷을 만든 사람?
- 빈트 서프, 로버트 칸
* 인터넷의 종류
- WWW
- FTP
- Telent,Torrent
- SSH
- Archie, Gopher
* 인터넷을 만들게 된 이유는?
- 미 국방산하에 ARPA(알파 = 국방과학연구소)에서 전쟁에 쓰이는 무기를 연구(신무기 개발)
- 멀리 떨어진 연구기관 및 대학교 등을 연결 필요성 => 문제점 : 통신 방법이 다름?
- 서로 다른 회사의 네트워크 장치를 사용하다 보니 호환이 안돼는 상태
- 알파에서 공통의 프로토콜을 만들기로 함 => ARPAnet이라고 이름을 붙임
* 전세계 미군 부대를 연결할 계획(1960년대)
=> ARPAnet을 둘로 나누어서 미군 전용 네트워크(Milnet)와 인터넷(TCP/IP)으로 분리
- Milnet의 중심이 되는 슈퍼컴퓨터 : Skynet
- 인터넷은 악성코드에 점령을 당함
=> Skynet과 인터넷을 연결하자!! 존 코너 반대!!
* ARPA는 DARPA(달파)
- DARPA챌린지 : 로봇 경진대회
- 로봇이 전쟁터에 투입되는 영화 : 채피
- 보스턴 로보틱스 => 현대차에서 인수
* Frame 전송 방식의 종류
- Wi-Fi, Ethernet, Token Ring, FDDI => LAN(근거리 통신)
- ATM,PPP,HDLC,Frame-Relay 등등 => WAN(원거리 통신)
* 카톡을 보내는 방식
Wi-Fi => Ethernet => 광랜(Ethernet) => Frame-Relay => ATM => FDDI => Ethernet
* TCP 가 자르면, TCP헤더를 다붙임
IP가 자르면, IP헤더를 다 붙임
* Ethernet은 누가 만들었을까?
- Xerox(icon (이더넷 원조)
- Xerox의 연구원이었던 Dr.Metcalf가 Ethernet을 처음으로 만듬 (1974) => 3COM이라는 회사를 설립 => HP에서 인수(HP Networks)
- MAC Address라는 주소체계를 만들어서 장비마다 번호를 부여하는 방식
- 현재 가장 많이 사용되는 방식
- 표준화하면서 이름을 IEE802.3 으로 (참고 : https://www.ieee802.org/)
- IEE802.3을 속칭 Ethernet II라고 함
ex) MAC 주소 : 84-5C-F3-94-67-90
- 각 자리는 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 주소
- 0부터 255까지의 번호가 4자리로 되어 있음(구분자 : .(dot) )
- 각 자리는 8bit로 되어 있음 => 8bit는 2의 8승이므로 256 (0~255) => 8bit = 1byte = Octet (Octa:8)
ex) Octopus(문어), Octave(8음계), Octagon(8각링), Octbboer(10월)
- 8bit씩 4자리이므로 32bit주소체계임(4 Octet이라고 함)
- 네트워크 부분과 호스트 부분으로 나누어짐(네트워크:집안이름, 호스트 : 개인이름)
ex) 홍길동, 남궁민
- 어디까지가 네트워크 부분일까? 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승 = 65536개
- Class C : N.N.N.H => host부분은 사용 범위 8bit = 2의 8승 256
- Class D : Multicast용으로 지정되어 있음
- Class E : Not Use
=> 주소낭비 => Classful 방식을 더 이상 사용하지 않기로 함(1992년)
2) Classless : 클래스를 무시하는 방식 (1992년 ~ 현재)
=> 네트워크와 호스트를 서브넷 마스크로 구분 (1에 해당하는 IP주소 부분은 Network, 0에 해당하는 ip주소 부분은 host)
ex) 192.168.190.1 255.255.255.0 (255 = 11111111)
=> 192.168.190.0 네트워크주소 / 255.255.255.0 네트워크 주소 (성,가문의 이름)을 표시할 때는 호스트 부분을 0으로 사용
참고) 서브넷이 있는 이유? : 네트워크와 호스트를 구분하기 위해
* IPv4헤더
- Version (4bit) _ _ _ _: 0100(2진수) = 4(10진수) => IPv4 (만일 , IPv6헤더라면 : 0110)
- Total Length : IP프로토콜이 만들수 있는 최대 크기 (16bit = 65535bytes까지 만들 수 있음)
(Frame에 실어서 보내려면 1500으로 잘라서 보내면 됌
- TTL(Time to Live : 패킷의 수명) : 다른 네트워크로 이동할 때마다 TTL값이 1씩 줄어듬 => TTL이 0이 되면 라우터가 버림(더이상 전달 X)
TTL이 0이 된 패킷을 버리는 이유는 네트워크의 혼잡을 방지하기 위해서 (목적지를 못찾고 이리저리 왔다갔다 하면 TTL= 되는 순간 없어짐)
운영체제에 따라 TTL의 초기값이 다름 Unix : 255, Windows : 128 , Linux : 64 => 관리자가 설정을 변경할 수 있음
ex) TTL이 55면 (리눅스 64 -55 = 라우터를 9번거쳐서옴)
참고) 지역 DNS 로드밸런싱
- 사용자가 접속한 위치(국가별,ISP)에 따라 다른 서버에 접속
- 내부망에서만 서비스를 하는 서버 (외부로 패킷이 나가면 안돼는 경우) TTL값을 1 또는 0 으로 설정
Quiz) 출발지 IP주소를 다른 주소로 바꿀 수 있음 => IP Spoofing이라고함 (Spoofing:속임수)
Quiz) 목적지 IP주소를 다른 주소로 바꾸는 것은 없다.
* IP주소는 IANA에서 관리하고 있음
- IANA(인터넷 주소관리 위원회)
- IANA를 관리하는 곳은 ICANN에서 관리
- www.iana.org
- IPv4, IPv6 , Port번호, AS번호(기관식별자)
* IP주소는 컴퓨터를 식별하기 위한 목적으로 사용
ex) www.naver.com => IP주소를 알려줌 (DNS가 알려줌)
* Port번호 (16bit 할당) : 컴퓨터 내부의 서비스를 식별하기 위해서 사용 (=Application 식별)
- 16bit = 2의 16승 = 65536 (0 ~ 65535)
1) System Port : 1 ~ 1023번 까지 Well-Known Port (예전이름)
- 범용 서비스를 위한 포트 ex) http(80 ) , FTP(21), SSH(22), Telnet(23), SMTP(25)
- 용도를 미리 지정해 놓으면 물어보지 않아도 됨
2) Registered Port : 1024~49151
- 사설 Application을 개발하는 경우 사용하는 포트
- Application을 개발하면, 다른 기존의 Application과 중복되지 않는 번호를 사용해야 함
- 등록을 하고 사용하면 중복을 막을 수 있음
ex) MySQL : 3306,
cf. Port Scanning
- 어떤 포트가 열려있다는 것은 어떤 서비스가 실행중임을 알 수 있기 때문에 어떤 포트가 열려있는지 조사하는것
3) Dynamic Port : 49152~65535
- 주로 클라이언트용 프로그램들이 사용하는 주소 ex) Web Browser 등
- 사용에 제한없음
실습 ) 사용중인 포트 번호 확인하기
- cmd > netstat -na
- 외부 주소의 서버 포트가 443 또는 80이면 로컬 주소에서 사용하는 포트는 '웹 브라우저'일 가능성이 높다.
어떤 포트가 열려있다는것은 어떤 서비스가 실행중임을 알 수 있음
* Android 에서 확인방법
설정 > 휴대전화정보 > 상태 : 50-77-05
TCP/IP (1974년)
OSI 7 Layer (1987년)
참고) 따라만든사람 : 빌게이츠, 스티븐잡스
TCP를 이용하는 경우
=> 주로 User가 데이터를 송/수신할떄
=> 데이터 큰 경우, 전송이 확실해야 할 떄
UDP를 이용하는 경우
=> 주로 시스템간 정보를 교환할떄
=> 정확성보다는 속도가 중요할 때
=> 실시간으로 음성,비디오,게임화면 등
* WireShartk 설치
- https://www.wireshark.org/
- Npcap 설치 : Namp에서 만든 Packet Cpture 도구
* Libcap (Packet Capture Library)
- Winpcap (Windows Packet Capture Program) => 현재는 사용하지 않음
- Npcap (Nmap Packet Capture) => 최근에는 이것을 사용
* WireShark는 패킷 분석 도구임
- 예전 이름은 Ethereal 이었는데, 상표권문제로 이름을 Wireshark로 변경
- 최근에는 기능이 확장되어서 USB트래픽을 분석할 수도 있음, 다양한 PAN(Persnonal Area Network : Bluetooth, Zigbee, RFID등)도 분석 가능
- 가장 많이 사용하는 오픈소스
Coordinated Universal Time (UTC) : 표준시 (그리니치 천문대, 런던 근처)
=> 서버가 글로벌하게 배치되어 있는 경우, 시간을 통일해서 봐야 함
* Ubuntu_DVWA에서 VM Gateway(192.168.5.2)
$ ping 192.168.5.2
=> 92byte가 나온이유
IP헤더 20byte + ICMP헤더 8bytes + ICMP데이터 48bytes =98byte
실습( Wireshark를 켜고 vm8번
dvwm 홈피/ gordonb/abc123 로그인
빨간색 네모 눌러서 패킷 캡쳐 중지
File > save 클릭하고 http_sniff.pcapng로 저장(pcapng :packet capture next generation)
GET : 단순 페이지요청,검색어 입력
POST : 게시판 글쓰기,로그인
패킷 찾는방법
디스플레이 필터에 http.request.method == POST 입력
Hypertext Transfer Protocol => http헤더
HTML Form URL Encoded => HTTP BODY
2) Edit => Find Packet => String으로 변경 logint 입력(특정 키워드를 넣는 방법)
3) frame matches password(frame에 매치되는 단어 검색) // password라는 단어를 찾기
4) frame에 포함된 단어 검색
- frame contains password
Wireshark
실습1) FTP_sniff.pcapng
- FTP로 로그인한 계정의 ID와 PW를 찾아보기
실습2) http_sniff.pcapng
- 로그인한 계정과 패스워드의 패킷번호를 찾아보기
'Network' 카테고리의 다른 글
루키즈교육 - 0921 학습 (0) | 2022.09.21 |
---|---|
루키즈 교육 - 0920 학습 (0) | 2022.09.20 |
루키즈교육 - 0919학습 (0) | 2022.09.19 |
Wireshark 사용법 (0) | 2022.04.06 |
프로토콜과 패킷 교환 방식 (0) | 2022.04.06 |