Skip to content

Commit

Permalink
2024-02-23 ~ 2024-02-25
Browse files Browse the repository at this point in the history
  • Loading branch information
Lim committed Feb 25, 2024
1 parent c39c1f1 commit 4514395
Show file tree
Hide file tree
Showing 3 changed files with 188 additions and 0 deletions.
75 changes: 75 additions & 0 deletions docs/sk-lim19f/2024-02-23.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
## 9.2 보안 솔루션의 종류

- 데이터 센터에서 보안장비를 디자인할 때 DDoS - 방화벽 - IPS - WAF 형태와 같이 여러 단계로 공격을 막도록 인라인 상에 여러 장비를 배치
- 모든 공격을 장비 한 대로는 방어할 수 없으므로 여러 장비의 기능으로 단계적으로 방어

### 9.2.1 DDoS 방어 장비

- DoS 공격은 'Denial of Service'공격의 약자로, 다양한 방법으로 공격 목표에 서비스 부하를 가해 정상적인 서비스를 방해하는 공격 기법
- Dos 공격은 적이 공격 출발지에서 공격하는 것이 일반적이었으므로 비교적 탐지가 쉽고 짧은 시간 안에 탐지만 할 수 있다면 IP 주소 기반으로 충분히 방어할 수 있음
- 이런 탐지를 회피하고 더 짧은 시간 안에 공격 성과를 내기 위해 다수의 봇을 이용해 분산 공격을 수행하는 DDoS 공격 기법이 등장
- DDoS 장비는 데이터 센터 네트워크 내부와 외부의 경계에서 공격을 방어하는데 이것은 볼류메트릭 공격(Volumetric Attack)을 우선 막기 위함
- 볼류메트릭 공격은 회선 사용량이나 그 이상의 트래픽을 과도하게 발생시켜 회선 사용을 방해하는 공격이므로 회선을 공급해주는 ISP나 네트워크 ISP와 연결되는 데이터 센터 네트워크의 가장 바깥쪽에 위치시켜 이 공격을 완화해야 함

### 9.2.2 방화벽

- 방화벽은 4계층에서 동작하는 패킷 필터링 장비
- 3,4계층 정보를 기반으로 정책을 세울 수 있고 해당 정책과 매치되는 패킷이 방화벽을 통과하면 그 패킷을 허용하거나 거부할 수 있음
- 일반적으로 방화벽은 DDoS 방어 장비 뒤에 놓는 네트워크 보안 장비
- 3,4계층에서 동작하므로 다른 보안 장비보다 비교적 간단히 동작하고 성능도 우수

### 9.2.3. IDS, IPS

- IDS(Intrusion Detection System; 침입 탐지 시스템)와 IPS(Instrusion Prevention System; 침입 방지 시스템)는 방화벽에서 방어할 수 없는 다양한 애플리케이션 공격을 방어하는 장비
- 기존에는 IDS와 IPS 장비를 구분했지만 최근에는 애플리케이션 공격을 방어하는 장비를 IPS로 통칭
- IDS와 IPS는 사전에 공격 데이터베이스를 제조사나 위협 인텔리전스 서비스 업체로부터 받음
- 이후 IDS와 IPS 장비에 인입된 패킷이 보유한 공격 데이터베이스에 해당하는 공격일 때, 차단하거나 모니터링한 후 관리자에게 알람을 보내 공격 시도를 알림
- 기존에는 공격인 것만 골라 방어하는 블랙리스트 기반의 방어 방식만 제공했지만 프로파일링 기반의 방어 기법이 IPS 장비에 적용되고 애플리케이션을 골라 방어할 수 있는 애플리케이션 컨트롤 기능이 추가되면서 화이트리스트 기반의 방어 기법도 IPS 장비에 적용할 수 있게 되었음

### 9.2.4 WAF

- WAF(Web Application Firewall)는 웹 서버를 보호하는 전용 보안 장비로 HTTP, HTTPS처럼 웹 서버에서 동작하는 웹 프로토콜의 공격을 방어
- IDS/IPS 장비보다 범용성이 떨어지지만 웹 프로토콜에 대해서는 더 세밀히 방어할 수 있음
- WAF는 IPS에서 방어할 수 없는 회피 공격(Evasion Attack)을 방어할 수 있음
- IPS는 데이터를 조합하지 않고 처리하지만 WAF는 프록시 서버와 같이 패킷을 데이터 형태로 조합해 처리함
- 예를 들어 공격 트래픽을 방어만 하지 않고 공격자에게 통보하거나 민감한 데이터가 유출될 때, 그 정보만 제거해 보내줄 수 있음
- 반면 IPS는 공격을 차단한 후 그에 대한 통보가 어렵고 전체 공격 내용에 대한 차단만 가능

