Notice
Recent Posts
Recent Comments
Link
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
Archives
Today
Total
관리 메뉴

브래의 슬기로운 코딩 생활

정보보안 5주차 정리 - 네트워크 보안 본문

3-1/정보보안

정보보안 5주차 정리 - 네트워크 보안

김브래 2024. 4. 3. 00:56

OSI 7계층


OSI 7계층 모델

◦ 네트워크의 동작 과정을 설명하는 가장 대표적인 모델
◦ 국제표준화기구인 ISO(International Organization for Standardization)에서 제정
◦ 실제 구현된 시스템이 아니라, 일종의 개념적 모델
➢ TCP/IP는 실제 구현이 되어 실질적인 표준처럼 사용되는 네트워크 모델

 

통신 프로토콜(Protocol)

◦ 네트워크를 통해 데이터를 주고받는 과정에 대한 약속
◦ OSI 7계층 모델은 통신 프로토콜을 7개의 세부 프로토콜로 나누어 설명

그림 중요

7계층: 응용 계층

응용 계층(Application Layer)
➢ 사용자에게 인터페이스(UI: User Interface)를 제공하는 계층


◦ 예1) 메일을 보내고 받는 MS사의 아웃룩(Outlook) 프로그램
◦ 예2) 웹 브라우저, FTP 프로그램 등

 

6계층: 표현 계층(Presentation Layer)

◦ 응용 계층(7계층)에서 다루는 데이터의 형식을 변환(Format Conversion)하는 계층
➢ 암호화·복호화 혹은 인코딩·디코딩 등의 데이터 형식의 변환을 수행하는 계층

 

◦ 예) 이메일 메시지: MIME(Multipurpose Internet Mail Extensions) 포맷으로 인코딩 (Encoding) 되어 있음 

→ 일반 텍스트 포맷으로 변환

 

5계층: 세션 계층(Session Layer)

◦ 두 개의 응용 프로세스 사이에 통신(세션)을 관리하는 계층

4계층: 전송 계층(Transport Layer)

◦ 데이터를 주고받을 때 데이터의 유실(Loss)이 없도록 보장해주는 계층
◦ 흐름 제어(Flow control)
➢ 양 끝단(End-to-end)에서 전달받은 데이터의 오류를 검출
◦ 만약 오류가 있다고 판단되면 재전송을 요청 → 데이터의 유실 방지

전송 계층의 상하 관계의 특성

◦ 상위 계층 (5계층, L5)은 하위 계층 (4계층, L4)이 하는 일에 관여하지 않음


전송 계층의 상하 관계

5계층(L5)의 1개 메시지 → 2개의 4계층(L4) 세그먼트(Segment)로 쪼개짐
- 세그먼트: 4계층에서 다루는 데이터의 단위
- 네트워크 전송에 적절한 크기로 쪼갠 것 + 헤더(Header) 정보
- 페이로드(Payload): 상위 계층의 데이터


캡슐화(Encapsulation): 하위 계층에서 상위 계층의 페이로드에 헤더 정보를 붙이는 것
- E.g. 상위 계층- 5계층, 하위 계층- 4계층
- 4계층의 헤더: 흐름 제어를 위한 정보 포함
- 데이터의 오류 검출, 만약 오류가 있다고 판단되면 재전송 요청

전송 계층의 대표적인 예: TCP vs. UDP

◦ TCP(Transmission Control Protocol)
◦ UDP(User Datagram Protocol)
◦ 전송 계층에서 하는 역할인 흐름 제어를 TCP만 하고 UDP에서는 하지 않음
➢ UDP는 신뢰성이 떨어지는 약점이 있지만 속도가 상대적으로 빠름

 

◦ 예) 인터넷 실시간 영상 중계 등

3계층: 네트워크 계층(Network Layer)

◦ 라우팅(Routing)을 처리하는 계층
➢ 라우팅: 데이터를 전달할 때 어떤 경로로 데이터를 보낼지 경로를 선택하는 것

