스크랩

구간

ModSecurity를 활용한 웹 애플리케이션 방어 레시피

원제 : Web Application Defender's Cookbook
시리즈 : 에이콘 해킹 보안시리즈 [109]

라이언 바넷 저 | 천민욱 역 | 에이콘출판 | 2016년 11월

미리보기 북트리

정가
$90.00
판매가
$65.61 (27%↓) 최저가 보상
적립금
$1.31 (2%P)
출고예상일
2026년 10월 08일 수령예상일 안내
북카트 담기 바로구매하기 위시리스트담기

평점 -  ·  리뷰 0

리뷰 쓰기

ISBN : 9788960779266 / 704쪽 189 x 236 (㎜)

이 상품에 궁금하신점이 있으세요? 1:1상담문의

추천inside
Adobe Flash Player 가져오기

이 분야의 베스트셀러

아래의 도서와 구매하시면 이 도서들의 적립금을 즉시적용해 드립니다.

책 소개

출판사 리뷰

출판사 서평 ★ 추천의 글 ★ IT 시스템이 뚫리지 않도록 책임지는 방어자는 방어의 최전선이 될 수도 있고, 최후방이 될 수도 있다. 사실 일반적인 조직에서 일하는 방어자는 공격자와 머리기사에 오를 만한 데이터 유출 사이에 서 있는 유일한 방어선일 것이다. 더 나쁜 것은 아마도 사고가 대서특필되지 않고 방어자를 포함한 누구도 알아내지 못한 경우다. 말도 안 되는 새로운 웹 2.0 AJAX 기반의 HTML5 애플리케이션이 소프트웨어 개발 생명 주기를 횡단해 QA의 관문을 통과하든, 모든 보안 예외에 대해 관리자가 서명한 이후 외주 모의 침... ★ 추천의 글 ★ IT 시스템이 뚫리지 않도록 책임지는 방어자는 방어의 최전선이 될 수도 있고, 최후방이 될 수도 있다. 사실 일반적인 조직에서 일하는 방어자는 공격자와 머리기사에 오를 만한 데이터 유출 사이에 서 있는 유일한 방어선일 것이다. 더 나쁜 것은 아마도 사고가 대서특필되지 않고 방어자를 포함한 누구도 알아내지 못한 경우다. 말도 안 되는 새로운 웹 2.0 AJAX 기반의 HTML5 애플리케이션이 소프트웨어 개발 생명 주기를 횡단해 QA의 관문을 통과하든, 모든 보안 예외에 대해 관리자가 서명한 이후 외주 모의 침투 검사자가 사라지고 애플리케이션이 프로덕션 단계에 배포된 후에는 방어자의 지식 및 인가가 있든 없든 ‘보안’이라는 것은 전적으로 방어자의 책임이 된다. 취약점이 남아있거나 끝내 밝혀지는 점은 안심해도 된다. 따라서 모든 것을 고려해볼 때 방어자의 임무는 불안전한 부분의 안전을 확보하고, 들어오는 공격을 식별한 후 방해하며, 침입을 감지하는 것이다. 그러므로 방어자 역할의 중요성에 대해서는 의심의 여지가 없어야 한다. 방어자는 종종 수백만 건의 개인 데이터를 보호한다. 그들은 아마도 수백만, 혹은 수십억 달러의 온라인 거래를 보호하며 전체 비즈니스의 핵심 지적 자산을 보호한다. 우리는 누군가가 저장된 귀중한 정보를 훔치고 싶어 한다는 것을 확신할 수 있다. 더 크고 주목받는 시스템일수록 더욱 지속적이고 집요한 침입 공격이 있을 것이다. 공격자가 다양한 공격 방법을 선택할 수 있을수록 방어는 더욱 도전적인 작업이 된다. 그들은 원하는 아무 때나 시스템을 공격할 수도 있고 공격하지 않을 수도 있다. 따라서 방어자의 임무는 주말이나 휴가도 없이 1년 365일 잠시도 쉬지 않고 수행돼야 한다. 시스템과 방어자는 언제나 준비돼 있어야 한다. 방어자의 임무를 소개하는 내용은 어니스트 새클턴(Ernest Shackleton)이 남극 탐험에 동반할 사람을 모집하기 위해 만들었던 다음의 유명한 광고와 비슷하게 해석될 수 있다. 위험한 여행을 하기 원하는 남자. 낮은 임금, 추위, 완전한 암흑 속에서의 긴 시간. 무사히 귀환할 수 있을지는 보장할 수 없음. 성공 시에는 명예를 얻고 인정을 받을 수 있음. 방어자의 성공은 근무하는 운영 환경에 대한 몇 가지 주요 포인트를 이해하는 것으로 결정된다. ■ 웹사이트는 종종 개발, QA, 스테이징 단계에서 적절하게 실제 환경을 반영할 수 없는 방식으로 배포된다. 이는 실제 프로덕션 단계에 적용되고 실제적인 위험에 노출돼야만 실제적인 보안 포스처(security posture), 비즈니스에 대한 실제적이고 사실적인 위험을 파악할 수 있음을 의미한다. 이에 따라 방어자는 즉흥적으로 생각할 수 있어야 하며, 민첩하고 신속하게 대응해야 한다. ■ 방어자는 그들이 직접 개발하지 않아서 통찰력이 없거나 부족한 웹사이트를 보호할 책임이 있다. 관리자가 보안을 중요시하지 않고 확인된 취약점을 적시에 수정하는 것을 원하지 않을 수 있으며, 이것은 장기적인 표준 운영 절차가 될 수도 있다. 비즈니스의 위험과 소프트웨어 보안에 대해 예상되는 비용을 고려하면 이것은 올바른 결정일 수도 있다. 하지만 어떤 경우라도 방어자는 들어오는 공격을 식별할 수 있어야 하며, 정보 유출을 포함한 악용 가능한 많은 부분을 최대한 차단해야 한다. ■ 불씨를 진압하는 것과 일상의 위협에 대응하는 것은 마땅히 기대되는 역할의 일부다. 소프트웨어는 항상 취약점이 있기 때문에 비즈니스가 소프트웨어 보안에 완전히 열성적인지 아닌지는 중요하지 않다. 또한 모든 사람은 결국 공격당하게 된다. 방어자는 공격을 뒤늦게 확인하거나 유출에 대해 마지막으로 알게 되는 것을 원하지 않는다. 방어자에게는 공격 식별과 대응 시간이 중요하다. ■ 방어자들은 최전선에 있으므로 애플리케이션의 위험 프로파일과 공격자를 저지하는 데 필요한 보안 대응에 대해 많은 것을 배운다. 더욱 탄력적인 시스템을 만드는 데 관심 있는 개발자와 대화할 때 이와 같은 정보는 금과 같다. 또한 보안 평가 팀에게 QA 또는 프로덕션 단계에서 시스템을 테스트하는 경우 우선적으로 관심을 가져야 하는 취약점의 유형을 알려줄 때도 귀중한 정보다. 모든 사람은 실질적인 데이터가 필요하며 최상의 방어자는 이 정보를 가지고 있다. 이와 같은 방법을 사용하기 위해서는 전문화된 기술과 경험이 필요하다. 일반적으로 분석가가 되려는 사람은 이와 같은 방법을 제품의 README 파일이나 자주 묻는 질문(FAQs)에서 배우지 않는다. 역사적으로 보면, 지식은 동료와의 대화, 블로그 포스트, 메일링 리스트 대화에서 얻는다. 인터넷에 산재해 있는 정보들은 어떠한 실제적인 데이터로 꿰맞추기 힘들다. 또한 여러분이 이러는 도중에 이미 해킹됐을 수도 있다. 이것이 여러분이 이 책을 선택한 이유다. 웹 기반의 공격자는 멈추지 않고 매일매일 점점 적극적이면서 뻔뻔해지고 있다. 이와 같은 경험은 쉽고 빠르게 얻을 수 없다. 동시에 이와 같은 정보와 습득한 교훈은 문서화되고 체계화되며 공유된다. 이것이 라이언 바넷이 이 책에서 제공하는 방어를 위한 레시피이자 성공을 위한 레시피다. 모든 방어자에게 라이언의 성취점과 유능함을 남긴다. 그의 명성은 그 자체를 말해주고 있다. 라이언은 원조 방어자 중 한 명이다. 그는 방어자의 역할을 정의하기 위해 웹 보안 분야에서 누구보다 많은 기여를 했다. 또한 그는 내가 본 최고의 현장 실무자 중 한 명이다. 모두에게 행운을 빈다. - 예레미야 그로스만(Jeremiah Grossman)/ 화이트햇 시큐리티(WhiteHat Security, Inc.) CTO ★ 이 책에서 다루는 내용 ★ ■ 사고 대응을 위한 전체(Full) HTTP 감사 구현 ■ 식별된 취약점을 완화하기 위한 가상 패치 프로세스 활용 ■ 악성 사용자를 식별하기 위한 허니트랩 배포 ■ 사용자가 비정상적으로 행동하는 경우 탐지 ■ 업로드된 파일 및 웹 콘텐츠 악성코드 분석 ■ 웹 애플리케이션이 민감한 사용자 또는 기술 정보를 유출하는 경우 인식 ■ 공격에 대한 다양한 수준의 대응 ★ 이 책의 대상 독자 ★ 이 책의 대상 독자는 웹 애플리케이션 방어자다. 여기서 방어자(defender)라는 용어는 실제 웹 애플리케이션을 공격으로부터 보호해야 하는 책임을 지닌 사람을 의미한다. 이들은 웹 애플리케이션을 만들지 않았지만 실제 네트워크에서 애플리케이션 관리를 책임진다. 웹 애플리케이션 방어자는 웹 애플리케이션의 전반적인 보안 상태에 기여하는 세 개의 중요 커뮤니티 중 하나다. 다른 두 개는 빌더(builder)와 브레이커(breaker)다. 빌더는 웹 애플리케이션의 실제 소스 코드와 기능을 담당하고 있는 개발 팀이다. 그들은 애플리케이션의 초기 생성자며, 향후의 기능 개선 및 유지 보수를 책임진다. 반면 브레이커는 소스 코드를 검토하고 실제 웹 애플리케이션을 공격하면서 애플리케이션을 평가하는 정보 보안 팀이다. 세 커뮤니티 모두 웹 애플리케이션의 전반적인 보안에 기여하고 있지만, 이 책은 전적으로 방어자가 지정된 임무를 수행하도록 돕는 데 초점을 맞추고 있다. ★ 이 책의 구성 ★ 1부. 전투 공간 준비 이 책은 언젠가 발생할 공격을 위해 웹 애플리케이션 플랫폼을 준비하는 개념을 소개하며 시작한다. 이 부에서 다루는 레시피는 새로운 애플리케이션이 프로덕션 단계에 들어가기 직전 또는 들어간 직후에 완료해야 한다. 1장, ‘애플리케이션 요새화’에서는 공격 인식, 가시성 확보, 웹 트랜잭션에 대한 적절한 감사 로그 수행을 구현하기

