[네트워크의 이해]
(OSI 7계층의 이해)
국제표준화기구 ISO는 다양한 네트워크 간의 호환을 위해 만든 표준 네트워크 모델
(물리계층 /1계층)
- 시스템 간의 연결을 의미하는 것으로 간단하지만 네트워크에서 매우 중요
- ANSI/EIA 표준 568은 물리 계층에 쓰이는 케이블을 데이터의 속도에 따라 분류
+케이블의 종류를 일종의 묶음(CAT)으로 분류
- 케이블 내 구리 선의 보호 방법이나 꼬임 방법에 따라서 케이블을 분류
+케이블 선은 일반적으로UTP를 사용
(데이터 링크 계층 2계층)
- 두 포인터 간의 신뢰성 있는 전송을 보장하기 위한 계층으로, CRC기반의 오류 제어 및 흐름 제어가 필요
- 네트워크 위의 개체간에 데이터를 전달하며, 물리 계층에서 발생할 수 있는 오류를 찾아내고 수정하는 데 필요한 기능적, 절차적 수단을 제공
- MAC주소
+데이터 링크 계층에서는 상호 통신을 위해 MAC주소를 할당 받음
-> MAC주소는 총 12개의 16진수로 구성
-> 앞쪽의 6개 16진수는 네트워크 카드를 만든 회사를 나타내는 것으로 OUIO
-> 뒤쪽의 6개 16진수는 각 회사에서 임의로 붙이는 일종의 시리얼
-> 한 회사에서는 같은 시리얼의 네트워크 카드를 만들지 않기 때문에 같은MAC주소는 존재하지 음
- 데이터 링크 계층의 패킷흐름
+데이터 링크 계층의 대표적인 네트워크 장비는 스위치
+MAC계층에서 동작하는 대표적인 프로토콜은 이더넷
(네트워크 계층 3계층)
- 여러 개의 노드를 거칠 때마다 경로를 찾아주는 역할
- 다양한 길이의 데이터를 네트워크를 통해 전달
- 전달과정에서 라우팅, 흐름 제어, 세그먼테이션, 오류 제어 등을 수행
- IP주소
+네트워크 계층에서 여러 개의 노드를 거쳐 경로를 찾기 위한 주소는 IP로 대표됨
+확인한 IP주소는 8비트의 수 4개로 되어있음
- IP주소의 클래스
+IP주소는 A, B,C ,D,E, 클래스로 구분
+A클래스 : 첫 번째 자리가 네트워크 주소, 나머지 세 자리는 호스트 주소
+B클래스 : 두 번째 자리까지 네트워크 주소, 나머지 두 자리는 호스트 주소
+C클래스 : 세 번째 자리까지 네트워크 주소, 나머지 한 자리는 호스트 주소
-> A, B, C클래스는 맨 앞부분의 2진수에 따라 구분
(전송 계층 4계층)
- 양 끝단의 사용자들이 신뢰성 있는 데이터를 주고받을 수 있게 함
- 상위 계층이 데이터 전달의 유효성이나 효율성을 신경 쓰지 않게 해줌
- 시퀀스 넘버 기반의 오류 제어 방식을 사용하여 특정 연결의 유효성을 제어
- 가장 잘 알려진 전송 프로토콜은 TCP로 MCA주소와 IP주소처럼 TCP에도 포트라는 주소가 있음
- 포트
+시스템에 도착한 후 패킷이 찾아갈 응용 프로그램으로 통하는 통로 번호
+시스템에서 구동되는 응용 프로그램은 네트워킹을 하기 위해 자신에게 해당되는 패킷을 식별 할 댸 사용
- 포트의 패킷 구조
-TCP의 연결 과정(3-웨이 핸드셰이킹)
- 두 시스템이 통신을 하기 전에 클라이언트는 포트가 닫힌 Closed 상태
- 클라이언트가 처음 통신을 하려면 임의의 포트 번호가 클라이언트 프로그램에 할당 클라이어트가 서버에 연결하고 싶다는 의사 표시로 syn sent 상태가 됨
- 클라이어트의 연결 요청을 받은 서버는 SYN RECEIVED 상태가 됨. 클라이언트에 연결을 해도 좋다는 의미로 SYN + ACK패킷을 보냄
- 클라이언트는 연결 요청에 대한 서버의 응답을 확인했다는 표시로 ACK패킷을 서버로 보냄
-TCP연결 해체 과정
- 통신 중에는 클라이언트와 서버 모두 Established상태
- 통신을 끊으려는 클라리언트가 서버에 FIN패킷을 보내고 클라이언트는 close Wait 상태가 됨
- 서버는 클라이언트의 연결 종료 요청을 확인하고 응답으로 클라이언트에 ACK패킷을 보내면 서버도 클라이언트의 연결을 종료하겠다는 의미로 FIN패킷을 보내고 Close Waite상태가 됨
- 클라이언트는 연결 종료를 요청한 것에 대한 서버의 응답을 확인했다는 표시로ACK 패킷을 서버에 보냄
-TCP : 연결 지향형 프로토콜
+수신측이 데이터를 흘려버리지 않도록 하는 데이터 흐름 제어
+전송 중 에러가 발생하면 자동으로 재전송하는 여러 제어 기능
+이를 통해 데이터의 확실한 전송을 보장 하지만 과정이 완전하지 않아 해커들에게 많은 공격을 받음
-UDP
- TCP와 달리 데이터의 신뢰성 있는 전송을 보장하지 않음
+특정한 경우 전송 경로 확립을 위한 번잡함을 생략하고 시간을 절약할 수 있어 UDP가 더 효과적
+신뢰성이 매우 높은 회선을 사용하는 경우, 데이터의 확실한 전송을 요구하지 않는 경우, 한번에 많은 상대에게 메시지를 전송하는 경우
(세션 계층 5계층)
- 양 끝단의 응용 프로세스가 통신을 관리하기 위한 방법을 제공
- 동시 송수신 방식, 반이중 방식, 전이중 방식의 통신과 함께 체크 포인팅, 유휴, 종료, 다시 시작의 과정을 수행
- 전송 계층이 종단 간의 논리적인 설정을 담당한다면 세션 계층은 이런 연결에 정보 교환을 효과적으로 할 수 있게 추가 서비스를 함
(표현 계층 6계층)
- 코드 간의 번역을 담당
- ASN.1 방식
+사용자 시스템에서 데이터 구조를 하나의 통일된 형식으로 표현하여 응용 계층의 데이터 형식 차이로 인한 부담을 덜어줌
+응용 프로그램 계층 간의 서로 다른 표현을 인식하기 위해 정보를 정의하고 데이터의 압축과 암호화 기능을 수행
(응용 프로그램 계층 7계층)
- 사용자나 응용 프로그램 사이에 데이터 교환이 가능하게 하는 계층
- 응용 프로세스와 직접 관계하여 일반적인 응용 서비스를 수행
- HTTP, FTP, 터미널 서비스, 메일 프로그램, 디렉터리 서비스 등을 제공
서비스 거부 공격(DoS)
다른 해킹에 비해 비교적 간단한 것으로 일종의 훼방
취약점 공격형
특정 형태의 오류가 있는 네트워크 패킷의 처리 로직에 문제가 있을 때 공격 대상이 그 문제점을 이용하여 오작동을 유발하는 형태
자원 고갈 공격형
네트워크 대역폭이나 시스템의 cpu 세션 등의 자원을 소모시키는 형태
보잉크/ 봉크/ 티어드롭 공격
프로토콜의 오류 제어 로직을 악용하여 시스템 자원을 고갈시키는 방식(tcp 프로토콜이 제공하는 오류 제거 기능)
+TCP는 데이터 전송 시 신뢰를 확보하기 위해 패킷 전송에 문제가 있으면 반복적으로 재요청과 수정을 함
+보잉크, 봉크, 티어트롭은 공격 대상이 반복적인 재요청과 수정을 계속하게 함으로써 시스템 자원을 고갈시킴
랜드공격
패킷을 전송할 때 출발지 IP 주소와 목적지 IP 주소값을 똑같이 만들어서 공격 대상에게 보내는 것
+이 공격법은 SYN플러딩처럼 동시 사용자 수를 정유하고 CPU에 부하를 올려서 시스템이 금방 지쳐버리게 만듦
+랜드 공격에 대한 보안 대책은 주로 운영체제의 패치 관리를 통해 마련
죽음의 핑 공격
네트워크의 연결 상태를 점검하는 ping명령을 보낼 때 공격 대상에게 패킷을 최대한 길게 보내 패킷을 쪼갬
+공격 대상 시스템은 대량의 작은 패킷을 수신하느라 네트워크가 마비 이 공격을 막으려면 ping 이 내부 네트워크에 들어오지 못하도록 방화벽에서 ICMP를 차단해야함
SYN플러딩 공격
네트워크에서 서비스를 제공하는 시스템에는 동시 사용자 수 제한이 있는데 이를 이용한 공격. 존재하지 않는 클라이언트가 접속 가능 공간에 접속한 것처럼 속여 다른 사용자가 서비스를 제공받지 못하게 함.
TCP의 연결 과정인 3-웨이 핸드 셰이킹의 문제점을 악용하는 것으로 특정 웹 서버의 접속자가 폭주하여 서버 접속이 되지 않고 마비되는 경우도 이 공격을 받은 상황과 유사
+공격 대응책은 SYN Received의 대기 시간을 줄이는 것 침입방지 시스템과 같은 보안 시스템으로도 공격을 쉽게 차단할 수 있음
HTTP CC 공격
동적 HTTP리퀘스트 플러딩 공격
특징적인 HTTP요청 패턴을 확인하여 방하는 차단 기법을 우회하기 위한 공격/ 지속적으로 요청 페이지를 변경하여 웹페이지를 요청
솔로 HTTP 헤더 DoS공격
서버로 전달할 HTTP 메시지의 헤더 정보를 비정상적으로 조작 웹 서버가 헤더 정보를 완전히 수신할 때 까지 연결을 유지하도록 하는 공격, 시스템 자원을 소비시켜 다름 클라이언트의 정상적인 서비스를 방해
솔로 HTTP POST 공격
웹 서버와의 커넥션을 최대한 오래 유지하여 웹 서버가 정상적인 사용자의 접속을 받아들일 수 없게 하는 공격
스머프공격
ICMP패킷과 네트워크에 존재하는 임의의 시스템을 이용하여 패킷을 확장함으로써 서비스 거부 공격을 수행, 다이렉트 브로드캐스트를 악용한는 것으로 공격 방법이 간단
메일 폭탄 공격
메일 폭탄은 스팸 메일과 같은 종류 , 메일 서버는 메일이 폭주하여 디스크 공간을 가득 채우면 메일을 받을 수 없으므로 각 사용자에게 일정한 양의 디스크 공간을 할당, 스팸 메일을 서비스 거부 공격으로 분류
분산 서비스 거부 공격(DDoS)
아직까지 확실한 대책이 없으며 공격자의 위치와 구체적인 발원지를 파악하는 것도 거의 불가능
[최근에 발생하는 분산 서비스 공격 과정]
- PC에서는 전파가 가능한 형태의 악성 코드를 작성
+분산 서비스 거부 공격을 위해 사전에 공격 대상과 스케줄을 정한 뒤 이를 미리 작성한 악성 코드에 코딩
- 인터넷을 통해 악성 코드를 전파 전파 과정에서는 별다른 공격없이 잠복, 악성 코드에 감염된 PC를 좀비 PC 라고 하며 좀비PC끼리 형성된 네트워크를 봇넷이라고 함
스니핑 공격
데이터 속에서 정보를 찾는것, 공격할때 아무것도 하지 않고 조용히 있는 것만으로 충분하기 때문에 수동적 공격이라고도 함