2013 년정보보호학과졸업작품보고서 Linux 보안관련가상실습및학습시스템개발 팀명 : 1 조 S3(Server Security System) 지도교수 : 양환석교수님 조장 : 노수지 (4 년 ) 유승언 (4 년 ) 최준호 (4 년 ) 중부대학교정보보호학과

Similar documents
untitled

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

<4D F736F F F696E74202D20BFEEBFB5C3BCC1A6BDC7BDC D31C7D0B1E229202D20BDA92E BC8A3C8AF20B8F0B5E55D>

/chroot/lib/ /chroot/etc/

C 언어 프로그래밊 과제 풀이

C++ Programming

슬라이드 1

<32BDBAB8B6C6AEC6F9B1DDC0B6B0C5B7A13130B0E8B8EDBEC8B3BBBCAD2E687770>

Chapter_06

메뉴얼41페이지-2

C 프로그래밊 개요

Level 학습 성과 내용 1수준 (이해) 1. 기본적인 Unix 이용법(명령어 또는 tool 활용)을 습득한다. 2. Unix 운영체계 설치을 익힌다. 모듈 학습성과 2수준 (응용) 1. Unix 가상화 및 이중화 개념을 이해한다. 2. 하드디스크의 논리적 구성 능력

1장. 유닉스 시스템 프로그래밍 개요

PowerPoint 프레젠테이션

CD 무결성체크는 SKIP 을해도좋습니다. Next 버튼을누릅니다. Next 버튼을누릅니다.

Microsoft PowerPoint - 6.pptx

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc

untitled

804NW±¹¹®

슬라이드 1

개인정보보호의 이해 및 안전한 관리 - 개인PC 및 스마트폰 개인정보보호-

OTP문답집(일반이용자대상)_v3[최종].hwp

<443A5C4C C4B48555C B3E25C32C7D0B1E25CBCB3B0E8C7C1B7CEC1A7C6AE425CC0E7B0EDB0FCB8AE5C53746F636B5F4D616E D656E74732E637070>

Microsoft Word - src.doc

Microsoft PowerPoint - ch09 - 연결형리스트, Stack, Queue와 응용 pm0100

K&R2 Reference Manual 번역본

C 프로그래밊 개요

Microsoft PowerPoint - chap05-제어문.pptx

프로그래밍개론및실습 2015 년 2 학기프로그래밍개론및실습과목으로본내용은강의교재인생능출판사, 두근두근 C 언어수업, 천인국지음을발췌수정하였음

<4D F736F F F696E74202D20B8AEB4AABDBA20BFC0B7F920C3B3B8AEC7CFB1E22E BC8A3C8AF20B8F0B5E55D>

PowerPoint 프레젠테이션

Microsoft PowerPoint - 02-Shell-Programming

untitled

PowerPoint Template

목차 1. 시스템요구사항 암호및힌트설정 ( 윈도우 ) JetFlash Vault 시작하기 ( 윈도우 ) JetFlash Vault 옵션 ( 윈도우 )... 9 JetFlash Vault 설정... 9 JetFlash Vault

PowerPoint 프레젠테이션


1 장 C 언어복습 표준입출력배열포인터배열과포인터함수 const와포인터구조체컴파일러사용방법 C++ 프로그래밍입문

vi 사용법

Microsoft PowerPoint - chap01-C언어개요.pptx

Infinity(∞) Strategy

KEY 디바이스 드라이버

Linux SHELL


003_°³Á¤3ÀúÀ۱dz»Áö

< FBBE7B0EDB3EBC6AE5FB5F0C6FAC6AEC6D0BDBABFF6B5E5C3EBBEE0C1A128BCF6C1A4292E687770>

사용자계정관리 1. 사용자계정관리 사용자 (user), 그룹 (group) u 다중사용자시스템 (Multi-User System) - 1 대의시스템을동시에여러사람이접속하여쓸수있게하는시스템 u 사용자 (user) - 시스템관리자 : root (=Super user) -