저자 소개

독보적인 전문 지식으로 웹 애플리케이션 보안 산업에서 명성을 떨치고 있다. 10년간 정부 기관 및 비즈니스 웹사이트를 방어하며 경험을 쌓은 후 트러스트웨이브 스파이더랩스(Trustwave SpiderLabs) 연구 팀에 합류했다. 주로 애플리케이션 방어에 대해 연구하고 있으며 오픈소스 웹 애플리케이션 방화벽 프로젝트인 ModSecurity를 이끌고 있다.
트러스트웨이브에서 근무할 뿐 아니라 커뮤니티 기반의 많은 보안 프로젝트에도 참여해 적극적으로 기여하고 있다. 오픈 웹 애플리케이션 보안 프로젝트(OWASP, Open Web Application Security Project)의 ModSecurity CRS(Core Rule Set) 프로젝트를 이끌고 있으며 OWASP의 Top 10 및 AppSensor 프로젝트에도 기여하고 있다. 또한 웹 애플리케이션 보안 컨소시엄의 이사회 위원이며, 웹 해킹 사고 데이터베이스 및 웹 허니팟 프로젝트를 이끌고 있다. SANS 연구소에서는 인증된 강사 자격을 보유하고 있으며 Top 20 취약점 및 CWE/SANS Top 25 가장 위험한 프로그래밍 오류 프로젝트에도 기여하고 있다.
새로운 웹 애플리케이션 공격, 동향, 방어 기술에 대한 분석 및 통찰력을 요구하는 뉴스 미디어에 정기적으로 출연하고 있다. 또한 블랙 햇(Black Hat), SANS 앱섹 써밋(SANS AppSec Summit), OWASP 앱섹유에스에이(OWASP AppSecUSA)를 포함한 주요 산업 이벤트에서 종종 발표하고 교육을 담당한다.

