모의 침투 입문자를 위한 파이썬 3 활용 (파이썬 3 기반의 TCP/IP 활용 지침서)

모의 침투 입문자를 위한 파이썬 3 활용 (파이썬 3 기반의 TCP/IP 활용 지침서)

$25.79
Description
데비안/우분투 계열의 운영 체제에서 제공하는 파이썬 3.4를 이용해 TCP/IP 소켓을 구현하고, 이를 기반으로 주요한 모의 침투 도구의 구현 과정을 소개한다.
선정 및 수상내역
* 2020년 세종도서 학술부문 선정도서
저자

오동진

서울에서출생해인천대학교(구인천전문대학)일어과와경희사이버대학교정보통신학과를졸업하고한국외국어대학교교육대학원에서전산교육학석사를취득했다.
약9년동안한국통신(KT)등에서근무하며다양한행정처리와정보기술환경을경험했다.사무처리와관련해한자능력2급등을취득했고,정보기술과관련해정보처리산업기사ㆍ정보보안산업기사ㆍCCNA/CCNP등과같은자격증을취득했다.또한교원2급자격증과직업능력개발훈련교사3급자격증등을취득했다.
2004년부터현재까지국가공무원인재개발원과서울시인재개발원등에서정보보안기사자격증과모의침투분야를강의중이다.2016년경찰인재개발원(구경찰교육원)에서우수외래강사로감사장을받았다.사이버보안중다양한모의침투운영체제와사회공학에특히관심이많다.
강의가없을때는문학ㆍ사학ㆍ철학과관련된책을읽거나국가정보학과같은책을읽는다.이와관련해페이스북에서모의침투연구회(www.facebook.com/groups/metasploits)와사이버안보연구회(www.facebook.com/groups/koreancyberwar)를개설해활동중이다.
저서로는에이콘출판사에서출간한『해킹입문자를위한TCP/IP이론과보안2/e』(2019),『칼리리눅스입문자를위한메타스플로잇중심의모의침투3/e』(2019),『백박스리눅스를활용한모의침투』(2017),『해커의언어파이썬3입문』(2018),『소켓개발입문자를위한백박스기반의파이썬2.7』(2016)등이있고,공저로는『데비안리눅스활용과보안』(2017)ㆍ『우분투리눅스기반의IDS/IPS설치와운영』(2018)등이있다.

목차

1장.주요헤더의구조와항목
__1-1UDP헤더의구조와항목
__1-2TCP헤더의구조와항목
__1-3IP헤더의구조와항목
__1-4ICMP헤더의구조와항목

2장.주요내장모듈의소개와활용

3장.소켓의개념과객체생성방법

4장.간단한서버와클라이언트구현과응용

5장.간단한포트스캐너구현

6장.간단한FTP클라이언트구현

7장.원시소켓방식에따른헤더의생성

8장.오류검사여부에따른TCP/IP헤더의생성

9장.수신관점에따른주요헤더의복원

10장.하위계층기반의원시소켓방식에따른주요헤더의복원

11장.헤더복원을통한단순한패킷스니핑도구의구현

12장.ARP스푸핑공격도구의구현

13장.스캐닝도구의구현
__13-1호스트스캔도구의구현
__13-2포트스캔도구의구현
__13-3다중스레딩을이용한고속스캐너도구의구현

14장.서비스거부공격도구의구현
__14-1LAND공격도구
__14-2UDP/TCP플러딩공격도구
__14-3슬로우로리스공격도구

15장.네트워크퍼징도구의구현
__15-1퍼징개요
__15-2EchoServer에대한퍼징
__15-3FTPServer에대한퍼징
__15-4Scapy를이용한퍼징

출판사 서평

★이책에서다루는내용★

■모든내용을파이썬3에기반해작성
■각계층별헤더를중심으로TCP/IP소켓구현과정소개
■TCP/IP소켓구현과정을기반으로주요침투도구소개
■소스코드에비중을두고최대한이해하기쉽게주석을달고순차적인구현과정제시
■Github를통해본문에서사용한소스코드를지속적으로제공

