Cyber Security

[ATCS] Network Security

Minhyuc 2024. 7. 14. 01:27
Computer Network

 

데이터를 교환하거나, 서로 간 리소스를 공유할 수 있는 상호 연결된 컴퓨팅 디바이스들의 집합.

이 디바이스들은 컴퓨터, 서버, 모바일 장치에서 사물인터넷(IoT) 장치에 이르기까지 다양하며, 이더넷, Wi-Fi, Bluetooth와 같은 다양한 유선 또는 무선 네트워킹 기술을 통해 연결된다.

 

 

Encryption(cryptography)

 

Encryption(암호화)

 

 • 데이터를 보호하기 위한 기술. Original form(plain text/clear text)을 사람이 읽을 수 없는 ciphertext로 바꾸는 것

•Encryption algorithm(cipher)을 사용하게 된다. 암호화를 사용하기 위해 사용하는 중요한 값들을 Key라 하며 key를 통해 암호화(encryption)복호화(decryption) 과정을 거치게 된다.

 

Symmetric Encryption(대칭형 암호화)

 

•암호화와 복호화 과정에서 동일한 key를 사용하는 것이다.

•대칭형 암호화의 경우, shared secret을 사용한다.

대칭형 암호화

• Encryption Algorithms
- Advanced Encryption Standard(AES)
- Data Encryption Standard(DES)

• Applications
- File and Disk encryption
- Database encryption
- Payment Transactions(POS systems and ATMs)
→ 공통점: 암호화와 복호화를 하는 주체가 명확하다. 즉, 한정된 사용자들이 시스템에 접근한다.

 

Symmetric Encryption: Key Distribution
대칭 키를 참여하는 피어 간에 교환하는 방법
• 물리적으로 안전한 채널: USB 플래시 드라이브
디피-헬만 알고리즘: 수학적 접근 방식 (Man-in-the-Middle 공격에 취약)
• 키 관리 인프라(KMI): 신뢰할 수 있는 제3자

 

Asymmetric Encryption(비대칭형 암호화)

 

•Asymmetric key encryption(= public key encryption). 데이터를 암호화, 복호화할 때 쌍으로 된 두 개의 key를 사용한다.

•암호화 키(public key)와 복호화 키(private key)는 수학적으로 연결되어 있다.

 

Asymmetric Encryption: Keys

 

•Public Key: 공공 정보. 공개하는 키를 의미한다.

- public key를 통해서 암호화가 된 메시지는 반드시 private key를 통해서 복호화가 가능하다.

 

•Private Key: 비밀 정보. 공개되어서는 안 되는 키를 의미한다.

- private key를 통해서 암호화가 된 메시지는 반드시 public key를 통해서 복호화가 가능하다.

 

Asymmetric Encryption: Encryption

 

•암호화와 복호화 과정 모두에서 사용되는 key는 기본적으로 수신자(recipient)의 key이다.

Example)

Alice → Bob: Bob's public (encryption) and private (decryption) keys

Bob → Alice: Alice's public and private keys

 

Asymmetric Encryption: Digital Signature(전자 서명)

 

암호화와 복호화 과정 모두에서 사용되는 key는 기본적으로 송신자(sender)의 key이다.

Example)

Alice → Bob: Alice's private (encryption) and public (decryption) keys

Bob → Alice: Bob's public and private keys

 

Asymmetric Encryption: PKI

 

•Public Key Infrastructure(PKI)

 

Symmetric vs. Asymmetric
• Symmetric Encryption
- Pros: 빠르고 효율적인 알고리즘이다.
- Cons: 키를 교환/관리하는 과정에서 어려움이 따른다.

• Asymmetric Encryption
- Pros: 더 안전하며 키 관리가 용이하다.
- Cons: 느리고 비효율적이다(PKI와 같은 3rd party authority가 필요한 경우).

 

 

Hashing(One-way Encryption)

 

•어떠한 길이의 input을 hash라는 과정에 넣는다면 항상 fixed-size string(고정된 길이)의 output이 나온다.

•이 output은 hash value, hash code, hash라고 부른다.

•input에서 output을 만드는 변환 과정에 사용되는 함수들을 hash function, 혹은 message digest function이라 부른다(e.g., SHA-256, MD5).

 

Hashing: Properties

 

① Deterministic: 동일한 input을 넣으면 그 결과값(hash value)은 항상 동일해야 한다.

② Fast Computation: O(1)의 계산 속도로 결과를 도출한다.

③ Pre-image Resistance: 특정한 hash value(변환된 값)을 알고 있을 때, 이를 통해 원본의 값을 추측하는 것은 불가능하다.

