0. 과제 및 과정 소개
과제 발표에 사용한 PPT파일을 첨부합니다. 이 과제는 AI스쿨 리팩토링 보안 과정의 일부로 2023년 12월 2일 발표되었으며 기초적인 OSI 계층에 대한 설명을 다루었습니다. 리팩토링 교육과정에 참여하고자 하신다면 AI스쿨 공식 카페에 방문하여 상세 과정을 확인해 주시기 바랍니다.
https://cafe.naver.com/itscholar
정보보안전문가 취업카페 스칼라 : 네이버 카페
비전공자 전문IT교육, 정보보안전문가, 보안을 아는 개발자, AI 양성교육, IT기술리더, 창업가 양성
cafe.naver.com
1. OSI 7계층이란?
OSI 7계층은 네트워크 통신을 이해하기 위해 국제표준화기구(ISO)에 의해 개발된 개념적 프레임워크이며, 이름 그대로 7계층으로 나뉩니다.
개념적 프레임워크란?
일련의 개념과 그 관계를 체계적으로 정리한 것이며, 구조화된 접근, 이론적 기반 제공, 분석 및 설명 도구, 통신 수단을 목적으로 한다
물론 이렇게만 말하면 이해하기 어렵기 때문에 등장 배경을 이해하는 것이 편리합니다.
1980년대에 인터넷과 망은 급격히 확장되고 컴퓨터 통신은 점차 복잡해지기 시작합니다. 그렇지만 당시의 통신은 아래와 같은 문제가 있었습니다.
- 표준화 부재: 서로 다른 제조업체가 자체 통신 프로토콜을 만들었기 때문에 서로 다른 회사의 장치가 통신하기가 어렵습니다.
- 독점 시스템: 네트워킹 솔루션은 공급업체마다 다르므로 한 공급업체의 장비가 다른 공급업체와 쉽게 작동할 수 없습니다.
- 복잡한 문제 해결: 네트워킹 기능이 레이어로 명확하게 분리되지 않아 네트워크 문제를 식별하고 해결하기가 어려웠습니다.
- 모놀리식 디자인: 통신 시스템은 기능을 분리하지 않고 모놀리식 방식으로 개발되었기 때문에 특정 부품의 업그레이드가 어려웠습니다.
즉, 규격을 통일해서 컴퓨터 통신 간의 혼잡 없고, 상호 통신이 자유롭게 가능한 네트워크 모델이 필요했기 때문입니다. 이로 인해 상호 합의한 통신규약에 해당하는 프로토콜(Protocol)이 나타나게 되었으며, 이러한 네트워크 모델을 정의한 것이 OSI 7계층입니다.
2. OSI 7계층의 특징
2-1. OSI 7계층의 특징
이처럼 OSI 7계층은 규격 통일을 위해 나타났기 때문에 아래와 같은 특징을 갖게 되었습니다.
- 표준화 및 호환성
- 표준화된 네트워크 통신이라는 점에서 네트워크 표준화를 촉진합니다. 사실상 거의 모두가 이 모델을 따라 네트워크 통신을 구축, 사용하게 됩니다.
- 다양한 제조사와 기술이 상호 운용 가능하도록 하여, 시스템 간 호환성을 보장합니다.
- 분리된 계층 구조
- 각 계층은 후술하겠지만 네트워크 통신에 필요한 각각의 기능을 기준으로 구분되었습니다.
- 모듈화
- 각 계층은 독립적으로 작동합니다. 이는 특정 계층에서 발생하는 문제는 해당 계층 내에서 해결할 수 있으므로 유지보수가 용이해집니다.
- 확장성
- 신기술이 개발될 때, 해당 계층만 수정하면 되기 때문에 전체 시스템의 변경 없이도 업그레이드가 가능합니다.
2-2. OSI 7계층의 데이터 캡슐화
위 그림과 같이 Host A 입장에서 Host B로 데이터를 보낸다고 가정해봅시다. 이때, 데이터는 7계층에서 1계층으로, 그리고 다시 B에게 도착하면 1계층에서 7계층 순으로 거슬러 올라가게 됩니다.
이때, 하위 계층(1-4)은 보다 하드웨어 중심이며 물리적 데이터 전송, 주소 지정 및 라우팅을 관리합니다.
상위 계층(5-7)은 데이터 표시, 애플리케이션별 상호 작용 및 사용자 수준 프로세스를 다루는 소프트웨어 중심입니다.
그런데 하위 계층(7 → 1) 쪽으로 이동할 경우, 자신의 계층 특성을 담은 제어정보(주소, 에러 제어 등)를 꼬리표처럼 헤더라는 영역에 붙입니다. 일종의 포장을 덧붙이는 것입니다. 오른쪽의 마트료시카처럼 작은 마트료시카가 큰 마트료시카로 연달아서 담긴다고 보시면 됩니다.
그러다가 1층에 도착하면 이때 이 모든 정보는 1과 0으로 된 데이터를 보내는 접점으로 전환이 됩니다.
거꾸로 B의 입장에서는 이제 하위계층에서 상위계층(1 → 7)으로 올라갑니다. 이때부터는 포장을 하나씩 해제하게 됩니다. 최종적으로 도달하면 처음에 보냈던 데이터가 그대로 남게 됩니다.
이러한 특징을 캡슐화(Capsulation)라고 하며, 이름 그대로 캡슐 안에 캡슐을 담는 과정, 이를 해제하는 과정을 반복한다고 보시면 됩니다.
2-3. 개발과 보안 관점에서 중요한 이유
개발과 보안, 양쪽 관점에서도 OSI 7계층은 중요합니다.
개발자의 관점에서는 OSI 7계층을 알 경우 아래와 같은 이점들이 있습니다.
- 효율, 표준화 네트워크 프로토콜 : 네트워크 개발자들은 OSI 모델을 기반으로 효율적이고 표준화된 네트워크 프로토콜을 설계할 수 있습니다. 이는 네트워크 기능과 서비스를 개선하는 데 도움이 됩니다.
상호 운용성 보장: 다양한 네트워크 구성 요소와 시스템을 통합할 때, OSI 모델은 서로 다른 기술과 플랫폼 간의 상호 운용성을 보장하는 기준이 됩니다.
웹 서비스 개발: 이미 준비된 계층 기반 위에서 개발자는 웹 서버와 클라이언트 간의 통신을 설계 시, 계층적 접근방식을 사용하게 됩니다. 흔히 알려진 계층별 프로토콜로는 응용 계층의 HTTP 프로토콜, 전송 계층의 TCP 프로토콜 등이 있습니다.
보안 관점에서도 OSI 7계층은 기초입니다.
- 보안 계층화 : OSI 계층에 따른 각각 보안 처리가 가능합니다. 이는 각 계층에 적용 가능한 보안 메커니즘을 적용하는 것으로 보다 체계적이고 포괄적인 네트워크 보안을 구현할 수 있습니다.
Ex) 물리 계층의 보안(케이블 잠금 등), 전송 계층의 보안(TCP/IP 보안), 전송 계층의 SSL/TLS를 통한 암호화 등 - 보안 위협 분석 및 대응 : OSI 모델은 보안 위협을 각 계층별로 분석하고 대응하는 데 도움을 줍니다.
Ex) 실제 사용 예시 침입 탐지 시스템 (IDS) 구현: 네트워크 계층과 전송 계층에서 이루어지는 데이터 흐름을 모니터링하고 분석하여 비정상적인 패턴을 감지할 수 있습니다.
3. OSI 7계층 상세
3-1. 물리 계층
물리 계층의 특징
- 전송 데이터의 단위는 비트(bit)이며, 이는 이진 전기 신호(0과 1)입니다.
- 프로토콜의 종류
Ex) 이더넷, 광케이블 표준, 무선 통신 표준(Wi-Fi, 블루투스), X.21(회선 교환 네트워크 접속 표준), X.25(패킷 교환 네트워크 접속 표준), RS-232(직렬 인터페이스 표준) 등
물리 계층의 역할
물리 계층은 1줄로 요약하면 데이터를 전기 신호로 변환하여 전송하는 계층입니다. OSI 모델 기준으로는 가장 기본적인 기반을 제공하며, 데이터를 0과 1의 전기 신호 비트 스트림으로 변환하여 물리적 매체를 통해 전송하는 역할을 합니다. 이 계층은 데이터의 전기적, 기계적, 기능적, 절차적 특성을 다루며, 케이블, 커넥터, 전압, 비트율 등을 포함합니다.
예를 들면 데이터를 화물이라 할 경우, 화물 운송을 실제로 수행하는 트럭이나 선박과 같은 운송 수단의 역할을 합니다.
이때, 물리 계층은 주소 개념이 없고, 물리적으로 연결된 노드로 신호를 교환합니다. 즉, 전송 매체와 관련된 프로토콜 및 표준이 사용됩니다.
관련 장비의 특징
- 허브와 리피터가 있습니다. 둘 모두 물리 장비로 네트워크 신호를 증폭하여 전송하는 역할을 하며, 신호의 내용을 해석하거나 처리하지 않습니다.
- 리피터는 전기 신호를 증폭하여 전송 거리를 늘립니다. 신호가 약해지기 시작하는 지점에서 신호를 수신하여 증폭한 후 다시 전송합니다.
- 허브는 네트워크에서 여러 장치를 연결하는 장치로, 한 포트에서 수신된 신호를 다른 모든 포트로 전송합니다. 허브는 신호를 증폭하는 기능도 가지고 있어 리피터의 기능 일부를 포함합니다.
- 최근에는 데이터 링크 계층에서 허브보다 더 발전된 스위치가 널리 사용되고 있습니다.
검증 도구 및 방법
- 측정 및 모니터링 도구를 통해 간접적으로 확인할 수 있습니다.
Ex) 케이블 테스터, 네트워크 인터페이스 카드(NIC) 상태 표시등, 스펙트럼 분석기 등이 있습니다.
물리계층의 보안 위협
- 공격자는 물리적인 장비의 손상을 목표로 하며, 방어자는 설비 및 기기 보호, 장비 환경 제어 등을 목적으로 합니다.
물리계층의 보안
- 사실상 시큐리티의 영역입니다.
3-2. 데이터 링크 계층
데이터 링크 계층의 특징
- 데이터 전송 단위는 상위 계층 데이터를 캡슐화하는 프레임(Frame)입니다.
주요 프로토콜과 그 기능
- 이더넷(Ethernet): 물리적 주소인 MAC 주소를 사용하여 프레임을 전달하고, 충돌을 감지하고 처리합니다.
- PPP (Point-to-Point Protocol): 전화선 같이 직접 연결된 두 네트워크 장치 간의 데이터 전송을 위해 사용됩니다. PPP는 인증, 링크 구성, 에러 처리 기능을 제공합니다. 두 컴퓨터의 통신을 지원하는 프로토콜입니다.
HDLC (High-Level Data Link Control): 신뢰할 수 있는 데이터 전송을 위해 흐름 제어와 오류 검출을 제공하는 비트 지향 프로토콜입니다. 고속 데이터 전송에 특화되어 있습니다.
데이터 링크 계층의 역할
데이터 링크 계층은 1줄로 요약하면 전송 데이터의 에러검출 및 흐름제어를 담당하는 계층입니다. 이는 데이터 프레임이 물리적 매체를 통해 직접 연결된 두 장치 간에 안정적으로 전송되도록 보장합니다.
데이터 링크 계층은 복잡한 계층입니다. 이 계층에서는 아래와 같은 일들이 처리됩니다.
- 물리계층으로부터 송수신된 정보의 오류를 검출 및 수정합니다.
- 흐름을 관리, 제어하여 안전한 정보의 전달을 수행할 수 있도록 돕는 역할을 합니다.
- 인접한 네트워크 노드끼리 데이터를 전송하는 기능과 절차를 제공합니다.
사실상 해당 계층에서 데이터의 회선제어, 흐름제어, 오류제어가 발생합니다. 이는 그렇지만 복잡한 내용이며, 전체 7계층을 이해하는데는 불필요하기 때문에 다른 페이지에서 소개하겠습니다.
이처럼 다양한 기능을 수행하기 때문에 데이터 링크 계층은 크게 2개의 부 계층으로 구성됩니다.
- 매체접근제어계층(MAC계층) : 1계층과 연결된 물리적인 부분으로 매체 간 연결 방식을 제어합니다. 6byte로 구성되어 있으며, 앞의 3자리는 제조사 식별 코드, 나머지는 제조사의 일련번호가 들어 있습니다. 이 값은 고유하고 어떤 제조사가 만들었는지 알 수 있어 주소 역할을 수행합니다.
- 논리링크제어계층(LLC 계층) : 논리적 부분으로 데이터 링크의 데이터 프레임인 PDU(Protocol Data Unit)를 만들고 이를 3계층과 연결합니다.
예를 들면 데이터를 화물이라 할 경우, 패키징이 있으며, 목적지로의 흐름을 담당한다는 점에서 배송을 위한 화물의 포장 및 주소 라벨 부착과 같습니다.
관련 장비의 특징
- 스위치(Switch)
- 네트워크 내에서 데이터 프레임을 수신하고 MAC 주소를 사용하여 해당 프레임을 올바른 목적지 포트로 전송하는 장비입니다.
- 스위치는 네트워크 내의 트래픽을 효율적으로 관리하고, 네트워크 세그먼트 간의 충돌 도메인을 분리합니다.
- 브리지(Bridge)
- 이름 그대로 두 개 이상의 네트워크 세그먼트를 연결하는 장비입니다. 네트워크 트래픽 양을 줄이기 위해 데이터 프레임이 특정 세그먼트를 건너야 하는지를 결정하며, 브리지는 MAC 주소를 사용하여 프레임을 필터링하고 전달합니다.
검증 도구 및 방법
- NIC 등을 활용한다는 점에서 물리계층과 유사합니다.
- CLI(Command Line Interface)로 ifconfig/ipconfig 명령어를 사용하여 장치의 MAC 주소, MTU 설정 등을 확인하거나, 네트워크 모니터링 도구로 패킷 분석, 네트워크 트래픽 분석이 가능합니다.
데이터 링크 계층의 보안 위협
- 여기서부터는 네트워크에 대한 공격인 MAC 스푸핑(다른 장치의 MAC 주소로 가장) 및 트래픽 스니핑(데이터 가로채기)이 포함됩니다. 이들은 보안 조치가 느슨한 네트워크에서 발생하기 쉽습니다.
데이터 링크 계층의 보안
- 스위치의 포트 보안 기능이 있습니다. 지정된 MAC 주소가 아닌 경우 해당 포트를 통한 트래픽을 차단할 수 있습니다.
- 마찬가지로 브리지도 필터링 기능이 있습니다.
- 네트워크 액세스 제어 시스템을 통해서도 차단이 가능합니다.
3-3. 네트워크 계층
네트워크 계층의 특징
- 데이터 전송 단위는 패킷(Packet)입니다.
- 각 패킷에는 송수신자의 주소 정보(IP 주소), 전송 순서, 오류 검출 코드 등이 포함되어 있습니다.
주요 프로토콜과 그 기능
- IP(Internet Protocol): 흔히 말하는 IP주소의 그 IP입니다. 네트워크 계층에서 해당 프로토콜은 데이터를 패킷으로 분할하고 각 패킷에 목적지 IP주소를 할당해 경로를 지정하며, IP 주소 시스템을 사용하여 각 장치를 고유하게 식별합니다.
- ICMP(Internet Control Message Protocol): 일반적으로 네트워크에서 메시지나 컨트롤 메시지는 상태를 진단하려고 사용됩니다. 이 프로토콜도 마찬가지로 네트워크 장치 간 오류 메시지를 전송, 네트워크 기기 간 연결 상태를 진단하는 데 사용됩니다.
- IGMP(Internet Group Management Protocol): 멀티캐스트 그룹(1:다 or 다:다 송수신 통신) 통신가능 여부를 라우터에 통지합니다.
- ARP(Address Resolution Protocol): IP주소를 물리적 MAC 주소로 변환하는 데 사용합니다.
네트워크 계층의 역할
데이터 링크 계층은 1줄로 요약하면 데이터 전송의 경로를 설정하며, 주소를 부여하는 계층입니다. 주로 상이한 네트워크 간의 연결을 담당하며, 경로설정(Route)과 주소부여(IP)를 맡는다는 뜻이며, 데이터를 목적지까지 빠르고 안전하게 전달하는 것이 주된 목적입니다.
위 그림과 같이 전기신호는 한 번에 먼 거리를 뛸 수 없기 때문에 중간의 노드, 여기에서는 라우터를 거칠 때마다 경로를 재탐색할 필요가 있습니다.
다양한 길이의 데이터를 네트워크들을 통해 전달하고, 그 과정에서 전송 계층이 요구하는 서비스 품질(QoS)을 제공하기 위한 기능적, 절차적 수단 또한 제공하고 있습니다.
예를 들면 데이터를 화물이라 할 경우, 포장을 마친 상품을 고객 또는 다른 화물 보관소까지 운반할 필요가 있습니다. 이때, 가장 효율적인 운송경로를 계획해야 합니다.
관련 장비의 특징
- 라우터(Router)
- 데이터 전송에 가장 적합한 경로를 결정하기 위해 IP 주소를 사용하여 서로 다른 네트워크 간에 데이터 패킷을 라우팅 하는 장치입니다.
- 라우팅은 경로를 탐색하는 과정이라 보시면 됩니다.
- 라우터는 로컬 네트워크를 인터넷에 연결하는 등 별도의 네트워크 간 통신을 가능하게 합니다. 라우터는 트래픽 관리 및 네트워크 주소 변환(NAT)과 같은 기능을 수행하여 네트워크 전반에 걸쳐 트래픽을 효율적으로 전달할 수도 있습니다.
- 데이터 전송에 가장 적합한 경로를 결정하기 위해 IP 주소를 사용하여 서로 다른 네트워크 간에 데이터 패킷을 라우팅 하는 장치입니다.
- 레이어 3 스위치
- 스위치와 라우터의 기능을 결합한 장치입니다. IP 주소를 사용하여 VLAN(Virtual Local Area Networks) 또는 다른 네트워크 세그먼트 간에 데이터를 라우팅하는 동시에 MAC 주소를 사용합니다.
- 레이어 3 스위치는 로컬 네트워크 내에서 고속 라우팅을 제공하여 일반적으로 LAN 환경에서 데이터 스위칭 및 라우팅 기능을 모두 관리합니다.
검증 도구 및 방법
- 여기서부터는 전문적인 분석 프로그램들이 활용됩니다.
- Wireshark: 패킷을 캡처하고 분석하여 TCP 및 UDP 통신을 모니터링합니다.
-
Netstat: 시스템의 현재 네트워크 연결, 포트 사용 상태, 라우팅 테이블 등을 확인합니다.
-
TCPdump: 네트워크 트래픽을 캡처하고 분석합니다.
네트워크 계층의 보안 위협
- 여기서는 IP스푸핑, 라우팅 정보 조작을 통해 네트워크 통신을 방해하고 데이터를 가로채려 합니다.
- 네트워크 트래픽의 경로를 변조하거나 잘못된 출처로부터 오는 데이터를 정상적인 것처럼 위장합니다.
네트워크 계층의 보안
- 액세스 제어 리스트(ACL: Access Control List): 라우터나 기타 네트워크 장비에서 특정 IP 주소나 IP 주소 범위로부터 트래픽을 허용하거나 차단하는 규칙을 설정합니다.
- 라우팅 프로토콜 보안 강화: 보안이 강화된 라우팅 프로토콜을 사용하거나, 기존 프로토콜에 보안 기능을 추가합니다.
3-4. 전송 계층
전송 계층의 특징
- 데이터 전송 단위는 TDPU(Transport Data Protocol Unit)입니다. 이는 프로토콜에 따라 전송단위가 달라질 수 있습니다.
- 보통 패킷을 캡슐화한 것이므로 패킷보다 크며, TCP일 경우 세그먼트, UDP를 사용하는 경우 데이터그램으로 불립니다.
- 네트워크 계층에서 전달된 패킷을 세션 관점에서 관리하는 것으로, 주로 TCP 또는 UDP 프로토콜에 의해 처리됩니다.
- TDPU 전송 시에는 통신 신뢰성을 위한 제어 정보를 포함하고 있습니다.
주요 프로토콜과 그 기능
- TCP(Transmission Control Protocol): 신뢰할 수 있는 연결 지향 통신을 제공하는 프로토콜입니다. 데이터의 순서를 보장하며, 손실된 데이터를 재전송합니다. 흐름제어와 혼잡제어 기능을 포함하고 있습니다.
- UDP(User Datagram Protocol) - 연결 없는 서비스 제공, 빠른 데이터 전송이 가능한 프로토콜입니다. TCP보다 헤더 크기가 작아 오버헤드가 적지만, 신뢰성은 낮습니다.
전송 계층의 역할
전송 계층은 1줄로 요약하면 데이터의 신뢰성 있는 전송을 책임지는 계층입니다. 송신자와 수신자 간에 안정적인 통신을 보장하며, 큰 데이터는 분할하여 전송하고 재조립합니다. 전송 중 오류가 발생할 경우, 오류를 감지하고 재전송하는 복구 절차도 준비되어 있습니다.
예를 들어 데이터를 화물이라 할 경우, 4계층은 물류 관리자라고 할 수 있습니다. 물류 관리자는 창고와 운송 차량의 상태를 조정하여 교통 혼잡을 최소화하고, 손실되거나 파손된 상품의 경우 재배정을 합니다.
관련 장비의 특징
- 전송 계층은 특정 장비보다는 소프트웨어 기반의 프로토콜과 알고리즘에 의존합니다.
- 네트워크 스택, 소켓 라이브러리 등이 TCP/IP 스택을 구현하여 전송 계층 기능을 수행합니다.
검증 도구 및 방법
- 네트워크 계층과 동일한 프로그램들을 통해 확인하고 측정합니다.
전송 계층의 보안 위협
- 세션 하이재킹(Session Hijacking): 공격자가 세션 ID를 가로채어 통신을 가로채려 합니다.
- TCP 시퀀스 예측(TCP Sequence Prediction): 공격자가 TCP 세션의 시퀀스 번호를 예측하여 연결을 조작합니다.
- UDP 플러딩(UDP Flooding): 대량의 UDP 패킷을 전송하여 네트워크를 마비시키는 서비스 거부(DoS) 공격에 해당합니다.
전송 계층의 보안
- 이제부터 암호화, 패킷 필터링, 방화벽의 트래픽 제한 설정 등이 이루어집니다.
3-5. 세션 계층
세션 계층의 특징
- 5계층부터 데이터 전송 단위는 명확히 정의되어 있지 않습니다. 일반적으로 메시지 또는 데이터로 부릅니다.
- 세션 계층의 세션(Session)은 두 장치가 데이터를 주고받기 위해 연결을 시작하고 끝내는 과정입니다.
주요 프로토콜과 그 기능
-
NetBIOS: 네트워크의 기본적인 입출력을 정의한 규약입니다.
-
RPC(Remote Procedure Call): Windows 운영 체제에서 네트워크를 통해 다른 컴퓨터에서 프로시저를 실행하기 위해 사용됩니다.
세션 계층의 역할
전송 계층은 1줄로 요약하면 데이터 통신을 위한 논리적인 연결을 관리하는 계층입니다. 전송계층도 연결을 끊는 것은 가능하지만, 전송계층의 주된 역할은 어디까지나 데이터 전송의 신뢰성과 효율성 보장입니다. 이러한 점에서 세션계층의 역할은 애플리케이션 관점에서 별도로 이해해야 합니다.
이 계층은 세션 설정, 유지, 종료, 전송 중단 시 복구 등을 수행하며, 양 끝단의 응용 프로세스가 통신을 관리하기 위한 방법을 제공합니다. 이 계층은 이 TCP/IP 세션을 만들고 없애는 책임을 집니다.
예를 들어 데이터를 화물이라 할 경우, 5계층은 물류 관리자의 역할 중 배송의 시작과 끝을 관리하고, 적재물(데이터)이 정확한 순서와 방식으로 목적지에 도착하도록 조정하는 직무라 할 수 있겠습니다.
관련 장비의 특징
- 5계층부터 7계층까지는 전부 소프트웨어 의존적입니다.
- 기능은 운영 체제의 네트워크 스택 또는 애플리케이션에서 구현됩니다.
검증 도구 및 방법
- 네트워크 계층과 동일한 프로그램들을 통해 확인하고 측정합니다.
세션 계층의 보안 위협
- 세션 하이재킹(Session Hijacking): 공격자가 세션을 가로채어 통신을 중단하거나 변경합니다.
- 중간자 공격(Man-in-the-Middle Attack): 공격자가 세션 중간에 개입하여 데이터를 도청하거나 조작합니다.
- 세션 고정(Session Fixation): 공격자가 세션 ID를 고정하고 이를 통해 사용자 인증을 우회합니다.
세션 계층의 보안
주로 세션을 보호하는데 그 초점이 맞춰져 있습니다.
- 세션 암호화(TLS/SSL)와 강력한 인증 방식을 적용합니다.
- 엔드투엔드 암호화 사용 및 세션 무결성 검사를 통해 통신을 보호합니다.
- 세션 ID를 인증 후에만 생성하고, 세션 ID 재사용을 방지하는 보안 설정을 적용합니다.
- VPN으로 세션 보안을 강화합니다.
3-6. 표현 계층
표현 계층의 특징
- 5계층부터 데이터 전송 단위는 명확히 정의되어 있지 않습니다. 표현 계층에서도 전송 단위는 일반적으로 메시지 또는 데이터로 부릅니다.
- 코드 간 번역을 담당합니다. 이는 사용자의 시스템으로부터 데이터 형식상 차이를 다루는 부담을 응용 계층으로부터 덜어 줍니다.
주요 프로토콜과 그 기능
표현 계층의 프로토콜들은 데이터의 암호화 및 복호화에 특화되어 있습니다.
- ASCII, JPEG, MPEG 등: 다양한 데이터 형식을 네트워크에 적합하게 변환하는 표준
- SSL/TLS: 데이터를 암호화하고 복호화하는 데 사용되는 프로토콜
표현 계층의 역할
표현 계층은 1줄로 요약하면 Data 형식을 정의/압축하며, 암호화 기능을 수행하는 계층입니다. 데이터의 표현은 포맷과 인코딩에 해당합니다. 이 계층은 다양한 포맷으로 된 데이터를 네트워크에 적합한 형태로 변환하거나, 반대로 변환된 데이터를 원래 형태로 복구하는 역할을 수행합니다.
예를 들어 데이터를 화물이라 할 경우, 6계층은 진열 담당자의 역할이라고 볼 수 있겠습니다. 특정 언어와 문서를 받아서 대상에 적합한 형태로 바꾼다는 점에서는 야채를 받은 요리사나, 원서를 받은 번역가로 생각해 볼 수도 있습니다.
관련 장비의 특징
- 5계층부터 7계층까지는 전부 소프트웨어 의존적입니다.
- 기능은 운영 체제의 네트워크 스택 또는 애플리케이션에서 구현됩니다.
검증 도구 및 방법
- 네트워크 계층과 동일한 프로그램들을 통해 확인하고 측정합니다.
- 단, 표현계층은 JSON, XML 등 다양한 데이터 포맷을 변환하고 처리하는 라이브러리를 사용해 표현 계층
데이터를 측정하고 분석할 수 있습니다.
표현 계층의 보안 위협
데이터 형식을 조작하고, 암호화된 공격을 해독하려는 시도가 많습니다.
- 데이터 변조: 데이터를 인코딩하거나 디코딩하는 과정에서 공격자가 데이터를 변조할 수 있습니다.
- 암호화 취약점: 잘못된 암호화 알고리즘이나 키 관리로 인해 데이터가 노출될 수 있습니다.
- 프로토콜 공격: 표현 계층에서 사용하는 특정 프로토콜의 취약점을 이용한 공격이 발생할 수 있습니다.
표현 계층의 보안
- 데이터 변조 방어: 강력한 인코딩/디코딩 알고리즘을 사용하고, 데이터 무결성 검사를 적용합니다.
- 암호화 취약점 방어: 최신 암호화 알고리즘과 안전한 키 관리 방식을 적용합니다.
- 프로토콜 공격 방어: 프로토콜 보안 패치 적용 및 취약점 분석을 통한 보안을 강화합니다.
3-7. 응용 계층
응용 계층의 특징
- 5계층부터 데이터 전송 단위는 명확히 정의되어 있지 않습니다. 표현 계층에서도 전송 단위는 일반적으로 메시지 또는 데이터로 부릅니다.
- 응용 프로세스와 직접 관계하여 일반적인 응용 서비스를 수행합니다.
주요 프로토콜과 그 기능
- HTTP: 웹 페이지와 웹 기반 데이터를 전송하는 데 사용됩니다. 과거는 문서 위주였지만, 현재는 이미지, 비디오, 음성 등 거의 모든 형식의 데이터 전송이 가능합니다.
- FTP: 파일 전송에 사용됩니다.
-
SMTP, POP3, IMAP: 이메일 전송과 수신에 사용됩니다.
응용 계층의 역할
응용 계층은 1줄로 요약하면 사용자와 가장 직접적으로 상호작용하는 계층으로 이메일, 파일 전송, 웹 브라우징 등 다양한 네트워크 기반 응용 프로그램을 지원한다고 볼 수 있습니다. 7계층은 양쪽 끝단에 해당하므로 기존에 캡슐화된 내용들이 전부 해제됩니다. 이 구간에선 통신의 양 끝단에서 브라우저, 이메일과 같은 응용 프로그램들을 사용해 프로토콜들을 보다 쉽게 사용해줄 수 있게 할 필요가 있습니다.
예를 들어 데이터를 화물이라 할 경우, 7계층은 고객이 택배를 받고 개봉한 순간이라 할 수 있겠습니다.
관련 장비의 특징
- 5계층부터 7계층까지는 전부 소프트웨어 의존적입니다.
- 기능은 운영 체제의 네트워크 스택 또는 애플리케이션에서 구현됩니다.
검증 도구 및 방법
- 브라우저에서 제공하는 개발자 도구
- Postman과 같은 API 테스트 도구
- 서버의 console 로그 분석
응용 계층의 보안 위협
응용 계층은 공격과 방어가 가장 많이 발생합니다. 흔히 알려진 SQL 인잭션, 크로스 사이트 스크립팅(XSS), 크로스 사이트 리퀘스트 포저리(CSRF) 등 수많은 공격이 이뤄집니다.
- SQL 인젝션: 악의적인 SQL 코드를 삽입해 데이터베이스에 접근하거나 수정합니다.
- 크로스 사이트 스크립팅(XSS): 악성 스크립트를 삽입하여 사용자 세션 탈취 또는 웹사이트 변조합니다
- 버퍼 오버플로우: 애플리케이션이 과도한 데이터를 처리할 때 메모리 취약점을 이용해 악성 코드를 실행.
응용 계층의 보안
공격 방법이 많은 만큼 방어방법도 다양합니다. 아래는 극히 일부이며, 일반적인 방법은 입력값 검사가 많습니다.
- SQL 인젝션 방어: 입력값 검증 및 SQL 쿼리에서 파라미터화된 쿼리를 사용합니다.
- 크로스 사이트 스크립팅(XSS) 방어: 입력값을 철저히 필터링하고, HTML 특수 문자를 이스케이프(예외) 처리합니다
- 버퍼 오버플로우 방어: 안전한 메모리 관리 기법 사용 및 정기적인 코드 점검으로 취약점을 제거합니다.
'AI스쿨 리팩토링' 카테고리의 다른 글
2주차 과제 - AI와 보안위협 증대(자유주제) (0) | 2024.10.20 |
---|---|
AI스쿨 리팩토링 과정 정리 (2) | 2024.10.20 |