PowerPoint 프레젠테이션

ㅇㅇㅇ

»ç¿ëÀÚ¸Þ´º¾ó

< E20C6DFBFFEBEEE20C0DBBCBAC0BB20C0A7C7D12043BEF0BEEE20492E707074>

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

목차 윈도우드라이버 1. 매뉴얼안내 운영체제 (OS) 환경 윈도우드라이버준비 윈도우드라이버설치 Windows XP/Server 2003 에서설치 Serial 또는 Parallel 포트의경우.

1) 인증서만들기 ssl]# cat > // 설명 : 발급받은인증서 / 개인키파일을한파일로저장합니다. ( 저장방법 : cat [ 개인키

중간고사

Windows 8에서 BioStar 1 설치하기

학습목차 2.1 다차원배열이란 차원배열의주소와값의참조

DBPIA-NURIMEDIA

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

10 강. 쉘스크립트 l 쉘스크립트 Ÿ 쉘은명령어들을연속적으로실행하는인터프리터환경을제공 Ÿ 쉘스크립트는제어문과변수선언등이가능하며프로그래밍언어와유사 Ÿ 프로그래밍언어와스크립트언어 -프로그래밍언어를사용하는경우소스코드를컴파일하여실행가능한파일로만들어야함 -일반적으로실행파일은다

VPN.hwp

비트와바이트 비트와바이트 비트 (Bit) : 2진수값하나 (0 또는 1) 를저장할수있는최소메모리공간 1비트 2비트 3비트... n비트 2^1 = 2개 2^2 = 4개 2^3 = 8개... 2^n 개 1 바이트는 8 비트 2 2

본 강의에 들어가기 전

1) 인증서만들기 ssl]# cat > // 설명 : 발급받은인증서 / 개인키파일을한파일로저장합니다. ( 저장방법 : cat [ 개인키

11장 포인터

2015 개정교육과정에따른정보과평가기준개발연구 연구책임자 공동연구자 연구협력관

U.Tu System Application DW Service AGENDA 1. 개요 4. 솔루션 모음 1.1. 제안의 배경 및 목적 4.1. 고객정의 DW구축에 필요한 메타정보 생성 1.2. 제품 개요 4.2. 사전 변경 관리 1.3. 제품 특장점 4.3. 부품화형

untitled

Microsoft PowerPoint - 11주차_Android_GoogleMap.ppt [호환 모드]

Microsoft PowerPoint - 5. 사용자 계정관리-1(2016-1학기).ppt [호환 모드]

13주-14주proc.PDF

PowerPoint 프레젠테이션

Microsoft PowerPoint - 02_Linux_Fedora_Core_8_Vmware_Installation [호환 모드]

네이버블로그 :: 포스트내용 Print VMw are 에서 Linux 설치하기 (Centos 6.3, 리눅스 ) Linux 2013/02/23 22:52 /carrena/ VMware 에서 l

(Asynchronous Mode) ( 1, 5~8, 1~2) & (Parity) 1 ; * S erial Port (BIOS INT 14H) - 1 -

PowerPoint 프레젠테이션

商用

201112_SNUwifi_upgrade.hwp

이번장에서학습할내용 동적메모리란? malloc() 와 calloc() 연결리스트 파일을이용하면보다많은데이터를유용하고지속적으로사용및관리할수있습니다. 2

untitled

Microsoft PowerPoint - [2009] 02.pptx

Microsoft Word - OOPT stage 2040 ver2.docx

6주차.key

슬라이드 1

쉽게 풀어쓴 C 프로그래밍

지도상 유의점 m 학생들이 어려워하는 낱말이 있으므로 자세히 설명해주도록 한다. m 버튼을 무리하게 조작하면 고장이 날 위험이 있으므로 수업 시작 부분에서 주의를 준다. m 활동지를 보고 어려워하는 학생에게는 영상자료를 접속하도록 안내한다. 평가 평가 유형 자기 평가