④ Avalanche Effect: 주어지는 input의 값이 조금이라도 바뀔 시, 그 결과값은 완전히 다른 string이 나오게 된다.

⑤ Collision Resistance: 서로 다른 input에 대해서 동일한 hash value를 갖는 것이고, 이를 최소화시키는 것이 hash의 특징이기도 하다.

⑥ Uniform Distrubution: hash의 결과로부터 나오는 space의 결과값의 분포는 uniform distribution을 따르게 된다.

 

Hashing: Examples
1) Data Integrity Verification(데이터의 무결성 검증)
데이터의 변경 여부를 체크

•예를 들어, 파일을 다운로드한 후, 파일의 해시를 신뢰할 수 있는 소스와 대조하여 파일이 손상되거나 변조되지 않았는지 확인할 수 있다.

2) Password Storage
•대부분의 시스템은 비밀번호를 평문으로 저장하는 대신 해시된 버전을 저장한다.
이렇게 하면 저장소가 손상되더라도 실제 비밀번호를 쉽게 복구할 수 없다.

3) Cryptography & Digital Signatures
해시 함수는 암호화 알고리즘과 함께 작동하여 디지털 서명에 고유성을 제공한다.
해시 함수는 메시지의 요약본을 생성하여 이를 메시지에 안전하게 첨부할 수 있다.

4) Data Retrieval
해시 함수는 해시 테이블과 같은 데이터 구조에서 사용되며, 이는 데이터베이스 인덱싱에서 빠른 데이터 검색을 위해 중요하다.

5) Blockchain & Cryptocurrencies
블록체인은 해시 함수를 사용하여 각 블록에 고유 식별자를 생성하고, 블록 체인 내 블록 간의 연결을 안전하게 한다.
•이전 블록에 대한 해시값을 다음 블록이 가지며, 해시를 original로 돌리지 않은 이상 이전 블록을 수정하는 것은 거의 불가능하다.

 

 

Encrypted Network

 

Network Protocol

여러 개의 디바이스들이 존재할 때, 이들이 통신하기 위해서 어떠한 룰과 컨벤션들을 사용할 지 정해 놓은 것.

이는 두 개 이상의 장치가 네트워크를 통해 정보를 성공적으로 전송하기 위해 준수해야 하는 프로세스, 요구 사항, 데이터 형식을 포함한다.

 

Network Protocol: OSI 7 layers

 

Network Protocol: Problems

 

Old-fashioned protocols(e.g., HTTP, FTP, Telnet, etc.)는 충분히 안전하지 않다.

•전송되는 데이터에 대해 암호화를 제공하지 않는다.

•여러 사이버 공격에 대해 취약하다.

 

Man-in-the-Middle(MITM)

네트워크 트래픽이 암호화되지 않으면 공격자가 통신을 가로채거나 조작할 수 있다.
공격자는 통신하는 두 당사자 간의 데이터를 관찰하고 잠재적으로 변경할 수 있다.
예를 들어, login credential개인 정보가 암호화되지 않은 HTTP 세션을 통해 노출될 수 있다.

 

Packet Sniffing

이 유형의 사이버 도청(cyber eavesdropping)은 네트워크를 통해 이동하는 데이터 패킷을 캡처하는 것을 포함한다.

암호화되지 않은 패킷은 스니핑될 때 공격자에게 민감한 정보를 제공할 수 있다.

 

DNS Spoofing (DNS Manipulation)

DNS 쿼리가 암호화되지 않으면 공격자가 위조된 DNS 응답으로 사용자를 악성 사이트로 리디렉션할 수 있습니다.
이는 인증 자격 증명 도용(theft of authentication credentials)이나 악성 소프트웨어 배포로 이어질 수 있습니다.

 

Session Hijacking

공격자는 암호화되지 않은 쿠키나 세션 토큰을 가로채어 사용자의 세션을 탈취하고 그들의 권한에 접근한다(공공 와이파이에서).

 

Solutions: Encrypted Protocols

•Encryption & Authentication

•데이터 암호화를 지원하는 수많은 네트워크 프로토콜이 존재한다.

• HTTP → HTTPS (HTTP + SSL/TLS)
• Telnet → SSH
• FTP → SFTP (FTP over SSH) / FTPS (FTP + SSL/TLS)
• SMTP → SMTPS with STARTTLS (SMTP + SSL/TLS)
• DNS → DNSSec

 

 

Firewall & VPN
Firewall

방화벽은 네트워크 간의 관문 역할을 하며, 일반적으로 내부 네트워크와 인터넷 사이에 위치한다.

미리 정의된 규칙 세트를 기반으로 네트워크 트래픽을 제어한다.

