📌  피싱( Phishing )

  • 가짜 웹 사이트나 이메일을 통해 사용자로 부터 민감한 정보를 획득하려는 사기 공격
  • scam( 사기 )도 피싱 공격의 한 형태다.

📌  랜섬웨어( Ransomware )

  • 몸 값을 의미하는 Ransom과 Software의 합성어
  • 사용자의 데이터를 암호화하고, 해독 키를 얻기 위해 금전을 요구하는 악성 소프트웨어를 말한다.

 

📌 공격 종류 - Network

📑 DDoS( Distributed Denial of Service )

  • 여러 컴퓨터를 이용해 대량의 트래픽을 발생시켜 서버나 네트워크의 정상적인 서비스 제공을 방해하는 공격

📑 Scanning

  • 목표로 하는 네트워크에서 동작 중인 시스템이나 서비스를 탐색하는 행위

📑 Sniffing

  • 네트워크 중간에서 남의 패킷 정보를 도청하는 행위

📑 MITM (Man In The Middle)

  • 중간자 공격으로 네트워크 통신을 조작하여 내용을 도청하거나 조작하는 공격
  • 연결된 두 사람 중간에 공격자가 존재해 중간자가 한쪽에서 정보를 가로채 도청하고, 조작하여 다시 전달하게 됨

 

📌 공격 종류 - Web

📑 SQL Injection

  • 웹 애플리케이션의 데이터베이스 쿼리에 악의적인 SQL 코드를 주입하여 데이터베이스를 조작하는 공격

📑 크로스 사이트 스크립팅(XSS)

  • 사용자 브라우저에 악성 스크립트를 실행시키는 공격
  • 서버측이 아닌 해당 페이지를 방문하게 되는 사용자에게 발생하는 공격

'K-Shield > Jr' 카테고리의 다른 글

[K-Shield][Jr] 캡슐화 & 역캡슐화  (0) 2025.04.25
[K-Shield][Jr] 네트워크 계층과 프로토콜  (0) 2025.04.25
[K-Shield][Jr] 네트워크  (0) 2025.04.25
[K-Shield][Jr] 위협  (0) 2025.04.24
[K-Shield][Jr] 정보 보안  (0) 2025.04.24
위협이란, 정보 자산에 해를 끼칠 수 있는 모든 행위나 사건을 말한다.

 

  • 자연 재해, 기술적 실패, 공격으로 부터 발생한다.
  • 취약점은 시스템, 소프트웨어, 프로토콜, 또는 절차상의 약점이나 결함을 의미한다.
    • 취약점은 위협이 실제로 활용 할 수 있는 기회를 제공하며, 위협은 이러한 취약점을 이용하여 발생한다.
    • 즉, 위협이 실제로 행해질 수 있는 시스템의 약점을 의미하게 된다.

📌 의도에 따른 위협 분류

📑 의도적 위협( Intentional Threats )

  • 인간의 의도에 의해 발생하는 위협
  • 해킹, 사이버 스파이, 사회 공학, 악성코드 배포 등

📑 비의도적 위협( Unintentional Threats )

  • 사용자의 실수나 부주의, 시스템의 오류 등으로 발생하는 위협
  • 잘못된 클릭, 안전하지 않은 비밀번호, 시스템 설정 실수 등

 

📌 발생 원인에 따른 위협 분류

📑 외부 위협( External Threats )

  • 조직이나 시스템 외부에서 발생하는 위협
  • 해커, 사이버 범죄 조직, 경쟁 회사 등 외부 인물이나 그룹

📑 내부 위협( Internal Threats )

  • 조직 내부에서 발생하는 위협
  • 직원의 고의적인 행위나 실수로 인해 발생
  • 종종 접근 권한을 가진 사용자에 의해 발생

 

📌 공격 유형 따른 위협 분류

📑 활동적 위협( Active Threats )

  • 시스템을 공격하여 정보를 탈취하거나 시스템의 정상적인 작동을 방해한다.
  • 랜섬웨어, DDoS 공격 등