### 9.2.5 샌드박스

- 기존에는 해커가 원하는 목적지에 직접 공격을 수행
- 자신을 숨기기 위해 경유지를 통한 공격 외에는 직접적인 공격이 가장 쉬운 방법이었음
- 해커들은 보안장비를 우회하기 위해 기존과 다른 방향의 공격을 개발하게 됨
- 직접적인 공격을 원하는 서버에 접근하지 않고 악성코드를 관리자 PC에 우회적으로 심고 이 악성 코드를 이용해 관리자 PC를 컨트롤하는 방식으로 공격 목표가 변함
- 이후 이 PC들을 외부에서 컨트롤하도록 C&C(Command & Control) 서버를 만들어놓고 감염 PC들이 이 C&C 서버로 연결하도록 조작
- 이때 기존 방화벽에서는 내부 사용자가 외부 서버로 통신을 정상적으로 시도한 것으로 보이므로 이 공격을 검출하거나 방어할 수 없음
- 이 공격들이 발전해 현재 APT(Advanced Persistent Threat; 지능형 지속 공격)와 ATA(Advanced Target Attack; 지능형 표적 공격)가 되었음
- 샌드박스는 APT의 공격을 방어하는 대표적인 장비로 악성 코드를 샌드박스 시스템 안에서 직접 실행시킴
- 가상 운영체제 안에서 각종 파일을 직접 실행시키고 그 행동을 모니터링해 그 파일들의 악성 코드 여부를 판별하는 방법을 이용

### 9.2.6 NAC(Network Access Control)

- NAC은 네트워크에 접속하는 장치들을 제어하기 위해 개발
- 네트워크에 접속할 때 인가된 사용자만 내부망에 접속할 수 있고 인가받기 전이나 승인에 실패한 사용자는 접속할 수 없도록 제어하는 기술
- 내부 PC를 아무리 잘 관리하고 보안 패치를 신속히 수행하더라고 외부 PC가 내부망에 접속해 보안사고를 일으키거나 악성 코드를 전파하는 문제점들이 많이 발생하자 이것을 해결하기 위해 개발

### 9.2.7 IP 제어

- IP 제어 솔루션은 겉으로 보면 NAC 솔루션과 공통적인 기술을 이용하거나 기능이 비슷한 경우도 많음
- 하지만 IP 제어 솔루션은 국내에서 많이 사용하는 기술로 NAC과 다른 목적으로 개발
- 보안사고 추적이 쉽도록 고정 IP 사용 권고 지침이 금융권에 내려오면서 IP를 할당하고 추적하는 솔루션이 필요해졌고 할당된 IP를 관리하고 나아가 정확히 의도된 IP 할당이 아니면 정상적으로 네트워크를 사용하지 못하게 하는 기능이 필요

### 9.2.8 접근 통제

- 운영자가 서버, 데이터베이스, 네트워크 장비에 직접 접근해 관리하면 각 시스템에서 사용자에 대한 권한을 관리해야 하는데 문제가 발생했을 때, 관리자가 작업 내용을 추적하고 감사하기 어려움
- 이 문제를 해결하기 위해 서버나 데이터베이스에 대한 직접적인 접근을 막고 작업 추적 및 감사를 할 수 있는 접근 통제 솔루션이 개발
- 접근 통제 솔루션도 에이전트 기반, 에이전트리스, 구현 방법에 따라 다양하게 분류할 수 있지만 대부분 배스천 호스트 기반으로 구현
- 서버 접근을 위한 모든 통신은 배스천 호스트를 통해서만 가능
- 서버 호스트의 방화벽에 배스천 호스트에서 출발한 통신만 허용하고 다른 통신은 모두 방어하도록 설정하고 배스천 호스트의 보안, 감사를 높이면 보안을 강화할 수 있음

### 9.2.9 VPN

- 사용자 기반의 VPN 서비스를 제공해주는 장비를 VPN 장비라고 함
- 현재는 대부분 방화벽이나 라우터 장비에 VPN 기능이 포함
- 가장 많이 사용하는 VPN은 IPSEC과 SSL
- IPSEC은 주로 네트워크 연결용으로 쓰이고 SSLVPN은 사용자가 내부 네트워크에 연결할 때 주로 쓰임
67 changes: 67 additions & 0 deletions docs/sk-lim19f/2024-02-24.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
## 9.3 방화벽

### 9.3.1 방화벽의 정의