★이책의대상독자★

■TCP/IP이론을숙지한사람
■파이썬3기본문법을숙지한사람
■데비안/우분투환경에익숙한사람
■모의침투기량을한단계높이려는사람
■대학교와대학원에서정보보안을전공하는사람

★이책의구성★

제1장,‘주요헤더의구조와항목’에서는네트워크프로그래밍을시작하기위한사전지식으로서TCP/IP패킷헤더를설명한다.제1장의배경지식을토대로소스코드를이용해패킷을자유자재로생성하거나조작할수있다.
제2장,‘주요내장모듈의소개와활용’에서는본격적으로네트워크프로그래밍을시작하기에앞서,파이썬3의주요모듈을살펴본다.파이썬은현재2버전과3버전이혼용되고있지만,향후2버전의지원이중단될예정이므로3버전을기준으로설명한다.파이썬3의osㆍsocket등의패키지활용법은반드시숙지하기바라며,바이트순서내용을명확히이해하고다음장으로넘어가기바란다.
제3장.‘소켓의개념과객체생성방법’에서는본격적으로파이썬3의socket모듈을사용해간단한통신객체생성방법을설명한다.특히,통신연결과정에서사용되는connect()ㆍbind()ㆍaccept()등과같은함수들이호출되는순서를서버측과클라이언트측에알맞게배치할수있도록반드시숙지하고넘어가기바란다.
제4장,‘간단한서버와클라이언트구현과응용’에서는네트워크관점에서서버와클라이언트를서로다른위치에있다고가정하고,소켓을통해상호통신이가능함을확인한다.파이썬3는다른언어에비해월등히수월하게소켓관련기능을구현할수있으므로,필수함수정도는꼭기억하기바란다.
제5장,‘간단한포트스캐너구현’에서는포트스캐닝을수행할수있는오픈소스nmap패키지를파이썬3와연동해간단한포트스캐닝도구를구현한다.제5장의내용을정확히숙지한다면,nmap관련스크립트코드들을해석하는기초를쌓을수있다.
제6장,‘간단한FTP클라이언트구현’에서는직접FTP클라이언트프로그램을구현하는과정을진행한다.여기에서제시한내용을기반으로각자에게필요한기능을검색을통해하나씩추가하면서구현해보기바란다.
제7장,‘원시소켓방식에따른헤더의생성’에서는제3,4장에서다룬표준소켓방식(socket.SOCK_DGRAM)이아닌,사용자가직접임의로제어할수있는원시소켓방식(socket.SOCK_RAW)을학습한다.이를이해하기위한선행지식으로각방식의차이점을살펴보고,사용자가직접헤더를구현할때필요한코드를설명한다.이방식으로생성된헤더의복원과정은추후제10장에서자세히다룬다.
제8장,‘오류검사여부에따른TCP/IP헤더의생성’에서는원시소켓을생성할때TCP헤더의오류검사여부에따라패킷의내용이상이하다는것을확인한다.이러한사전지식이없다면,예측과다른전개에당황할수있다.따라서반드시TCP헤더의오류검사여부를점검해야하는만큼제8장의설명내용을잘이해하고넘어가기바란다.
제9장,‘수신관점에따른주요헤더의복원’에서는패킷의내용을역으로분석해관련정보를해석할수있는접근방법을설명한다.이는제8장의과정에대한리버스엔지니어링이라고볼수있으며,결국패킷스니핑의근간을이루는기술을구현한것이다.
원시소켓방식에따른헤더의생성과복원은이후내용에서도중요한만큼충분히이해할때까지반복해서익히기바란다.
제10장,‘하위계층기반의원시소켓방식에따른주요헤더의복원’에서는하위계층기반의원시소켓방식을통해물리계층에서부터응용계층까지복원이가능하다는사실을설명한다.이를통해캡처된임의의패킷내용을직접분석해보는다양한경험을쌓기바란다.
제11장,‘헤더복원을통한단순한패킷스니핑도구의구현’에서는제9장을기반으로스니핑도구를간단히구현한다.제11장에서구현한도구를기반으로좀더정교하고다양한기능을추가할수있기를바란다.
제12장,‘ARP스푸핑공격도구의구현’에서는ARP스푸핑공격의개념을설명하고,파이썬3을이용해ARP스푸핑공격도구를구현한다다.ARP스푸핑공격은특히공항이나카페등공용으로사용할수있는내부무선망환경에서상당히치명적이다.따라서말미에대응책까지제시한다.
제13장,‘스캐닝도구의구현’에서는socket만을사용해나머지세부적인스캐닝기능을직접구현할수도있다는것을설명한다.제5장에서nmap을이용한간단한도구를구현한적이있지만,이는개발속도향상을위해모듈을사용한것에불과하기때문에제13장의내용을참고해자신만의포트스캐닝도구를구현해보기바란다.
제14장,‘서비스거부공격도구의구현’에서언급한서비스거부공격은가장단순하면서도가장효과적인공격일수있다.제14장에서다룬소스코드를통해서비스거부공격도구를구현한다.서비스거부공격도구의동작원리를충분히이해한다면,칼리리눅스등의모의침투운영체제에포함된hping등과같은도구들이어떻게구현돼있는지충분히가늠할수있을것이다.
제15장,‘네트워크퍼징도구의구현’에서는퍼즈테스팅방안을확인하고,scapy를통해실제적퍼징방안을확인한다.이방법론을통해얻어진정보를단서로독자들각자가한층더심화된모의침투기법능력을함양하기바란다.