📑 수동적 위협( Passive Threats )

  • 시스템에 직접적인 변경을 가하지 않고 정보를 수집하는 위협을 말한다.
  • 트래픽 분석, 스니핑, 스캐닝 등

📑 누설( Disclosure )

  • 민감한 데이터가 무단으로 공개되거나 유출되는 상황을 말한다
  • 기밀성을 침해하는 행위
  • 개인 정보, 기업 비밀, 국가 비밀 등의 민감한 정보가 외부에 노출되어 개인이나 조직에 해를 끼칠 수 있다.\

📑 속임수( Deception )

  • 거짓 정보를 제공하거나, 사용자를 속여 정보를 탈취하는 행위다
  • 무결성( I, Integrity )를 침해하는 행위다
  • 피싱( Phishing), 스푸핑( Spoofing) 등이 해당 된다.

📑 중단( Disruption )

  • 시스템이나 네트워크의 정상적인 작동을 방해하거나 중단 시키는 행위다
  • 가용성( A, Availability )을 침해하는 행위다.
  • DoS, DDoS의 공격 등이 해당된다.

📑 강탈, 탈취( Usurpation )

  • 시스템의 기능을 무단으로 제어하거나 변경하여 시스템의 정상적인 기능을 방해하는 행위다
  • 시스템 장악, 악성 코드 실행, 시스템 구성을 변경하여 추가적인 공격을 가능하게 한다.

📑 침입( Intrusion )

  • 무단으로 시스템이나 네트워크에 접근하는 행위다.
  • 기밀성( C, Confidentiality )과 무결성( I, Integrity )을 침해하는 행위다.
  • 시스템의 정상적인 작동을 방해할 수 있다.

📑 악용( Exploitation )

  • 공격자가 취약점을 발견하고 악용하는 행위다.
  • 데이터 손상, 시스템의 제어권 탈취, 악성 코드 설치 등 다양한 보안 문제를 발생 시킬 수 있다.

📑 추출( Extraction )

  • 데이터를 무단으로 복사하거나 외부로 전송하는 행위다.
  • 프라이버시 침해, 기업의 비밀 유출, 국가 안보 위협 등을 발생 시킬 수 있다.

'K-Shield > Jr' 카테고리의 다른 글

[K-Shield][Jr] 캡슐화 & 역캡슐화  (0) 2025.04.25
[K-Shield][Jr] 네트워크 계층과 프로토콜  (0) 2025.04.25
[K-Shield][Jr] 네트워크  (0) 2025.04.25
[K-Shield][Jr] 공격 유형  (0) 2025.04.24
[K-Shield][Jr] 정보 보안  (0) 2025.04.24
정보 보안 이란 조직이나 개인이 보유한 정보 자산을 무단으로 접근, 사용, 공개, 파괴, 변조 또는 손실로 부터 보호하기 위한 전략, 절차, 기술을 의미한다.

 

구분 설명
자산(Assets) 보호해야 할 가치가 있는 모든 항목
- 물리적 문서, 디지털 파일, 데이터베이스, 시스템, 네트워크 등 정보가 저장되거나 처리되는 모든 매체
- 정보 자산의 가치는 정보를 사용할 수 있는 권한이 누구에게 있는지, 정보가 얼마나 중요한지에 따라 결정
위협(Threats) 정보 자산에 해를 끼칠 수 있는 모든 행위나 사건
- 자연 재해, 기술적 실패, 공격( 해킹, 악성코드 배포 등 )으로 부터 발생
- 위협은 의도적이지만, 실수나 사고로 인해 발생하기도 한다.
취약점(Vulnerability) 정보 시스템, 절차, 운영상의 약점이나 결함으로, 취약점을 통해 위협이 자산에 해를 끼치는 것을 가능하게 함
- 소프트웨어 버그, 구성 오류, 물리적 보안의 결핍 등 다양한 형태로 존재
  - 어플리케이션 익스플로잇, 스푸핑 공격, 인증 우회 등
