1. Cyber Kill Chain

- 기존 군사용어 킬체인 (Kill Chain, 타격순환체계)을 사이버 공간으로 가져와 적용한 것

※ 킬체인 (Kill Chain) : 선제 공격을 통해 미사일 발사 자체를 저지하겠다는 것

- 미국 군수업체인 록히드마틴에서 최초로 사용

- APT에 대응하기 위해 제시한 방법으로, 공격자가 표적을 공격할 때 거쳐야 하는 과정을 단계로 분류

단계 설명
1단계
정찰(Reconnaissance)
- 이메일, 컨퍼런스 등을 통해 기본적인 정보를 수집
2단계 
무기화(Weaponization)
- Exploit과 백도어를 결합해 payload에 삽입
3단계
유포(Delivery)
- Email, 웹, 외장하드 등을 경유하여 유포
4단계
악용(Exploitation)
- 공격 대상에서 코드를 실행하기 위해 취약점을 이용
5단계
설치(Installation) 
- 피해 시스템에 악성 프로그램 설치
6단계
명령&제어(Command & Control) 
- 피해 시스템을 원격에서 조작하기 위한 채널 생성
7단계
행동(Actions on Objectives) 
- 시스템파괴 등 공격을 수행

 

1.1 한계

- 각 단계에 따른 공격자의 행위를 시간의 흐름에 따라 묘사 및 나열

- 단계별로 사용되는 기술, 공격 도구, 해킹그룹 등에 대한 정보와의 연결고리가 없다는 한계

공격자의 행동이 전술적 공격 목표와 각 행동의 연관성을 표현하고 전달하기에는 효과적이지 않다는 것

외부 침입자 대한 방어를 위주로 한 전략

> 공격자가 이미 침투했거나 내부자에 의한 공격 등 내부 보안에 대한 전략은 전무

 

2. MITRE ATT&CK (Adversarial Tactics, Techniques, and Common Knowledge)

- 공격자들의 최신 공격 기술 정보가 담긴 저장소

실제 공격의 악의적 행위(Adversary behaviors)에 대해서 공격방법(Tactics)과 기술(Techniques)의 관점으로 분석