★감수의글★

공과계열의대학에서는네트워크이론과목이대부분필수항목으로들어가있다.대학뿐만아니라관련교육기관에서도네트워크이론을접할수가있는데,수업의내용은암기과목으로여겨져왔다.교육은대부분달달외우기식으로진행된다.프로토콜이왜이렇게디자인됐을까하는능동적사고방식을할겨를도없이기존에설계가이렇게돼있으니그저외우기만하면된다는식의주입식내용전달이대부분이다.
현업에서네트워크와관련된일을하면서이러한교육방식(의구심을갖지말고외우기)은단기간학점취득에는도움이되나,근본적인네트워크설계이해에는오히려역효과를가지고올수있다는생각이들었다.기존의교육방식으로는현업에서요구하는바를충족시키기에는한계가있음을절감한다.
해결방안이없는것은아니다.실무위주의교육을하는것이다.직접패킷을잡아가면서각헤더의연결관계를이해하고,프로토콜의각각의필드가어떠한역할을하는지스스로확인하면서습득하는것이한결나은교육방식이라고생각한다.
지금까지이러한방식의교육을하는데는C언어로된교재가많이이용됐다.네트워크분야와시스템분야는떨어뜨릴수없는부분이있고,이러한영역을접하는데는C언어가가장적합한언어로인식돼왔기때문이다.하지만시대가지나면서다양한프로그래밍언어가생겨나고있으며,요즘에는파이썬(Python)언어가기존의C언어가하는역할들을조금씩대체하고있는추세다.
Scapy는네트워크패킷을잡아서분석할수있도록하는파이썬기반의프로그램이다.네트워크를실용적인차원에서공부하고싶다면Scapy를배우는것이훨씬효과적인선택일수도있다.하지만국내서중에서Scapy에대해자세한정보를전달하는교재는그리보이지않는것같다.이책은네트워크에입문하는사람들뿐만아니라,파이썬프로그래밍을통해패킷을분석하면서제대로된네트워크의이해를돕고자하는이들에게실질적으로많은도움을줄수있는책이라평가할수있다.
단순히이책을읽기만하지말고,책에서설명하는대로실습내용을차근차근따라가다보면어느덧네트워크전문가의길에들어서있는자신을발견할수있을것이다.