- 사용자의 보안 인식 부족도 포함
  - 스피어피싱, 인증 우회, 스미싱, 보이스 피싱 등
위험(Risk) 외부의 위협이 내부의 취약점을 이용하여 보유한 자산에 피해를 입힐 수 있는 잠재적인 가능성
- 위험 관리는 위험 식별, 평가, 완화 과정을 포함하며, 정보보안 전략의 핵심 요소임

 

📌  정보보안 3요소(CIA Triads)

  • 정보보안을 통해서 C.I.A를 확보 해야 한다.
  • C( Confidentiality, 기밀성 ), I( Integrity, 무결성 ), A( Availability, 가용성 )

 

📑  기밀성( Confidentiality )

  • 허가되지 않은 사용자 또는 객체가 정보의 내용을 알 수 없도록 하는 것을 말한다.
  • 오직 인가된 사람, 인가된 프로세스, 인가된 시스템만 알 필요성에 근그하여 시스템에 접근해야 한다.
  • 내용과 존재 자체도 완벽한 기밀을 유지 하는 것이 좋다.
    • 친구와 개인적으로 채팅을 하고 있을 때, 해당 채팅방은 외부인에 의해 무단으로 접근되거나 공개되어서는 안됨

 

📑  무결성( Integrity )

  • 허가 되지 않은 사용자 또는 객체가 정보를 함부로 수정할 수 없도록 하는 것을 말한다.
  • 정해진 절차에 따라, 주어진 권한에 의해서만 변경되어야 한다.
  • 즉, 데이터 또는 리소스의 신뢰성을 확보하는 것이다.
  • 데이터를 조작한 사람이 신뢰할 수 있는 사람인가도 중요하다.
    • 내가 보낸 채팅 정보가 외부인에 의해 변조되어서는 안됨

 

📑  가용성( Availability )

  • 허가된 사용자 또는 객체가 정보에 접근하려 하고자 할 때 이것이 방해받지 않도록 하는 것을 말한다.
  • 정당한 방법으로 권한이 주어진 사용자에게 정보 서비스를 거부하여서는 안된다
  • 즉, 정보나 리소스에 원할 때마다 접근할 수 있는가에 대한 것이다.
    • 예시) 언제든지 채팅을 하고 싶을 때, 채팅을 할 수 있어야 함

 

📌 Balance of C.I.A

C.I.A가 완벽하게 지켜지면 좋지만 현실은 그렇치 않다.
균형을 잘 갖추어 주는 것이 중요하다.

 

💡 무결성을 극대화 했을 경우

  • 모든 사본을 다른 사람들과 공유한다. ( 기밀성이 보장되지 않음 )
  • 데이터가 업데이트 될 때마다 사본을 공유해야 한다. ( 가용성이 침해됨 )
  • 블록체인이 위와 같은 구조로 이루어져 있다.

 

💡 기밀성을 극대화 했을 경우

  • 아무도 볼 수 없는 나만의 데이터를 가질 경우
  • 기기를 네트워크로 부터 분리 하게 된다. ( 가용성이 사라지게 됨 )
  • 데이터에 대한 업데이트 정보를 알 수 없다. ( 데이터에 대한 무결성을 판별하지 못함 )

'K-Shield > Jr' 카테고리의 다른 글

[K-Shield][Jr] 캡슐화 & 역캡슐화  (0) 2025.04.25
[K-Shield][Jr] 네트워크 계층과 프로토콜  (0) 2025.04.25
[K-Shield][Jr] 네트워크  (0) 2025.04.25
[K-Shield][Jr] 공격 유형  (0) 2025.04.24
[K-Shield][Jr] 위협  (0) 2025.04.24

2진수 

  • 기수(base)가 2인 수 체계를 말한다.
  • 사용 가능한 수는 0과 1 이다.