이 규칙은 IP 주소, 포트 번호, 프로토콜 등의 기준에 따라 허용되는 트래픽과 차단되는 트래픽을 명시할 수 있으며, 내부 및 외부 트래픽의 보안을 위해 사용된다.

 

Firewall: Example (Packet Filtering)

Packet Filtering Firewall (1st gen)

• 패킷 필터링 방화벽은 패킷의 헤더 정보를 검사하고, 소스 주소와 포트를 확인한 후에 목적지 주소와 포트에 대한 접근을 허용할지 여부를 결정한다.
•OSI Layers: Layer 3(Network Layer), Layer 4(Transport Layer)
이 방화벽은 보통 하위 계층에서 작동하며 비교적 빠르고 기존 애플리케이션과 쉽게 통합될 수 있다.
하드웨어에 의존하지 않지만 강력한 로깅 기능이나 사용자 인증을 기대하기는 어렵다.
•이 방화벽은 연결 상태를 고려하지 않는다.

 

Statefull Firewall (2nd gen)

• 패킷 필터링 방화벽은 빠르지만 많은 규칙이 있는 경우 모든 들어오는 패킷과 나가는 패킷을 조사해야 하므로 큰 부담이 될 수 있다.
• 상태 기반 방화벽은 트래픽의 "session"을 모니터링한다(타임아웃 포함).
•"context(상황)"에 기반하여 트래픽을 필터링한다(TCP 핸드셰이크 → 허용된 트래픽).

"세션" 정보를 유지하기 때문에, 상태 기반 방화벽은 패킷 필터링 방화벽보다 효율적이다.
여전히 IP와 포트에 따라 필터링을 수행한다.

OSI Layers: Layer 3 (Network Layer), Layer 4 (Transport Layer)

 

(Web) Application Firewall (3rd gen)
•패킷 필터링과 상태 기반 방화벽의 한계
- 일반적으로 서비스 제공자들은 모든 서비스 관련 포트를 허용한다(e.g., 80, 8080 - HTTP, 443 - HTTPS).
- 이 방화벽들은 패킷을 깊이 있는 검사를 수행하지 않고, 네트워크(IP)전송(포트) 계층 정보만을 사용하여 필터링 결정을 한다.
- 고급 공격자는 여전히 IP 주소와 포트를 위조하고 악성 페이로드를 숨기는 등의 공격을 수행할 수 있다(e.g., SQL injection).


응용 프로그램 방화벽은 패킷을 검사하고 다음과 같은 응용 프로그램 계층 수준의 공격으로부터 시스템을 보호한다.

- SQL injection
- Cookie manipulation
- Cross-Site Scripting (XSS)

- etc.

 

Proxy Firewall
•Proxy
프록시는 종단 사용자와 그들이 브라우징하는 웹사이트를 분리하는 중간 서버이다.


프록시 방화벽은 네트워크/전송 계층과 응용 프로그램 계층(깊은 검사) 모두를 검사한다.
•HTTP, FTP, SMTP 등 다양한 네트워크 프로토콜을 지원한다.
•클라이언트-프록시 및 프록시-서버 두 가지 연결을 설정한다.

•프록시 방화벽의 장점
- Deep Inspections (application level)

- User authentication
- Caching
- Various protocol support
- Session management

•프록시 방화벽의 단점
- Performance issue (due to deep inspection)

- Complicated structure
- False positives
- Encrypted traffic
- High costs

 

Proxy vs. VPN

• VPN(가상 사설 네트워크)은 프록시와 유사한 역할을 한다.
• VPN은 클라이언트와 서버 간에 암호화된 연결을 설정하여 트래픽을 이 보호된 터널을 통해 라우팅하여 안전하고 개인적인 통신을 보장한다.

 

Proxy vs. VPN Comparison
• Security
- VPN은 일반적으로 프록시보다 더 견고한 보안을 제공한다.
- VPN은 전체 인터넷 연결을 암호화하여 중간자 공격과 데이터 도청을 방지하는 데 효과적이다.
- VPN은 사용자 개인 정보의 보호를 더 잘 제공한다(no logs policy).

• Reliability

- 일반적으로 VPN 연결은 더 안정적이다.
- 프록시 연결은 때때로 문제가 발생할 수 있다.

• Speed
- 프록시는 트래픽의 일부만 처리하기 때문에 일반적으로 VPN보다 더 빠를 수 있다.
- VPN은 트래픽을 더 잘 암호화하기 때문에 성능이 낮아질 수 있다.

• Usage

- VPN은 데이터 보호가 중요한 비즈니스 환경이나 민감한 활동에 적합하다.
- 프록시는 IP 주소를 일시적으로 변경하거나 지역 제한을 우회하는 등의 가벼운 사용에 적합하다.