역자 소개

소프트웨어 개발 업무에서 축적한 경험을 바탕으로 현재 보안 소프트웨어 회사에서 엔터프라이즈 고객들을 대상으로 프리미엄 기술 지원 및 컨설팅 업무를 수행하고 있다. 리눅스, 웹, 파이썬을 좋아하며, 매일 점심으로 무엇을 먹을지 고민하는 평범한 엔지니어다.

머리말

★ 지은이의 말 ★

이 책은 레시피(recipe)라고 불리는 강의들의 모음이다. 이 강의들은 사이버 범죄자들이 요즘 사용하는 중요한 취약점과 공격 방법을 완화시키는 것을 더 용이하게 하도록 설계됐다. 여러분이 전자 상거래 애플리케이션에 대한 서비스 거부 공격을 완화하든, 뱅킹 애플리케이션에 대한 부정 사용 사건에 대응하든, 새롭게 배포된 소셜 네트워킹 애플리케이션의 사용자를 보호하든 상관없이 이 책은 이러한 도전에 대한 창의적인 해결책을 제공한다. 이 책은 대응책을 수행할 때 가능한 한 실용적인 방법을 보여준다. 각 레시피들은 웹 애플리케이션 공격 방법과 취약점의 작동 방식을 이해하도록 충분한 배경 정보를 포함하고 있지만, 이론적인 부분은 최소한으로 유지하고 있다. 이 레시피들의 주요 목적은 여러분의 웹 애플리케이션 내에서 이뤄지는 악성 행위를 방해하기 위해 사용할 수 있는 단계별 대책을 제공하는 것이다.