16진수

  • 기수(base)가 16인 수 체계를 말한다.
  • 사용 가능한 수는 0 ~ 9, A ~ F ( A = 10, F = 15 )

 

2진수 -> 16진수 변환 방법

  1. 2진수를 오른쪽부터 4자리씩 끊어서 그룹으로 묶는다.
  2. 각 4자리 그룹을 10진수로 바꾼 뒤, 해당하는 16진수로 변환한다.

예제 

2진수: 10110111

1. 4자리씩 나누기:      1011   0111
2. 각각 10진수로:        11     7
3. 16진수로 변환:        B      7

=> 결과: 0xB7

 

16진수 -> 2진수 변환 방법

각 16진수 자릿수를 개별적으로 2진수 4자리로 변환한다.

예제

16진수: 9A

1. '9' → 1001
2. 'A' (10) → 1010

결과: 0b10011010

 

16진수 <-> 2진수 매핑 테이블

16진수 2진수
0 0000
1 0001
2 0010
3 0011
4 0100
5 0101
6 0110
7 0111
8 1000
9 1001
A 1010
B 1011
C 1100
D 1101
E 1110
F 1111

 

반가산기

반가산기

반 가산기는 2개의 2진수  A,B 논리변수를 더하여 합(SUM)과 캐리(Carry)를 산출하기 위한 조합 논리회로다.

  • 입력 받을 수 있는 수는 A, B 2가지 각각 0 또는 1을 입력한다.
  • 2진수 1 + 1은 2진수 10(2)다.
  • A가 1, B가 1이면 XOR 연살결과 S는 0이다.
  • 동시에 A가 1, B가 1이면 AND 연산결과 C는 1이다. 이 1은 자리올림을 나타낸다.

🔷 반가산기 진리표

A B S C
0 0 0 0
0 1 1 0
1 0 1 0
1 1 0 1

 

보통 4비트씩 묶어서 계산하기 때문에 반가산기만으로는 덧셈을 온전히 처리할 수 없다.

3자리 이상부터 자리 올림이 발생하면, 총 3가지의 수가 입력되어야하는데 반가산기는 2개의 입력만 받을 수 있기 때문이다.


전가산기

전가산기

컴퓨터 내부에서 여러 비트로 된 두 수를 더할 때 두 비트에서 더해진 결과인 캐리(Carry)는 더 높은 자리의 두 비트의 덧셈에 추가되어 더해진다. 이때, 아래 자릿수에서 발생한 캐리까지 포함하여 세 비트를 더하는 논리회로를 전가산기라고 한다.

전가산기는 3개의 입력을 받을 수 있다.

 

🔷 전가산기 진리표

A B Cin S Cout
0 0 0 0 0
0 0 1 1 0
0 1 0 1 0
0 1 1 0 1
1 0 0 1 0
1 0 1 0 1
1 1 0 0 1
1 1 1 1 1

 

'언어 > C' 카테고리의 다른 글

[C] HANDLE 닫고 NULL 넣는 이유  (0) 2025.06.02
[C] 미리 컴파일된 헤더  (0) 2025.05.29
[C] 템플릿 함수를 헤더에 정의해야하는 이유  (0) 2025.05.29
[C] 2진수, 16진수 변환  (0) 2025.04.23
[C] 게이트 회로  (0) 2025.04.23
게이트 회로는 디지털 논리 회로의 기본 구성 요소로, 전기 신호의 논리적 연산을 수행하는 장치를 말한다.

 

🔹 게이트 회로의 기본 개념

게이트 회로는 논리 게이트를 기반으로 하며, 이들은 불 대수를 구현한다.

입력 값은 0 또는 1이며, 출력 값도 0 또는 1이다.

 