- 네비게이터(Navigator) 기능을 이용해 다양한 방식으로 시각화 하여 비교가 가능 (https://mitre-attack.github.io/attack-navigator/)

[사진 1] Mitre 홈페이지 탭

설명
Matrices (표 정보) - 공격 기술인 Tactic, Technique 개념과 관계를 시각화
- Enterprise(기업), Mobile(모바일), ICS(산업제어시스템) 버전으로 제공
① Enterprise
- 범용적인 기업환경에 적용되는 네트워크 및 다양한 OS 및 플랫폼에대한 침해 행위를 세부적으로 모델링하기 위해 만들어진 프레임워크
② Mobile
- 모바일 환경에 대한 침해 행위를 세부적으로 모델링하기 위해 만들어진 프레임워크
③ ICS
-  관련 네트워크와 산업 생산 영역에서 설비의 운영을 제어·관리하는 시스템을 대상으로 한 공격 유형과 과정 등의 정보를 포함
Tactics (공격 전술 정보) - Tactics 는 공격자의 공격 목표에 따른 행동을 나타냄
<Enterprise Tactics>
① 정찰 (Reconnaissance)
- TA0043
- 내부정찰단계로 다른 시스템으로 이동하기 위해 탐구하는 단계
② 자원 개발 (Resource Development)
- TA0042
- 다른 시스템으로 이동하기 위한 정보로 계정 등을 확보하는 단계
③ 초기 접근 단계 (Initial Access)
- TA0001
- 네트워크 진입을 위해 사용자 환경에 대한 정보를 취득하는 것을 목적으로 함
④ 실행 (Execution)
- TA0002
- 공격자가 로컬 또는 원격 시스템을 통해 악성코드를 실행하기 위한 행동
⑤ 지속 (Persistence)
- TA0003
- 공격 기반을 유지하고 시스템에 지속적으로 접근하기 위한 행동
⑥ 권한 상승(Privilege Escalation)
- TA0004
- 공격자가 시스템이나 네트워크에서 높은 권한을 얻기 위한 행동
⑦ 방어 회피(Defense Evasion)
- TA0005
- 공격자가 침입한 시간 동안 탐지 당하는 것을 피하기 위한 행동
⑧ 접속 자격 증명(Credential Access)
- TA0006
- 시스템, 도메인 서비스, 자격증명 등을 접근하거나 제어하기 위한 행동
⑨ 탐색 (Discovery)
- TA0007
- 시스템 및 내부 네트워크의 정보를 얻기 위한 행동
⑩ 내부 확산(Lateral Movement)
- TA0008
- 네트워크 상의 원격 시스템에 접근한 후 이를 제어하기 위한 행동
⑪ 수집 (Collection)
- TA0009
- 공격 목적이나 관련 정보가 포함된 데이터를 수집하기 위한 행동
⑫ 명령 및 제어 (Command And Control)
- TA0011
- 공격자가 침입한 대상 네트워크 내부 시스템과 통신하며 제어하기 위한 행동
⑬ 유출 (Exfiltration)
- TA0010
- 공격자가 네트워크에서 데이터를 훔치기 위한 행동
⑭ 임팩트 (Impact)
- TA0040
- 공격 목표의 가용성과 무결성을 손상시키기 위한 행동
Techniques (공격 기술 정보) - 공격자가 목표에 대한 Tactic 을 달성하기 위한 방법을 나타냄
- 공격자의 공격(Technique)을 통해 발생하는 결과(피해)를 명시
Mitigations (공격 완화 정보) - 관리자가 공격을 예방하고 탐지하기 위해 취할 수 있는 행동
Groups (공격 단체/조직 정보) - 공개적으로 명칭이 부여된 해킹단체에 대한 정보와 공격 기법을 분석하여 정리
Software (공격 도구 정보) - ​​공격에 사용되는 다양한 도구의 모음을 총칭하여 정리한 것

 

3. 참고

https://www.lockheedmartin.com/en-us/capabilities/cyber/cyber-kill-chain.html
https://attack.mitre.org/
https://www.igloo.co.kr/security-information/mitre-attck-framework-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0/

'기타 > 기타' 카테고리의 다른 글

CVE, CWE, CVSS  (0) 2022.12.27

1. CVE (Common Vulnerabilities and Exposures)

- 공개적으로 알려진 보안취약점에 대한 시간별로 정리한 목록(History)
- 표준화된 CVE 항목은 서비스 적용 범위를 평가할 수 있는 기준을 제공

- 표기 : CVE-연도-순서

 

CVE - CVE

The mission of the CVE® Program is to identify, define, and catalog publicly disclosed cybersecurity vulnerabilities.

cve.mitre.org

 

2. CWE (Common Weakness Enumeration)

- MITRE에서 일반적인 소프트웨어 보안약점(weakness)를 다양한 관점에서 분류한 목록.

-  악용 가능한 보안으로 이어질 수 있는 아키텍처, 디자인, 코드 또는 구현에서 발생할 수 있는 일반적인 소프트웨어 및 하드웨어 약점의 공식 목록 또는 사전

- 표기 : CWE-YYY

MITRE는 CVE®(Common Vulnerabilities and Exposures) 목록 을 출시한 1999년 초부터 소프트웨어 약점을 분류하는 문제에 대한 작업을 시작했습니다.
CVE 구축의 일환으로 MITRE의 CVE 팀은 일반적인 소프트웨어 약점을 정의하는 데 도움이 되도록 2005년부터 취약성, 공격, 결함 및 기타 개념의 예비 분류 및 분류를 개발했습니다.
그러나 CVE에는 충분하지만 코드 보안 평가 업계에서 제공하는 기능을 식별하고 분류하는 데 사용하기에는 이러한 그룹화가 너무 대략적이었습니다.
CWE 목록 은 2006년에 추가 요구 사항을 더 잘 해결하기 위해 만들어졌습니다
.
 

CWE - Common Weakness Enumeration

CWE™ is a community-developed list of software and hardware weakness types. It serves as a common language, a measuring stick for security tools, and as a baseline for weakness identification, mitigation, and prevention efforts. Viewing Customized CWE in

cwe.mitre.org

 

※ 취약점 (vulnerabilities) vs 보안약점 (weakness)

① 취약점 (vulnerabilities)

- 해커가 시스템이나 네트워크에 접근하기 위해 사용할 수 있는 소프트웨어의 실수(mistake)로 실제 발생 가능

- 운영 단계에서 발생

 

② 보안약점 (weakness)

- 기능 설계 및 구현 단계에서 발생할 수 있는 보안상의 오류

- 개발단계에서 발생 (이론상)

 

3. CVSS(Common Vulnerabilities Scoring System)

- 보안 취약점들을 평가하고 확인할 수 있도록 제공된 오픈 프레임워크

- 취약점의 가장 중요한 특성을 이해하고, 그것에 수치로 된 점수를 부여함으로써 심각성을 표기

 

Common Vulnerability Scoring System SIG

Common Vulnerability Scoring System SIG Mission The Common Vulnerability Scoring System (CVSS) provides a way to capture the principal characteristics of a vulnerability and produce a numerical score reflecting its severity. The numerical score can then be

www.first.org

'기타 > 기타' 카테고리의 다른 글

MITRE ATT&CK Framework  (0) 2023.01.17

1. 기본 구조

$ docker 커맨드 [옵션] 대상 [인자]

- 커맨드는 상위 커맨드(무엇을)와 하위 커맨드(어떻게)로 나뉨

- 옵션은 커맨드의 세세한 설정을 지정

- 대상은 구체적인 이름을 지정

- 인자는 대상에 전달할 값을 지정

[사진 1] 도커 라이프사이클

 

2. 컨테이너 조작 관련 커맨드 (상위 커맨드 container)

- 컨테이너를 실행하거나 종료하고, 목록을 확인하는 등 컨테이너를 다루기 위해 사용

- 생략 가능 커맨드는 "docker 하위 커맨드"로 실행 가능

- ls의 생략형은 ps (예시 : docker ps -a)

하위 커맨드 내용 생략 가능 여부 주요 옵션 설명
start 컨테이너 실행 O -a STDOUT/STDERR 및 순방향 신호 연결
-i 컨테이너의 STDIN 연결
stop 컨테이너 중지
컨테이너를 삭제하려면 반드시 중지해야함
O - -
create 도커 이미지로부터 컨테이너 생성 O --name 컨테이너 이름 지정
-e 환경변수 설정
-p 포트 번호 지정
-v 볼륨 마운트
run 도커 이미지를 내려받고 컨테이너를 생성 실행
docker image pull, docker contauner create, docker container start 명령을 하나로 합친 것과 같음
O --name --name 컨테이너 이름
컨테이너 이름 지정
-p -p 호스트 포트번호:컨테이너 포트번호
포트번호 지정
-v -v 호스트 디스크:컨테이너 디렉터리
볼륨 마운트
--net --net 네트워크 이름
컨테이너를 네트워크에 연결
-e -e 환경변수 이름=값
환경변수 설정
-d 백그라운드 실행
-i 컨테이너에 터미널(키보드)을 연결
-t 특수 키를 사용 가능하도록 함
-help 사용 방법 안내
rm 정지 상태의 컨테이너 삭제 O -f 실행 중인 컨테이너 강제 제거(SIGKILL 사용)
-v 컨테이너와 연결된 익명 볼륨 제거
exec 실행중인 컨테이너 속에서 프로그램을 실행 O -i 컨테이너에 터미널(키보드)을 연결
-t 유사 TTY 할당
ls 컨테이너 목록 출력 O -a 모든 컨테이너 목록 출력
CONTAINER ID : 식별자
IMAGE : 컨테이너 생성 시 사용한 이미지 이름
COMMAND : 컨테이너 실행 시에 실행하도록 설정된 프로그램 이름
CREATED : 컨테이너 생성 후 경과 시간
STATUS : 컨테이너의 현재 상태
PORTS : 컨테이너에 할당된 포트
NAMES : 컨테이너 이름
cp 도커 컨테이너와 도커 호스트 간 파일 복사 O - -
commit 도커 컨테이너를 이미지로 변환 O - -

 

3. 이미지 조작 관련 커맨드 (상위 커맨드 image)

- 이미지를 내려받거나 검색하는 등 이미지와 관련된 기능을 실행

- 생략 가능 커맨드는 "docker 하위 커맨드"로 실행 가능

- rm의 생략형은 rmi (예시 : docker rmi)

하위 커맨드 내용 생략 가능 여부  주요 옵션 설명
pull 이미지 내려 받기 O - -
rm 이미지 삭제 O - -
ls 이미지의 목록 출력 X - -
build 이미지 생성 O -t 이름 및 선택적으로 'name:tag' 형식의 태그

 

4. 볼륨 조작 관련 커맨드 (상위 커맨드 volume)

- 볼륨 생성, 목록 확인, 삭제 등 볼륨과 관련된 기능을 실행

- 볼륨이란 컨테이너에 마운트 가능한 스토리지를 뜻함

하위 커맨드 내용 생략 가능 여부 주요 옵션  설명
create 볼륨 생성 X --name 볼륨 이름 지정
inspect 볼륨의 상세 정보 출력 X - -
ls 볼륨의 목록 출력 X -a 모든 볼륨 목록 출력
prune 현재 마운트되지 않은 볼륨 모두 삭제 X - -
rm 지정한 볼륨 삭제 X - -

 

5. 네트워크 조작 관련 커맨드 (상위 커맨드 network)

- 도커 네트워크의 생성, 삭제, 컨테이너의 네트워크 접속 및 접속 해제 등 도커 네트워크와 관련된 기능을 실행

- 도커 네트워크란 도커 요소간의 통신에 사용하는 가상 네트워크

하위 커맨드 내용 생략 가능 여부 주요 옵션  설명
connect 컨테이너를 도커 네트워크에 연결 X - -
disconnect 컨테너의 도커 네트워크 연결 해제 X - -
create 도커 네트워크 생성 X - -
inspect 도커 네트워크의 상세 정보 출력 X - -
ls 도커 네트워크의 목록 출력 X - -
prune 현재 컨테이너가 접속하지 않은 모든 네트워크 삭제 X - -
rm 지정한 네트워크 삭제 X - -

 

6. 그 밖의 상위 커맨드

상위 커맨드 내용
checkpoint 현재 상태를 일시적으로 저장한 후, 나중에 해당 시점의 상태로 되돌릴 수 있음
node 도커 스웜의 노드를 관리
plugin 플러그인을 관리
secret 도커 스웜의 비밀값 정보를 관리
service 도커 스웜의 서비스를 관리
stack 도커 스웜 또는 쿠버네티스에서 여러 개의 서비스를 합쳐 구성한 스택을 관리
swarm 도커 스웜을 관리
system 도커 엔진의 정보를 확인

 

7. 단독으로 쓰이는 커맨드

- 도커 허브의 검색이나 로그인에 사용되는 커맨드

단독 커맨드 내용 주요 옵션 설명
login 도커 레지스트리에 로그인 -u 계졍명
-p 패스워드
logout 도커 레지스트리에서 로그아웃 - -
search 도커 레지스트리 검색 - -
version 도커 엔진 및 명령행 도구의 버전 출력 - -

 

8. 참고

 

Docker run reference

 

docs.docker.com

 

'기타 > 도커' 카테고리의 다른 글

도커(Docker)란  (0) 2022.11.15

1. 도커(Docker)

- 다양한 프로그램과 데이터를 각각 독립된 환경(=컨테이너)에 격리하고, 컨테이너를 다루는 기능을 제공하는 소프트웨어

- 도커 엔진을 설치해야 컨테이너를 생성하고 구동시킬 수 있으며, 컨테이너를 생성하기 위해 이미지가 필요

- 용량이 허락하는 한 여러개의 컨테이너를 하나의 도커에 생성 가능

 

※ 테이터나 프로그램을 격리해야하는 이유

① 다른 프로그램과 특정 파일이나 디렉터리를 공유하거나 같은 경로에 설정 정보를 저장하는 경우가 있음

② 때문에, 하나의 프로그램의 업데이트가 다른 하나의 프로그램에 영향을 끼칠 수 있음

③ 따라서, 컨테이너를 사용해 각각의 프로그램을 격리한다면 공유로 인한 문제를 해결

2. 도커의 제약 사항

- 종류와 상관없이 리눅스 운영체제가 필요

- 컨테이너에서 동작시킬 프로그램 또한 리눅스용 프로그램

- 따라서, 도커는 기본적으로 리눅스 운영체제에서만 동작

- 즉, 도커는 리눅스 컴퓨터에 독립된 격리 환경을 만드는 것이며, 리눅스에서만 동작하고, 컨테이너에서 동작할 프로그램 또한 리눅스용 프로그램

 

※  호스트 OS가 Window나 macOS일 경우 가상 머신등을 이용

3. 동작원리

- 모든 컨테이너에는 도커엔진으로부터 명령을 프로그램에 전달하고, 수행 결과를 반환 하기위해 운영체제의 일부 기능을 포함

4. 이미지

- 이미지는 컨테이너를 만드는데 사용

- 컨테이너로도 이미지를 만들 수 있음

- 도커 허브에서 제공하는 공식 이미지(안정성이 좋으나, 제한적인 환경)커스텀 이미지(안정성이 낮으나, 환경설정이 가능)이 있음

5. 컨테이너 생애주기와 데이터 저장

- 컨테이너 생애주기 : 오래된 컨테이너를 폐기하고 새로운 컨테이너를 만드는 일련의 과정

- 데이터 저장 : 도커가 설치된 물리적 서버의 디스크를 마운트하여 데이터 저장

- 새로운 컨테이너를 생성할 경우 디스크를 마운트하여 데이터를 공유할 수 있음

6. 장단점 및 용도

① 장점

- 독립된 환경 : 여러 프로그램을 띄울 수 있음 = 한 대의 물리 서버에 여러 대의 서버를 띄울 수 있음

- 이미지 생성 : 도커 허브에서 이미지를 공유하여 교체가 쉽고 업데이트가 쉽다 = 서버 관리가 용이

- 커널이 없음 : 배포판을 바꿀 수 있고 커널이 없어 가벼움 = 다루기 쉬움

 

② 단점

- 리눅스용 소프트웨어만 지원

- 호스트 서버의 장애가 모든 컨테이너에 영향을 끼침

 

③ 용도

- 동일한 환경을 여러개 생성하여 편리하게 공유

- 운영환경 적용전 격리된 환경을 이용한 신규 버전 테스트

- 동일 서버가 여러대 필요할 경우 여러 컨테이너를 사용하여 비용 및 시간 절약

'기타 > 도커' 카테고리의 다른 글

명령어  (0) 2022.11.21

1. IP(Internet Protocol)

- 네트워크에서 어떤 정보를 수신하고 송신하는 통신에 대한 규약

2. IP 주소(Internet Protocol Address)

- 네트워크에서 장치들이 서로를 인식하고 통신을 하기 위해서 사용하는 번호, 즉 컴퓨터를 식별할 수 있는 고유한 번호

- 네트워크 계층의 주소체계

- 네트워크 부분호스트 부분으로 나뉘어짐

- 윈도우의 경우 ipconfig 명령, 리눅스의 경우 ifconfig 명령으로 확인 가능함.

 

2.1. IPv4

- 32bit 주소길이를 가진 논리적 주소체계이며, 8bit 씩 4부분으로 .로 구분

- 효율적인 IP 사용을 위해 A, B, C, D, E Class로 구분

* Class 별 호스트의 주소를 계산할 때 네트워크 자체 주소와 브로드캐스트 주소를 제외해 주어야함

- 약 43억개의 서로다른 주소를 부여할 수 있으나, 인터넷 사용자 급증으로 고갈될 문제에 처해 IPv6가 등장

[캡쳐 1] Class별 네트워크 부분 및 호스트 부분

- 사설 IP/공인 IP, 고정 IP/유동 IP로 나눌 수 있음

구분 명칭 설명
IP 공개 여부에 따른 구분 공인 IP - ISP에 의해 할당되며, 개인 또는 회사의 서버에 할당
- 내/외부 모두 접근 가능하며, 인터넷 상에서 유일한 주소
사설 IP - 라우터(공유기)에 의해 할당되며, 개인 또는 회사 내 호스트에 할당
- 외부에서 접근은 불가하며, 하나의 네트워크 내에서 유일한 주소
- Class A 사설 IP : 10.0.0.0 ~ 10.255.255.255
- Class B 사설 IP : 172.16.0.0 ~ 172.31.255.255
- Class C 사설 IP : 192.168.0.0 ~ 192.168.255.255
IP 고정 여부에 따른 구분 고정 IP - 고정적으로 부여된 IP
- 한번 부여되면 IP를 반납하기 전까지는 다른 장비에 부여할 수 없는 주소
유동 IP - 고정적으로 IP를 부여하지 않고 남아 있는 IP 중에서 돌아가면서 부여하는 IP
- ex) DHCP
* DHCP 서버에서 IP 169.254.X.X를 받아올 경우 DHCP 서버와 통신할 수 없다는 의미