슬라이드 1

MB860_Q_0405_L-SKT.pdf

SH100_V1.4

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202834C1D6C2F7207E2038C1D6C2F729>

Chapter 4. LISTS

Chapter 1

MZ601_QG_0527_L-SKT.pdf

< DC1A6C1D6C1BEC7D5BBE7C8B8BAB9C1F6B0FCBBE7BEF7BAB8B0EDBCADC7A5C1F62E696E6464>

Transcription:

2013 년정보보호학과졸업작품보고서 Linux 보안관련가상실습및학습시스템개발 팀명 : 1 조 S3(Server Security System) 지도교수 : 양환석교수님 조장 : 노수지 (4 년 ) 유승언 (4 년 ) 최준호 (4 년 ) 2013.5 중부대학교정보보호학과 - 1 -

요약문 1. 연구제목 Linux 보안관련가상실습및학습시스템개발 2. 개발동기서버관리자는관리자의데이터, 지적재산, 시간을크래커의손에서보호하기위해서는자신의리눅스서버의보안을강화하는것이중요하다고생각됩니다. 시스템관리자가리눅스서버보안에책임을가져야하는데, 서버관리를위해기본적으로기초지식이탄탄해야된다고생각합니다. Linux 서버에서어떤문제가많이발생되고, 어떤공격을당하는지에대한취약점이나보안부분을학습하고, 해결법을익혀서문제풀이를통해서배우고익힐수있도록쉘프로그래밍을이용하여학습시스템을구축하게되었습니다. 3. 연구내용 Linux기반의학습시스템을개발하여인증된사용자만이접속가능하고가상실습환경을구축하여여러개의문제를랜덤으로출력하여문제풀이를통해레벨을높여가는학습시스템입니다. 모든사용자는회원가입후관리자승인시사용가능하며, 가상실습환경은각문제마다서버를구축하여랜덤으로문제풀이를할수있습니다. 4. 시스템구축목표시스템관리시가장중요시여겨야할점은문제가발생했을때즉시해결할수있어야하며보안유지에힘써야하는것입니다. 시스템공격에대해대응하지못한다면시스템마비, 정보유출등여러가지문제점을초래할수있습니다. 그래서저희는본연구를통해 Linux 기반의보안및취약점지식을습득할수있고, 시스템관리시나타나는오류와취약적인부분에대해학습하면서보다효과적으로범위내에서직접보안을전제로하여서버의취약한부분에대한문제풀이를통해서배우고익힐수있도록쉘프로그래밍을이용하여학습시스템을구축하였습니다. 기존 Linux 보안및시스템공격에대한기출문제들을 Run-level을통해재미있고쉽게문제를풀수있도록합니다. 또한실전에대비하여가상실습환경을구축하여실전문제풀이를통해실무능력향상에도도움이될것이다. - 2 -

목 차 Ⅰ. 서론 Ⅰ- 1. 개발배경및목적 Ⅰ- 2. 개발환경 Ⅰ- 3. 개발일정 Ⅱ. 본론 Ⅱ- 1. 프로그램구성 Ⅱ- 2. 사용자인증시스템 Ⅱ- 3. 학습프로그램 ( 가상실습환경구축 ) Ⅱ- 4. 문제관리시스템 Ⅲ. 결론 Ⅲ- 1. 기대효과및응용분야 Ⅲ- 2. 기타 참고문헌 발표 PPT 자료 - 3 -