🔹 주요 논리 게이트 종류

  1. AND 게이트
    • 입력 신호가 모두 1일 때만 출력이 1이 된다.
    • A & B
  2. OR 게이트
    • 입력 중 하나라도 1이면 출력이 1이 된다.
    • A | B
  3. XOR 게이트
    • 입력이 다를 경우에만 출력이 1이 된다.
    • A^B
  4. NOT 게이트
    • 입력을 반전시킨다. 입력이 0이면 출력이 1, 입력이 1이면 출력이 0이 된다.
    • !A

 

출처 : https://devraphy.tistory.com/290

TCP와 UDP는 인터넷 프로콜의 전송 계층에서 가장 널리 사용되는 두 가지 프로토콜로, 서로 목적과 특징이 다르다.

 

🔷 TCP vs UDP 비교

항목 TCP UDP
연결 방식 연결 지향 비연결성
데이터 전송 방식 스트림 전송 데이터그램 전송
신뢰성 보장 보장함( 패킷 재전송, 순서 보정 ) 보장하지 않음
패킷 순서 보장 O X
에러 검출 및 복구 O( 체크섬, 재전송 등 ) O ( 체크섬, 복구는 없음 )
속도 상대적으로 느림( 오버헤드 존재 ) 매우 빠름( 오버헤드 적음 )
오버헤드 큼( 헤더 최소 20바이트 ) 작음 ( 헤더 8바이트 고정 )
혼잡 제어 O( 윈도우크기, 혼잡 제어 알고리즘 ) X
전송 단위 바이트 기반 스트림 메시지 기반 데이터 그램
브로드캐스트 / 멀티캐스트 지원하지 않음 지원

 

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

[네트워크] TCP  (0) 2025.04.22
[네트워크] UDP  (0) 2025.04.22
[네트워크] 소켓  (0) 2025.04.22
[네트워크] 프로토콜 적용 파일 클라  (0) 2025.04.22
[네트워크] 프로토콜 적용 파일 서버  (0) 2025.04.22
TCP는 신뢰성 있는 데이터 통신을 위해 설계된 전송 계층 프로토콜이다. 

 

TCP는 연결지향 방식의 신뢰성 있는 프로토콜로, 데이터를 정확하게, 순서대로, 중복 없이 전달하는 데 초점을 맞춘다.

  • 통신 전 반드시 연결 설정이 필요하다. ( 연결 지향 ) 3-way handshake
  • 손실/중복/순서 오류 방지 및 재전송 기능을 포함한다. ( 신뢰성 보장 )
  • 송신 측이 수신 측의 처리 속도를 초과하지 않도록 조절한다. ( 흐름 제어 )
  • 네트워크 과부하를 방지하기 위한 제어 알고리즘이 존재한다. ( 혼잡 제어 )
  • 양방향 데이터 전송이 가능하다. ( 전이중 통신 )
  • 패킷이 순서대로 도착하게 정렬되고 재조립한다. ( 패킷 순서 보장 )

🔷 TCP 헤더 구조

필드 설명
Source Port 송신 포트 번호
Dest Port 수신 포트 번호
Sequence Number 송신 데이터의 순서 지정
Acknowledgment Number ( ACK ) 수신 측에서 다음에 기대하는 순번
Data Offset 헤더 길이 ( 데이터 부분이 어디부터 시작하는지 나타냄 )
Flags 제어 플래그( SYN, ACK, FIN, RST 등 )
Window Size 수신측에서 송신측에 윈도우 사이즈( 수신 확인을 기다리지 않고 묶어서 송신할 수 있는 데이터 양 ) 
Checksum 오류 검출용
Urgent Pointer 긴급하게 처리해야 할 데이터의 위치를 나타냄

 

 

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

[네트워크] TCP와 UDP 비교  (0) 2025.04.22
[네트워크] UDP  (0) 2025.04.22
[네트워크] 소켓  (0) 2025.04.22
[네트워크] 프로토콜 적용 파일 클라  (0) 2025.04.22
[네트워크] 프로토콜 적용 파일 서버  (0) 2025.04.22
UDP( User Datagram Protocol )는 전송 계층(L4)에서 사용하는 프로토콜 중 하나로,
TCP와 함께 전송 계층의 핵심 요소다. 

 

