728x90
- 방화벽은 어떤 패킷이 네트워크를 통과할 수 있는지를 결정한다. - packet filtering
- 어떤 패킷이 통과할 수 있는지의 여부는 망 보안 정책에 따라 결정된다.
방화벽 유형
원래 다음과 같은 두 가지 유형의 패킷 필터가 존재한다.
- 패킷 필터
- 네트워크와 수송 계층의 정보를 조사
- Stateful 패킷 필터
- 패킷 필터 + TCP 연결 상태를 조사
패킷 필터 (Packet Filter)
네트워크와 수송 계층의 헤더 정보를 사용
- IP 소스/목적지 주소
- IP 패킷의 Protocol Type
- TCP/UDP의 소스/목적지 포트 번호
- TCP Flag bits (SYN, ACK, etc.)
- ICMP 메시지 유형(message type)
- 네트워크 입구/출구에서의 기타 규칙
( + ) 장점
- 빠른 처리 속도
( - ) 단점
- 각 패킷은 다른 패킷과 독립해서 별도로 처리된다.
- TCP연결을볼수없다.
- 응용데이터를볼수없다.
- 따라서, 바이러스가 포함된 패킷이 통과할 수 있다.
패킷 필터링
Action | Source IP | Dest IP | Source Port | protocol | Dest Port | Flag Bits |
Allow | 202.30.107.0/24 | Outside | > 1024 | TCP | 80 | Any |
Allow | Outside | 202.30.107.0/24 | 80 | TCP | > 1023 | ACK |
Deny | All | All | All | All | All |
( Access Control Lists (ACLs)에 의해 구성 )
- 내부망의 주소: 202.30.107.0/24
- 내부 호스트는 외부망의 웹 서버에 접속을 허용
- 이외의 모든 트래픽은 차단
TCP ACK 스캔
공격자는 이와 같이 하여 방화벽을 통과할 수 있는 포트 번호를 스캔할 수 있다.
- 공격자는 3-way handshake 없이 ACK 비트를 세팅하고 패킷을 보낸다.
- 이것은 TCP/IP 프로토콜을 위반하는 것이다.
- ACK 패킷은 패킷 필터를 통과한다.
- 현재 연결 설정이 진행 중인 것으로 보여진다.
- 이 패킷을 받은 수신 프로세스는 Reset 비트를 세팅하여 보낸다.
- 공격자는 이와 같이 하여 방화벽을 통과할 수 있는 포트 번호를 스캔할 수 있다.
Stateful Packet Filter
패킷 필터에 연결 상태 정보를 추가한다.
TCP 연결과 flag 비트를 기억한다.
UDP 패킷도 기억할 수 있다. (e.g., DNS requests)
Action | Source IP | Dest IP | Source Port | protocol | Dest Port | Flag Bits | 연결조사 |
Allow | 202.30.107.0/24 | Outside | > 1024 | TCP | 80 | Any | |
Allow | Outside | 202.30.107.0/24 | 80 | TCP | > 1023 | ACK | O |
Deny | All | All | All | All | All |
Intrusion Prevention System (IPS)
- 원래 방화벽은 규범적인 용어가 아니라 서술적 용어, 즉, 이렇게 만들어야만 방화벽이라고 할 수 있다라는 것은 아니다.
- 장비회사들은 원래의 패킷 필터가 사용하는 정보 이상의 정보를 사용하여 필터링하는 장비를 만들고 여러가지 이름으로 불렀다.
- 이중 고착된 이름 중에 하나가 IPS이다.
- IPS를 포괄적으로 정의를 해 보면,
- 네트워크와 수송 계층 이상의 정보를 사용하여 필터링
- 경우에 따라서는 트래픽에서의 규칙, 특성(signature)을 사용하여 필터링
- 이런 점에서는 IDS의 기능과 중복, 즉 패킷 필터링을 하는 IDS라고 할 수도 있다.
Applicartion Gateway (Proxy)
- Application Gateway는 들어오는 (incoming) 응용 계층의 데이터를 검사한다.
- 진입을 허용하기 전에 데이터가 안전한지 확인한다.
- Proxy는 응용 프로토콜을 대신 동작하는 것을 의미한다.
- 외부망으로 (에서) 접근할 때는 반드시 proxy와 먼저 통신을 해야 한다.
- Proxy는 접근자에 대한 인증을 할 수도 있다.
- 적법한 사용자의 패킷을 받아서 외부망의 서버에 패킷을 새로 구성해서 전달한다.
- 여러 종류의 application proxy가 존재할 수 있다.
- Telnet, HTTP, FTP, email application proxy 등등
( + ) 장점
- 연결과 응용 데이터 모두를 볼 수 있다.
- 응용 계층에서 나쁜 데이터를 걸러 낼 수도 있다. (viruses, Worm macros)
( - ) 단점
- 느린 속도
예) Telnet gateway
예를 들어, 내부망의 특정 사용자만 외부망에 telnet으로 연결할 수 있도록 하고 싶다.
- 사용자의 telnet 요청은 Application gateway와 먼저 연결
- Gateway는 사용자를 인증
- 허락된 사용자일 경우 외부망의 서버와 telnet 연결
- 따라서, 두 개의 telnet 세션이 존재: gateway-to-내부 호스트, gateway-to-외부 호스트
방화벽과 심층 방어 (Defense in Depth)
- DMZ부분은 쉽게 접근하여야 한다. 그리고 빨라야 한다.
- 외부망에서 내부망 접근은 Telnet으로 연결이 된다. 속도가 느리다.
'서버 > 암호' 카테고리의 다른 글
네트워크 공격 : DoS (1) (0) | 2021.08.02 |
---|---|
Spoofing (속이기) (0) | 2021.07.29 |
Snooping (sniffing) – 정찰(탐색) (0) | 2021.07.29 |
네트워크 공격 (0) | 2021.07.29 |
ICMP 질문 메시지(Query) (0) | 2021.07.29 |