★ 옮긴이의 말 ★

개인적인 학습 차원에서 번역을 하다가, 우연한 기회에 출간 서적을 위한 번역 작업을 처음 맡게 됐을 때는 자신감이 넘치기도 했습니다. 하지만 실제 번역을 진행하면서 전반적인 작업이 결코 쉽지 않다는 것을 여러 번 느꼈으며, 막상 이 책의 번역을 시작한 지 3년이 지난 이 시점에 마침내 한국어판이 출간된다고 하니 설렘보다는 두려움이 좀 더 큰 것도 사실입니다.
이 책은 ModSecurity를 실제 업무에 도입해 사용하는 분들이나 도입을 고려하는 분들이 ModSecurity의 활용도를 높일 수 있도록 돕는 마음으로, 또한 개인적으로는 지식을 더욱 확장하려는 목적에서 번역 작업에 도전했던 결과물입니다.
여러 가지 이유로 상용 웹 방화벽을 도입할 수 없는 고객에게 오픈소스 기반의 무료 웹 애플리케이션 방화벽인 ModSecurity는 상당히 매력적인 도구입니다. 하지만 아무리 좋은 도구도 제대로 활용하지 못하면 쓸모없기 마련입니다. 따라서 이 책은 단순히 ModSecurity 제품의 사용자 가이드에 머물지 않고, 보안 담당자로서 자주 접할 수 있는 상황에 대해 ModSecurity로 보안성을 향상시키는 실질적인 방법을 고민합니다. ModSecurity를 정복하기 위한 여정에 오르는 여러분에게 이 책이 그 지름길을 안내하는 좋은 길잡이가 됐으면 좋겠습니다.