- 여러 개의 노드가 복잡하게 연결된 네트워크에서 최적의 전달 경로가 정해질 수 있도록 여러 가지 기능을 제공

 

3계층의 캡슐화
➢ 세그먼트(4계층의 데이터)에 라우팅과 관련된 헤더 정보가 추가
➢ 패킷(Packet): 3계층의 데이터 단위

패킷의 헤더: 최적의 경로 선택를 위한 기초 자료 저장
➢ 각 노드 사이의 전송 속도를 저장: 노드 사이의 전송 비용에 대한 추정치


기존에 구해진 경로 상의 노드가 고장이 발생 → 대체 경로를 찾아서 전송
➢ 네트워크 계층의 대표적인 예: IP(Internet Protocol) 프로토콜

 

2계층: 데이터 링크 계층(Data Link Layer)

◦ 단말 사이의 신뢰성 있는 전송을 보장하는 계층


◦ 포인트 투 포인트(Point-to-Point) 간 신뢰성을 보장하는 계층
- 1계층인 물리 계층에서 발생할 수 있는 오류를 찾아내고 이를 수정
- 에러를 검출하는 기법: 패리티 검사 (Parity Check) 등의 기법이 사용

 

◦ 2계층(L2)에서의 데이터 캡슐화
- 프레임(Frame): 2계층에서 전달하는 데이터의 단위
- 3계층의 페이로드인 패킷 앞·뒤에 헤더와 테일을 덧붙임

 

◦ 2계층의 예: 이더넷(Ethernet), 토큰 링(Token Ring) 등

1계층: 물리 계층(Physical Layer)

◦ 단말과 단말 사이를 실제 물리적으로 연결
➢ 예) 광케이블, 구리 케이블 또는 무선 등

 

◦ 단말(Terminal)
➢ 네트워크 사이를 연결해주는 관문 역할을 하는 노드(3계층) + 네트워크에 참여한 모든 단말을 포함
➢ 예) PC 또는 스마트폰 등


TCP/IP 프로토콜


TCP/IP 개요

◦ 인터넷을 움직이게 하는 핵심 통신 프로토콜
◦ TCP/IP와 OSI 7계층 모델의 관계

IP 프로토콜의 이해

◦ IP: 네트워크 계층에 해당하는 통신 프로토콜, 라우팅(Routing) 담당

◦ 각 노드(라우터)의 주소: 3계층의 IP 주소


◦ 라우팅 테이블(Routing Table): 각 노드 사이의 연결 정보를 저장한 테이블
- 두 연결 사이의 전송 비용(Cost) 저장
- 전송 속도 or 단순히 거쳐야 하는 라우터 개수(Hop Count)

IP 주소(Internet Protocol Address): 네트워크상에서 유일한 주소

◦ IP 버전 4(IPv4, IP Version 4) 주소
➢ 특별한 언급 없이 IP 주소라고 하면 IPv4
➢ IP 주소의 크기 및 범위: 32비트(4바이트)
➢ 8비트씩 온점(.)을 찍어 끊어서 표시: 0.0.0.0부터 255.255.255.255
➢ 약 42억 개의 주소 할당이 ‘11년 2월 4일 종료 → 신규 주소 할당 중지


◦ IP 버전 6(IPv6, IP Version 6) 주소
➢ IP 주소의 크기: 128비트(16바이트) → IPv4 주소 개수의 296배의 크기
➢ 유비쿼터스 환경에서 사물마다 주소를 부여할 수 있는 수준
➢ 16진수 여덟 개를 쓰고 각각 쌍점( : ) 기호로 구분
◦ 예) 2001:0db8:85a3:08d3:1319:8a2e:0370:7334
➢ IPv4와 IPv6는 호환이 되지 않음: IPv6 교체 비용이 높아서 적용이 더딘 상황

 

