시스템 & 어플리케이션 보안 : 실습을 통한 학습

시스템 & 어플리케이션 보안 : 실습을 통한 학습

$35.50
Description
최근 우리 사회는 정보화 시대를 지나 4차 산업혁명 시대를 맞이하여 스마트 사회(Smart Society), 초연결 사회로 진화하고 있고, 우리의 실생활 또한 엄청나게 변화하고 있다. 누구든지 스마트 기기만 가지고 있으면 어느 곳에 있든 초고속통신망인 인터넷을 통해서 전 세계 모든 정보를 원하는 대로 찾아보고 활용할 수 있어서 정치, 금융, 행정, 교육, 국방 등 거의 모든 산업 분야에 엄청난 변화를 가져오고 있다. 특히, SNS를 통한 소통의 변화는 시공간을 초월해서 전 세계 모든 사람과 소통할 뿐만 아니라 공통의 관심을 가진 분야의 사람끼리 원하는 목적을 위해 마음대로 소통할 수 있는 시대가 되었다.
이렇게 우리 삶의 거의 모든 분야에서 변화를 가져다준 컴퓨터와 인터넷은 우리가 알고 있는 많은 좋은 점(순기능)을 가지고 있지만, 반대로 이에 못지않게 우리에게 엄청난 피해를 줄 수 있는 여러 가지 역기능을 가지고 있다. 각종 악성 코드, 악의적인 해킹, 도청, DDoS 공격, 개인정보 침해사고 등이 날이 갈수록 새롭게 생겨나고 있으며, 그 유형 또한 점점 더 다양하게 나타나고 있다. 따라서 이러한 역기능으로 인한 피해를 줄이기 위한 대응책으로서 다양한 정보보호(security 또는 보안) 대응 및 방어 기술들이 개발되어 사용되고 있다.
하지만 국내에서 컴퓨터 보안 기술에 대한 기초적이고 체계적으로 다룬 책은 많이 나와 있지만, 대부분은 이론 중심의 책이다. 더군다나 최근에 많은 대학에서 보안 관련 학과를 개설해서 운영되고 있지만, 전공 분야 학생들뿐만 아니라 보안에 관심이 많은 일반인에게 더욱 실제적인 도움을 줄 수 있는 실제적이고 실무적인 내용을 담은 책은 많지 않다.
국내에 사이버 보안과 관련한 소프트웨어, 웹, 하드웨어의 보안 위협과 공격에 대해 실습을 통해 학습할 수 있는 좋은 자료가 없다고 생각하던 차에 미국 시라큐스대학의 Wenliang Du 교수가 쓴 “Computer Security” 3판 책을 접하고 이 책이 컴퓨터 소프트웨어, 월드와이드웹, 하드웨어 분야에서 일어날 수 있는 보안 위협과 다양한 공격을 실제로 실습을 통해서 학습할 수 있는 좋은 책이라고 생각되어 번역해서 출간하게 되었다.
이 책의 내용은 저자가 수년에 걸쳐 구축한 실험, 실습 내용(SEED Lab)을 학생들이 직접 접속해서 실습과 구현을 해보면 사이버 보안의 기본 원칙과 여러 가지 취약점과 공격, 나아가 대응책을 더 쉽게 이해할 수 있다고 생각한다. 또, 대학에서도 교수 개인별 또는 학과별로 실험, 실습 환경을 구축하기보다는 무료로 제공하는 SEED Lab을 활용하면 보다 알찬 수업을 진행할 수 있다고 생각된다.
이 책은 소프트웨어 보안: 공격과 대응책, 웹 보안: 공격과 대응책, Meltdown과 Spectre 공격, Dirty COW, Shellshock, Hash 충돌 등을 포함한 새롭게 발견된 공격, 일반적인 해킹과 방어 기술을 체계적으로 취약점과 공격들을 SEED Lab을 통하여 실제 실습할 수 있다.
저자

WenliangDu