- 네트워크 중간에 위치해 해당 장비를 통과하는 트래픽을 사전에 주어진 정책 조건에 맞추어 허용하거나 차단하는 장비가 방화벽
- 네트워크에서 보안을 제공하는 장비를 넓은 의미에서 모두 방화벽으로 볼 수 있지만 앞에서 다루었듯이 많은 네트워크 보안 장비들이 있고 각 장비마다 목적과 동작 방식이 다름
- 일반적으로 방화벽은 네트워크 3, 4계층에서 동작하며 세션을 인지하는 상태 기반 엔진(Stateful Packet Inspection, SPI)으로 동작

### 9.3.2 초기 방화벽

- 방화벽은 상태 기반 엔진(SPI)을 가지고 있어야 함
- 초기 방화벽에서는 패킷의 인과 관계를 확인하지 못하고 장비에 등록된 정책만으로 단순히 패킷을 필터링
- 패킷의 세션 정보나 방향성과 상관없이 순수하게 방화벽에 설정된 정책에 따라 동작하므로 이런 초기 방화벽을 스테이트리스 또는 패킷 필터 방화벽이라고 함
- 패킷이 장비에 인입되면 해당 패킷이 방화벽에 설정된 정책에 일치되는 것이 있는지 확인
- 이때 참고하는 조건을 5-튜플(5-Tuple)이라고 함
- 5-튜플은 패킷의 3, 4계층 헤더 중 SourceIP, Destination IP, Protocol No, Source Port, Destination Port 5가지 주요 필드를 뜻함
- 방화벽에 일치된 정책이 있으면 해당 정책에 따라 그 패킷을 허용하거나 차단
- 패킷 필터링 방화벽은 지정된 구간에서 간단한 정책을 정의할 때는 큰 문제가 없었지만 인터넷 통신과 같이 불특정 다수 기반의 정책을 정의할 때는 룰셋이 복잡해지고 보안이 약화되는 문제가 있음
- 또한, 패킷 단위의 필터링이므로 5-튜플 외의 3, 4계층 헤더를 변조해 공격하면 적절한 방어가 불가능

### 9.3.3 현대적 방화벽의 등장(SPI 엔진)

- 기존 패킷 필터 방화벽이 패킷의 상태값 없이 순수하게 정책만으로 제어하던 한계를 극복하기 위해 개발된 것이 상태 기반 방화벽
- 내부 사용자가 외부의 특정 웹페이지에 접속할 때 3 웨이 핸드셰이크를 거친 후 HTTP 요청과 응답 과정을 거침
- 패킷 필터 방화벽에서 이런 트래픽을 처리하기 위해 정책을 선언하려면 목적지가 불특정 다수의 웹이 될 수 있으므로 외부로 나가는 목적지에 대해서는 모든 패킷을 허용
- 이렇게 정책을 설정하면 내부에서 외부 웹사이트로 나갈 수는 있지만 외부에서 내부로 들어오는 응답에 대한 정책이 없으므로 정상적인 통신이 되지 않음
- 응답에 대한 정책을 설정해야 한다면 외부의 웹사이트는 불특정이므로 출발지가 모든 IP여야 하고 목적지 서비스 포트는 내부에서 외부 호출 시 랜덤 포트를 지정하므로 마찬가지로 모든 포트가 되어야 함
- 하지만 이런 정책 설정은 보안상 매우 취약하므로 설정하면 안 됨
- 이런 문제 때문에 패킷 상태를 인지해 패킷의 인과 관계를 파악할 수 있는 상태 기반 SPI 엔진이 나오게 됨
- SPI 엔진은 패킷의 인과 관계와 방향성을 인지해 정책을 적용할 수 있어 내부 네트워크에서 인터넷으로 통신할 때 유용하게 사용
- 내부에서 외부 인터넷으로 통신을 시도해 받은 응답과 외부에서 내부로 직접 들어오려는 패킷을 구분 가능

### 9.3.4 방화벽 동작 방식

