본문 바로가기
네트워크 보안

침입차단시스템(Firewall) 개념 및 구성요소

by 웹하는빡통 2020. 5. 17.

침입차단시스템접근제어목록(ACL, Access Control List)을 통해 네트워크에 전송되는

트래픽에 대한 보안 정책을 설정한다. 침입차단시스템의 기본 목적은 네크워크 사용자에게 가능한 한 투명성을 보장하면서 위험지대를 줄이고자 하는 적극적인 보안 대책을 제공하는 것이다

침입차단시스템은 기업의 네트워크 보안 정책을 지원하고 집행하는 장비이며 실제로 라우터,서버 또는 전문화된 하드웨어 장비일 수도 있는 게이트웨이 유형 중 하나임. 

방화벽은 특별한 형태의 참조모니터이다. 방화벽을 네트워크 안의 적절한 위치에 배치함으로써 제어하고자 하는 모든 네트워크 접근이 방화벽을 경유하도록 만들 수 있다.

 

방화벽의 기능 및 역할

침입차단시스템이란 내/외부 네트워크 사이에서 접근제어 정책을 구현하는 시스템을 말한다.

내부 네트워크를 보호하는 역할을 충족시키기 위해서 침입차단시스템은 여러 기능을 제공하기 위한 보안 정책을 설정해야함. 

 

방화벽의 기능 

 

1. 접근통제

침입차단시스템은 허용된 서비스와 전자 우편 서버나 공개 정보 서버와 같은 특정한 호스트를 제외하고는

외부에서 내부 네트워크에 접속하는 것을 패킷 필터링 등을 이용하여 통제하는 기능을 가지고 있다.

 

패킷 필터링은 내부 네트워크로 들어오는 패킷의 IP 주소 혹은 서비스 포트 번호 등을 분석한 후, 외부 또는 내부

네트워크에 대한 접근을 통제하는 기능을 제공한다. 

 

2. 사용자 인증

침입차단시스템은 내/외부 네트워크 사이의 접속점이기 때문에 침입차단시스템을 지나가는 트래픽에 대한 사용자들의

신분을 증명하는 기능이 필요하다. 

 

이는 ID/PWD나 공개키 인증서를 이용한 사용자에 대한 식별기능과 이를 검증하는 인증 과정으로 이루어진다.

 

3. 감사 및 로그 기능 

침입차단시스템은 모든 트래픽에 대한 접속 정보 및 네트워크 사용에 따른 유용한 통계 정보를 기록하는 감사 및 로그 기능이 있어야 한다.

 

침입차단시스템의 관리자는 사용자의 활동이나 인가되지 않은 외부로부터의 접근이나 침입 사건 등에 대한 로그 파일을 바탕으로 보안 기능과 보안 관련 데이터에 대한 안전한 보안 관리 기능을 제공해야 한다. 

 

4. 프라이버시 보호

침입차단시스템은 내부 네트워크의 정보 유출 방지, 이중 DNS(Dual Domain Name System) 기능과 프락시 기능 등을 제공함으로써 프라이버시와 관련된 정보의 노출을 막거나 정보를 공격자로부터 보호해야 한다. 

 

5. 서비스 통제

침입차단시스템은 안전하지 못하거나 위험성이 존재하는 서비스를 필터링 함으로써 내부 네트워크의 호스트가 가지고 있는 취약점을 감소시켜야 한다. 

 

6. 데이터 암호화

방화벽에서 다른 방화벽까지 전송되는 데이터를 암호화해서 보내는 것으로 보통 VPN의 기능을 이용한다. 

 

방화벽의 역할

1. 취약한 서비스로부터의 보호 

비인가된 서비스를 필터링하여 선택된 프로토콜만 방화벽 통과 가능해야함. 

 

2.집중된 보안

많은 호스트로 다양한 소프트웨어를 분산하지 않고 방화벽상에 집중적으로 탑재하면 관리의 관점에서 더욱 효율적

 

3.비밀성 향상

침입차단시스템의 보안 설정을 통하여 확장된 개인정보보호 기능을 수행

로그인 정보를 얻을 수 있는 Finger 명령어, 사이트 이름, IP 주소를 알려주는 DNS 서비스를 차단하여 개인의 시스템 사용정보 등을 보호

 

Finger: 특정 컴퓨터의 사용자 정보를 볼 수 있는 유닉스 기능 해당 명령어를 실행하면

현재 컴퓨터 시스템에 접속해 있는 사용자 로그인 유/무 판별 및 사용자 정보(이름,마지막 접속 시간, 단말회선, 단말기 위치 등)을 화면에 출력함. 

 

방화벽의 한계점.

1. 방화벽은 악성 소프트웨어 침투 방어에 한계가 있다.

방화벽은 패킷의 IP 주소와 포트 번호로 접근 제어를 하는 것이 일반적이다. 그래서 바이러스, 웜, XSS 코드 등과 같이 문서나 프로그램 내부에 포함된 악성 소프웨어를 탐지하여 방어하는데 한계를 가지고 있다. 

그 이유는 방화벽은 보통 두 네트워크 사이에 존재하며 높은 트래픽을 처리해야 하므로 데이터 내용까지 검사하면 큰 오버헤드(OverHead)가 발생하고 네트워크 대역폭에 큰 손실을 가져오기 때문이다. 

 