- 특수한 목적을 위해 예약된 IP는 다음과 같음

[캡쳐 2] 예약된 IP (https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=p_rain&logNo=220878796660)

2.2 IPv6

- IPv4 주소체계의 IP 고갈에 대비하기 위해 등장

특징 설명
확장된 주소 공간 - 128비트 주소체계를 사용 (IPv4의 주소부족 문제를 해결)
- IP주소를 절약하기 위해 사용되는 NAT(Network Address Translation)와 같은 주소변환 기술도 불필요
새로운 헤더 포맷 - 고정 길이 헤더
- 패킷 단편화(fragmentation) 관련 필드, 체크섬 (checksum) 필드 삭제
향상된 서비스의 지원 - 트래픽을 효과적으로 분류할 수 있는 기능을 제공
- 이를 위해 IPv6 헤더 내에 플로우 레이블(Flow Label) 필드를 이용
보안 기능 - IPv6에서는 프로토콜 내에 보안관련 기능을 탑재할 수 있도록 설계
- 확장헤더를 통하여 네트워크 계층에서의 종단간 암호화를 제공
* IPv4에서의 IPSec이라는 보안 관련 프로토콜을 별도 설치 필요
주소 자동설정 - 로컬 IPv6주소를 LAN상의 MAC주소와 라우터가 제공하는 네트워크 프리픽스(prefix)에 결합하여 IP주소를 자동 생성
- 이동형 컴퓨터의 경우 어느 곳에서든 네트워크와 연결을 설정하면 자동으로 포워딩 주소를 설정할 수 있게 함

 