UDP는 연결 지향이 아닌 비연결성 통신 프로토콜이다.

즉, 송신 측과 수신 측 간에 사전 연결을 설정하지 않고 데이터를 전송한다.

  • TCP와 달리 3-way handshake 과정이 없다. ( 비연결성 )
  • 오베허드가 적고 속도가 빠르다. ( 빠른 전송 )
  • 패킷이 유실되거나 순서가 바뀌어도 보장하지 않는다. ( 신뢰성 없음 )
  • 8바이트 고정 크기 ( 헤더 크기 작음 )
  • 브로드캐스트 / 멀티캐스트 가능 

🔷 UDP 헤더 구조

필드 크기 설명
Source Port 2 송신 측 포트
Destination Port 2 수신 측 포트
Length 2 전체 UDP 패킷 길이( 헤더 + 데이터 )
Checksum 2 오류 검사

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

[네트워크] TCP와 UDP 비교  (0) 2025.04.22
[네트워크] TCP  (0) 2025.04.22
[네트워크] 소켓  (0) 2025.04.22
[네트워크] 프로토콜 적용 파일 클라  (0) 2025.04.22
[네트워크] 프로토콜 적용 파일 서버  (0) 2025.04.22
소켓( Windows Sockets, Winsock )은 윈도우 운영체제에서 네트워크 통신을 할 수 있도록 해주는 API다.
  • 소켓( Socket )은 OS 커널에 구현되어 있는 프로토콜 요소에 대한 추상화된 인터페이스를 말한다.
  • 장치 파일의 일종으로 이해할 수 있다.
  • 일반 파일에 대한 개념이 대부분 적용된다.

추상화된 인터페이스라는 점은 fopen을 통해 좀 더 깊게 이해 할 수 있다.

예를 들어 fopen_s(&fp, "CON", "w");를 호출하면 장치 파일인 콘솔 즉, 화면으로 모든 출력이 나가는 것을 확인할 수 있다.

만약 CON이 TCP일 경우에는 네트워크로 데이터가 나가는 것이라고 생각할 수 있다.

 

이처럼 소켓은 본질이 파일이다.

 

파일에 대한 입출력이 발생할 때, 그 액세스의 주체는 프로세스다. 즉, 프로세스는 파일을 열고, 생성하며, 닫거나 삭제 할 수 있다.

 

그런데 만약 이 파일이 TCP 스택에 대한 추상화된 인터페이스를 제공하는 경우, 이 파일은 일반적인 파일이라 하지 않고 TCP 소켓이라고 부른다.

 

다시 말해 소켓프로그래밍의 또 다른 이름은 TCP라는 대상을 추상화 시킨 파일에 대한 입출력 방법론을 배우는 것이라고 할 수 있다. 파일에 쓰는 작업인 write에 대응하는 소켓 함수는 send, 파일을 읽는 작업인 read에 대응하는 소켓 함수는 receive, 파일을 닫는 함수 fclose에 대응하는 소켓 함수는 closesocket이다.

 

파일이 나오면 항상 엮어서 생각해야 될 단위는 스트림이다. 우리가 파일에 데이터를 쓸 때 연속해서 데이터가 붙듯이 소켓도 마찬가지다. 그래서 유저 모드 어플리케이션 수준(=L7)에서 소켓이 나오면 스트림이라는 말이 나와야하고, 이 스트림이 커널 모드로 내려가서 L4로 가면 데이터의 단위가 segment, L3로 가면 데이터의 단위가 packet으로 바뀌어 불린다.

 

직소 퍼즐처럼 세그먼트랑 패킷은 분리되어 조각 하나하나가 연속적으로 쭉 이어져 있다.

다시 말해 스트림은 기본적으로 패킷이 조립 되어 연속된 데이터들로 생각하면 되고 세그먼트와 패킷은 조각된 단편 하나다.

+ Recent posts