이미 소장하고 있다면 판매해 보세요.
|
01장. iptables가 제공하는 보호
iptables iptables를 이용한 패킷 필터링 iptables의 설치 커널 설정 보안과 최소 컴파일 커널 컴파일과 설치 iptables 사용자 바이너리의 설치 기본 iptables 정책 정리 02장. 네트워크 계층 공격과 방어 iptables를 이용한 네트워크 계층 헤더의 기록 네트워크 계층 공격 정의 네트워크 계층 악용 네트워크 계층 응답 03장. 전송 계층 공격과 방어 iptables를 이용한 전송 계층 헤더의 기록 전송 계층 공격 정의 전송 계층 악용 전송 계층 응답 04장. 애플리케이션 계층 공격과 방어 iptables를 이용한 애플리케이션 계층 문자열 매칭 애플리케이션 계층 공격 정의 애플리케이션 계층 오용 암호화와 애플리케이션 인코딩 애플리케이션 계층 응답 05장. PSAD 소개 역사 방화벽 로그를 분석하는 이유 psad의 기능 psad 설치 psad 관리 psad 설정 정리 06장. PSAD 동작: 수상한 트래픽 탐지 psad를 이용한 포트 스캔 탐지 psad를 이용한 경고와 보고 정리 07장. PSAD 고급 주제: 서명 매칭에서 OS 핑거프린팅까지 스노트 규칙을 사용한 공격 탐지 psad 서명 갱신 OS 핑거프린팅 DShield 보고 psad 상태 출력 보기 포렌식 모드 상세/디버그 모드 정리 08장. psad를 이용한 능동적 응답 침입 방지 대 능동적 응답 능동적 응답의 트레이드오프 psad를 이용해 공격에 응답하기 능동적 응답의 예 제3자 도구와 psad의 능동적 응답 통합 정리 09장. 스노트 규칙을 iptables 규칙으로 변환 fwsnort를 사용해야 하는 이유 서명 변환 예제 fwsnort의 스노트 규칙 해석 정리 10장. fwsnort 배치 fwsnort 설치 fwsnort 실행 fwsnort의 실제 동작 허용 목록과 차단 목록 설정 정리 11장. psad와 fwsnort의 결합 fwsnort 탐지와 psad 동작의 결합 다시 보는 능동적 응답 메타스플로잇 갱신 무력화 정리 12장. 포트 노킹과 단일 패킷 권한 부여 공격 수단 축소 제로 데이 공격 문제 포트 노킹 단일 패킷 권한 부여 불분명함을 통한 보안 정리 13장. fwknop 소개 fwknop 설치 fwknop 설정 fwknop SPA 패킷 형식 fwknop 배치 정리 14장. iptables 로그 시각화 비일상적인 활동 탐지 Gnuplot AfterGlow iptables 공격 시각화 정리 부록 A. 공격 스푸핑 연결 추적 |
|
1장. iptables가 제공하는 보호
1장에서는 커널 빌드의 특이사항, iptables 관리 등을 포함해 iptables를 이용한 패킷 필터링을 소개한다. 기본 정책과 네트워크 다이어그램을 보이고 책의 나머지 부분에서 이를 참조한다. 기본 정책을 실행하는 리눅스 시스템은 근거리 네트워크(LAN, local area network)를 위한 방화벽으로 동작하며, 이 시스템에 대한 공격은 이어지는 여러 장에서 설명한다. 2장. 네트워크 계층 공격과 방어 2장에서는 네트워크 계층에 존재하는 공격 유형과 이에 대한 대응책을 다룬다. iptables 로깅 형식을 소개하고 iptables 로그에서 얻을 수 있는 네트워크 계층 정보를 중점적으로 설명한다. 3장. 전송 계층 공격과 방어 전송 계층은 포트 스캔(port scan)과 포트 스윕(port sweep)을 이용한 서버 정탐(reconnaissance) 영역이며, 3장에서는 이러한 방법의 내부 동작을 살펴본다. iptables 로깅 형식은 전송 계층 헤더 정보를 나타내는 데 적합하며, 이는 모든 종류의 위해를 탐지하는 데 유용하다. 4장. 애플리케이션 계층 공격과 방어 오늘날 행해지는 공격의 대다수는 TCP/IP 수트의 최상단에 올라가는 애플리케이션의 복잡도(이는 점점 더 증가하고 있다)를 이용한다. 4장에서는 iptables가 탐지할 수 있는 애플리케이션 계층 공격을 살펴보고 iptables의 문자열 매칭 확장을 소개한다. 5장. psad(Port Scan Attack Detector) 소개 5장에서는 psad의 설치와 설정을 설명하고 iptables 로그를 살펴보는 것이 중요한 이유를 설명한다. 6장. psad의 동작: 수상한 트래픽 탐지하기 psad가 제공하는 기능은 다양하며 이러한 기능은 iptables 로그 메시지의 사용을 최대화하기 위해 설계된 것이다. 포트 스캔에서 백도어 탐사(backdoor probe)에 이르기까지 psad는 수상한 활동을 탐지하고 자세한 메일과 syslog 경고를 이용해 보고한다. 7장. psad 고급 주제: 서명 매칭에서 OS 핑거프린팅까지 7장에서는 통합된 수동적 OS 핑거프린팅(fingerprinting), 패킷 헤더를 통한 스노트 서명 탐지, 상세한 상태 정보, DShield 보고와 같은 psad의 고급 기능을 소개한다. 7장에서는 iptables 로그 정보가 보안 데이터를 어느 정도까지 제공할 수 있는지에 대한 모든 것을 다룬다. 8장. psad를 이용한 능동적 응답 공격에 자동적으로 응답하는 것에 대한 내용을 빼면 침입 탐지에 대한 논의를 마칠 수 없다. psad가 제공하는 응답 기능은 제3자 소프트웨어와 통합하기 쉽게 해주는 깔끔한 인터페이스 위에 만들어져 있으며, 8장에는 스와치(Swatch) 프로젝트와 통합하는 예도 담았다. 9장. 스노트 규칙을 iptables 규칙으로 변환하기 스노트 IDS는 네트워크 기반 공격을 탐지하는 방법을 보여줬으므로 iptables에서 스노트 서명 언어를 강화할 수 있다. iptables가 풍부한 로깅 형식과 애플리케이션 계층 데이터 조사 기능을 제공하기 때문에 스노트 서명의 상당 부분을 iptables 규칙으로 변환할 수 있다. 10장. fwsnort 배치 스노트 서명을 iptables 규칙으로 변환하는 지루한 작업은 fwsnort 프로젝트에 의해 자동화됐으며 10장에서는 이러한 자동화가 어떻게 동작하는지 설명한다. fwsnort를 배치함으로써 iptables 정책은 진정한 침입 탐지 능력을 가지게 된다. 11장. psad와 fwsnort의 결합 fwsnort가 생성하는 로그 메시지는 메일을 통한 좀 더 나은 보고를 위해 psad가 수집하고 분석한다(수동적 OS 핑거프린팅뿐만 아니라 통합된 whois와 역방향 DNS 검색[reverse DNS lookup]도 다룬다). 11장에서는 iptables로 수행할 수 있는 공격 탐지와 완화 전략의 최고봉을 보여준다. 12장. 포트 노킹과 단일 패킷 권한 부여 수동적 권한 부여는 네트워크에 연결된 서비스를 안전하게 유지하는 데 있어 점점 더 중요해지고 있다. 이러한 기술을 사용함으로써 제로 데이 취약점의 피해 범위는 크게 제한할 수 있지만 모든 수동적 권한 부여 패러다임이 중대한 배치에 충분하도록 견고한 것은 아니다. 12장에서는 포트 노킹(port knocking)과 단일 패킷 권한 부여(SPA)라는 두 가지 수동적 권한 부여 메커니즘을 비교하고 대조한다. 13장. fwknop 소개 오늘날 이용할 수 있는 SPA 구현은 몇 개뿐이며, fwknop는 가장 활발하게 개발되고 지원되는 구현 중 하나다. 13장에서는 fwknop의 설치법과 SSH 데몬(daemon)에 연결하고자 하는 모든 비인증과 비권한 부여 시도에 대해 기본 버리기(default-drop) 상태를 유지하기 위해 fwknop를 iptables와 함께 이용하는 방법을 다룬다. 14장. iptables 로그 시각화 이 책의 마지막 장은 iptables 로그 데이터의 그래픽 표현으로 마무리한다. 그림 하나가 시스템 침투를 의미할 수 있는 네트워크 통신 경향을 빠르게 보여줄 수 있으며, psad와 애프터글로우(AfterGlow) 프로젝트를 결합함으로써 iptables가 보여줘야 하는 것을 볼 수 있다. 부록 A. 공격 스푸핑 스노트 서명 규칙 집합을 파싱(parsing, 구문 분석)하고 이와 일치하는 패킷 데이터를 만든 후 이를 스푸핑된(spoofed) 출발지 주소(source address)로부터 퍼뜨리는 일은 매우 쉽다. 부록 A에서는 정확하게 이 공격을 수행하는 예제 펄 스크립트(fwsnort와 함께 제공됨)를 다룬다. 부록 B. 완전한 fwsnort 스크립트의 예 fwsnort 프로젝트는 애플리케이션 계층 공격을 탐지할 수 있는 iptables 정책 생성에 필요한 iptables 명령어 실행을 자동화하는 쉘 스크립트를 생성한다. 부록 B에는 fwsnort가 생성한 fwsnort.sh 스크립트의 완전한 예제를 담았다. |
|
날이 갈수록 공격이 우위를 점하는 것처럼 보인다. 거의 매일 소프트웨어 취약점에 대한 새로운 공격 방법, 좀 더 효과적인 스팸 전송 방법(필자의 받은 편지함이 이를 증명해준다), 또는 세간의 이목을 끄는 회사나 정부 조직의 민감한 개인 데이터 도난에 대한 뉴스가 등장한다. 안전한 컴퓨팅을 달성하는 것은 영원한 난제다. 악질적인 해커들을 무력화하게 설계된 기술에는 부족함이 없지만 해커들은 계속해서 시스템과 네트워크에 침투하고 있다.
모든 종류의 보안 문제점에 대해서 거의 대부분의 경우 이에 대응하게 설계된 공개 소스 솔루션이나 상용 솔루션이 존재한다. 이는 특히 방화벽, 필터링 라우터 등과 같은 네트워크 침입 탐지 시스템과 네트워크 접근 제어 장치 분야에서 그렇다. 방화벽 기술의 경향은 침입 탐지 분야의 애플리케이션 계층 검사 기술을 방화벽이 오랜 기간 해왔던 네트워크 트래픽 필터링과 결합하는 것이다. 이 책의 목표는 리눅스 시스템의 iptables 방화벽이 방화벽 분야의 이런 경향을 반영하기에 적합하다는 것, 특히 iptables가 침입 탐지의 관점에서 iptables를 강화하게 설계된 추가적인 소프트웨어와 결합할 때 더욱 적합하다는 것을 보이는 것이다. 필자는 현존하는 출간물 중 이 책이 몇 가지 면에서 유일하다고 생각한다. 리눅스 방화벽의 다양한 면을 논한 훌륭한 책은 많지만 필자가 아는 한 그 어떤 책도 iptables와 이것이 제공하는 데이터를 통해 탐지할 수 있는(그리고 어떤 경우에는 저지할 수 있는) 공격을 중점적으로 다루지는 않는다. 침입 탐지를 다룬 책도 많지만 침입 탐지 과정을 진정으로 보충하기 위해 방화벽 기술을 사용하는 데 초점을 둔 책은 없다. 이 책은 앞서 언급한 두 기술의 융합을 다룬다. 이 책에서는 공격 탐지와 방지에 대한 iptables의 유효성을 극대화하게 설계된 다음의 세 가지 공개 소스 소프트웨어 프로젝트를 자세히 살펴본다. psad - iptables 로그 분석기와 능동적 응답 도구(active response tool) fwsnort - 스노트(Snort) 규칙을 등가의 iptables 규칙으로 변환하는 스크립트 fwknop - iptables에 대한 단일 패킷 권한 부여(SPA, Single Packet Authorization)의 구현 이들은 모두 GNU 공개 라이선스(GPL) 하에서 공개 소스 소프트웨어로서 배포되며, http://www.cipherdyne.org에서 받을 수 있다. ★ 이 책에서 다루는 내용 ★ 구체적인 예를 통해 방화벽 로그 분석과 정책, 수동적 네트워크 인증과 권한 부여, 공격 패킷 추적, 스노트 규칙 집합 에뮬레이션 등과 같은 개념을 확실히 알 수 있다. 이 책의 예제에서는 다음과 같은 내용을 다룬다. o iptables 문자열 매칭 확장과 fwsnort를 사용한 애플리케이션 계층 공격 탐지 o 스노트 규칙 집합을 에뮬레이션하는 iptables 규칙 집합 생성 o 포트 노킹과 단일 패킷 권한 부여(SPA) o iptables 로그를 시각화하기 위한 도구 o iptables를 이용한 수동적 OS 핑거프린팅 펄과 C 코드를 통해 리눅스 방화벽의 배치를 최적화할 수 있는 실질적인 예를 볼 수 있다. 네트워크를 안전하게 보호할 책임을 지고 있는 사람이라면 공격을 이해하는 데나 침투를 탐지하고 막기 위해 (psad나 fwsnort와 함께) iptables를 사용하는 데 『리눅스 방화벽』이 큰 도움될 것이다. |