2.3 비교

구분 IPv4 IPv6
주소길이 32bit 128bit
표기방법 8bit 씩 4부분으로 .로 구분
ex) 192.168.1.2
16bit 씩 8부분으로 :로 구분
ex) 2002:0221:ABCD:DCBA:0000:0000:FFFF:4002
주소개수 약 43억개 약 2^128개 (43억 X 43억 X 43억 X 43억)
* IPv4의 IP 고갈로 등장
주소할당 방식 클래스 단위 비순차 할당 네트워크 규모, 단말기 수에 따라 순차할당
주소 유형 유니캐스트, 멀티캐스트, 브로드캐스트 유니캐스트, 멀티캐스트, 애니캐스트
헤더크기 가변 고정
QoS 제공 미흡 제공
보안 IPSec 프로토콜 별도 설치 IPSec 프로토콜 자체 제공
서비스 품질 제한적 품질 보장 확장된 품질 보장
Plug & Play 불가 가능

 

3. MAC (Media Access Control Address)

- 48bit로 이루어져 있는 물리적 주소체계이며, 앞 24bit는 제조사번호, 뒤 24bit는 시리얼번호를 의미

- 네트워크 인터페이스 카드(NIC)에 할당된 고유 식별자

- 데이터링크 계층의 주소체계

 

