방화벽 기능은 아웃바운드 및 인바운드 트래픽에 모두 적용되며 주요 특징은 다음과 같습니다.
1) 애플리케이션 규칙: 인터넷에 연결하는 프로그램을 사용자가 직접 선정
2) 시스템 규칙: 모든 프로그램에 적용되는 규칙
3) 규칙 우선순위: 규칙이 적용되는 순서를 선정
4) 권한의 자동 관리: 프로그램에 따라 자동으로 관리하는 기능
5) 로컬 알림: 연결 시도, 새로운 규칙 생성, 권한 부여시 사용자에게 알림 기능
6) 규칙 백업 및 복원
7) 보고서 지원
주의사항: 방화벽 프로그램을 설치하기 전에 먼저 검토해야 할 부분이 있는데 바로 안티바이러스(백신)에 방화벽 기능이 내장되어 있는지 확인해야 합니다. 보통 Internet Security, Suite와 같은 단어가 포함되어 있는 백신을 사용할 때에는 방화벽 모듈이 있다고 볼 수 있습니다. 따라서, 이러한 경우에는 위에 언급한 방화벽 프로그램을 설치하는 것보다 백신에 내장된 기능을 사용하는 것이 좋습니다. 그 이유는 바로 프로그램의 충돌이 우려되기 때문입니다.
일반적으로 방화벽이나 웹 프록시(가속기)를 언급하면 장비(Appliance)를 떠올리게 됩니다.
하지만, 마이크로소프트가 ISA(Internet Security & Acceleration) 서버를 출시하면서 소프트웨어적으로 동작하는 방화벽도 점차 주목을 받고 있습니다. ISA 서버는 최근에 TMG(Threat Management Gateway) 2010을 출시하면서 보다 다양한 기능을 제공하고 있습니다.
이번에 소개할 프로그램은 CacheGuard라는 제품으로 방화벽, 웹 프록시 등의 다양한 기능을 제공하는 리눅스 기반의 프로그램입니다.
최근의 공격 성향을 보면, 일반 OS나 네트워크 단의 공격보다는 웹을 기반으로 하는 공격이 증가하고 있으며, 특히 치명적인 영향을 미치는 것이 특징입니다.
이러한 웹에 관련된 취약점은 대부분 소스를 보안에 맞게 작성하지 않아서 발생합니다. 따라서, SQL 인젝션이나 XSS 공격 등을 차단하기 위해서는 소스를 수정해야 하지만, 현실적으로 소스를 신속하게 수정하기란 어렵습니다. 또한, 사이트가 계속 변경되고 발전되어 간다면 이 과정에서 소스를 수정하기도 힘듭니다.
이러한 경우에는 WAF(Web Application Firewall)이라는 장치를 사용하여 웹 서버의 앞단에서 웹 공격으로 판단되는 패킷(요청)을 차단하는 새로운 형태의 보안 서비스가 출시되어 사용되고 있습니다.
WAF에는 하드웨어 즉 장비 기반이 있고, 소프트웨어로 운영 체제 내에서 프로그램으로 돌아가는 형태가 있습니다. 하드웨어 기반은 가격이 비싼데 반해, 다양한 서버를 통합적으로 커버할 수 있다는 장점이 있습니다. 소프트웨어 기반은 가격은 저렴하지만 서버마다 설치하여 운영해야 하는 관리적인 부담이 있습니다.
지금 소개하려는 제품은 소프트웨어 웹 방화벽 중 하나인 DragonWAF 입니다. 이 제품은 중국에서 개발된 것으로 알려져 있습니다. 지원하는 운영체제 및 IIS 버전은 다음과 같습니다.
윈도우 NT - IIS 4.0
윈도우 2000 - IIS 5.0
윈도우 XP 프로페셔널 - IIS 5.1
윈도우 2003 - IIS 6.0
하지만 윈도우 2008에서 제공하는 IIS 7.0은 아직 지원하지 않습니다.
DragonWAF에서 차단할 수 있는 웹 공격의 유형은 다음과 같습니다.
1. SQL Injection
2. Server-Side Include
3. Directory Indexing
4. Path Traversal
5. Cross-Site Scripting
6. Buffer Overflow
7. LDAP Injection
8. Phishing
9. HTTP Response Splitting
10. Content Spoofing
11. Predictable Resource Location
12. Denial of Service
13. Application Fingerprinting
14. Insufficient Session Expiration
15. Session Fixation
16. Web Server Fingerprinting
17. Abuse of Functionality (emails, spiders, data theft)
18. Command Injection
사용자 인터페이스는 중국에서 만든 관계로 중국어(간체, 번체)와 영어를 지원하지만, 한국어는 별도로 지원하지 않습니다.
마지막으로 일반 소프트웨어 제품과 마찬가지로 평가판을 제공하고 있습니다. 평가판은 아래 링크에서 일정 양식을 입력한 후에 사용하실 수 있습니다.
앞 강좌에서 락아웃가드를 설치하는 방법에 대해 설명했는데 보기보다 아주 쉽습니다. 하지만, 이 번에 소개하는 LDAP 구성 부분은 가장 핵심적이면서도 중요한 부분이라는 점을 먼저 밝혀 둡니다.
ISA 방화벽에서 LDAP 서버 설정을 하는 가장 큰 이유는 바로 LDAP 인증을 이용하기 위해서입니다. ISA 서버 도메인 멤버 서버라 할지라도 LDAP 설정을 해야 합니다. 그 이유는 현재 인증을 시도하는 사용자가 비밀번호를 틀리게 입력하는 회수 등을 필터가 알아 채야 하기 때문으로 LDAP 조회(lookup)이 필요한 이유입니다.
ISA 콘솔에서 Configuration - General 노드로 이동합니다. 아래 그림과 같이 Specify RADIUS and LDAP servers 링크를 클릭합니다.
Authentication Servers 대화상자에서 LDAP Servers 탭을 클릭합니다. 아래 그림에서 하나 추가한 것을 볼 수 있으며, 새로운 LDAP 서버를 추가하려면 Add 버튼을 클릭합니다.
가장 먼저 설정한 작업이 바로 LDAP 서버를 추가하는 것입니다. LDAP 서버는 보통 도메인 컨트롤러로 ISA 방화벽에 인증을 하는 도메인 사용자의 정보를 가지고 있습니다. Add 버튼을 눌러 LDAP 서버를 추가합니다. 위의 예에서는 win2008rc0-dc.msfirewall.org 서버를 추가하였습니다. LDAP 서버에서는 자체적으로 인증서를 가지고 있어야 하므로 이름을 지정할 때에 주의해야 합니다. 입력한 이름이 인증서의 이름/주체와 일치하지 않는 경우에는 LDAP 인증을 할 수 없습니다.
게다가, ISA 방화벽은 도메인 컨트롤러에서 설치된 인증서를 발급하는 서버 인증서 발급의 CA 인증서를 가지고 있어야 합니다. CA 인증서는 ISA 방화벽의 Trusted Root Certification Authorities 인증서 저장소에 설치되어야 합니다. ISA 방화벽에 CA 인증서를 설치하지 않는 경우에는 DC가 제시하는 서버 인증서를 신뢰할 수 없기 때문에 LDAP 연결을 할 수 없습니다.
또한 가능하다면 하나 이상의 도메인 컨트롤러를 추가하는 것이 좋습니다. 이는 결함허용을 위한 것으로 첫 번째 DC에 장애가 있더라도 두 번째 DC가 동작할 수 있는 여지를 줄 수 있기 때문입니다.
Type the Active Directory domain name 입력 상자에서 도메인의 이름을 입력합니다. 입력할 때에는 FQDN을 입력하지 않고 도메인 이름만을 입력합니다. Connect LDAP servers over a secure connection에 체크합니다. 아주 중요한 부분으로 안전한 방식이 아닌 DC로의 연결을 하지 못하게 합니다.
마지막으로 ISA 방화벽에서 LDAP 서버에 연결할 때 사용할 사용자 이름을 입력합니다. 사용자 이름은 도메인 관리자나 엔터프라이즈 관리자 권한을 가질 필요가 없으며 일반 사용자 계정이면 충분합니다. 하지만, 외부에서 액세스할 수 있는 계정인지 확인해야 하는데 ISA는 미리 입력한 사용자 이름/비밀번호 정보를 간직하기 때문입니다. LDAP 사용자는 여기서 입력한 값으로 절대 계정이 잠기지 않게 됩니다.(ISA가 LDAP에 연결할 때에 비밀번호를 틀리게 입력하는 회수를 모두 0으로 초기화함)
마지막으로 수행할 작업은 로그인 방식(Login Expression)을 구성하는 것입니다. New 버튼을 클릭하고 *를 입력하고 앞서 생성했던 LDAP 서버를 선택합니다.
지금까지 ISA 방화벽에서 LDAP 서버를 설정하는 방법에 대해 알아 봤습니다. 다음 강좌에서는 그룹 정책에 대해서 설명할 예정입니다.