Ⅰ. 서론 Ⅰ- 1) 개발배경및목적 - Bash shell을이용한문제관리시스템을개발및효율적인학습환경제공시스템구축 - linux, solaris, shell 등시스템전반에관한지식습득 - 서버시스템공격및대응책에대한기본적인학습 - 체계적인진행을통해쉘프로그램의전반적인학습을통한실력향상 - Run-Level을통한학습의성취감을높여주기위한학습프로그램 Ⅰ- 2) 개발환경 운영체제 : CentOS 5.7 / Fedora 11 프로그래밍언어 : Bash Shell, C, C++ Ⅰ- 3) 개발일정 내용조원의역할분담및일정계획서버공격취약점및보안관련집중분석및학습 월별진행계획 9 월 10 월 11 월 12 월 1 월 2 월 3 월 4 월 비고 프로그램설계및구현 오류검사및가상실습환경연동시스템구축완료및포트폴리오 & PPT 제작 - 4 -

Ⅱ. 본론 Ⅱ- 1) 프로그램구성 - 사용자인증시스템 (user authentication system) - 학습프로그램 ( 가상환경구축 ) - 문제관리시스템 본학습시스템모든사용자는관리자에게인증된사용자만이접속가능하며, 관리자에게인증된사용자는최초로그인시회원가입시부여받은 OTP번호를통해로그인합니다. 로그인후문제풀이가가능하며, 문제풀이는 EQS(Example Question System) 과 RQS(Real Question System) 으로구성되어있습니다. EQS(Example Question System) 는연습문제시스템으로시스템공격및대응에관한기초적인문제를풀수있으며, RQS(Real Question System) 으로리눅스보안및취약점에대한필기문제와가상실습문제로구성되어있습니다. 문제를맞출때까지다음 Run-level로올라갈수없으며, 문제풀이도중종료시현재 level이자동저장되어다음재접속시이어가기또는새로풀기가가능한시스템입니다 RQS에서랜덤으로제공되는실습문제를가상환경에접속하여문제를풀수있습니다. 문제풀이를통해실무능력을향상시키고, Linux 보안및시스템공격에대한기출문제들을 Run-level을통해재미있고쉽게문제를풀수있도록하여학습의성취감을높힐수있습니다. 또한문제관리시스템에서는 EQS와 RQS시스템에서제공되는문제들을수정, 삭제, 조회등을통해쉽게관리할수있습니다. Ⅱ- 2) 사용자인증시스템 (user authentication system) 통신망을통하여학습시스템에접속하는사용자가등록되어있는정당한사용자인지의여부를신뢰할수있는방법으로확인하는시스템. 원격으로접속하여시스템을사용하는사용자들에게있어서는특히중요합니다. 중심부분은인증서버라는프로그램으로사용자의정보와 ID, Password등을일괄관리합니다. 인증서버는서비스를제공하는프로그램에대해서회원가입시사용자정보등록을통하여사용자가관리자에게허가를받은본인이라는사실을입증하여시스템에접속할수있도록합니다. 최초접속시강력한보안을위해사용자등록시발행되는 OTP번호를입력하여로그인할수있도록합니다. - 5 -

< 사용자인증시스템구성도 > Ⅱ- 2-1. 회원가입시사용자정보입력 #!/bin/bash clear echo -n " 이름을입력하세요 : " read username echo -n " 주민등록번호를입력하세요 : " read usernum echo -n " 전화번호를입력하세요 : " read userphone echo -n " 사용할 ID를입력하세요 :" read id if grep -w $id /etc/passwd > /dev/null grep -w $id /home/guest/.user_list.txt > /dev/null then echo " 사용자가존재합니다." echo -n " 다시입력하세요 : " read id echo -n " 비밀번호를입력하세요 : " - 6 -