◦ IP 주소의 클래스(Class)
➢ A부터 E까지 모두 5개
➢ 일반적으로 사용되는 클래스: A, B, C 
➢ 특수 목적 클래스 D와 E
◦ D: 멀티 캐스팅(Multi-casting)용
◦ E: 주로 연구용

◦ IP 주소 = 네트워크 주소 + 호스트 주소

◦ IP 주소의 요청
➢ TCP/IP를 관리하는 국제표준기구 IANA(Internet Assigned Numbers Authority)에 요청
➢ IP 주소의 ‘네트워크 주소’에 해당하는 부분만을 할당 받음
◦ 나머지 ‘호스트 주소’ 범위는 신청자가 자율적으로 관리하는 부분

 

◦ 클래스 별 IP주소의 구성

➢ 클래스 A: 네트워크 주소 개수 자체는 적지만, 포함하는 호스트 개수 많음
◦ A의 네트워크 개수: 128개
◦ A의 호스트 개수: 2563개 (16,777,216개)


➢ 클래스 B와 C: 네트워크 주소가 많지만, 포함할 수 있는 호스트 개수 적음
◦ C의 네트워크 개수: 25×256×256개 (2,097,152개)
◦ C의 호스트 개수: 256개

◦ 공인 IP 주소(Public IP Address) vs. 사설 IP 주소(Private IP Address)
➢ 공인 IP 주소: IANA에 의해 할당받은 IP 주소
➢ 사설 IP 주소: 사내 네트워크에서만 사용될 수 있는 IP 주소

 

TCP 프로토콜의 이해

◦ TCP는 연결 지향적(Connection-oriented) 인 프로토콜
➢ 송신자와 수신자가 통신을 시작되면 둘 사이에 연결 (Connection)이 맺어지고 통신이 끝날 때까지 연결이 지속됨

 

◦ TCP의 시작 과정: 3-way Handshaking
➢ (1) 송신자: 연결을 맺자고 요청하는 SYN(Synchronize, 동기화) 패킷 보냄
➢ (2) 수신자: 송신자 요청을 승인하는 SYN+ACK(Acknowledge, 수락) 패킷 보냄
➢ (3) 송신자: 수신자의 승인 패킷을 확인했다는 의미로 ACK 패킷 보냄
◦ 이러한 3단계를 거치면 연결 생성(Established) 상태가 됨

 

◦ 실제 메시지가 오고 가는 과정: 2-way 방식
➢ 흐름 제어(Flow Control) : 수신자의 ACK 패킷을 송신자가 일정 시간 못 받은 경우
◦ 송신자는 수신자에게 다시 메시지를 재전송
◦ TCP 헤더 정보를 이용, 슬라이딩 윈도우(Sliding Window) 기법으로 처리

 

◦ TCP 헤더 정보
➢ 순서 번호(Sequence Number)

 

◦ TCP의 종료 과정: 4-way

◦ (1) 송신자: 수신자에게 연결을 끊고자 FIN(Finish, 종료) 패킷 보냄
◦ (2)(3) 수신자: ACK 패킷과 FIN 패킷을 각각 보냄
➢ 종료 요청에 대한 확인과 동시에 자신도 연결 종료를 요청하는 것
◦ (4) 송신자: 수신자의 종료 패킷에 대한 확인으로 ACK 패킷 보냄
➢ 이렇게 연결이 끊어지게 되면 연결이 닫힘 상태(Closed)로 변경됨

 

▪ TCP의 포트(Port)
◦ 포트(Port): 각 단말기 내에서 사용되는 주소
➢ 수신자의 시스템 내에서 어떤 프로그램으로 메시지를 올려 보내줄지 결정

TCP의 포트(Port)