저자:WenliangDu
Wenliang(Kevin)Du,박사는시라큐스대학의LauraJ.andL.DouglasMeredith교수상을받은우수강의교수이다.그는1993년중국과학기술대학에서학사학위를받았다.플로리다국제대학에서석사학위를받은후1996년부터2001년까지퍼듀대학에서수학했으며컴퓨터공학박사학위를받았다.2001년8월에시라큐스대학의조교수가되었다.그는현재전기공학및컴퓨터공학과의전임교수이다.
Du교수는2001년부터학부와대학원에서사이버보안과정을가르치고있다.또한Udemy과정을가르치고있으며,그의과정은종종"최고등급"인정을받았다."실습을통한학습"의확고한신념으로그는SEEDLab이라는40개이상의실습Lab을개발하여학생들이보안공격,대응책과기본보안원칙에대한직접적인경험을얻을수있도록했다.이Lab은널리알려져있다.전세계적으로1000개이상의대학,단과대학과고등학교에서교육과정에이Lab을채택하고있다.2010년에SEED프로젝트는국립과학재단(NSF)이의회에보낸보고서에서의해주목을받았다."새로운도전,새로운전략:학부STEM교육의우수성구축(16쪽)"이라는제목의보고서는"전국적으로학부STEM수업에서최첨단창의성을나타내는17개프로젝트"가주목을받았다.SEEDLab의영향으로제21회정보시스템보안교육콜로키움에서'2017AcademicLeadership'상을수상했다.2019년시라큐스대학은그에게강의우수교수에게주는Meredith교수상을수여하였다.
Du교수는시스템보안에특별한관심을가지고사이버보안연구를수행하고있다.그는100편이넘는기술논문을발표하였다.그의연구작업은16,600회이상인용되었다(2022년5월기준,GoogleScholar기준).그는2013ACMCCSTest-of-TimeAward와2021ACSACTest-of-TimeAward를수상했다.그의현재연구는사이버보안교육과연구를위한인터넷에뮬레이터구축에중점을두고있다.

역자:이재광
울산과학기술원(UNIST)전기전자공학과산학협력중점교수
한남대학교컴퓨터공학과명예교수

목차

PARTⅠ소프트웨어보안
Chapter01리눅스보안개요
1.1사용자와그룹
1.2허가권한과접근제어목록
1.3특권으로명령어실행하기
1.4인증
1.5요약

Chapter02Set-UID특권프로그램과이들에대한공격
2.1특권프로그램의필요성
2.2Set-UID메커니즘
2.3잘못될수있는것:슈퍼맨에게일어난일
2.4Set-UID프로그램의공격표면
2.5다른프로그램인보크하기
2.6최소특권의원칙
2.7요약

Chapter03환경변수를통한공격
3.1환경변수
3.2환경변수로인한공격표면
3.3동적링커를통한공격
3.4외부프로그램을통한공격
3.5라이브러리를통한공격
3.6응용프로그램코드
3.7Set-UID방식대서비스방식
3.8요약

Chapter04버퍼오버플로우공격
4.1프로그램메모리배치
4.2스택과함수호출
4.3스택버퍼-오버플로우공격
4.4실험을위한설정
4.5버퍼오버플로우공격수행하기
4.6주소와버퍼크기를알수없는공격
4.764비트프로그램에대한버퍼오버플로우공격
4.8대응책:개요
4.9주소랜덤화
4.10StackGuard
4.11bash와dash에서대응책을무력화하기
4.12요약

Chapter05Return-to-libc공격과반환-지향프로그래밍
5.1개요:실행불가능스택
5.2공격실험:설정
5.3Return-to-libc공격시작하기:1부
5.4Return-to-libc공격시작하기:2부
5.5쉘의대응책무력화하기
5.6반환지향프로그래밍
5.7요약

Chapter06형식문자열취약점
6.1인수가가변적인함수
6.2선택적인수가누락된형식문자열
6.3취약한프로그램과실험설정
6.4형식문자열취약점악용하기
6.5형식문자열취약점을이용한코드주입공격
6.6대응책
6.7버퍼오버플로우공격과의관계
6.8요약

Chapter07경쟁조건취약성
7.1일반적인경쟁조건문제
7.2경쟁조건취약성
7.3실험설정
7.4경쟁조건취약성악용하기
7.5개선된방법
7.6대응책
7.7요약

Chapter08DirtyCOW경쟁조건공격
8.1mmap()을이용한메모리매핑
8.2MAP_SHARED,MAP_PRIVATE및CopyOnWrite
8.3복사된메모리폐기하기
8.4읽기전용파일매핑하기
8.5DirtyCOW취약점
8.6DirtyCOW취약점악용하기
8.7요약

Chapter09쉘코드
9.1개요
9.2어셈블리코드작성하기
9.3쉘코드작성하기:기본아이디어
9.4접근방식1:스택방식
9.5접근방식2:코드세그먼트방식
9.664비트쉘코드작성하기
9.7일반쉘코드
9.8요약

Chapter10리버스쉘
10.1개요
10.2파일설명자와재지정
10.3입력/출력을TCP연결로재지정하기
10.4리버스쉘
10.5요약

PARTⅡ웹보안
Chapter11웹보안개요
11.1웹구조
11.2웹브라우저
11.3웹서버:HTTP서버와웹응용프로그램
11.4브라우저-서버통신:HTTP프로토콜
11.5쿠키와세션
11.6자바스크립트샌드박싱
11.7Ajax요청과보안
11.8요약

Chapter12사이트간요청위조
12.1사이트간요청과이의문제
12.2사이트간요청위조공격
12.3HTTPGET서비스에대한CSRF공격
12.4HTTPPOST서비스에대한CSRF공격
12.5대응책
12.6요약