- 방화벽이 패킷을 처리하는 순서
1. 장비에 패킷이 들어오면 우선 세션 상태 테이블을 확인
2. 조건에 맞는 세션 정보가 세션 테이블에 있을 때, 포워딩 테이블을 확인
3. 조건에 맞는 세션 정보가 세션 테이블에 없을 때, 방화벽 정책을 확인
4. 방화벽 정책은 맨 위의 정책부터 확인해 최종 정책까지 확인한 후 없을 때 암시적인 거부(Implicit Denial) 규칙을 참고해 차단
5. 허용 규칙이 있으면 내용을 세션 테이블에 적어 넣음
6. 포워딩 테이블을 확인
7. 조건에 맞는 정보가 포워딩 테이블에 있을 때, 적절한 인터페이스로 패킷을 포워딩
8. 조건에 맞는 정보가 포워딩 테이블에 없을 때, 패킷을 폐기
- SPI 엔진을 가진 방화벽은 세션 인지 기능이 있어 단순히 5-튜플 조건만 확인하는 것이 아니라 OSI 3, 4계층의 세부적인 필드도 함께 확인
- TCP 컨트롤 플래그에 따라 동작 방식이 변하거나 시퀀스와 ACK 번호가 갑자기 변경되는 것을 인지해 세션 탈취 공격을 일부 방어할 수 있음
- 이것을 TCP Anti-Replay 기능이라고 함

### 9.3.5 ALG(Application Layer Gateway)

- 방화벽은 패킷 필터 엔진보다 헤더 정보를 상세히 확인하고 세션을 인지할 수 있지만 애플리케이션 헤더 정보를 인지할 수 없음
- 세션 방화벽 등장 이전에 개발된 고대 프로토콜은 방화벽과 같은 세션 장비를 고려하지 못해 통신 중간에 방화벽이 있으면 정상적인 통신이 불가능한 경우가 발생
- 가장 대표적인 프로토콜은 FTP
- FTP는 컨트롤 프로토콜과 데이터 프로토콜이 분리되어 동작
- FTP는 컨트롤 프로토콜과 데이터 프로토콜이 반대로 세션을 맺으므로 방화벽이 FTP 프로토콜을 이해해 동작하지 않으면 정상적인 서비스가 불가능
- 이 문제를 해결하기 위해 FTP 통신 방식을 패시브 모드로 변경하면 되지만 패시브 모드 자체를 제공하지 못하는 컴포넌트가 있을 수 있고 이미 개발된 애플리케이션 변경이 불가능한 경우도 있음
- 그래서 방화벽에서 FTP 액티브 모드를 통과시키기 위해 애플리케이션 프로토콜을 확인하고 필요에 따라 세션을 인지해 포트를 자동으로 열어줌
- 이것을 ALG 기능이라고 함
- 일반적으로 ALG 기능은 PAT(Port Address Translation) 기능이 동작하는 방화벽에서 PAT를 정상적으로 통과하지 못하는 프로토콜들을 자동으로 인지해 애플리케이션 정보를 변경해주거나 세션 테이블을 만들어주는 작업을 수행
- FTP ALG 기능이 동작하려면 패킷이 방화벽을 지나갈 때, 방화벽이나 해당 패킷이 참조되는 정책에 ALG 기능이 활성화 되어 있어야 함
- ALG가 편리한 기능이고 많은 중요한 프로토콜을 지원하지만 모든 프로토콜에 맞추어 개발될 수는 없으므로 ALG가 프로토콜이 방화벽을 통과하지 못하는 문제의 완벽한 해결책은 아님
- 최근 대부분의 애플리케이션이 이런 방화벽이나 NAT를 고려해 개발되고 있고 STUN(Session Traversal Utilities for NAT)과 같은 홀 펀칭 기술들도 많이 발전해 오래된 프로토콜을 제외하면 ALG 기능을 사용하지 않는 추세

### 9.3.6 방화벽의 한계

- 방화벽이 많은 곳에서 사용되자 기존 공격 방식으로는 해킹이 어려워져 다양한 방법의 새로운 공격 방식이 생겨남
- 공격 목표가 시스템이나 계정 탈취에서 서비스 중단 쪽으로 바뀌고 DDoS 공격이 새로운 트렌드가 되었음
- 방화벽을 우회하는 다양한 공격이 개발되고 특히 대규모 웜 공격으로 인터넷 서비스가 마비되면서 방화벽의 한계가 명확히 드러남
46 changes: 46 additions & 0 deletions docs/sk-lim19f/2024-02-25.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
## 9.4 IPS, IDS

- 방화벽은 네트워크 보안을 위해 기본적으로 구축되어야 하는 필수 솔루션이지만 3, 4계층 방어만 가능하므로 애플리케이션 계층에서 이루어지는 공격은 방어할 수 없음
- 애플레케이션 계층에서 이루어지는 다양한 공격을 탐지, 방어하기 위해 IDS와 IPS가 개발

### 9.4.1 IPS, IDS의 정의