4. 참조

https://steady-coding.tistory.com/521

https://blog.naver.com/hai0416/221564816863

https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=hai0416&logNo=221566797342 

'기타 > 네트워크' 카테고리의 다른 글

OSI 7 Layer와 TCP/IP 4 Layer  (0) 2022.08.10

1. OSI(Open Systems Interconnection Reference Model) 7 Layer

- 네트워크에서 통신이 일어나는 과정을 7단계로 나눈 것.
- Open System(개방 시스템) : 기반 구조와 관계없이 시스템 간 통신을 제공하는 프로토콜의 집합
- 각 계층은 하위 계층의 기능만을 이용하고, 상위 계층에게 기능을 제공
- 목적 : H/W나 S/W 기반의 논리적인 변화에 대한 요구 없이 서로 다른 시스템 간의 통신을 원할히 하는 것

2. OSI 7 Layer 구

구분 계층 설명 데이터단위
상위 계층 7계층
Application(응용)
- 사용자(사람 또는 소프트웨어)가 네트워크에 접속하는 것을 가능하게 함.
- 사용자 인터페이스 제공.
- 프로토콜 : HTTP, FTP, SMTP, DNS, SNMP 등
메세지
6계층
Presentation(표현)
- 송수신측이 공통으로 이해할 수 있도록 정보의 데이터 표현방식을 바꿈.
- 응용 계층으로부터 데이터를 전달받아 표준 포맷으로 변환(인코딩, 암호화, 압축 등)하여 세션 계층으로 전달.
- 프로토콜 : SSL, ASCII 등
5계층
Session(세션)
- 통신 시스템 간에 상호대화를 설정, 유지, 동기화.
- 표현 계층으로부터 데이터를 전달받아 효율적인 세션 관리를 위해 데이터를 짧은 데이터 단위로 나눈 후 전송 계층으로 전달.
- 프로토콜 : NetBIOS, RPC, WinSock
상/하위 계층 연결 4계층
Transport(전송)
- 세션을 맺고 있는 두 사용자 사이의 데이터 전송을 위한 종단간 제어를 담당.
- 프로토콜 : TCP, UDP
세그먼트
하위 계층 3계층
Networtk(네트워크)
- 송신측에서 수신측까지 안전하게 데이터를 전달하기위해 논리적 링크 설정(라우팅).
- 상위 계층 데이터를 작은 큭리의 패킷으로 분할하여 전송.
- 프로토콜 : IP, ARP, ICMP, IGMP
- 장비 : 라우터
패킷
2계층
DataLink(데이터링크)
- 오류제어, 에러 검출/정정, 흐름제어, 매체제어.
- 두 Sub 계층으로 나뉨
① LLC(Logical Link Control) 또는 DLC(Data Link Contol) : 논리적 연결 담당.
② MAC(Media Access Control) : 장비와 장비 간의 물리적 접속을 담당.
- 프로토콜 : Ethernet, HDLC, PPP 등
- 장비 : 브리지, 스위치
프레임
1계층
Physical(물리)
- 데이터를 물리 매체를 통해 전송하며, 전송을 위해 필요한 물리적 링크 설정, 유지, 해제 담당
- 물리적, 전기적 규정에 초첨을 맞추어 전송 선로의 종류에 따라 전송방식과 인코딩 방식 결정.
- 프로토콜 : RS-232, X.25 / X.21 등
- 장비 : 케이블, 리피터, 허브 등
비트 프레임