◦ 대표적으로 많이 사용되는 TCP 포트
➢ 20, 21 – FTP, 원격 파일 전송을 위한 목적
➢ 22 – SSH, 암호화된 원격 접속을 위한 목적
➢ 23 – 텔넷(Telnet), 원격 접속을 위한 목적
➢ 53 - DNS(Domain Name System), URL의 도메인 주소에서 IP 주소를 얻어올 때
➢ 80 - HTTP, 웹 접속을 위한 목적
➢ 110 - POP3(Post Office Protocol), 이메일 서버로부터 메일을 읽어올 때 사용
➢ 443 – HTTPS, 암호화된 웹 접속을 위한 목적


보안 공격의 유형


기준: 직접적인 피해가 발생하는지에 여부

◦ 능동적 공격(Active Attack)
◦ 수동적 공격(Passive Attack)

▪ 수동적 공격 탐지의 중요성
◦ 수동적 공격을 통해서 보안 취약점 정보의 획득 → 능동적 공격을 실행
◦ 능동적 공격 발생: 이미 수동적 공격도 상당 기간 동안 받았음을 의미


스니핑


스니핑(Sniffing)

➢ sniff는 ‘냄새를 맡다’ 혹은 ‘코를 킁킁거리다’라는 뜻
➢ 네트워크 보안에서는 송신자와 수신자가 주고받는 데이터를 중간에서 도청하는 것

 

스니핑 기법 1: 허브 환경에서의 스니핑

허브: 더미 허브(Dummy Hub) 또는 수동 허브

➢ 일종의 리피터(Repeater) 장비
◦ 입력으로 전달받은 패킷을 나머지 모든 포트로 단순히 전달

 

➢ 운영체제상 ‘다른 PC로 전달되는 패킷’을 무시
◦ 네트워크 카드 (NIC, Network Interface Card) 의 셋팅
◦ 자신의 MAC 주소가 아닌 패킷들은 필터링

 

네트워크 카드: 무차별 모드(Promiscuous Mode)로 설정

➢ 나의 MAC 주소가 아닌 패킷도 전달받는 모드
→ 허브 환경에서 스니핑 가능

 

스니핑 기법 2: 스위치 환경에서의 스니핑

스위치(Switch)

➢ MAC 주소 정보를 이용하여 패킷을 해당 목적지로만 전달 → 무차별 모드로 셋팅해도 스니핑이 불가능

 

모니터링 포트 (Monitoring Port) 를 이용한 스니핑

➢ 모니터링 포트: 스위치를 통과하는 모든 패킷의 내용을 전달하는 포트
◦ 정상적인 관리 목적으로 사용하기 위해 네트워크 장비 자체가 제공
➢ 물리적으로 스위치에 접근 가능 → 모니터링 포트를 통해 스니핑 가능

스위치 재밍을 이용한 스니핑

➢ 재밍(Jamming): 전파 방해
➢ 매핑 테이블의 최대 저장 개수보다 더 많은 정보가 추가
→ 브로드캐스팅(Broadcasting) 모드로 동작
◦ 매핑 테이블(Mapping Table): IP 주소를 MAC 주소로 변환하기 위해 내부적으로 관리하는 테이블
◦ 브로드캐스팅 모드: 자신이 전달받은 모든 패킷을 연결된 모든 단말기에 전달
➢ 스위치 재밍 공격을 통해 스위치가 마치 더미 허브처럼 동작하게 되기 때문에 통신 속도가 느려짐

스푸핑 공격 기법을 이용

➢ 스푸핑(Spoofing) 기법: 공격자가 마치 자신이 수신자인 것처럼 ‘위장’
◦ 능동적 공격의 한 가지 방법
➢ 예) ARP 스푸핑 등


스니핑 방지 대책


◦ 암호화: 스니핑에 대한 가장 효과적인 대처 방안

 

웹 환경의 HTTPS (Hypertext Transfer Protocol over Secure Socket Layer)

➢ 암호화된 통신 프로토콜: HTTP 웹 표준 프로토콜 + SSL/TLS(Secure Sockets Layer/Transport Layer 
Security) 암호화 통신 프로토콜

 

