데이터베이스 해킹 & 보안 완벽 가이드 [데이터베이스 보안 취약점을 겨냥한 공격과 방어]
- 원서명The Database Hacker's Handbook: Defending Database Servers (ISBN 9780764578014)
- 지은이데이비드 리치필드, 크리스 앤리, 존 히스먼, 빌 그린들리
- 옮긴이김경곤, 장은경, 박병익
- ISBN : 9788960776203
- 40,000원
- 2014년 10월 29일 펴냄 (절판)
- 페이퍼백 | 608쪽 | 188*250mm
- 시리즈 : 해킹과 보안
판매처
- 현재 이 도서는 구매할 수 없습니다.
책 소개
요약
데이터베이스는 그 중요도에 비해 일반 사용자들이 직접 접근할 일이 많지 않아 상대적으로 웹에 비해 관심이 낮은 편이었다. 하지만, 기업에서 사용되는 중요한 정보들이 모두 데이터베이스에 저장되는 만큼, 데이터베이스에 대한 체계적인 보안과 해킹에 대한 이해가 절실한 상황이다. 이 책은 8개 부와 26개 장으로 구성되었으며, 이 책의 대부분은 7가지 유명 데이터베이스 시스템(오라클, DB2, 인포믹스(Informix), 사이베이스 ASE(Sybase ASE), MySQL, SQL 서버, PostgreSQL)에 존재하는 실전 보안 취약점을 상세히 설명한다. 보안연구자나 취약점 분석가뿐만 아니라 보안 관리자 및 데이터베이스 설계자에게도 매우 유용한 정보를 제공해 줄 책이다.
이 책에서 다루는 내용
오라클과 마이크로소프트 SQL 서버에서 새로운 취약점을 찾는 방법
IBM DB2, PostgreSQL, 사이베이스(Sybase) ASE, MySQL 서버를 위한 최상의 방어 방법
버퍼 오버플로우 취약점의 발견, SQL을 통한 권한 상승, 저장 프로시저 또는 트리거 악용, 해커의 접근을 가능하게 해주는 SQL 인젝션
각 데이터베이스에 대한 고유 취약점을 식별하는 방법
공격자가 무엇을 이미 알고 있는지 확인하는 방법
이 책의 대상 독자
이 책은 데이터베이스 보안의 실전 지침에 흥미가 있는 사람들을 위한 책이다. 이 책의 대상 독자층으로는 데이터베이스 관리자, 네트워크 관리자, 보안 감사관, 광범위한 보안 연구 커뮤니티 등이 해당될 것이다. 이 책은 다분히 기술적이고, 독자들이 버퍼 오버플로우, 서식 문자열 버그, SQL 인젝션, 기본 네트워크 아키텍처 같은 개념들을 잘 알고 있다는 전제하에 작성했다. 때로는 C, C++, 어셈블리어 소스코드도 대강 훑어보지만 프로그래밍 기술이 이 책의 내용을 이해하는 데 필수는 아니다. 무엇보다도, 이 책은 최대한 데이터베이스를 안전하게 보호하고자 하는 사람들을 대상으로 집필되었다.
이 책의 구성
이 책은 26개 장과 3개 부록을 포함한 개별적인 8개 부로 나뉘었다. 데이터베이스 시스템은 각 절에서 다룬다.
각 절에서는 데이터베이스의 기본 구조와 네트워크에서 데이터베이스를 찾는 방법, 데이터베이스 구성 요소, 그리고 구조에 대한 특성을 다룬다. 그러고 나서 데이터베이스 시스템이 어떻게 공격을 당하는지 설명하고, 다양한 보안 문제를 포함하며, 어떻게 이와 같은 문제점이 공격자에 의해 악용될 수 있는지, 그리고 어떻게 이런 문제점을 사전에 방어할 수 있는지 설명한다. 다음으로 공격자가 네트워크에 더 많은 접근 권한을 얻고 데이터베이스를 공격하는 방법을 알려준다. 마지막으로, 빠른 참조 가이드와 더불어 데이터베이스 시스템을 안전하게 보호하기 위한 가장 최상의 접근 방식을 설명한다.
목차
목차
- 1부 소개
- 1장 데이터베이스 보안에 신경 써야 하는 이유
- __가장 안전한 데이터베이스란?
- __데이터베이스 보안 연구 현황
- ____데이터베이스 보안 결함의 분류
- __이 모든 것이 무슨 의미하는 것
- __데이터베이스 서버에서 결함 발견
- __정리
- 2부 오라클
- 2장 오라클 아키텍처
- __오라클 아키텍처 검토
- ____오라클 프로세스와 네트워크에서의 오라클
- __오라클 RDBMS
- __오라클 지능 에이전트
- __오라클 인증과 권한
- __데이터베이스 인증
- ____권한
- ____주요 시스템 권한
- ____오라클 감사
- 3장 오라클 공격
- __오라클 서버 스캔
- ____일반적인 오라클 프로세스의 디폴트 포트
- ____TNS 리스너
- __오라클 PL/SQL
- __PL/SQL 인젝션
- ____SELECT문에 인젝션
- __DELETE, INSERT, UPDATE문에 인젝션
- ____INSERT문으로 인젝션
- ____실제 예
- __임의의 PL/SQL 블록에 인젝션
- ____실제 예
- _DBMSSQL과 함께 사용자 제공 쿼리 실행
- __실제 예
- ____PL/SQL 인젝션과 데이터베이스 트리거
- __PL/SQL과 오라클 애플리케이션 서버
- __정리
- 4장 오라클: 오라클에서 네트워크까지
- __운영체제 명령 실행
- ____PL/SQL을 통해 운영체제 명령 실행
- ___DBMSSCHEDULER를 통한 운영체제 명령 실행
- ____자바를 통한 운영체제 명령 실행
- __파일 시스템에 접근
- ____자바와 파일 시스템
- __네트워크에 접근
- ____데이터베이스 링크
- __PL/SQL과 네트워크
- ___UTLTCP
- ___UTLHTTP
- ___UTLSMTP
- __정리
- 5장 오라클 보안
- __오라클 보안 권고
- ____오라클 TNS 리스너
- __오라클 데이터베이스 서버
- ____계정
- ____역할
- ____DBA 역할
- 3부 DB2
- 6장 IBM DB2 범용 데이터베이스
- __소개
- __DB2 개발 시나리오
- ____네트워크상의 DB2
- __DB2 프로세스
- __DB2 물리 데이터베이스 레이아웃
- ____윈도우의 DB2
- ____리눅스의 DB2
- __DB2 논리 데이터베이스 레이아웃
- __DB2 인증과 권한
- __권한
- ____DBAUTH 뷰
- ____TABAUTH 뷰
- ____ROUTINEAUTH 뷰
- __정리
- 7장 DB2: 발견, 공격, 방어
- __네트워크에서 DB2 발견
- 8장 DB2 공격
- __DB2 프로시저와 함수 버퍼 오버플로우
- ____DB2의 또 다른 오버플로우
- __DB2 원격 명령 서버
- __DB2로 명령 실행
- __DB2로 파일 시스템에 접근
- ____Load 메소드
- ____XML 함수
- __DB2의 로컬 공격
- __정리
- 9장 DB2 보안
- __운영체제 보안
- __DB2 네트워크 인터페이스 보안
- __DBMS 보안
- __불필요한 구성 삭제
- __마지막 처리
- 4부 인포믹스
- 10장 인포믹스 아키텍처
- __인포믹스 아키텍처 평가
- ____네트워크상의 인포믹스
- __인포믹스 논리적 레이아웃
- ____인증과 권한 이해
- 11장 인포믹스: 발견, 공격, 방어
- __인포믹스 공격과 방어
- ____사후 인증 공격
- ____공유 메모리, 사용자 이름, 암호
- __저장 프로시저 언어(SPL)로 인포믹스 공격
- ____SPL을 사용해 임의 명령 실행
- ____임의의 라이브러리 로딩
- ____서버의 임의 파일 읽고 쓰기
- __인포믹스에서의 SQL 버퍼 오버플로우
- ____유닉스 플랫폼에서 실행되는 인포믹스 로컬 공격
- __정리
- 12장 인포믹스 보안
- __서버를 항상 패치
- __네트워크 트래픽 암호화
- __Public의 연결 권한 제거
- __감사 기능 활성화
- __Public의 파일 접근 루틴 권한 제거
- __Public의 모듈 루틴에 대한 실행 권한 제거
- __공유 메모리 덤프 예방
- __유닉스 기반 서버의 로컬 공격 예방
- __사용 언어 제한
- __유용한 문서
- 5부 사이베이스 ASE
- 13장 사이베이스 아키텍처
- __사이베이스 배경
- __역사
- __뛰어난 특성
- ____Java-In-ASE
- ____배포 시나리오
- ____사이베이스에서 방화벽 사용
- ____사이베이스와 통신
- ____권한 모델
- ____로그인 계정 기본
- ____패스워드와 패스워드의 복잡성
- ____서비스 상호 작용
- 14장 사이베이스: 발견, 공격, 방어
- __목표 설정
- ____사이베이스 스캐닝
- ____사이베이스 버전 번호
- ____인증 스누핑
- __사이베이스 공격
- ____사이베이스에서 SQL 인젝션 공격
- ____SQL 인젝션 기본
- __사이베이스 환경에서 마이크로소프트 SQL 서버 인젝션 기술
- ____주석
- ____Union Select
- ____에러 메시지
- ____@@version
- ____Having/Group By
- ____SQL 복합 인젝션
- ___Xpcmdshell
- ___xpregread
- ____맞춤 확장 저장 프로시저
- ____CHAR 함수부터 Bypass Quote 필터까지
- ____종료
- ___sppassword를 사용한 audit evasion
- ____링크 서버
- ____시간 지연을 통신 채널로 사용
- ____VARBINARY 문자 암호화와 Exec
- __외부 파일 시스템 접근
- __공격에 대한 방어
- __오래 전부터 알려진 사이베이스 ASE 보안 버그
- ____CAN-2003-0327: 원격 패스워드 배열 오버플로우
- ____DBCC CHECKVERIFY 버퍼 오버플로우
- ____DROP DATABASE 버퍼 오버플로우 취약점
- ___xpfreedll 버퍼 오버플로우
- __사이베이스 버전 도구
- 15장 사이베이스: 사이베이스에서 네트워크까지
- __네트워크에 접근
- __사이베이스로 다른 서버에 연결
- __SQL에서의 자바
- ____JSQL TDS 클라이언트
- ____JSQL TCP 프록시
- __사이베이스 트로이잔
- ___사용자에게 sa 또는 ssorole 부여
- ____시스템 테이블 직접 업데이트와 선택된 시스템 테이블에 접근 권한 부여
- 16장 사이베이스 보안
- __사이베이스 보안 체크리스트
- ____배경
- ____운영체제
- ____사이베이스 사용자
- ____사이베이스 환경설정
- __배경
- __운영체제
- __사이베이스 사용자
- __사이베이스 환경설정
- 6부 MySQL
- 17장 MySQL 아키텍처
- __물리적인 데이터베이스 아키텍처 탐구
- ____배치
- ____WinMySQLAdmin Autostart
- ____디폴트 사용자와 패스워드
- ____프로토콜
- ____인증 프로토콜 버그
- __논리 데이터베이스 아키텍처 조사
- ____MySQL 논리 데이터베이스 아키텍처
- ____저장 엔진
- ____파일 시스템 레이아웃
- ____쿼리 배치
- ____사용자와 그룹 검사
- __아키텍처 설계 취약점 공격
- ____사용자 정의 함수
- ____통제 시스템 접근 취약점
- ____보안 영향을 가진 잘못된 기능
- ____기능의 부재로 인한 보안 강화
- 18장 MySQL: 발견, 공격, 방어
- __목표 찾기
- ____MySQL 스캔
- ____MySQL 버전 숫자
- ____인증 스누핑
- __MySQL 해킹
- ____MySQL SQL 인젝션
- ____알려진 MySQL 버그
- ____MySQL 트로쟌
- __MySQL에 대한 국소적 공격
- ____레이스 컨디션
- ____오버플로우
- __MySQL 파일 구조 재고
- 19장 MySQL: MySQL에서 네트워크까지
- __MySQL 클라이언트 해시 인증 패치
- __외부 프로그램 실행: 사용자 정의된 기능
- __윈도우에서의 사용자 정의 함수
- __정리
- 20장 MySQL 보안
- __MySQL 보안 체크리스트
- ____배경지식
- ____운영체제
- ____MySQL 사용자
- ____MySQL 설정
- ____정기 감사
- __배경 지식
- __운영체제
- __MySQL 사용자
- __MySQL 설정
- __정기 감사
- 7부 SQL 서버
- 21장 MS SQL 서버 아키텍처
- __SQL 서버 배경
- ____SQL 서버 버전
- __물리적 아키텍처
- ____TDS 프로토콜
- ____네트워크 라이브러리
- ____SQL 서버 프로세스와 포트
- ____인증과 권한
- __논리적 아키텍처
- ____저장 프로시저
- ____트리거
- __사용자와 그룹
- ____계정 정보
- ____패스워드 암호화
- 22장 SQL 서버: 취약점, 공격, 방어
- __취약점
- __설계 결함에 의한 취약점
- ____SQL 슬래머 오버플로우
- ____\x08 바이트 힙 오버플로우
- ____\x0A 바이트 네트워크 서비스 거부 공격
- ____클라이언트 오버플로우
- __SQL 인젝션
- ____시스템 레벨의 공격
- ____기타 공격 요인
- ____시간 지연
- ____저장 프로시저
- ____포트 스캐닝
- ____일괄 쿼리
- __SQL 인젝션 방어
- ____공격 추적 방법
- ____3바이트 패치
- ____XSTATUS 백도어
- 23장 SQL 서버 보안
- __설치
- ____1단계: 인증
- ____2단계: 패스워드 보안수준
- ____3단계: 운영체제 락다운
- ____4단계: 사후 설치 락다운
- __구성
- ____5단계: 네트워크 라이브러리 구성
- ____6단계: 구성에 대한 감사와 알람
- ____7단계: 권한 봉쇄
- ____8단계: 불필요한 기능과 서비스 제거
- ____9단계: 저장 프로시저 제거
- ____10단계: 보안 패치 적용
- 8부 PostgreSQL
- 24장 PostgreSQL 아키텍처
- __물리적 데이터베이스 아키텍처 소개
- ____안전한 배포
- ____일반적인 배포 시나리오
- ____전문 용어
- __PostgreSQL 파일 구조
- ____프로토콜
- ____인증
- ____시스템 카탈로그
- ____사용자와 그룹 검사
- ____저장 프로시저
- 25장 PostgreSQL: 발견과 공격
- __목표물 찾기
- __PostgreSQL 프로토콜
- __네트워크 기반의 PostgreSQL 공격
- ____네트워크 스니핑
- ____ARP 스푸핑과 TCP 하이재킹
- ____Ident 스푸핑
- __공격한 리소스 정보의 유출
- __알려진 PostgreSQL 버그
- ____설정 취약점
- ____코드 실행 취약점
- ____PostgreSQL 컴포넌트 취약점
- __PostgreSQL SQL 인젝션
- ____유용한 내장 함수
- ____PostgreSQL 8.0의 시간 지연 사용
- ____저장 프로시저를 통한 SQL 인젝션
- ____다른 애플리케이션에서의 SQL 인젝션 취약점
- __파일 시스템과 상호 작용
- ____대형 객체 지원
- ____공유 객체를 통한 확장 사용
- ____LOAD 명령
- __정리
- 26장 PostgreSQL 보안
- 부록 A 시간 지연 SQL 인젝션 하네스 예제 C 코드
- 부록 B 위험한 확장 저장 프로시저
- __레지스트리
- __시스템
- __이메일
- __OLE 자동화
- 부록 C 오라클 기본 아이디와 패스워드