- IDS란 Intrusion Detection System(침입 탐지 시스템)의 약자
- 공격자가 시스템을 해킹할 때 탐지를 목적으로 개발된 시스템
- '방어'보다 '탐지'에 초점을 맞추어 개발되어 공격에 직접 개입하거나 방어하는 것이 아니라 트래픽을 복제해 검토하고 침입 여부를 판별
- IPS는 Intrusion Prevention System(침입 방지 시스템)의 약자
- 탐지에 초점을 맞춘 IDS와 달리 공격이 발견되면 직접 차단하는 능력을 갖춘 장비
- 트래픽을 복제해 검토만 하는것이 아니라 트래픽이 지나가는 인라인 상에 장비를 배치
- IDS와 IPS는 적극적으로 통신에 개입해 유해 트래픽을 차단, 방어하는 것 외에도 회피 공격을 차단하기 위해 세션 이해 가능 여부, 능동적 방어를 위한 어노말리 등 다양한 기능으로 구분
- IPS는 호스트 기반 IPS와 네트워크 기반 IPS가 있음
- 엔드포인트 보안이 강조될 때는 호스트 기반 IPS 솔루션들이 많이 소개되고 네트워크 보안이 강조될 때는 네트워크 IPS 장비들이 많아짐
- 일반적으로 IPS라고 부르는 시스템은 네트워크 기반 NIPS

### 9.4.2 IPS, IDS의 동작 방식

- 기본적으로 IPS는 공격 데이터베이스(Signature)를 사용한 패턴 매칭 방식으로 운영되지만 프로토콜 어노말리, 프로파일 어노말리 등의 다른 기법으로 공격을 방어

#### 9.4.2.1 패턴 매칭 방식

- 기존 공격이나 취약점을 통해 공격 방식에 대한 데이터베이스를 습득하고 그 최신 내용을 유지하다가 공격을 파악하는 기술을 패턴 방식, 시그너치 방식, 데이터베이스 방식 방어라고 함

#### 9.4.2.2 어노말리 공격 방식

- 기존 블랙리스트 기반의 방어 방식인 패턴 기반 방어의 한계 때문에 IPS에서도 화이트리스트 기반의 방어 기법이 개발되었는데 바로 어노말리
- 기존 패턴 기반의 공격 방어는 분명히 공격인 것만 찾아내 방어했다면 어노말리 기법은 분명한 공격으로 파악되지 않더라고 특정 기준 이상의 행위를 이상하다고 판단하고 방어
- 프로파일 어노말리
- 프로파일 어노말리는 평소 관리자가 정해놓은 기준이나 IPS 장비가 모니터링해 정해진 기준과 다른 행위가 일어나면 공격으로 판단
- 프린트 서버에 FTP 패킷이 전송되는 경우, 평소 1MB 이하의 트래픽이 발생하던 시스템에서 갑자기 수십 MB 이상의 트래픽이 발생한 경우처럼 평소와 다른 행위에 초점을 맞춤
- 이 기능은 동적 프로파일 기능이 강화되면서 향후 DDoS 방어 장비로 진화
- 프로토콜 어노말리
- 잘 알려진 포트와 실제 통신하는 프로토콜이 다를 때, 이것을 파악해 적절히 제어하는 기법을 프로토콜 어노말리라고 함

### 9.4.3 IPS, IDS의 한계와 극복(NGIPS)

- IPS와 IDS도 방화벽과 같이 네트워크 보안의 필수 장비가 되었지만 IPS는 근본적인 문제가 있음
- 네트워크상에서 빠른 속도로 애플리케이션 레벨까지 확인하기 위해 플로 엔진을 사용
- 플로 엔진은 패킷을 모아 데이터 형태로 변환해 검사하는 것이 아니라 패킷이 흘러가는 상황을 모니터링해 공격을 탐지하므로 IPS 장비를 비교적 쉽게 우회할 수 있음
- IPS는 오탐이 많이 발생하므로 초기에 설치된 환경에 맞는 튜닝작업을 오래 해주어야 하며 별도의 관제 인력이 장비를 모니터링하고 환경에 맞는 최적화 작업을 지속적으로 수행해주어야 함
- 너무 많은 오탐과 알람 때문에 장비가 공격을 정상적으로 방어하지 못하거나 정상적인 서비스가 차단될 수 있음
- 최근 기존 IPS의 기능을 향상시켜 문제점을 해결한 NGIPS(Next Generation IPS) 개념의 장비가 출시
- 애플리케이션을 인지하거나 다양한 시스템과 연동할 수 있고 특히 APT 공격을 방어하기 위한 일부 기능이 탑재되어 있거나 다양한 외부 시스템과 연동할 수 있는 NGIPS 장비들이 많이 소개되고 있음

0 comments on commit 4514395

Please sign in to comment.