read passwd echo -n "OTP를전송받을 E-mail을입력하세요 : " read email else echo -n " 비밀번호를입력하세요 : " read passwd echo -n "OTP를전송받을 E-mail을입력하세요 : " read email fi /S3_graduation/OTP >> /home/guest/.user_list.txt echo "$id : $username : $usernum : $userphone" >> /S3_graduation/.user_info.txt echo " $id $passwd $email" >> /home/guest/.user_list.txt `cat /home/guest/.user_list.txt grep -w $id cut -f1 -d' ' mail -s "OTP Number" $email` echo " 사용자를요청하였습니다 " Ⅱ- 2-2. OTP 번호발행하는알고리즘 OTP [ One Time Password ] 고정된패스워드대신무작위로생성되는일회용패스워드를이용하는사용자인증방식. OTP( 일회용패스워드, One Time Password) 는무작위로생성되는난수의일회용패스워드를이용하는사용자인증방식이다. 보안을강화하기위하여도입한시스템으로, 로그인할때마다일회성패스워드를생성하여동일한패스워드가반복해서사용됨으로발생하는보안상의취약점을극복하기위해도입되었다. 주로금융권에서온라인뱅킹 (Online banking) 등의전자금융거래에서사용되며, 사용자는일회용비밀번호를생성하는하드웨어인 OTP 생성기 (OTP token) 를이용한다. 별도의 OTP 생성기를소지해야하는불편함등으로인해전자금융거래를제외한인터넷등의광범위한네트워크에서는일반적으로사용되지않는다. OTP 생성기는버튼을누르면 6자리의패스워드가나오는방식, 매 1분마다자동으로서로다른 6자리의패스워드가나오는시간동기방식, 키패드에 4자리비밀번호를입력하면 6자리패스워드를보여주는방식등이있다. 형태로는소형단말기모양의토큰형과신용카드모양의카드형이사용되고있으며, 최근에는휴대폰의범용가입자식별모듈 (USIM) 을기반으로하는모바일 OTP(MOTP) 의도입이추진되고있다. 국내에서는금융보안연구원 (Financial Security Agency) 에서운영하는 OTP통합인증센터가설립되어 2007년 6월부터서비스가시작되었다. 2008년개정된전자금융감독규정에의해 OTP는인터넷뱅킹, 모바일뱅킹, 텔레뱅킹등전자금융거래시보안카드를대체하는 1등급보 - 7 -

안매체로지정되었다. 개인이보안 1등급을유지해 1억원이체한도의고액거래를가능하게하려면 OTP 사용이필수적이며, 법인은보안 1등급이아닌경우인터넷을통해자금이체를할수없다. 2011년 6월말현재 OTP 이용자수는 511만227명이며, 은행 19개, 증권 37개, 기타 6개사등총 62개금융회사가참여하고있다. - 알고리즘소스코드 #include <stdio.h> #include <stdlib.h> #incllude <time.h> int main(void) { int i, j random[6]; srand( (unsigned) time(null)); for( i = 0; I <= 5; I++) { random[i] = (rand() % 10); for (j=0; j < i; j++) { if(random[i] == random[j]) { I--; break; } } } for(i=0;i<=5;i++) printf( %d, random[i]); return 0; - 8 -

Ⅱ- 3) 학습프로그램 Ⅱ- 3-1. 학습프로그램구성 < 학습프로그램구성도 > - EQS (Example Question System) 연습문제프로그램 객관식과주관식문제 문제랜덤생성 - RQS (Real Question System) 실전문제프로그램 문제는가상실습문제와단답형필기문제로구성 문제은행에서 10문제를랜덤으로추출 문제를맞출때까지다음 Run-level로올라갈수없음 문제풀이중종료시현재 level이자동저장 재접속시, 이어가기또는새로풀기가능 Ⅱ- 3-2. 가상실습환경구축시스템공격및취약점에대한대응책과해결책을실습을통하여익히고, 실전에대비할수있도록가상실습환경을구축. 메인시스템에서 ssh를통해각각의가상실습환경으로접속하여문제를풀수있습니다. 가상실습환경을각문제당구축하여실습문제를풀다시스템오류시 OS에치명적인손상이가할수도있기때문에각문제당실습환경을따로구축하였습니다. - 9 -