목차

목차
1부. 전쟁 공간 준비
1장. 애플리케이션 요새화
__레시피 1-1: 실시간 애플리케이션 프로파일링
__레시피 1-2: 암호화 해시 토큰을 이용해 데이터 조작 방지
__레시피 1-3: OWASP ModSecurity CRS 설치
__레시피 1-4: 침입 탐지 시스템(IDS)의 시그니처와 통합
__레시피 1-5: 베이지안(Bayesian) 공격 페이로드 탐지 사용
__레시피 1-6: 전체 HTTP 감사 로깅을 활성화
__레시피 1-7: 관련된 트랜잭션만 로깅
__레시피 1-8: 정적 콘텐츠에 대한 요청인 경우 무시
__레시피 1-9: 로그에서 중요한 데이터 난독화
__레시피 1-10: Syslog를 사용해 중앙 로그 호스트에 경고 전송
__레시피 1-11: ModSecurity의 AuditConsole 사용
2장. 취약점 확인 및 개선
__레시피 2-1: 수동 취약점 확인
__레시피 2-2: 능동적인 취약점 식별
__레시피 2-3: 수동 스캔 결과 변환
__레시피 2-4: 자동 스캔 결과 변환
__레시피 2-5: 실시간 자원 평가 및 가상 패치
3장. 독을 품은 폰(해커 트랩)
__레시피 3-1: 허니팟 포트 추가
__레시피 3-2: ROBOTS.TXT에 가짜 DISALLOW 항목 추가
__레시피 3-3: 가짜 HTML 주석 추가
__레시피 3-4: 가짜 숨겨진 폼 필드를 추가
__레시피 3-5: 가짜 쿠키 데이터를 추가
2부. 비대칭 전력
4장. 평판 및 서드파티 연관성
__레시피 4-1: 클라이언트의 지리적 위치 정보 데이터 분석
__레시피 4-2: 의심스러운 공개 프락시 사용 여부 식별
__레시피 4-3: 실시간 블랙리스트 조회(RBL)
__레시피 4-4: 자신만의 RBL을 실행
__레시피 4-5: 악성 링크 탐지
5장. 요청 데이터 분석
__레시피 5-1: 요청 바디 접근
__레시피 5-2: 잘못된 요청 바디 식별
__레시피 5-3: 유니코드 정규화
__레시피 5-4: 다중 인코딩 사용을 식별
__레시피 5-5: 비정상적인 인코딩 식별
__레시피 5-6: 비정상적인 요청 메소드 식별
__레시피 5-7: 잘못된 URI 데이터 검출
__레시피 5-8: 비정상적인 요청 헤더 탐지
__레시피 5-9: 추가 매개변수 탐지
__레시피 5-10: 누락된 매개변수 탐지
__레시피 5-11: 중복된 매개변수명 탐지
__레시피 5-12: 비정상적인 매개변수 페이로드 크기 탐지
__레시피 5-13: 비정상적인 매개변수 문자 클래스 탐지
6장. 응답 데이터 분석
__레시피 6-1: 비정상적인 응답 헤더 탐지
__레시피 6-2: 응답 헤더 정보 유출 탐지
__레시피 6-3: 응답 바디 접근
__레시피 6-4: 페이지 제목 변경 탐지
__레시피 6-5: 페이지 크기 편차 검출
__레시피 6-6: 동적 콘텐츠 변경 탐지
__레시피 6-7: 소스 코드 유출 탐지
__레시피 6-8: 기술적인 데이터 유출 탐지
__레시피 6-9: 비정상적인 응답 시간 간격 탐지
__레시피 6-10: 민감한 사용자 데이터 유출 탐지
__레시피 6-11: 트로이 목마(Trojan), 백도어, 웹셸 접근 시도 탐지
7장. 인증에 대한 방어
__레시피 7-1: 일반적/기본값을 가진 사용자 이름 제출 탐지
__레시피 7-2: 다중 사용자명 제출 탐지
__레시피 7-3: 실패한 인증 시도 탐지
__레시피 7-4: 높은 비율의 인증 시도 검출
__레시피 7-5: 인증 시도 상세 정보 정규화
__레시피 7-6: 비밀번호 복잡성 강제화
__레시피 7-7: 사용자명과 세션ID 연관
8장. 세션 상태에 대한 방어
__레시피 8-1: 올바르지 않은 쿠키 탐지
__레시피 8-2: 쿠키 임의 조작 탐지
__레시피 8-3: 세션 타임아웃 적용
__레시피 8-4: 세션 기간 동안 클라이언트 원본 위치 변경 탐지
__레시피 8-5: 세션 유지 중 브라우저 핑거프린트 변경 탐지
9장. 애플리케이션 공격 방지
__레시피 9-1: 비아스키 문자를 차단
__레시피 9-2: 경로 탐색 공격 방지
__레시피 9-3: 강제 브라우징 공격 방지
__레시피 9-4: SQL 인젝션 공격 방지
__레시피 9-5: 원격 파일 포함 공격 방지
__레시피 9-6: OS 명령 공격 방지
__레시피 9-7: HTTP 요청 스머글링 공격 방지
__레시피 9-8: HTTP 응답 분할 공격 방지
__레시피 9-9: XML 공격 방지
10장. 클라이언트 공격 방어
__레시피 10-1: 콘텐츠 보안 정책 구현
__레시피 10-2: 크로스 사이트 스크립팅 공격 방지
__레시피 10-3: 사이트 간 요청 위조(CSRF) 방지
__레시피 10-4: UI 리드레싱(클릭재킹) 공격 방지
__레시피 10-5: 인터넷 뱅킹 트로이 목마 공격 탐지
11장. 파일 업로드 방어
__레시피 11-1: 큰 파일 사이즈 탐지
__레시피 11-2: 다수의 파일 탐지
__레시피 11-3: 첨부된 파일에서 악성코드 검사
12장. 접속률 및 애플리케이션 절차 강화
__레시피 12-1: 높은 애플리케이션 접속률 탐지
__레시피 12-2: 요청/응답 지연 공격 탐지
__레시피 12-3: 요청 간 시간 지연 이상점 파악
__레시피 12-4: 요청 흐름 이상 식별
__레시피 12-5: 리소스 사용률이 상당히 증가할 경우 탐지
3부. 전술적 응답
13장. 수동적인 응답 액션
__레시피 13-1: 이상 징후 점수 추적
__레시피 13-2: 감사 로그 트랩 및 추적
__레시피 13-3: 이메일 경고 발행
__레시피 13-4: 요청 헤더 태깅과 데이터 공유
14장. 능동적인 응답 액션
__레시피 14-1: 오류 페이지로 리다이렉션 사용
__레시피 14-2: 연결 드롭
__레시피 14-3: 클라이언트 소스 주소 차단
__레시피 14-4: 방어 조건 수준 변경을 통해 위치 정보별 접근을 제한
__레시피 14-5: 강제적인 트랜잭션 지연
__레시피 14-6: 성공적인 공격 스푸핑
__레시피 14-7: 트래픽을 허니팟으로 프락싱
__레시피 14-8: 애플리케이션 강제 로그아웃
__레시피 14-9: 계정 접근을 일시적으로 잠금
15장. 침입 응답 액션
__레시피 15-1: 자바스크립트 쿠키 테스트
__레시피 15-2: CAPTCHA 테스트를 통한 사용자 검증
__레시피 15-3: BeEF로 악성 클라이언트 후킹

top