3. TCP/IP 4 Layer

- 현재 인터넷에서 컴퓨터들이 서로 정보를 주고받는데 쓰이는 통신규약의 모음
- 각 계층은 하위 계층의 기능만을 이용하고, 상위 계층에게 기능을 제공
- OSI 7 Layer보다 먼저 개발되었으며, OSI 7 Layer의 경우 실질적인 구현이 된적이 없는 반면, TCP/IP는 인터넷 개발 이후 지속적으로 표준화되어 신뢰성이 뛰어남.

4. TCP/IP 4 Layer 구조

계층 설명
응용 - 응용프로그램이 네트워크에 접근 가능하도록 인터페이스 기능 제공.
전송 - 종단간 통신 서비스 담당.
- TCP, UDP
네트워크 - IP : 호스트 네트워크 주소 관리
- ARP : 네트워크 호스트들의 하드웨어 주소를 얻는 데 사용
- ICMP : 패킷 전송 중 발생하는 오류 메시지 처리
데이터링크 - 전송 매체에 프레임을 송수신

5. OSI 7계층과 TCP/IP 4계층 비교

[캡쳐 1] OSI 7계층과 TCP/IP 4계층 비교

'기타 > 네트워크' 카테고리의 다른 글

IP주소와 MAC주소  (0) 2022.10.03