2. 방화벽은 악의적인 내부 사용자의 공격을 막을 수 없다.

방화벽은 보통 신뢰하지 않은 외부 네트워크로부터 신뢰하는 내부 네트워크를 보호하는 것이 주여 목적이다. 따라서 경계에 대한 보안 정책을 수행할 뿐 내부 공격자에게 보안 정책을 적용할 수 없다. 

 

3. 방화벽은 자신을 통과하지 않은 통신에 대한 제어 역시 불가능하다. 

만약 내부 사용자가 방화벽을 통과하는 통신 선로가 아닌 무선(3G, LTE등)이나 사설 통신 선로를 이용해 통신을 한다면 공격자는 방화벽을 우회하여 내부 네트워크로 접속할 수 있다. 

내부 사용자 역시 방화벽을 우회하여 외부로 허용되는 않은 접속을 시도 할 수 있다. 

 

4. 방화벽은 전혀 새로운 형태의 공격을 막을 수 없다. 

방화벽은 예측된 접속에 대한 규칙을 세우고 이에 대해서만 방어하기 때문에 새로운 형태의 공격에는 

능동적으로 적용할 수 없다. 

 

방화벽 장/단점. 

장점: 취약한 서비스 보호 기능

       호스트 시스템 접근제어 기능

       로그와 통계자료 유지

       내부 네트워크의 모든 자원에 일관된 보안 정책 적용 기능

 

단점: 제한된 서비스 제공

       우회하는 트래픽은 제어 불가

       악의적인 내부 사용자로부터 시스템 보호 곤란

       바이러스 및 새로운 형태의 위험에 대한 방어 곤란 

 

방화벽 설계 원칙 및 설계 시 고려사항

1. 어떤 자원울 보호할 것이며 어떤 위협이 존재하는가?

2. 어떤 사용자를 인증할 것인가?

3. 보호해야 할 자원의 중요도는 어느 정도인가? 

 

방화벽 운영 정책

Deny All 정책: 모든 트래픽을 먼저 차단 후 허용해야 할 트래픽을 선별적으로 허용하는 방식

Permit All 정책: 모든 트래픽을 허용하고 특정 트래픽만을 선별 적으로 차단하는 방식. 

 

침입차단시스템의 유형 분류

1. 침입차단시스템은 크게 네트워크 계층(3계층), 전송 계층(4계층)에서 수행되는 패킷 필터링 시스템과

   응용 계층에서 수행되는 응용 게이트웨이 방식의 침입차단시스템으로 구분 된다. 

 

2. 패킷 필터링 시스템은 수신된 패킷의 TCP/IP 헤더 부분만을 이용하여 침입 차단 기능을 수행하는 수동적인 침입차단시스템이라 할 수 있다.

 

3. 응용 게이트웨이 방식의 침입차단시스템은 수신된 패킷을 응용 계층의 서비스 단위로 프록시 기능을 이용 침입 차단 기능을 수행하는 능동적인 침입차단시스템이라 할 수 있다. 

 

패킷 필터링 방법

1. 패킷 필터링 방법은 패킷의 IP 주소와 서비스 종류에 대한 정보를 이용하여 설정된 보안 규칙에 의해 내부 네트워크를 보호하는 방법. 

 

패킷 필터링을 위하여 사용되는 정보는 다음과 같다.

발신지 IP 주소와 목적지 IP 주소

발신지 포트 번호와 목적지 포트 번호

트래픽의 방향(인바운드 혹은 아웃바운드)

프로토콜의 형태(IP, TCP, UDP, IPX등)

패킷을 상태(SYN 혹은 ACK) 

 

패킷 필터링 방법을 일반적으로 분류하면

IP 주소에 의해 접속을 통제하는 IP주소를 이용한 패킷 필터링 방법과

서비스(포트)를 이용하여 접속을 통제하는 서비스를 이용한 패킷 필터링 방법으로 구분할 수 있다. 

 

패킷 필터링 장/단점 

장점.

1. 단순성: 방화벽은 내/외부 네트워크의 경계 지점에서 패킷을 조사하여 허용과 차단 여부를 결정하면 되므로 동작 방식이 매우 간단함. 

2. 고속 처리: 단지 네트워크와 트랜스포트 프로토콜의 헤더 정보를 모니터링하여 필터링 규칙과 비교하면 되므로 고속으로 처리가 가능함. 

3. 투명성: 사용자는 필터링 방화벽의 존재를 알지 못하는 상태에서 보안 서비스를 제공받을 수 있음. 

 

단점.

1. 네트워크 계층주소 스푸핑같은 TCP/IP 명세와 프로토콜 스택 안의 문제점을 이용하는 공격에 취약함. 

2. 패킷 단편화 공격을 탐지할 수 없다. 

3. 로그 기능과 감사 기능 부족

4. 응용 서비스별로 정교한 제어가 불가능함

5. 고급 사용자 인증 구조를 지원하지 않음 

6. 연결 상태를 추적하지 않음

7. 패킷에서 헤더정보 외 조사하지 않음

 

 

 

댓글