< 가상실습환경구성도 > Ⅱ- 3-3. 문제를무작위로출력하는알고리즘 echo " " >> /S3_graduation/temp/$user.temp while [ $listcnt -le "11" ] do if [ $listcnt -le "8" ] then list=`cat /S3_graduation/temp/$user.temp cut -f$listcnt -d'/'` sh /S3_graduation/Question/$list echo -n ":$listcnt" >> /S3_graduation/temp/$user.temp 2> /dev/nul # 문제가 1 번 ~ 10 번까지... 저장하는것. else listcnt=`expr $listcnt + 1` list=`cat /S3_graduation/temp/$user.temp cut -f$listcnt -d'/'` sh /S3_graduation/RQS/$list echo -n ":$listcnt" >> /S3_graduation/temp/$user.temp 2> /dev/nul # 문제가 1 번 ~ 10 번까지... 저장하는것. listcnt=`expr $listcnt + 1` - 10 -

fi done clear echo " *-------------------------------------------* " echo " 다음문제는없습니다." echo " 모든문제를푸셨습니다." echo " 수고하셨습니다. 축하합니다.!!!" echo " *-------------------------------------------* " rm -rf /S3_graduation/temp ############################################### save() { if [ -f /S3_graduation/temp/$user.temp ] then echo -n " 이전에풀던문제가있습니다. 이어서하시겠습니까? [y/n] : " read cntcnt case $cntcnt in y Y) loadcnt="${savecnt##*:}" listcnt=`expr $loadcnt + 1` # echo " " >> /S3_graduation/temp/$user.temp while [ $listcnt -le "11" ] do list=`cat /S3_graduation/temp/$user.temp cut -f$listcnt -d'/'` 2> /dev/nul sh /S3_graduation/Question/$list 2> /dev/nul /S3_graduation/temp/$user.save.temp 2> /dev/nul echo -n "/$list" >> /S3_graduation/temp/$user.temp 2> /dev/nul echo -n ":$listcnt" >> # 문제가 1 번 ~ 10 번까지... 저장하는것. done listcnt=`expr $listcnt + 1` - 11 -

clear echo " 다음문제는없습니다." echo " 모든문제를푸셨습니다." echo " 수고하셨습니다. 축하합니다.!!!" rm -rf /S3_graduation/temp ;; n N) esac new;; else new } fi user=`whoami` # 사용자의아이디를입력받기위한코드 savecnt=`cat /S3_graduation/temp/$user.temp` touch /S3_graduation/temp/$user.out # 종료를위한카운트 save rm -f /S3_graduation/temp/$user.out # 종료카운트삭제 Ⅱ- 4) 문제관리시스템 학습시스템내의 EQS(Example Question System) 와 RQS(Real Question System) 프로그램에서사용되는문제들을체계적으로관리하는시스템. 편리하게문제들을수정, 삭제, 조회할수있도록구성 - 12 -

Ⅲ. 결론 Ⅲ- 1) 결론및기대효과 - Linux 보안및시스템공격에대한기초적인전공지식습득 - Run-level 문제풀이를통한재미와흥미유도 - 가상실습환경에서직접시스템환경설정을통해시스템이해와실무능력향상 - 수업복습및과제등학습능력향상에도움 - 전공관련자격증취득을위한선테스트 Ⅲ- 2) 기타 참고문헌 [1] 이소문저 페도라리눅스 10, 2009 [2] 박성수저 리눅스서버관리실무바이블 3.0 上下, 2012 [3] 이수길저 클릭하세요리눅스쉘스크립트프로그래밍, 2003 [4] 우재남, 김태헌저 뇌를자극하는 Redhat Fedora: 리눅스서버 & 네트워크, 2005-13 -

발표 PPT 자료 - 14 -

- 15 -

- 16 -

- 17 -

- 18 -

vc vxcx c c11234454 v vcvvx - 19 -

- 20 -

- 21 -

- 22 -

- 23 -

- 24 -

- 25 -