[캡쳐 1] 요청&amp;응답

1. 개요

- 클라이언트는 서버에 자원을 요청하고, 서버는 클라이언트에 요청에 대한 처리 결과를 응답한다.
- 이때, 클라이언트는 메소드를 이용해 서버에 요청의 목적이나 종류를 알린다.
- 서버는, 클라이언트의 요청을 처리한 결과상태코드와 함께 응답한다.

2. 메서드(Method)

- 클라이언트가 서버에 요청의 목적/종류를 알리는 수단

Method 설명
GET - 요청받은 URI의 정보를 검색하여 응답.
- URI 끝에 파라미터를 통해 요청정보 전달.
HEAD - GET과 동일하나, 응답에 BODY 없이 응답코드와 HEAD만 응답.
- 웹 서버 정보확인, 헬스체크, 버전 확인, 최종 수정일자 확인 등의 용도로 사용.
POST - 요청한 자원을 생성하거나 업데이트 목적으로 사용.
- 전송할 데이터를 BODY에 FORM 형태로 담아서 전송.
PUT - 요청 자원을 수정한다.
- 자원 전체 수정.
PATCH - PUT과 유사하게 요청된 자원을 수정할 때 사용한다.
- 일부 자원 교체.
DELETE - 요청된 자원을 삭제.
CONNECT - 요청한 자원에 대해 양방향 연결(터널)을 생성.
TRACE - 원격지 서버에 루프백 메시지를 호출하기 위해 사용되며, 테스트용으로 사용.
OPTIONS - 서버에서 제공하는 Method 종류를 확인할 때 사용.