Chapter13교차사이트스크립팅공격
13.1교차사이트스크립팅공격
13.2동작중인XSS공격
13.3자체-전파달성하기
13.4XSS공격막아내기
13.5일반적인자바스크립트코드주입공격
13.6요약

Chapter14SQL주입공격
14.1SQL의간단한튜토리얼
14.2웹응용프로그램에서데이터베이스와상호작용하기
14.3SQL주입공격시작하기
14.4근본적인원인
14.5대응책
14.6요약

Chapter15Clickjacking공격
15.1전주곡
15.2개요와배경
15.3투명한iframe을이용한클릭재킹공격
15.4불투명한iframe을이용한클릭재킹
15.5대응책
15.6iframe보안
15.7요약

Chapter16Shellshock공격
16.1배경:쉘함수
16.2Shellshock취약점
16.3Set-UID프로그램에대한Shellshock공격
16.4CGI프로그램에대한Shellshock공격
16.5PHP에대한원격공격
16.6요약

PARTⅢ하드웨어보안
Chapter17Meltdown공격
17.1개요와유추
17.2CPU캐시를통한사이드채널공격
17.3비밀을간직한방:커널
17.4가드넘어가기:CPU에의한비순차적명령어실행
17.5Meltdown공격
17.6대응책
17.7요약

Chapter18Spectre공격
18.1개요
18.2비순차적실행과분기예측
18.3Spectre공격
18.4통계적방식을이용한공격개선하기
18.5Spectre변종과완화
18.6요약
Bibliography

출판사 서평

이책은저자의20년교육과연구경험을바탕으로쓴것이다.사이버보안의기본원칙을다룬다.이책의목표는독자가다양한공격이동작하는방식,공격의근본적인원인이무엇인지,공격을방어하는방법과다양한방어메커니즘이동작하는방식을이해하도록돕는것이다.이책의지식을갖춘독자는컴퓨터와네트워크시스템이직면한위험을평가하고,소프트웨어의일반적인취약점을감지하고,시스템과네트워크를보호하기위한적절한방법을사용하고,공격을차단하고더중요한것은보안원칙을적용하여실제문제를해결하는것이다.

저자는“실제해보고알아가는학습”을강력히믿기때문에이책은실험,실습접근방식을취한다.각보안원칙에관해이책에서는원칙을설명하는데도움이되는일련의실습활동을제공한다.독자는원리를읽는대신에"실제해보는"실험을할수있다.예를들어보안원칙에공격이포함된경우이책은독자에게실제로공격을해보도록안내한다(격리된환경에서).어떤경우에는원칙에보안메커니즘과관련된경우이책은독자에게이메커니즘의미니버전을구현하도록안내한다.독자는이러한실습활동을통해더잘배울수있다.

모든실험,실습활동은작성자가제공한가상머신이미지에서수행된다.다음URL에서다운로드할수있다:https://seedsecuritylabs.org.활동에필요한모든것이설정되어있다.독자는VM(무료)을다운로드하고VirtualBox를사용하여실행하기만하면책에서다루는활동을즉시수행할수있다.이책은Ubuntu20.04VM이미지를기반으로한다.

책에있는대부분의활동은전세계의강사들이널리사용하는저자의SEEDLab(버전2.0)을기반으로한다.이Lab은2002년부터국립과학재단이자금을지원한SEED라는프로젝트에서저자와그의학생들이수행한20년의연구,개발및테스트노력의결과이다.

저자는모든내용을깊이있게다루었다.강의에서다루는모든주제에대해저자는필요한만큼철저하게다루고싶었다.저자는학생들에게개념만가르치는것은관심이없다.저자는학생들이깊이이해하도록돕는것을좋아한다.이책에도같은철학이반영되어있다.예를들어,버퍼오버플로우공격을15분만에가르칠수있지만,이책은이에대해2개장을사용하여필수배경지식,공격세부정보,도전과제,대응책과대응책에대한공격에관해설명한다.

저자는기본을믿는다.보안은매우광범위한주제이다.새로운기술XYZ가나올때마다“XYZ보안”이라는새로운보안주제가생길것이다.이새로운보안주제를가르치는것이더유행을따르는것처럼보이지만저자는기본교육을믿고있다.이XYZ보안주제의바탕에는유사한보안기본사항이있다.기본사항을마스터한독자는습득한지식을바탕으로새로운보안주제에빠르게적용할수있지만XYZ보안을방금배운독자는새로운기술의보안을다루는데어려움을겪을것이다.

독자가기본사항을마스터할수있도록돕기위해이책은독자가근본적인유사점과차이점을볼수있도록돕기위해종종다른것처럼보이는몇가지항목(공격또는방어메커니즘)을함께제공한다.또한특정메커니즘의보안문제를분석할때,보안원칙을기반으로체계적인접근방식을취하고탄탄한기초를바탕으로추론한다.