이메일 환경의 PGP와 S/MIME(이메일 암호화)

➢ PGP(Pretty Good Privacy): 사용하기 편하고 사용된 알고리즘의 안전성이 높기 때문에 대중적으로 널리 사용

➢ S/MIME(Secure MIME): 이메일의 내용을 저장하는 방식인 MIME(Multipurpose Internet Mail Extension)에
암호화 기법을 추가
◦ 이메일에 암호화 관련 보안성을 제공하는 가장 대표적인 방식 중 하나

 

원격 접속을 위한 SSH

➢ SSH(Secure Shell): 암호화된 원격 접근 방식의 대표적인 예
➢ 원격에서 텔넷이나 FTP 등을 이용 → 스니핑을 통해 사용자 ID와 암호가 유출될 수 있음

 

VPN(Virtual Private Networks): 사설망 혹은 사설 가상망

➢ 일종의 네트워크 시스템 자체를 의미

VPN 이용: 공개망을 사용하면서도 전용망을 사용하는 효과
➢ 논리적으로는 전용선을 이용, 물리적으로는 인터넷을 이용
➢ 터널링(Tunneling) 기술: 두 종단 사이(End-to-end)에 가상적인 터널 만듦

 

VPN을 이용한 접근

 

스위치의 정적 매핑 테이블 사용

➢ 스위치의 매핑 테이블을 정적(Static)으로 설정
◦ 연결된 PC의 MAC 주소를 미리 조사
→ IP 주솟값 등을 고정(Static 혹은 Permanent)
➢ 재밍 공격, 스푸핑 공격을 당하더라도 MAC/IP 주솟값이 바뀌지 않아 안전
➢ 네트워크 관리자가 일일이 관리해야 하므로 높은 유지보수 비용 발생


스니핑 탐지 방법


명령어 ping을 이용하는 방법

➢ 존재하지 않는 IP 주소에 대한 요청에도 응답이 오는지 확인
◦ 무차별 모드가 켜져 있는 호스트가 있는 경우
◦ 예) ping 172.16.115.133 → 응답이 없어야 하는데도, 응답이 온다면?
◦ ping: 네트워크를 통해 특정한 호스트(Host)까지 접속 가능한지를 테스트하는 명령어

 

ARP를 이용하는 방법

➢ ping을 이용한 방법과 유사한 방법
➢ 존재하지 않는 IP 주소를 이용하여 ARP 요청을 보냄
→ 응답 여부를 통해 스니핑 중인지를 판단


DNS 방법

◦ 존재하지 않는 IP를 대상으로 ping을 먼저 보낸 다음, 해당 IP에 대한 도메인 이름을 물어보는
요청(Inverse-DNS Lookup)이 오는지 확인
◦ 원격 네트워크에서도 사용될 수 있음 ( vs. ping을 이용한 방법 – 로컬 네트워크 )
◦ 테스트 대상 네트워크로부터 도메인 이름을 물어보는 요청이 오는가?

 

유인 방법

◦ 일부러 가짜 사용자 ID와 패스워드를 유출
◦ 공격자가 이러한 ID와 패스워드를 사용하게 함
◦ 이후 네트워크 감시 프로그램을 이용하여 유출된 ID가 사용되는지를 분석

 

호스트 기반 탐지

➢ 의심이 되는 PC 또는 서버에서 실제 명령을 실행
➢ 리눅스나 유닉스에서 ifconfig 명령을 실행
◦ "PROMISC": 현재 호스트가 무차별 모드로 설정되어 있고 스니핑 가능성 매우 큼

 

윈도우에서 promiscdetect로 확인(전용 프로그램)

 

네트워크 기반 탐지 도구: ARP watch

➢ 현재 네트워크의 MAC 주소와 IP 주소에 대한 매핑 정보를 생성
➢ 변경이 발생했는지 모니터링 → 변경 시 관리자에게 알림 메일 발송