3. 응답값(Status Code)

- 서버에서 클라이언트로 요청을 처리한 결과를 전송할때 사용
- 1xx(정보) : 요청을 받았고, 작업을 진행 중
- 2xx(성공) : 작업을 성공적으로 받았고, 이해했으며, 받아들여졌다는 의미
- 3xx(리다이렉션) : 요청을 완료하기 위해서는 리다이렉션이 이루어져야 한다는 의미
- 4xx(클라이언트 오류) : 요청은 올바르지 않다는 의미
- 5xx(서버 오류) : 서버가 응답할 수 없다는 의미

응답대역 응답코드 설명
1xx 100 - Continue
- 클라이언트로부터 일부 요청을 받았으며, 나머지 정보를 계속 요청.
101 - Switching Protocols
- 클라이언트가 Upgrade (en-US) 헤더를 통해 요청한 것에 따라 서버가 프로토콜을 바꾼다는 것을 알려주는 응답 코드.
2xx 200 - OK
- 클라이언트의 요청을 성공적으로 처리.
201 - Created
- 요청이 성공적으로 처리되어서 리소스가 생성됨.
202 - Accepted
- 요청이 받아들여졌지만 처리되지 않음.
3xx 301 - Moved Permanently
- 영구적으로 컨텐츠가 이동했을 때 사용.
- location 헤더를 통해 해당 URL을 포함해 응답.
302 - Found
- 일시적으로 컨텐츠가 이동했을때 사용.
- location 헤더를 통해 해당 URL을 포함해 응답.
304 - Not Modified
- 요청한 자원의 경로가 변경되지 않았으며, 클라이언트의 캐시된 자원을 사용하라는 의미.
4xx 400 - Bad Request
- 클라이언트의 요청 자체가 잘못된 경우 발생
401 - Unauthorized
- 인증이 필요한 리소스에 인증 없이 접근할 경우 발생.
403 - Forbidden
- 서버에 요청이 전달되었지만, 권한 때문에 거절되었다는 것을 의미.
404 - Not Found
- 서버가 요청받은 리소스를 찾을 수 없다는 것을 의미
5xx 500 - Internal Server Error
- 서버에 오류가 발생해 작업을 수행할 수 없을 때 사용.
503 - Service Temporarily Unavailable
- 서비스를 일시적으로 사용할 수 없을 때 사용.


- 참고

 

HTTP | MDN

하이퍼텍스트 전송 프로토콜(HTTP)은 HTML과 같은 하이퍼미디어 문서를 전송하기위한 애플리케이션 레이어 프로토콜입니다. 웹 브라우저와 웹 서버간의 커뮤니케이션을위해 디자인되었지만, 다

developer.mozilla.org

 

+ Recent posts