<C0A5C0C0BFEBC7C1B7CEB1D7B7A5B0B3B9DFBAB8BEC8B0A1C0CCB5E528C3D6C1BE292E687770>

Save this PDF as:
 WORD  PNG  TXT  JPG

Size: px
Start display at page:

Download "<C0A5C0C0BFEBC7C1B7CEB1D7B7A5B0B3B9DFBAB8BEC8B0A1C0CCB5E528C3D6C1BE292E687770>"

Transcription

1 일러두기 o 행정안전부 ( 정부통합전산센터 ) 는사이버침해를방지하기위해 일쉴틈 없는보안관제와주기적인보안점검등정보보호활동을수행하고있습니다. o 하지만, 사이버침해의주요대상이되는홈페이지의웹프로토콜은기본적으로누구에게나개방되어있기때문에, 전통적인침입차단시스템을이용한방어가용이하지않으며, 이러한특성을이용한새로운위협이지속적으로발견되고있습니다. o 이러한이유로, 행정안전부 ( 정부통합전산센터 ) 에서는홈페이지에대한근본적인보안강화를위해, 국가정보원, 한국인터넷진흥원, OWASP 1) 등국내외전문기관에서정의한홈페이지개발보안고려사항을분류, 웹어플리케이션개발보안가이드 2010 을발간하게되었습니다. o 본가이드에서는 12 개보안사항에대한상세설명과함께취약여부를점검 할수있는방법및위험도, 보호대책을제공합니다. 1) OWASP : The Open Web Application Security Project (

2 웹어플리케이션개발보안항목요약 o 국가정보원의 홈페이지보안관리매뉴얼. 에명시된홈페이지 8대취약점과한국인터넷진흥원의 홈페이지개발보안가이드 의 10대취약점, OWASP에서발표한 10대가장심각한웹어플리케이션보안취약점 에명시된 10가지취약점등 28가지취약점을정부통합전산센터의환경을고려하여, 웹어플리케이션개발시고려해야할 12가지점검항목으로재분류하였습니다. 점검항목국가정보원 KISA OWASP 1 스크립트삽입 (XSS) O O O 2 스크립트요청참조 (CSRF) O 3 악성파일실행 O O 4 SQL 구문삽입 O O O 5 URL/ 파라메터조작 O O 6 파일업로드 O O O 7 파일다운로드 O O O 8 URL강제접속 / 인증우회 O O 9 서비스메소드설정 O 10 에러처리및기타정보노출 O O 11 ID/PW 관리 O 12 환경설정보안고려사항 O O O 위항목은홈페이지개발단계에서고려하여야할보안점검항목으로보안진단항목과는다를수있음.

3 목 차 1. 스크립트삽입 (XSS) 1 2. 스크립트요청참조 (CSRF) 5 3. 악성파일실행 7 4. SQL 구문삽입 9 5. URL/ 파라메터조작 파일업로드 파일다운로드 URL강제접속 / 인증우회 서비스메소드설정 에러처리및기타정보노출 ID/PW 관리 환경설정보안고려사항 25 < 별첨 > ActiveX Control 개발가이드

4

5 1. 스크립트삽입 (XSS) 개요 o 스크립트삽입 (XSS:Cross Site Script) 은악성스크립트를홈페이지게시판, 전자메일등을통해유포하여, 사용자가해당게시물또는메일을클릭하였을때악성스크립트가실행되는것이며, o 공격자는스크립트삽입을이용하여사용자의개인정보, 로그인정보, 내부자료등을탈취하여 2차적인공격을수행한다. [ 그림 1 ] 스크립트삽입 (XSS) 점검예시 o 홈페이지내게시판에글쓰기시작성자, 제목, 본문등에 XSS 스크립트를입력예시 ) 1. <script>alert("xss")</script> 2. <sc<script>ript>alert("xss")</sc</script>ript> 3. %3Cscript%3Ealert%28%22XSS%22%29%3C/script%3E 1

6 [ 그림 2 ] 게시물에스크립트삽입 o 취약시스템의경우게시물보기를실행하면, 아래와같이팝업이발생 [ 그림 3 ] XSS 취약시스템 공격대상 o 공격대상언어 : 다음과같은스크립트나언어가스크립트삽입공격대상이된다. JavaScript, VBScript, ActiveX, HTML, Flash o 공격시도위치 : 다음과같은입력부분에서스크립트삽입공격을시도한다. 게시판글쓰기화면 ( 제목, 글내용등데이터를입력할수있는모든필드 ) 게시판글보기화면에서댓글달기 쿠키값 데이터베이스질의문 2

7 피해유형 o 페이지변조 : 이미지나사운드를삽입할수있다. o 쿠키변형 : 쿠키자체를변형시켜서쿠키에악의적인코드를넣어둘수있다. o 쿠키유출 : 사용자쿠키값을획득하여, 인증우회에사용한다. o 개인정보유출 : 웹페이지내의패스워드나신용카드번호와같은민감한정보를유출시킬수있다. o 악성프로그램다운로드 : 스크립트내에악성프로그램을다운로드받는사이트를링크시키며, 사용자가모르는사이악성프로그램이 PC에설치된다. 보호대책 o 스크립트삽입공격에대한근본적인대응방법은사용자로부터입력받는모든값을서버에서검증후입력받도록하는방식을사용하는것이다. o 입력값검증의방법은사용자입력으로사용가능한문자를정해놓고, 나머지모든문자를필터링하는방법을사용하여야한다. - 검증대상입력값 : 스크립트정의어 (<script>, <object>, <applet>, <embed> 등 ) - 어플리케이션에서사용자들의모든입력값을점검, 허용된데이터만입력할수있도록구현 - 입력되는특수문자는 Entity형태로변경하여저장. o 이때, 검증은반드시서버에서이루어지도록개발하여야한다. 3

8 2. 스크립트요청참조 (CSRF) 개요 o 스크립트요청참조 (CSRF) 는공격자가사용자의 Cookie 값이나 Session정보를의도한사이트로보내거나특정한동작을유발하는스크립트를글에삽입하여사용자가게시물등을클릭할경우공격자가원하는동작이실행되는것이며, o 일반적으로악용되는태그들은 <Script>, <OBJECT>, <APPLET>,<EMBED>, <IMG>, <FORM> 등이있다. [ 그림 4 ] 스크립트요청참조 (CSRF) 점검방법 o 글쓰기후전송되는 URL과파라미터값을복사한다. - o 새로운글을작성하고, 글내용중에 <IMG> 태그를사용하여, 아래와같이복사한 URL과파라미터를붙여넣는다. - <img width=0 height=0 src=" 4

9 [ 그림 5 ] <IMG> 태그내파라미터값삽입 o 등록된게시물열람시동일한작업이반복됨을확인할수있다. [ 그림 6 ] 동일작업반복확인 5

10 공격대상 o 공격대상이되는부분 : 글쓰기시 HTML 태그가허용된게시판 o 공격대상이되는태그 : <script>, <embed>, <object>, <applet>, <img> 등 피해유형 o 정보노출 : 쿠키또는세션정보노출 o 동일작업반복 : 게시물클릭시공격자가원하는동작수행 보호대책 o CSRF를예방할수있는최선의방안은모든입력값을상세히검증하는것으로헤더, 쿠키, 질의문, 폼필드, 숨겨진필드등과같은모든파라미터들을엄격한규칙에의해서검증하여 HTML을사용할경우태그내에 html,?, & 등이포함되지않도록하여야한다. o 이때, 검증은반드시서버에서이루어지도록개발하여야한다. 6

11 3. 악성파일실행 개요 o URL 이나파일시스템참조등외부객체참조를사용하는어플리케이션에서입력파일또는입력외부객체를검증하지않을때발생되며, PHP파일연결, OS명령어삽입, 제한되지않은파일업로드등다양한유형이존재한다. o 악성파일실행은원격코드실행, 원격루트킷설치와시스템손상등을야기한다. 점검방법 o 테스트서버에임의의파일을저장한다.( 파일명 : testfile.txt) o URL중외부객체를참조하는 URL을확인한다 - o 외부객체를참조하는 URL부분을테스트서버의파일을참조하도록수정한다. - 테스터서버 /testfile.txt o 테스트서버에저장해놓은파일의내용이브라우져에보이는경우취약시스템 공격대상 o 홈페이지소스중 URL파일명함수나로컬파일을포함시기키위해사용자에게파일명선택을허용하도록개발된코드 o 특히, PHP의경우아래와같은함수가공격의대상이된다 include(), include_once(), require(), requier_once(), fopen(), imagecreatefromxxx(), file(), file_get_contents(), copy(), delete(), unlink(), upload_tmp_dir() $_FILES, move_uploaded_file() 7

12 피해유형 o 원격루트킷설치와전체시스템손상 : 원격시스템에악성코드등을저장후실행시키게되면악성코드가동작하면서로컬시스템에해킹프로그램설치등이가능하다. 공격자는이를통해전체시스템을파괴할수있으며, 원격코드의종류에따라중요정보노출등의위험이존재한다 보호대책 o 다른객체를참고할때에는참고대상이되는객체이름부분에 URL형태 또는 정보시스템외부의파일 이입력되지않도록구현하고, o 특히 PHP언어로웹어플리케이션을개발할때에는 - Allow_rul_fopen, allow_url_include 를비활성화 - register_global 비활성화 - 사용자입력에아래의함수를포함한입력값금지 include(), include_once(), require(), requier_once(), fopen(), imagecreatefromxxx(), file(), file_get_contents(), copy(), delete(), unlink(), upload_tmp_dir() $_FILES, move_uploaded_file() 8

13 4. SQL 구문삽입 개요 o SQL 구문삽입 (SQL Injection) 은 URL의파라미터값등의전송되는문자열에대해웹서버에서유효성을검증하지않아, SQL 구문이직접 DB서버로전송되어실행되는것이며, o 공격자는 SQL 구문삽입을이용하여로그인인증우회, 홈페이지변조, 내부자료유출등을시도한다 점검방법 o 정상 URL/ 파라미터에 을추가하여 SQL 오류메시지 가나타나면공격에취약함. - 정상URL : - URL조작 : or 2=2-- o 또는, 사용자로그인창에아래와같은 SQL 구문을입력하였을때로그인이된다면공격에취약함 - ' or 1=1 -- (Oracle, Sybase), ' or 1=1#(MS-SQL), ' or 1=1;(MYSQL) [ 그림 7 ] 로그인창에 SQL 구문입력 [ 그림 8 ] 로그인성공 9

14 공격대상 o 대상공격삽입부분 : 다음과같은부분이공격대상이된다. 사용자로그인입력폼 웹 URL 파라미터 쿠키값 피해유형 o 데이터베이스구조노출 : 의도적으로 오류 가발생되는 SQL 쿼리문을삽입하여데이터베이스구조파악 o 데이터베이스자료유출 : 주요자료외부유출 o 데이터베이스데이터변조 : SQL 쿼리문조작을통하여홈페이지내용을변조. o 인증우회 : 타사용자로로그인성공 보호대책 o 데이터베이스와연동하는스크립트의모든파라미터들을점검하여사용자의입력값에 SQL 쿼리문이삽입되지않도록특수문자 (,, \, ;, :, %, Space, --, +, <, >, (, ), #, & 등 ) 를필터링한다. o 입력문자열대한길이를제한한다. o 데이터베이스와연동하는스크립트의모든파라미터들을점검하여사용자의입력값에 SQL 구문으로사용되는문자열 print, set, or, union, and, insert, openrowset 등 ) 을필터링한다. o 데이터베이스의에러메시지를사용자에게보여주지않도록수정한다. o 웹어플리케이션이사용하는데이터베이스의사용자권한을제한한다. o php.ini 설정중 magic_quotes_gpc 값을 On으로설정한다. - magic_quotes_gpc 옵션의역할은 GPC(Get, Post, Cookie) 를통해넘어오는문자열중에서 (sing-quote) 와 (double-quote), \(backslash), NULL 값의앞에자동으로백슬래쉬문자를붙여주는기능을한다. 10

15 ; Magic quotes ; Magic quotes for incoming GET/POST/Cookie data. magic_quotes_gpc = On ; Off 에서 On 으로변경 ; Magic quotes for runtime-generated data, e.g. data from SQL, form exec(), etc. magic_quotes_runtime = Off ; Use Sybase-style magic quotes(escape ' with " instead of \'). magic_quotes_sybase = Off 11

16 5. URL/ 파라메터조작 개요 o 공격자는전송되는 URL 또는 URL의파라미터를조작하여전송함으로써웹서버로하여금공격자가원하는행위를하도록시도한다. 이때, 취약한시스템에서는인증우회, 관리자권환획득, 인가되지않은게시판에글쓰기등인가되지않은시도가성공한다. 점검방법 o 웹프락시도구를이용하여파라미터를조작, 실명인증을후회시도 1. 글쓰기전실명인증시도 [ 그림 9 ] 실명인증화면 2. 정상적인실명인증후글쓰기시도 3. 글쓰기후전송되는패킷을가로채어 글쓴이 이름을변경 [ 그림 10 ] 글쓴이이름변경 12

17 4. 글쓰기완료시변경시킨이름으로글쓰기가성공됨. [ 그림 11 ] 실명인증우회성공 o URL 의파라미터값을조작하여글쓰기, 수정등이가능한지확인 1. 글쓰기 : board.php?mode=list에서 mode값을 write, add, insert 등으로변경 2. 글수정 : board.php?mode=view&idx=1에서 mode값을 update, modify, edit 등으로변경 3. 글삭제 : board.php?mode=delete&idx=1에서 idx값을다른게시물번호로변경 공격대상 o 대상공격삽입부분 : 다음과같은부분이공격의대상이된다. 웹페이지에서게시물을조회하는페이지 웹게시판의글쓰기페이지 피해유형 o 인증우회 : 정상적인로그인이아닌파라미터조작을통하여인증우회가가능하다. 이를통해공격자는일반사용자에게는글쓰기권한이없는, 공지사항 등의게시판에게시물을게시하는등홈페이지조작이가능하다. o 게시물조작 : 다른사용자가작성한글을수정및삭제할수있다. 보호대책 o 글쓰기, 글수정, 글삭제 URL등사용자의조작에의해변경이일어날수있는페이지에대해서는정상적인사용자인지여부를확인하는인증절차를삽입한다. o 파라미터및 URL을입력받을때, 서버에서직전에응답한정보와입력되는정보가다른부분이존재하는지여부를체크하여, 실명인증우회등인증우회를방지한다. 13

18 6. 파일업로드 개요 o 파일첨부를할수있는게시판에일반적으로허용된파일 ( 이미지파일, 워드파일등 ) 이외에악의적인스크립트가포함된소스파일 (.jsp,.php,.asp 등 ) 을첨부할수있게되면, o 공격자는악성스크립트등재후, 서버상에서스크립트를실행시켜쉘획득, 서버변조등웹서버를장악할수있다. 점검방법 o 사전준비 - 악성스크립트파일준비 : a.php - 악성스크립트파일을복사하여확장자를이미지파일로변경 : a.jpg - 웹프락시도구실행 : Paros 등 o 게시판글쓰기실행 [ 그림 12 ] 게시물작성 14

19 o 첨부파일또는글편집기의파일업로드버튼을이용하여파일첨부시도 (a.jpg) [ 그림 13 ] 첨부파일첨부화면 o 전송되는패킷을웹프락시도구를이용하여가로챈후파라미터부분의 "a.jpg" 를 a.php" 로변경후전송 [ 그림 14 ] 파라미터변조 o 게시물작성완료후첨부파일의등록정보등을이용하여첨부파일의경로확인 o 악성스크립트실행 [ 그림 15 ] 스크립트실행 15

20 공격대상 o 대상공격부분 : 다음과같은기능이있는웹게시판이파일업로드공격의대상이된다. 파일첨부기능이있는웹게시판 게시판 Editor의이미지첨부기능이있는웹게시판 피해유형 o 서버원격제어 : 쉘프로그램을통하여웹서버를원격제어할수있다. o 홈페이지위 / 변조 : 업로드된쉘프로그램실행을통한홈페이지위 / 변조가가능하다. 보호대책 o 첨부파일이저장되는 Upload 디렉토리는실행권한을제거하여운영한다. - IIS 보안설정설정 제어판 관리도구 인터넷서비스관리자선택 해당 Upload 폴더에오른쪽클릭을하고등록정보 디렉토리 실행권한을 없음 으로설정 - Apache 설정 : 설정후 Apache 데몬 Restart 해야한다. Apache 설정파일인 httpd.conf의해당디렉토리에대한문서타입을컨트롤하기위해 Directory 세션의 AllowOverride 지시자에서 FileInfo 또는 All 추가 <Directory "/usr/local/apache"> AllowOverride FileInfo( 또는 All) </Directory> - 파일 Upload 디렉토리에.htaccess 파일을만들고다음과같이 AddType 지시자를이용, 현재서버에서운영되는 Server Side Script 확장자를 text/html로 MIME Type을재조정하여 Upload된파일이실행되지않도록설정하거나 FileMatch 지시자를이용하여 *.ph, *.inc, *.lib 등의 Server Side Script 파일에대해서직접 URL 호출을금지시킨다. 16

21 <.htaccess> <FileMatch "\.(ph inc lib)"> Order allow, deny Deny from all </FileMatch> AddType text/html.html.htm.php.php3.php4.phtml.phps.in.cgi.pl.shtml.jsp o 첨부파일의확장자필터링처리 - 웹서버의서비스환경을고려하여 office 문서, text, 이미지등업로드를허용할파일을지정한후지정된확장자이외의파일이업로드되지않도록제한한다. 이때, 확장자점검은반드시서버단에서점검하여야한다. 17

22 7. 파일다운로드 개요 o 웹어플리케이션에서상대경로를사용할수있도록설정되어있는경우, 상대경로표시문자열인../ 를통해허가되지않은상위경로로이동하여시스템주요파일, 소스코드등중요자료의열람이가능하며, o 공격자는이러한방법으로 /etc/passwd, /etc/shadow, /etc/host 등시스템정보가포함되어있는주요파일및웹소스파일을다운로드, 시스템계정및패스워드, DB접속정보등을획득하여시스템침투, 내부자료유출등 2차적인공격에악용할수있다. 점검방법 o 게시판의파일다운로드기능이있는게시물의이름을변경하여시스템파일열람시도 o 정상적인게시판파일다운로드 URL확인 - =07 년매출예산결산보고서 - &filename= 보고서 &upfilename= 보고서 o 정상적인 URL을../ 이용하여조작 /etc/&filename=passwd&upfilename=passwd [ 그림 16 ] 시스템파일다운로드화면 18

23 공격대상 o 대상공격부분 : 다음과같은부분이공격의대상이된다. 게시판의첨부파일다운로드기능 웹 URL 피해유형 o 주요파일노출 : 패스워드파일등시스템주요파일이유출된다. o 소스파일노출 : 웹어플리케이션소스파일이유출되어공격자는 DB접속정보등내부접속정보를획득가능하다. 보호대책 o 파일다운로드시파일명을직접 URL에서사용하거나입력받지않도록하며게시판이름과게시물번호를이용하여서버측에서데이터베이스재검색을통하여해당파일을다운로드할수있도록하여야한다. o 다운로드위치는지정된데이터저장소를지정하여사용하고, 데이터저장소상위디렉토리로이동되지않도록설정한다. o PHP를사용하는경우 php.ini에서 magic_quotes_gpc를 On으로설정하여.\./ 와같은문자에대해대응도가능하도록한다. 19

24 8. URL 강제접속 / 인증우회 개요 o 사용자권한관리가정상적으로이루어지지않는홈페이지의관리자또는사용자인증후접속되는페이지의 URL을주소창에직접입력하거나, 쿠키를조작하는방법이며 o 공격자는이러한방법으로관리자메뉴페이지에로그인과정없이접속하여관리자페이지를조작, 회원정보열람등민감한정보를획득할수있고, 공지사항등인증이필요한글쓰기게시판에악의적인게시물을게시할수있다. 점검방법 o 로그인을하지않고, 로그인이후접속되는페이지의 URL을입력하여페이지가정상적으로표시되는지를확인한다. - 로그인페이지확인 : - 로그인이후의페이지를유추하여강제접속 : [ 그림 17 ] 관리자페이지강제접속 20

25 o 회원가입시실명인증또는주민등록번호유효성검증을우회하여가명의올바르지않은주민등록번호로가입가능한지확인한다. - 실명인증확인후보여지는회원가입폼화면이직접 URL 에입력하여보이는지확인한다 [ 그림 18 ] 회원가입화면 - 주민등록번호인증우회방법 1 회원가입폼화면을열기전웹프락시툴을이용하여응답되는패킷중주민등록번호유효성체크하는자바스크립트부분을삭제한다 2 회원가입폼화면에서정상적인주민등록번호입력후전송되는패킷을웹프락시툴을이용하여주민등록번호부분을수정한다 [ 그림 19 ] 주민등록번호조작화면 21

26 o 세션의쿠키값이평문 (Plain text) 으로되어있는지확인하고중요정보나개인정보들이포함되어있지않은지확인하여웹프락시도구를사용하여전송되는쿠키값변조를시도한다. - 홈페이지에자신의계정생성 - 로그인시웹프락시도구를사용하여전송되는정보중쿠키값에개인식별정보가포함되어있는지확인 - 로그인시웹프락시도구를사용하여, 쿠키값을변경 [ 그림 20 ] 쿠키값변경 ( 웹프락시도구사용 ) - 다른사용자의정보획득및수정이가능하다. [ 그림 21 ] 타사용자의정보획득 22

27 공격대상 o 대상공격부분 관리자메뉴페이지 사용자정보페이지 회원가입페이지 사용자정보 (ID, PW, 권한등 ) 가포함되어평문으로전송되는쿠키값 피해유형 o 회원전용페이지노출 : 인증처리를하지않는회원페이지에강제접속하여인증없이회원페이지를열람할수있다. o 관리자권한노출 : 인증우회를통하여홈페이지관리자권한을획득할수있다. o 임의사용자등록 : 실명인증우회를통하여익명의사용자이름과조작된주민등록번호로회원가입가능하다. o 시스템명령실행 : 웹쉘이업로드된경우쿠키조작을통해시스템명령실행이가능하다. o 게시판변조 : 쿠키값에 SQL 삽입취약점을이용하여게시판내용을변조할수있다. 보호대책 o 회원전용페이지나관리자페이지등모든페이지에접근허용금지및권한설정을하고, 인증을거쳐서접근할수있도록한다. 이때, 인증은서버에서실시하도록한다. o SSL과같은기술을사용하여로그인트랜젝션전체를암호화한다. o 인증기능사용시쿠키를이용하지않는다. 23

28 9. 서비스메소드설정 개요 o Method는웹어플리케이션에서기본적으로제공하는클라이언트와통신하기위한도구로 GET, POST, PUT, MOVE, DELETE 등여러가지 Method 가있으며다양한기능을수행한다. o 공격자는웹서버에허용되어있는 Method 를이용하여파일업로드, 웹서버파일삭제등웹서버를인증없이조작할수있다. 점검방법 o Command창에서명령어로 Method 활성화여부를확인한다 - telnet 80으로접속 - OPTIONS * HTTP/1.0 [ 그림 22 ] PUT Method 허용여부확인 24

29 o PUT Method가허용되어있다하더라도, 반드시취약한것은아니며, 아래와같은테스트방법을이용, 점검하여야한다. - telnet victimhost httpport[enter] PUT / 파일이름 HTTP/1.1[enter] Host: victimhost(ip가능 )[enter] Content-Length: 컨텐츠길이 [enter] [enter] : enter를치게되면, 서버에서 content 를입력받을준비를함. 이때입력한컨텐츠가 PUT 뒤에지정한파일이름으로생성됨. ( 화면상에 HTTP/ Continue가표시됨, 단, HTTP/1.0에서는빈화면만보임 ) 이후에생성할파일의내용 ( 컨텐츠 ) 를입력하면됨. 이때, 길이는컨텐츠길이에서지정한길이만큼이입력됨 - 공격이성공한경우, 201 Created 또는 200OK로서버는응답함. [ 그림 23 ] PUT Method 테스트 [ 그림 24 ] PUT Method 를이용한파일생성성공 25

30 공격대상 o 대상공격부분 : 각 Method 에는아래와같은취약점이존재한다. [ 그림 25 ] Method별취약점여부 피해유형 o 홈페이지변조 : PUT 메소드를통한웹페이지파일업로드가가능하며, 이를통해홈페이지변조가가능하다. 보호대책 o POST, GET 외에어플리케이션에서사용되지않는 HTTP 메소드들 (PUT, Delete, Mkdir, Option 등 ) 은모두제한해야한다. o 메소드제거방법은다음과같다. IIS 5.0 HTTP 메소드제한 - WebDAV 사용안함처리 1 레지스트리편집기 (Regedt32.exe) 를시작 2 레지스트리에서다음키를검색함 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W3SVC\Parameters 3 편집메뉴에서값추가를누른후다음레지스트리값을추가함값이름 : DisableWebDAV 데이터형식 : DWORD 값데이터 : 1 4 IIS를다시시작한다. 26

31 [ 그림 26 ] WebDAV 사용안함설정 - 웹서비스사용폴더에쓰기권한및스크립트소스엑세스권한제거 [ 그림 27 ] 웹폴더쓰기권한설정 File System(NTFS/FAT32/FAT16) 의쓰기권한이존재하면게시판혹은업로드컴포넌트 를이용한업로드경로에서도문제가발생하지않음 IIS 6.0 HTTP 메소드제한 - WebDAV 서비스를제거하면 PUT, DELETE 같은위험한메소드외의 GET, POST, TRACE, OPTIONS 메소드만존재함 27

32 Apache 의 httpd.conf 파일설정방법 <Directory /> [ 그림 28 ] IIS 6.0 HTTP 메소드제한 <LimitExcept GET POST> Order allow,deny deny from all </LimitExcept> </Directory> - 위와같이설정하면정상적으로 Apache 웹서버에로그인권한을가진사용자외에다른사용자는제한된 Method를사용할수없게된다. WebToB 설정방법 - WebToB는기본적으로 GET, POST, HEAD 등을지원하고있으나, PUT, DELETE 등을삭제할때는 http.m 파일내의 *NODE 절에서아래와같이설정, wscfl -i http.m 명령어를실행한후 WebToB를재기동해야한다. - Method = "-PUT, -HEAD, -DELETE, -TRACE" webmain WEBTOBDIR = "/usr/local/webtob", SHMKEY = 69000, 28

33 DOCROOT = "/usr/local/webto/docs", User = "nobody", Group = "nobody", IndexName = "Index.html", UserDir = public_html", DirIndex = "Index", Method = "-PUT, -DELETE, -MOVE, -OPTIONS", LanguagePrio = "kr" IPlanet 설정방법 - 불필요한메소드제거방법은 obj.conf 파일에서아래와같은방법으로제거하고자하는메소드를입력하여설정한다. <Client method = "TRACE"> AuthTrans fn = "set-variable" remove-headers = "transfer-encoding" set-headers = "content-length: -1" error = "501" </Client> <Client method = "PUT"> AuthTrans fn = "set-variable" remove-headers = "transfer-encoding" set-headers = "content-length: -1" error = "501" </Client> <Client method = "DELETE"> AuthTrans fn="set-variable" remove-headers = "transfer-encoding" set-headers = "content-length: -1" error = "501" </Client> <Client method = "MOVE"> AuthTrans fn = "set-variable" remove-headers = "transfer-encoding" set-headers = "content-length: -1" error = "501" </Client> <Client method = "MKDIR"> 29

34 AuthTrans fn = "set-variable" remove-headers = "transfer-encoding" set-headers = "content-length: -1" error = "501" </Client> <Client method = "RMDIR"> 5AuthTrans fn = "set-variable" remove-headers = "transfer-encoding" set-headers = "content-length: -1" error = "501" </Client> Tomcat 설정방법 - 불필요한메소드제거방법은 Tomcat 5.5\conf\web.xml 파일에서아래와같이설정되어있는메소드를지우거나주석처리하여설정한다. <security-constraint> <display-name>example Security Constraint</display-name> <web-resource-collection> <web-resource-name>protected Area</web-resource-name> <!-- Define the context-relative URL(s) to be protected --> <url-pattern>/jsp/security/protected/*</url-pattern> <!-- If you list http methods, only those methods are protected --> <http-method>delete</http-method> <http-method>get</http-method> <http-method>post</http-method> <http-method>put</http-method> </web-resource-collection> <auth-constraint> <!-- Anyone with one of the listed roles may access this area --> <role-name></role-name> </auth-constraint> </security-constraint> 30

35 10. 에러처리및기타정보노출 개요 o 에러페이지는사용자가웹서버에비정상적인요청을하였을때, 웹서버에서해당비정상요청에대해알려주는페이지이며, 300번대, 400번대, 500번대의숫자로표시된다. o 이중, 500번대의코드는서버내부오류를표시하는코드로, 특히 DB에잘못된요청을하였을때, DB쿼리의오류를보여주며, 이를통해 DB의구조가노출될우려가있다. o 또한, 특정시스템의취약점또는작성자의실수로인하여이름과주민등록번호, 통장계좌번호, 신용카드번호등이노출되어해당사용자의정보가직간접적으로이용될수있다. 점검방법 o URL의파라미터를변경하여내부오류를발생시킨다. - 파라미터값변경시도 : ttp:// or 1=2--' o 검색창또는 ID/PW 입력창에특수문자등을입력하여에러메시지발생여부를확인한다. [ 그림 29 ] 500 에러발생화면 31

36 o 사용자개인정보보기등화면에서마우스오른쪽버튼을클릭한후 소스보기 를선택하거나, 웹프락시도구를사용하여웹브라우저로부터웹서버로전송되는내용을확인하여 type=hidden 으로되어있는필드값을조작한다. o 아래화면에서 user_id 필드의 type 이 hidden 으로되어있으며, 필드값 (value) 을웹프락시도구를사용하여조작하여전송한다. 공격대상 [ 그림 30 ] 히든필드조작 o 대상공격부분 : Defult 에러페이지를통해내부서버의구조가노출될가능성이있다. 개인정보가포함된페이지 소스코드에남아있는주석문 웹서버정보 사용자정보보기화면 로그인시도화면 게시물수정화면 32

37 피해유형 o 시스템정보노출 : 에러페이지를통해웹서버정보등시스템정보노출가능성이있다. o DB 정보노출 : DB 접속에러메시지를통한 DB 접속정보또는테이블명, 필드명등노출가능성이있다. o 개인정보노출 : 개인정보및중요한정보들이노출될수있다. o 데이터변조 : Paros 등의웹프락시툴을이용하여히든필드로사용하는고정값 ( 예 : 금액, 코드, 아이디, 비밀번호등 ) 의조작이가능하다. o 권한획득 : 사용자의히든필드값을수정하여인증을우회할수있다. 보호대책 o 통일된메시지를출력한다. - 접근된파일이존재하지않거나거부되는경우 : access denied 출력 - 로그인시 ID나패스워드가틀린경우 : 로그인에실패했습니다 출력 - 웹어플리케이션의인수에특수문자입력시 : 특수문자입력불가 메시지출력 o 최종사용자에게스택추적정보, 경로정보와디버그정보제공을금지한다. o 에러메시지를특정 URL로리다이렉트또는예외호출을설정한다. o 히든필드값을그대로사용하지말고, 데이터베이스에서재검색하여값을새로얻어오거나히든필드로전송된값들에대한검증을하도록소스를수정한다. o 히든필드로값을넘기는것보다세션의속성을통하여변수를저장관리하는것이안전하다. 33

38 11. ID/PW 관리 개요 o 취약한 ID/PW 취약점은일반적으로사용자계정또는관리자계정생성시관리의편의성을위해유추하기쉬운 ID/PW를사용하는취약점이며, o 공격자는해당취약점을이용하여관리자또는사용자 ID/PW를유추하여인가되지않은페이지에접근을시도한다. 점검방법 o 로그인페이지에 ID 와비밀번호를유추하여입력한후로그인성공여부를점검한다. - test/test, admin/admin o 운영시주기적으로사용자계정테이블을점검, 유추하기쉬운 ID 등에대해수정을권고한다. 공격대상 o 대상공격부분 로그인페이지 피해유형 o 관리자권한획득및개인정보유출 : 사용자나관리자의 ID/PW 노출로인한개인정보유출및관리자권한노출이발생할수있다. 34

39 보호대책 o 웹서비스의회원가입정책중사용자의비밀번호길이및형태에패스워드정책을적용하여비밀번호의길이, ID 포함검사, 영문과숫자의혼합여부를체크한다. 35

40 12. 환경설정및보안고려사항 개요 o 위에서열거한점검항목이외에웹서버운영상보안적으로고려해야할사항들을기술한다 중요정보를보여주는페이지는캐시를사용하지못하도록설정 o 중요정보를보여주는화면에 no-cache 설정을하지않을경우, 로그아웃을한이후에도 [ 뒤로가기 ] 버튼을사용해서해당내용을볼수있는위험이존재한다. o no-cache 설정을위해서 HTML HEAD 부분에아래내용을추가한다. <meta HTTP-EQUIV="Pragma" CONTENT="no-cache"> Java Class 역컴파일문제 o Java 언어의 Byte-code 특성으로인하여 Java class는쉽게역컴파일이가능하다. 만약 Java Applet에중요정보 ( 예 : 원격지접속을위한 ID/PW, DB 쿼리문, 직접제작한암호화알고리즘, 프로그램로직등 ) 를 hard-coding 했다면, 이를발견한공격자는해당정보를악용할수있는위험성이존재한다. o Sun Microsystems에서 Java 프로그램개발시고려해야할다양한보안사항을제공한다. - Secure Code guidelines(sun Microsystems) : 36

41 ASP(Visual Basic, C++, C# 등을사용한모든 ASP에적용 ) o include 파일을보호하기위해일반적인디렉토리 (/lib, /include, /library 등 ) 를사용하지않도록한다. o include 파일들의확장자를.inc나.lib 등을사용하는경우웹페이지상에서텍스트파일로인식하지않도록.asp를붙여서사용한다.( 예 : config.inc.asp, lib.inc.asp 등 ) o ASPError 객체의 output을사용자에게전달하지않도록한다. o SQL 쿼리를 ASP에서직접생성하는것을지양하고, Stored procedure를사용하도록한다. 직접생성방식 strquery = "SELECT something FROM table WHERE foo = '" + var1 + "' AND var = '" + var2 + "'"; Stored procedure 를사용한생성방식 strquery = sp_comefunc(var1, var2) PHP o [PHP 4.0 이상 ] 환경설정 (php.ini) 내용중 register_global을 on 으로설정할경우, PHP 스크립트의변수값을임의로변경할수있는취약성이존재한다. 따라서 register_global은 off 로설정한후, $_GET, $_POST 문을사용해서사용자가전달한값을얻어야한다. o PHP스크립트오류를사용자에게보내지않기위해서 PHP 환경설정 (php.ini) 에서아래와같이설정한다. log_error = On display_errors = Off o 특정파일의내용보기방지 - 오류메시지가발생된 CGI의물리적위치와에러부분이표시되는데, 이를이용하여공격자는 /lib, /inc, /admin 등보여지지말아야할정보가노출되는위험성이존재한다. 이를제거하기위해 php.ini 내의설정중에서 display_errors 값을 Off로설정한다. 37

42 - 를사용하여해당라인의에러메시지를출력하지않는방법을사용한다 $abc $id, = mysql_connect($connect, $id, $pw); o include 파일을보호하기위해일반적인디렉토리 (/lib, /include, /library 등 ) 를사용하지않도록한다. o include 파일들의확장자를.inc나.lib 등을사용하는경우웹페이지상에서텍스트파일로인식하지않도록.php를붙여서사용한다.( 예 : config.inc.php, lib.inc.php 등 ) MASS SQL Injection 예방을위한 IIS웹서버및 MS-SQL 설정 o 자세한오류내용표시차단 - IIS 웹서버에서는기본적으로웹서비스의오류가발생할때, 자세한오류메시지를접속자에게표시하게되어있다. 이설정을변경하여공격자가오류메시지를통해유용한정보를수집할수없도록수정해야한다. [ 그림 31 ] 스크립트오류메시지설정화면 - 일반적인 SQL Injection 공격의경우오류메시지를기반으로정보를추출하게되므로, 이설정변경만으로도방어효과를볼수있다. 다만, Blindfolded SQL Injection 이나시스템 38

43 명령어를수행하는 SQL Injection공격은차단할수없으므로반드시프로그램수정의보완조치로활용해야한다. o SQL 서버보안강화 - 웹페이지와 MS-SQL 서버를연동할때, 데이터베이스의관리자계정인 SA 계정을사용하게되면공격자가악용할수있으므로매우위험하다. 그러므로반드시사용자계정을사용하고최소권한만을할당하여사용해야한다. - 또한, MASS SQL Injection 스크립트의경우시스템테이블인 Syscolumns와 Sysobjects의정보를이용하고있으므로, 반드시필요하지않은경우라면사용자계정이나 public 계정에할당되어있는 SELECT 권한을제거하는것이안전하다. [ 그림 32 ] Public 계정권한제어 관리자페이지에대한접근제어 o 관리자페이지에는접근권한을가진 IP에서만접근가능하도록 ACL(Access Control List) 을설정한다. IIS 웹서버에서보호대책 - 설정 제어판 관리도구 인터넷서비스관리자선택 - 해당관리자페이지폴더에오른쪽클릭하고등록정보 디렉토리보안 IP 주소및도메인이름제한 편집버튼을클릭 - 액세스거부를선택하고추가버튼을클릭하여관리자호스트 IP 또는서브넷을등록 39

44 [ 그림 33 ] IIS 보호설정 Apache 웹서버에서보호대책 - Apache 웹서버의환경설정파일인 httpd.conf 파일의 Directory 세션의 AllowOverride 지시자에서 AuthConfig 또는 All을추가하여.htaccess를통하여사용자계정, 사용자패스워드를등록한사용자만접근이가능하도록하고관리자디렉토리 (admin) 에대해특정 IP에대해서만접근이가능하도록설정한다. # 먼저접근을제어하고자하는디렉토리에대한상위디렉토리정의에 #AllowOverride 부분이 All', 'AuthConfig', 'FileInfo' 등으로설정 <Directory /home/www/admin/> AllowOverride AuthConfig Order deny, allow Deny from all Allow from /24 </Directory> AccessFileName.htaccess <File ~ "^\ht"> Order allow, deny Deny from all </Files> <.htaccess> AuthName " 인증이필요한관리자페이지입니다. AuthType Basic 40

45 AuthUserFile /home/www/admin/.htpasswd AuthGroupFile /dev/null require valid-user Order deny, allow Deny from all Allow from /24 - 관리자페이지와같이인증이필요한디렉토리에.htaccess 파일을만들고 admin 계정의패스워드 ~apache/bin/htpasswd 를이용하여사용자정보파일 (.htpasswd) 을생성한다. <Directory /home/www/admin/> # ~apache/bin/htpasswd -c /home/www/admin/.htpasswd [ 사용자명 ] New password: ******** Re-type new password: ******** Adding password for user [ 사용자명 ] # 주의사항 - Apache 서버의경우 AllowOverride 지시자를변경시 apache restart가필요하다. - 관리자페이지의디렉토리명변경시웹프로그램에서경로명을지정하는경우수정하여야한다. - 관리자디렉토리에는일반사용자의접근이필요한파일이존재하지않아야한다. o 관리자인증후접속할수있는페이지의경우해당페이지주소를직접입력하여접속하지못하도록관리자페이지각각에대하여관리자인증을위한세션을관리한다. 디렉토리리스팅방지설정 o IIS - [ 제어판 ] [ 관리도구 ] 의 [ 인터넷서비스관리자 ]( 혹은 [ 인터넷정보서비스 ]) 메뉴의 [ 기본웹사이트 ] 에서마우스오른쪽클릭, 속성 부분을보면 기본웹사이트등록정보 에서 홈디렉토리 부분을클릭한후 디렉토리검색 (B)' 부분의체크를해지한다. 41

46 o Apache - 서버에서 httpd.conf 라는파일을찾음 - 파일내용중 Options 항목뒤에 Indexes라는단어를지우고파일을저장한다. 이때, Options는디렉토리별로설정할수있게되어있으므로모든디렉토리에대해서 Options 항목의 Indexes를제거후 Http 프로세스를재기동한다.... <Directory "/usr/local/www"> Options Indexes <- 제거 </Directory>... Default Page 제거 o 초기서비스설치시디폴트로설치되는컨텐츠및서비스들을 Disable 시킨다. o 패스워드변경, 경로변경등접근제한설정을한다. o 디폴트디렉토리 (/htdocs, /cgi-bin 등 ) 를삭제또는변경한다. o 디폴트페이지 (manual, sample 등 ) 를삭제또는변경한다. 웹어플리케이션별 Default Page 종류 - Web.xml 페이지 - Apache Tomcat Default Page - Apache Tomcat 관리자페이지 특히, 웹어플리케이션별관리자페이지는삭제하지않을경우, 이를이용, 홈페이지변조, 악성프로그램설치등심각한피해가우려되므로반드시제거하여야한다. 백업파일삭제 o 백업파일은.bak,.back,.org,.orgin,.~,.log 등웹서버의개발 / 유지보수시사용한테스트파일을삭제하지않을경우, 공격자는웹서버의소스를다운로드하여 DB접속정보, 웹서버정보등을 42

47 분석, 웹서버침투, 자료유출등 2차공격에악용할수있다. o 웹디렉토리와다른곳에서백업본을생성하여소스수정후소스만업로드하도록하여웹브라우저를통해보여지는디렉토리에는 html, asp, php, cgi, jsp 등만올려놓도록한다. o 불필요한파일관리를위해 httpd.conf 파일을수정한다. <FIles ~"\.bak$"> Order allow, deny Deny from all </Files> o 홈페이지서버에테스트파일과같은불필요한파일을삭제하고홈페이지서비스와관련없는디렉토리 ( 백업디렉토리등 ) 는일반사용자가접근이불가능하도록적절한권한 ( 디렉토리또는파일접근권한 ) 을설정한다. [ 그림 34 ] 백업파일예 43

48 < 별첨 1> ActiveX Control 개발가이드 ActiveX Control은웹을통해다양한기능과미려한디자인을제공하기위해사용하는프로그램으로인터넷뱅킹, 포털, 게임, 쇼핑몰등대부분의웹사이트에서사용하고있다 이러한 ActiveX Control은보안의관점에서웹페이지나전자메일에포함된스크립트에의해사용자 PC 내부의파일엑세스, 레지스트리수정등잠재적악용가능성이있어, ActiveX Control을사용하도록개발된홈페이지는개발시특별한주의가요구된다 [ 출처 : ActiveX Control 개발보안가이드라인 ( , 국가사이버안전센터 ) ] ActiveX Control 개발가이드 o 문자열입력값에대한크기검증 - ActiveX Control은보통인터넷익스플로러웹브라우저에서스크립트를통해실행된다. HTML 상에서 <param> 태그를통하여 ActiveX Control이초기화될때의파라미터를설정할수있고, <script> 태그를통하여변수를사용하듯이프로퍼티 (property) 를설정할수있고, 함수를사용하듯이메소드를호출할수있다. - 문자열입력값에대한크기검증이란파라미터, 프로퍼티, 메소드를통해 ActiveX Control에입력되는문자열이미리할당된메모리의크기보다클때입력값을필터링하는행위를말한다.. - 즉, 반드시미리허용된길이의문자열만을입력받고, 이후문자열을처리하는과정에서도할당한버퍼보다더긴문자열을복사하지않도록프로그램을제작하여야한다. - 미리할당된메모리보다큰문자열이입력으로들어왔을때는오류를리턴하고, 문자열을복사할때는미리할당된버퍼크기보다문자열이크진않은지항상확인하며, strcpy 함수대신에 strncpy_s 함수를, memcpy 함수대신에 memcpy_s 함수를사용하는등문자열복사에보다안전한함수를사용하여프로그램을구현하는것이바람직하다. 44

49 o 임의의프로세스를실행할수있는기능금지 - 임의의프로세스를실행할수있는기능이란 ActiveX Control이 HTML의 <param> 태그나스크립트상에서프로퍼티, 메소드인자를통하여사용자시스템에있는임의의실행파일에대한경로, 이름및실행인자를입력으로받고해당파일을실행하는기능을의미한다. 일반적으로임의의프로세스를실행하는기능은보안상매우위험하므로 ActiveX Control의메소드형태로구현하지말아야하지만, 보안을고려하지않는개발자들이쉽게범할수있는실수이고, 또한자주발견되고있는취약점이다. - 프로세스실행취약점을방지하기위해서는해당 ActiveX Control의실행에꼭필요한파일에대해서만프로세스실행기능을제공하도록프로그램을개발하여야한다. HTML 또는스크립트상에서실행파일의경로와이름또는실행인자를입력받지않도록프로그램소스상에고정하는방법이가장안전하다. - 불가피하게 HTML 또는스크립트상의입력값을통한프로세스실행기능이필요하다면, 입력값을개인키로암호화하여변조될수없게보호하거나, 경로나이름으로필터링하여기능을제한하여야한다. 또한, 실행인자를입력받는경우에는실행인자에대한크기를검증하고특수문자를사용한경우지정된범위를벗어나지않도록구현에주의가필요하다. o 임의의파일내용에대한읽기기능금지 - 임의의파일내용에대한읽기기능이란 ActiveX Control이 HTML의 <param> 태그나스크립트상에서메소드인자, 프로퍼티를통하여사용자시스템에있는임의의파일에대한경로와이름을입력받고해당파일의내용을메소드의리턴값이나프로퍼티로출력하는기능을의미한다. - 임의의파일내용에대한읽기기능은범용으로사용될수있다는장점때문에 ActiveX Control 개발자들이일반적으로구현하게되는대표적인취약점유형중하나이다. - 파일의내용을읽어서출력하는기능이제한되어있지않고임의의파일을읽을수있게설계되어있다면공격자는취약한해당 ActiveX Control 을악용하여사용자시스템의중요파일의내용을유출시킬수있다. - 파일읽기취약점을방지하기위해서는해당 ActiveX Control의실행에꼭필요한파일에대해서만파일읽기기능을제공하도록프로그램을작성하여야한다. HTML 또는스크립트 45

50 상에서파일경로및이름을입력받지않도록프로그램소스상에파일경로및이름을고정하는방법이가장안전하다. - 불가피하게 HTML 또는스크립트상의입력값을통한파일읽기기능이필요하다면, 입력값을개인키로암호화하여변조될수없게보호하거나, 폴더이름, 파일이름, 확장자등으로필터링기능을제한하여야한다. o 임의의레지스트리내용읽기기능금지 - 임의의레지스트리내용읽기기능이란 ActiveX Control이 HTML의 <param> 태그나스크립트상에서메소드인자, 프로퍼티를통하여사용자시스템에있는임의의레지스트리에대한경로및이름을입력받고해당레지스트리의내용을메소드의리턴값이나프로퍼티로출력하는기능을의미한다. - 임의의레지스트리내용에대한읽기기능은범용으로사용될수있다는장점때문에 ActiveX Control 개발자들이일반적으로구현하게되는또하나의대표적인보안취약점유형중하나이다. - 레지스트리의내용을읽어서출력하는기능이제한되어있지않고임의의레지스트리내용을읽을수있게설계되어있다면레지스트리읽기취약점이발생하게된다. 레지스트리읽기취약점이발생하면, 공격자는취약한해당 ActiveX Control을악용하여사용자시스템의중요레지스트리의내용을외부로유출시킬수있다. - 레지스트리읽기취약점을방지하기위해서는해당 ActiveX Control의실행에꼭필요한레지스트리에대해서만레지스트리읽기기능을제공하도록프로그램을수정하여야한다. - HTML 또는스크립트상에서레지스트리경로및이름을입력받지않도록프로그램소스상에레지스트리경로및이름을고정하는방법이가장안전하다. 불가피하게 HTML 또는스크립트상의입력값을통한레지스트리읽기기능이필요하다면, 입력값을개인키로암호화하여변조될수없게보호하거나, 경로나이름으로필터링을가하여기능을제한하여야한다. 필터링을구현할때는레지스트리의경로가.. 으로우회되지않도록구현에주의가필요하다. o 업데이트파일에대한신뢰성검증 - 최근 ActiveX Control 들은대부분자동업데이트기능을포함하고있으며, 이러한업데이트 46

51 기능은 HTML의 <param> 태그나스크립트상에서메소드인자, 프로퍼티를통하여업데이트서버의 URL이나설치파일등의업데이트정보를입력받아서동작하는것이일반적이다. - 만약업데이트정보 ( 업데이트서버의 URL, 설치파일, 업데이트되는파일등 ) 를공격자가변조할수있다면, 정상적인업데이트기능을악용하여악성코드를설치하는것이가능하다. - ActiveX Control 프로그램의업데이트를공격자로부터보호하기위해서는업데이트파일에대한신뢰성검증이필요하며, 이를위한방법으로는서명값을검증하는방법이가장바람직하다. - 서명값검증이란해당 ActiveX Control 개발업체에서공개키 / 개인키쌍을발급받고, 업데이트파일에대해서는개인키로서명한값을추가하여전달하고, 사용자시스템인클라이언트측에서는전달된업데이트파일에대하여서명값이올바른지공개키로검증하는방법을의미한다. 즉, 업데이트파일에디지털서명을하여업데이트파일에대한신뢰성을보장받는것이다. - 서명값검증방법을구현하기어려운경우에는업데이트 URL을 HTML이나스크립트상에서입력받지아니하고프로그램소스상에서고정하여사용하는방법이한가지대안이될수있다. o 관리자권한의폴더에 ActiveX Control 프로그램설치 - ActiveX Control은설치된웹사이트에서실행될뿐만아니라웹게시물이나이메일의열람을통해서도손쉽게실행이가능하다. 또한, ActiveX Control 을개발하는목적은인터넷익스플로러가접근하지못하는사용자시스템의자원을다루기위해서가대부분이다. - 만약이러한 ActiveX Control이공격자에의해변조되어악성코드로변해있다면사용자시스템에치명적인위협이될것이자명하다. - 불행히도일부 ActiveX Control 개발자들은이러한위협에대하여고려하지않은채업데이트나사용상의편의를위해인터넷익스플로러에서도접근이가능한낮은권한의폴더에프로그램을설치하기도한다. 하지만, 낮은권한의폴더에있는파일은쉽게수정이가능하기때문에잠재적으로변조될위험성이크다할수있다. ActiveX Control 프로그램을공격자의변조공격으로부터보호하기위해서는 ActiveX Control 프로그램을관리자권한의폴더에설치하는것이중요하다. - 이때 ActiveX Control 프로그램이란실행코드인 exe, dll, ocx 등의파일을의미하고, 관리자권한의폴더란 C:\Windows\ 의하위폴더또는 C:\Program Files\ 의하위폴더를의미한다. 47

52 o 실행가능한웹사이트의제한 - 대부분의 ActiveX Control은설치된웹사이트에서만필요하며그외의웹사이트에서는실행될필요가없다. 하지만, ActiveX Control은설치된웹사이트에서뿐만아니라다른모든웹사이트나이메일을통해서도손쉽게실행이가능하다. 문제는특정 ActiveX Control이보안취약점을가지는경우해당 ActiveX Control을설치하고사용했던웹사이트뿐만이아니라모든웹사이트와이메일을통해서도공격이가능해진다는점이다. - 따라서 ActiveX Control 의악용을방지하기위해서는 ActiveX Control 의실행가능한웹사이트를제한하여야만한다. 실행가능한웹사이트의제한은 ActiveX Control의보안취약점을제거해줄수는없지만, 공격자의공격을효과적으로방어해줄수있다. 왜냐하면 ActiveX Control의악용은해당 ActiveX Control이설치되고사용되는사이트와는관계가없는공격자의웹서버또는이메일을통해서대부분이루어지기때문이다. - ActiveX Control의실행가능한웹사이트를제한하기위해서는 ActiveX Control이실행되는시점에웹사이트 URL에대한필터링을구현하여야하며, 이를위해 SiteLock Template을활용할것을적극권장한다. - SiteLock Template이란 ActiveX Control이실행되는도메인을제한해주기위해 Microsoft 사에서제공하는 ATL 템플릿으로써실행가능한웹사이트리스트의제한뿐만아니라, 추가적으로실행가능한인터넷영역의제한및실행가능한유효기간설정등의기능을제공해준다. - SiteLock Template을활용하지않고직접웹사이트 URL에대한필터링을구현할수있겠으나사용이간편하고안정적이며 URL이우회될수있는실수를방지해주기때문에 SiteLock Template 을이용하는편이바람직하다. SiteLock Template 을설치할수있는 URL은아래와같다 ( 또는 MSDN 사이트에서 SiteLock Template 을검색하면찾을수있다 ). *SiteLock Template 설치 URL - FamilyID=43cd7e1e c0-88d9-ec9ea7fefbcb&displaylang=en o 신뢰할수있는사이트추가 남용금지 - 윈도우 Vista의강화된보안정책으로 ActiveX Control의설치및실행에제한을받게되자개발자들은대대적인수정작업에들어가야했다. 불행히도일부개발자들은윈도우 Vista용 ActiveX Control을수정하는대신자신의 ActiveX Control이설치되거나실행되는 48

53 사이트를신뢰할수있는사이트로추가하였다. 신뢰할수있는사이트에서는윈도우 Vista에서추가된보안기능들이대부분해제되어기존의 ActiveX Control들도대부분정상적으로동작하기때문이다. - 인터넷익스플로러는웹사이트를보안수준에따라인터넷영역, 로컬인트라넷영역, 신뢰할수있는사이트영역, 제한된사이트영역의 4가지영역으로나누고있다. 대부분의사이트는인터넷영역에서실행되며, 인터넷영역에서는높은보안수준이제공된다. - 신뢰할수있는사이트는사용자스스로해당사이트가안전하다고특별히지정하는사이트로써, 인터넷영역보다보안설정이낮아지며특히윈도우 Vista에서는보호모드가해제된다. 보호모드가해제되면윈도우 Vista에서추가된대부분의보안정책이무력화된다. - 따라서이문제를해결하기위해서는보안설정을낮추는방식이아니라, 신뢰할수있는사이트가아니더라도 ActiveX Control의정상적인실행이가능하도록 ActiveX Control을수정하여야한다. o 권한상승창에대한우회금지 - 윈도우 Vista의보호모드하에서인터넷익스플로러는낮은 Integrity의사용자권한으로실행되며, ActiveX Control 또한낮은 Integrity의사용자권한을가진다. 이로인하여, ActiveX Control이 Program Files 하위의파일이나 HKEY_LOCAL_MACHINE 하위의레지스트리와같은높은권한을가지는로컬자원을다루기위해서는권한상승이필요하다. - 일반적인사용자입장에서빈번하게팝업되는권한상승창은번거로운것이사실이다. 따라서개발자는사용자편의성을위해권한상승창이팝업되는수가최소화되도록 ActiveX Control을설계하고싶어하며, 이런의미에서자동권한상승은매력적이다. 하지만, ActiveX Control의암시적권한상승은보안적인관점에서보았을때위험하다. - 왜냐하면, 보통의경우 ActiveX Control이보안취약점을가지고있다할지라도보호모드때문에높은권한으로동작하는것이제한되는반면, 암시적인자동권한상승을사용하는 ActiveX Control이보안취약점을가지는경우는사용자동의없이도높은권한으로악성행위를수행하게할수있기때문이다. 따라서 ActiveX Control 개발시이러한암시적인권한상승의위험성을반드시고려해야할것이다. 49

54 o ActiveX Control 의남용금지 - 불필요한 ActiveX Control의개발을줄이고대체기술로전환하는것이바람직하다. ActiveX Control 은사용자시스템의자원을접근해야하고다른대체수단이없는경우에만선택되어야하며, 그외에는 Ajax, Flash/FLEX, SilverLight 등의더나은대체기술로전환되어야옳다. 그리고부득이하게 ActiveX Control을개발할때에는개발초기부터보안을염두에두고설계및구현해야한다. 안전한 ActiveX Control의개발을위해서는개발자와보안책임자스스로보안의식과책임감을가지는것이무엇보다도필요하다. o Windows Vista 에서안전한 ActiveX Control 개발체크리스트 내용 세부점검항목 비고 HTML에서 <param> 태그를통해파라미터로문자열을입력으로 받아처리하는경우프로그램에서할당한크기를넘지않는지 확인하는루틴이항상포함되어있는가? 문자열입력값에대한크기검증임의의프로세스실행기능금지임의의파일읽기기능금지 스크립트에서프로퍼티 (property) 가문자열을입력으로받아처리하는경우프로그램에서할당한크기를넘지않는지확인하는루틴이항상포함되어있는가? 스크립트에서메소드 (method) 가인자로문자열을입력으로받아처리하는경우프로그램에서할당한크기를넘지않는지확인하는루틴이항상포함되어있는가? 임의의프로세스실행기능을제한하고있는가? HTML의 <param> 태그나스크립트상에서메소드, 프로퍼티를통하여사용자시스템에있는임의의실행파일에대한경로및이름, 실행인자를입력으로받고해당실행파일을실행하는기능 특정경로내의실행파일에대하여프로세스실행기능을제공하는경우입력값에.. 을사용할수없도록제한하고있는가? HTML 의 <param> 태그나스크립트상에서메소드, 프로퍼티를통하여실행파일에대한경로및이름, 실행인자를입력으로받고해당실행파일을실행하는기능 임의의파일읽기기능을제한하고있는가? HTML의 <param> 태그나스크립트상에서메소드, 프로퍼티를통하여사용자시스템에있는임의의파일에대한경로및 50

55 이름을입력으로받고해당파일의내용을메소드의리턴값이나프로퍼티로출력하는기능 특정폴더내의파일에대하여읽기기능을제공하는경우입력값에.. 을사용할수없도록제한하고있는가? HTML의 <param> 태그나스크립트상에서메소드, 프로퍼티를통하여파일에대한경로및이름을입력으로받고해당파일의내용을메소드의리턴값이나프로퍼티로출력하는기능 임의의레지스트리읽기기능금지업데이트파일에대한신뢰성검증 임의의레지스트리읽기기능을제한하고있는가? HTML의 <param> 태그나스크립트상에서메소드, 프로퍼티를통하여사용자시스템에있는임의의레지스트리에대한경로및이름을입력으로받고해당레지스트리의내용을메소드의리턴값이나프로퍼티로출력하는기능 특정경로내의레지스트리에대하여레지스트리읽기기능을제공하는경우입력값에.. 을사용할수없도록제한하고있는가? HTML의 <param> 태그나스크립트상에서메소드, 프로퍼티를통하여레지스트리에대한경로및이름을입력으로받고해당레지스트리의내용을메소드의리턴값이나프로퍼티로출력하는기능 HTML의 <param> 태그나스크립트상에서메소드인자, 프로퍼티를통하여업데이트 URL 정보를입력받는경우, 디지털서명을이용하여업데이트파일의신뢰성을확보하였는가? 관리자권한의폴더에프로그램설치실행가능한웹사이트제한 ActiveX Control 프로그램 (exe, dll, ocx 등의파일 ) 은관리자권한의폴더 (C:\Windows\ 의하위폴더또는 C:\Program Files\ 의하위폴더 ) 에설치되도록제한하였는가? Microsoft의 SiteLock Template를활용하여 ActiveX Control이실행가능한웹사이트를제한하였는가? ActiveX Control의설치및실행을위해서해당웹사이트를신뢰할수있는사이트에추가하는기능을제한하고있는가? 신뢰할수있는사이트추가남용금지권한상승창우회금지 ActiveX Control 의설치를위해서보안설정을낮출필요가있는경우설치후에반드시보안설정을원래대로복구하고있는가? ActiveX Control 의실행을위해서보안설정을낮출필요가있는경우보안설정을낮추는방법대신권한상승창을통해 ActiveX Control의권한을높이는방법으로구현하고있는가? 권한상승창을통해사용자동의없이 ActiveX Control이 Medium Integrity의사용자권한을가지는프로세스 (.exe) 를 51

56 실행할수있도록 Elevation Policy 레지스트리키를사용하지않았음을확인하였는가? Medium Integrity 이상의권한을가진대리자프로세스 (.exe) 를사용자시스템에상주하게하여, ActiveX Control 이사용자동의없이높은권한이필요한일을처리하도록개발하지않았음을확인하였는가? 불필요한 A c t i v e X Control 남용금지 개발되는 ActiveX Control이사용자시스템의자원을이용할필요가명확히있고, 다른대체수단이없는것을확인하였는가? ActiveX Control 은정상적인사용자뿐만아니라악의적인공격자또한이용할수있음을염두하고, 해당기능이악용될소지는없는지충분히고려하였는가? 52

57 < 별첨 2> 보안코딩소스코드 1 스크립트삽입 (XSS), 스크립트요청참조 (CSRF) o ASP - Server.HTMLEncode() 함수를사용하여, 특정문자열에대한 HTML encoding 을수행 - 적용가능한 IIS : IIS 5.0이상 - 사용법 : <%= Server.HTMLEncode(" 입력값 ") %> - 개발코드예시 If use_html Then 'HTML tag를사용하게할경우부분허용 memo = Server.HTMLEncode(memo) 'HTML encoding 수행 memo = replace(memo, "<p>", "<p>") memo = replace(memo, "<P>", "<P>") memo = replace(memo, "<br>", "<br>") memo = replace(memo, "<BR>", "<BR>") Else 'HTML tag 를사용하지못하게할경우 memo = Server.HTMLEncode(memo) 'HTML encoding 수행 memo = replace(memo, "<", "<") memo = replace(memo, ">", ">") End If Response.write " 게시물내용 -" & memo & "<BR>" o PHP - htmlspecialchars() 함수를이용하여특정문자열에대한 HTML encoding을수행. - strip_tags() 함수를이용하여문자열로부터 HTML tag와 PHP tag를제거 - 개발코드예시 $use_tag = "img, font, p, br"; // 허용할 HTML tag if($use_html == 1) // HTML tag를사용하게할경우부분허용 $memo = str_replace("<", "<", $memo); // HTML tag를모두제거 $tag = explode(",", $use_tag); for($i=0; $i<count($tag); $i++) // 허용할 tag만사용가능하게변경 53

58 $memo = eregi_replace("<".$tag[$i]." ", "<".$tag[$i]." ", $memo); $memo = eregi_replace("<".$tag[$i].">", "<".$tag[$i].">", $memo); $memo = eregi_replace("</".$tag[$i], "</".$tag[$i], $memo); else // HTML tag를사용하지못하게할경우 // $memo = htmlspecialchars($memo); // htmlspecialchars() 사용시일부한글이깨어지는현상이발생할수있음 $memo = str_replace("<", "<", $memo); $memo = str_replace(">", ">", $memo); echo " 게시물내용-". $memo. "<BR>\n"; o JSP - 개발코드예시 if(use_html) // HTML tag를사용하게할경우부분허용 memo = memo.replaceall("<","<"); //HTML tag를모두제거 memo = memo.replaceall(">",">"); // 허용할 HTML tag만변경 memo = memo.replaceall("<p>", "<p>"); memo = memo.replaceall("<p>", "<P>"); memo = memo.replaceall("<br>", "<br>"); memo = memo.replaceall("<br>", "<BR>"); else // HTML tag를사용하지못하게할경우 memo = memo.replaceall("<","<"); memo = memo.replaceall(">",">"); out.print(" 게시물내용-" + memo + "<BR>"); 2. SQL 구문삽입 o ASP prodid = Request.QueryString("productId") prodid = replace(prodid, "'", "''") ' 특수문자제거 prodid = replace(prodid, ";", "") 54

59 prodid = replace(prodid, "--", "") prodid = replace(prodid, "+", "") prodid = replace(prodid, "%", "") prodid = replace(prodid, "<", "<") prodid = replace(prodid, ">", ">") prodid = replace(prodid, "(", "(") prodid = replace(prodid, ")", ")") prodid = replace(prodid, "#", "#") prodid = replace(prodid, "&", "&") prodid = replace(lcase(prodid), "") prodid = replace(lcase(prodid), "") prodid = replace(lcase(prodid), "print", "") prodid = replace(lcase(prodid), "set", "") prodid = replace(lcase(prodid), "or", "") prodid = replace(lcase(prodid), "union", "") prodid = replace(lcase(prodid), "and", "") prodid = replace(lcase(prodid), "insert", "") prodid = replace(lcase(prodid), "openrowset", "") set conn = server.createobject("adodb.connection") set rs = server.createobject("adodb.recordset") query = "select prodname from products where id = " & prodid conn.open "Provider = SQLOLEDB; Data Source = (local); Initial Catalog = productdb; User Id = dbid; Password = " rs.activeconnection = conn rs.open query If not rs.eof Then response.write " 제품명 & rs.fields("prodname").value Else response.write " 제품이없습니다 End If o PHP $query = sprintf("select id, password, username FROM user_table WHERE id = '%s';", addslashes($id)); // id 변수를문자형으로받고, id 변수의특수문자를일반문자로변환 로 php 에러메시지를막는다. $result $query); error("sql 구문에러 ); &$rows); 55

60 o JSP String sql = "SELECT * FROM user_table" + " WHERE id =?" + " AND password =?"; ResultSet rs = null; PreparedStatement pstmt = null; try conn = DBManager.getConnection(); pstmt = conn.preparestatement(sql); pstmt.setstring(1, request.getparameter("id")); pstmt.setstring(2, request.getparameter("password")); rs = pstmt.executequery(); 6. 파일업로드 o ASP Set Up = Server.CreateObject("SiteGalaxyUpload.Form") Path1 = server.mappath(".") & "\upload\" Fname = Up("file1") if Fname <> "" then ' 파일첨부가되었으면 if Up("file1").Size > then ' 용량제한 Response.Write " 용량초과 " Response.End end if if Up("file1").MimeType <> "image" then ' 이미지만업로드허용 Response.Write " 이미지파일이아닙니다." Response.End end if Filename=Mid(Fname,InstrRev(Fname,"\")+1) ' 파일이름부분추출 ' 중복시에파일이름부분을변경하기위해분리 Farry=split(Filename,".") '. 을기준으로분리 prefname=farry(0) ' 파일이름앞부분 extfname=farry(1) ' 파일의확장자 ' 저장할전체 path를만듦, 파일이름을구함 Path2 = Path1 & Filename savefname=prefname & "." & extfname 56

61 Set fso = CreateObject("Scripting.FileSystemObject") countno = 0 ' 파일중복될경우세팅값 fexist=0 ' 같은이름의파일존재체크 Do until fexist = 1 If(fso.FileExists(Path2)) Then countno = countno + 1 Path2 = Path1 & prefname & countno & "." & extfname savefname=prefname & countno & "." & extfname else fexist=1 End If Loop Up("file1").SaveAs(Path2) response.write(savefname & " 저장완료 ") else response.write("error") end if Set Up = nothing o PHP $uploaddir = '/var/www/uploads/'; // 파일사이즈가 0byte 보다작거나최대업로드사이즈보다크면업로드를금지시킴 if($_files['userfile']['name']) if($_files['userfile']['size'] <= 0) // 최대업로드사이즈체크삽입 print " 파일업로드에러 "; exit; // 파일이름의특수문자가있을경우업로드를금지시킴 if (eregi("[^a-z0-9\._\-]",$_files['userfile']['name'])) print " 파일이름의특수문자체크 "; exit; // 파일확장자중업로드를허용할확장자를정의 $full_filename = explode(".", $_FILES['userfile']['name']); $extension = $full_filename[sizeof($full_filename)-1]; /* PHP의경우확장자체크를할때 strcmp( 확장자,"php3"); 로체크를하게되면 php3 이나 php3는구별을하지못하게되므로 strcasecmp처럼대소문자구별을하지않고비교하는함수를사용. 또한. 를기준으로하여확장자가하나로간주하고 57

62 프로그램을할경우 file.zip.php3 이라고올린다면 zip파일로인식하고그냥첨부가되므로아래와같이제일끝에존재하는확장자를기준으로점검하도록함 */ $extension= strtolower($extension); if (!( ereg($extension","hwp") ereg($extension","pdf") ereg($extension","jpg")) ) print " 업로드금지파일입니다 "; exit; $uploadfile = $uploaddir. $_FILES['userfile']['name']; if (move_uploaded_file($_files['userfile']['tmp_name'], $uploadfile)) print " 파일이존재하고, 성공적으로업로드되었습니다."; print_r($_files); else print " 파일업로드공격의가능성이있습니다! 디버깅정보입니다 :\n"; print_r($_files); o JSP page contenttype = "text/html; charset=euc-kr" %> page import="com.oreilly.servlet.multipartrequest,com.oreilly.servlet.multipart. DefaultFileRenamePolicy, java.util.*" %> <% String savepath = "/var/www/uploads"; // 업로드디렉토리 int sizelimit = 5 * 1024 * 1024; // 업로드파일사이즈제한 try MultipartRequest multi = new MultipartRequest(request, savepath, sizelimit, "euc-kr", new DefaultFileRenamePolicy()); Enumeration formnames = multi.getfilenames(); // 폼의이름반환 String formname = (String)formNames.nextElement(); String filename = multi.getfilesystemname(formname); // 파일의이름얻기 String file_ext = filename.substring(filename.lastindexof('.') + 1); if(!( file_ext.equalsignorecase("hwp") file_ext.equalsignorecase("pdf") file_ext.equalsignorecase("jpg")) ) out.print(" 업로드금지파일 "); if(filename == null) out.print(" 파일업로드실패 "); 58

63 else filename = new String(fileName.getBytes("8859_1"),"euc-kr"); // 한글인코딩 out.print("file Name : " + filename); catch(exception e) %> 7. 파일다운로드 o ASP file = Request.Form ("file") ' 파일이름 Response.ContentType = "application/unknown" 'ContentType 선언 Response.AddHeader "Content-Disposition","attachment; filename=" & file Set objstream = Server.CreateObject("ADODB.Stream") 'Stream 이용 strfile = Server.MapPath("./upfiles/") & "\" & file ' 서버절대경로 strfname = Mid(Fname,InstrRev(file,"\")+1) ' 파일이름추출,..\ 등의하위경로탐색은제거됨 strfpath = Server.MapPath("./upfiles/") & "\" & strfname ' 웹서버의파일다운로드절대경로 If strfile = strfpath Then ' 사용자가다운받는파일과웹서버의파일다운로드경로가맞는지비교 objstream.open objstream.type = 1 objstream.loadfromfile strfile download = objstream.read Response.BinaryWrite download End If Set objstream = nothing ' 객체초기화 o PHP if (preg_match("/[^a-z0-9_-]/i",$up_dir)) print " 디렉토리에특수문자체크 "; exit; if (preg_match("/[^\xa1-\xfea-z0-9._-] \.\./i",urldecode($dn_file_name))) print " 파일이름에특수문자체크 "; 59

64 exit; $dn_path = "/var/www/data/$up_dir/$dn_file_name"; if (!file_exists($dn_path)) print " 파일이존재여부체크 "; exit; // 파일전송루틴 header("content-type: doesn/matter"); header("content-length: ".filesize("$dn_path")); header("content-disposition: filename = ".$dn_file_name]); header("content-transfer-encoding: binary\r\n"); header("pragma: no-cache"); header("expires: 0"); o JSP String UPLOAD_PATH = "/var/www/upload/"; String filename = response.getparameter("filename"); String filepathname = UPLOAD_PATH + filename; if(filename.equalsignorecase("..") filename.equalsignorecase("/")) // 파일이름체크 return 0; // 파일전송루틴 response.setcontenttype("application/unknown; charset = euc-kr"); response.setheader("content-disposition","attachment;filename = " + filename + ";"); response.setheader("content-transfer-encoding:", "base64"); try BufferedInputStream in = new BufferedInputStream(new FileInputStream(filepathname));... catch(exception e) // 에러체크 [ 파일존재유무등 ] 60

65 8. URL 강제접속 / 인증우회 ( 로그인 ) o ASP <html> <head> <title> Login </title> <script> function check_submit() if(!login.user_id.value) alert(" 아이디를입력하세요 "); login.user_id.focus(); return false; if(!login.password.value) alert(" 아이디를입력하세요 "); login.password.focus(); return false; return true; </script> </head> <body> <form method=post action=login.asp onsubmit="return check_submit();" name=login> <TABLE border=0> <TR> <TD> 아이디 </TD> <TD><input type=text name="user_id" value="" maxlength=12 size=19></td> </TR> <TR> <TD> 패스워드 </TD> <TD><input type=password name="password" value="" maxlength=12 size=19><input type=submit value="login"></td> </TR> </TABLE> </form> </body> </html> 61

66 <% Option Explicit %> <% Dim user_id, password user_id = Request.Form("user_id") ' 사용자로부터입력받은아이디 password = Request.Form("password") ' 사용자로부터입력받은패스워드 If UserAuth(user_id, password) <> 1 Then Response.redirect("/login.html") ' 인증실패시인증페이지로 Redirect Else If Session("logged_in") <> 1 Then ' 인증된사용자인지체크 Session("logged_in") = 1 ' 인증에성공했을경우 logged_in 에 1의값을세팅 Session("user_id") = user_id ' 사용자 ID 저장 Session("user_ip") = Request.Servervariables("REMOTE_ADDR") 'IP 저장 End If Response.redirect("/main.asp") ' 인증성공시 Main 페이지로 Redirect End If %> <% Function stripquotes(strwords) stripquotes = replace(strwords, "'", "''") ' 특수문자제거 End Function Function UserAuth(user_id, user_pwd) ' 사용자인증 Dim objconn, objrs Dim strconnection, strquery Set objconn = Server.CreateObject("ADODB.Connection") Set objrs = Server.CreateObject("ADODB.RecordSet") 'DB 연결정보, 별도의헤더파일로관리하여 INCLUDE strconnection = "DSN = MEMBER; uid = DBUSER; pwd = DBPASSWD" On Error Resume Next ' 에러가생길경우 objconn.open strconnection objrs.activeconnection = objconn strquery = "SELECT * FROM user_tbl WHERE user_id= '" &_ stripquotes(user_id) & "' AND password='" &_ stripquotes(user_pwd) & "'" objrs.open strquery If objrs.bof or objrs.eof Then' 올바른사용자를찾지못했을경우 UserAuth = 0 Else 62

67 UserAuth = 1 End If objrs.close ' DB 연결해제 Set objrs = Nothing objconn.close Set objconn = Nothing End Function %> <% If Session("user_ip") = Request.Servervariables("REMOTE_ADDR") AND Session("logged_in") = 1 Then Response.Write Session("user_id") & " 님은 " & Session("user_ip") & " 에서접속하셨습니다." ' 인증에성공한 IP와사용자 IP를비교, 인증여부비교 '... 중략... Else Response.write " 허가되지않은사용자입니다." End If %> o PHP <html> <head> <title> Login </title> <script> function check_submit() if(!login.user_id.value) alert(" 아이디를입력하세요 "); login.user_id.focus(); return false; if(!login.password.value) alert(" 아이디를입력하세요 "); login.password.focus(); 63

68 return false; return true; </script> </head> <body> <form method=post action=login.php onsubmit="return check_submit();" name=login> <TABLE border=0> <TR> <TD> 아이디 </TD> <TD><input type=text name="user_id" value="" maxlength=12 size=19></td> </TR> <TR> <TD> 패스워드 </TD> <TD><input type=password name="password" value="" maxlength=12 size=19><input type=submit value="login"></td> </TR> </TABLE> </form> </body> // 세션데이터를초기화 // form 에서사용자 id와사용자 password를아래변수로전달 if(!userauth($_post['user_id'],$_post['password'])) //DB 에서사용자인증처리하는부분 header("location: login.html"); exit; // 인증실패시종료 // 인증에성공한경우처리해야되는부분 if (!session_is_registered("logged_in")) $logged_in = 1; // 인증에성공했을경우 logged_in 에 1의값을세팅 $user_id = $_POST["user_id"]; 64

69 $user_ip = $_SERVER["REMOTE_ADDR"]; session_register("logged_in"); // 인증결과저장 session_register("user_id"); // 사용자 ID를저장 session_register("user_ip"); // 사용자 IP를저장 header("location: main.php");?> <?PHP function UserAuth($userid, $userpwd) $connect = mysql_connect("localhost","dbuser","dbpasswd"); mysql_select_db("member"); $strquery = "SELECT * FROM user_tbl WHERE user_id ='". addslashes($userid). "' AND password='". addslashes($userpwd). "'"; $result if($result) if(mysql_num_rows($result)) $data = mysql_fetch_array($result); $userlevel return 1; return return 0;?> if(strcmp($_session['user_ip'], $_SERVER['REMOTE_ADDR']) == 0 && session_is_registered('logged_in')) // 인증에성공한 IP와사용자 IP를비교, 인증여부비교 //... 중략... echo $_SESSION['user_id']. " 님은 ". $_SESSION['user_ip']. " 에서접속하셨습니다."; else echo " 허가되지않은사용자입니다."; exit;?> 65

70 o JSP <html> <head> <title> Login </title> <script> function check_submit() if(!login.user_id.value) alert(" 아이디를입력하세요 "); login.user_id.focus(); return false; if(!login.password.value) alert(" 아이디를입력하세요 "); login.password.focus(); return false; return true; </script> </head> <body> <form method=post action=login.jsp onsubmit="return check_submit();" name=login> <TABLE border=0> <TR> <TD> 아이디 </TD> <TD><input type=text name="user_id" value="" maxlength=12 size=19></td> </TR> <TR> <TD> 패스워드 </TD> <TD><input type=password name="password" value="" maxlength=12 size=19><input type=submit value="login"></td> </TR> </TABLE> </form> </body> </html> 66

71 page contenttype="text/html;charset=euc-kr" %> page import="java.util.*" %> page import="java.sql.* " %> <% String DB_URL = "jdbc:mysql:// /member"; //DB 연결정보, 별도의헤더파일로관리하여 INCLUDE String DB_USER = "DBUSER"; String DB_PASSWORD= "DBPASSWD"; //HttpSession session = request.getsession(true); //Servlet의경우만추가 String user_ip = request.getremoteaddr(); // 연결된사용자의 IP 획득 String user_id = null; Connection conn; PreparedStatement pstmt = null; ResultSet rs = null; try Class.forName("org.gjt.mm.mysql.Driver"); // 드라이버등록 conn = DriverManager.getConnection(DB_URL, DB_USER, DB_PASSWORD); //DB연결 String query = "SELECT * FROM user_tbl WHERE user_id =? AND password =?"; pstmt = conn.preparestatement(query); pstmt.setstring(1, request.getparameter("user_id")); // 사용자입력값전달 pstmt.setstring(2, request.getparameter("password")); rs = pstmt.executequery(); if(rs.next()) user_id = rs.getstring(1); //DB에서사용자정보획득 if(user_id!= null) if(session.getvalue("logged_in")!= "1") // 인증된사용자인지체크 session.putvalue("logged_in", "1"); // 세션에사용자정보기록 session.putvalue("user_id", user_id); session.putvalue("user_ip", user_ip); //LogSave(user_id, user_ip); // 인증에성공한사용자정보기록 response.sendredirect("/main.jsp"); // 인증성공시 Main 페이지로 Redirect else response.sendredirect("/login.html"); // 인증실패시인증페이지로 Redirect catch(exception ex) // 에러처리 out.println(ex); finally //DB연결종료 67

72 if(rs!= null) try rs.close(); catch(sqlexception ex) if(pstmt!= null) try pstmt.close(); catch(sqlexception ex) %> page contenttype="text/html;charset=euc-kr" %> page import="java.util.*" %> <% //HttpSession session = request.getsession(true); if(session.getvalue("user_ip") == request.getremoteaddr() && session.getvalue("logged_in") == "1") // 인증에성공한 IP와사용자 IP를비교, 인증여부비교 //... out.println(session.getvalue("user_id") + " 님은 " + session.getvalue("user_ip") + " 에서접속하셨습니다."); //... 중략... else response.sendredirect("/login.html"); // 인증실패시인증페이지로 Redirect %> 8. URL 강제접속 / 인증우회 ( 쿠키사용방지 ) o ASP <% 'form 에서사용자 id와사용자 password를아래변수로전달 If myfunc_userauth(userid, userpw) <> 1 Then 'DB 에서사용자인증을처리하는부분 Response.write " 인증실패 " Else ' 인증에성공한경우처리해야되는부분 If Session("logged_in") <> 1 Then 68

73 Session("logged_in") = 1 ' 인증에성공했을경우 logged_in 에 1의값을세팅 Session("userid") = userid Session("user_ip") = Request.Servervariables("REMOTE_ADDR") End If End If... %> <% IF Session("user_ip) = Request.Servervariables("REMOTE_ADDR") AND Session("logged_in") = 1 Then ' 인증에성공한 IP와사용자 IP를비교, 인증여부비교 '... Else Response.write " 허가되지않은사용자입니다." End If %> o PHP // 세션데이터를초기화 // form 에서사용자 id와사용자 password를아래변수로전달 if(!myfunc_userauth($userid,$userpw)) //DB 에서사용자인증을처리하는부분 print " 인증실패 "; exit; // 인증실패시종료 // 인증에성공한경우처리해야되는부분 if (!session_is_registered("logged_in")) $logged_in = 1; // 인증에성공했을경우 logged_in 에 1의값을세팅 $user_ip = $_SERVER["REMOTE_ADDR"]; session_register("logged_in"); // 인증결과저장 session_register("userid"); // 사용자 ID를저장 69

74 session_register("user_ip"); // 사용자 IP를저장...?> <?PHP session_start(); if(strcmp($_session['user_ip'], $_SERVER['REMOTE_ADDR']) == 0 && session_is_registered('logged_in')) // 인증에성공한 IP와사용자 IP를비교, 인증여부비교 //... else print " 허가되지않은사용자입니다."; exit;?> o JSP page contenttype="text/html;charset=euc-kr" %> page import="java.util.*" %> page import="java.sql.* " %> <% //HttpSession session = request.getsession(true); // form 에서사용자 id와사용자 password를아래변수로전달 if(!myfunc_userauth(userid, userpw)) //DB 에서사용자인증을처리하는부분 out.println " 인증실패 "; else // 인증에성공한경우처리해야되는부분 session.putvalue('logged_in',"1"); session.putvalue('userid',userid); session.putvalue('user_ip',request.getremoteaddr());... %> 70

75 page contenttype="text/html;charset=euc-kr" %> page import="java.util.*" %> page import="java.sql.* " %> <% //HttpSession session = request.getsession(true); String user_ip = session.getvalue("user_ip"); if(user_ip.equals(request.getremoteaddr()) && logged_in.equals("1")) // 인증에성공한 IP와사용자 IP를비교, 인증여부비교 //... else out.println " 허가되지않은사용자처리."; %> 12. 환경설정및보안고려사항 o ASP <% If myfunc_userauth(userid, userpw) <> 1 Then 'DB에서사용자인증을처리 Response.write " 인증실패 " Else If Request.ServerVariables("REMOTE_ADDR") <> " " Then ' 관리자 IP 확인 Response.write " 관리자 IP가아닙니다." Response.write " 인증실패 LogSave(userid, user_ip, 0) ' 접속에실패한 ID 및 IP 기록 Else Session("logged_in") = 1 ' 인증에성공했을경우 logged_in 에 1의값을세팅 Session("userid") = userid Session("user_ip") = Request.ServerVariables("REMOTE_ADDR") LogSave($userid, $user_ip) ' 접속에사용한 ID 및 IP 기록... 중략... End If End If %> 71

76 o PHP // 세션데이터를초기화 if(!myfunc_userauth($userid, $userpw) $_SERVER["REMOTE_ADDR']!= " ") //DB 에서사용자인증을처리, 관리자 IP인지확인 print " 인증실패 "; LogSave(userid, user_ip, 0) ' 접속에실패한 ID 및 IP 기록 exit; // 인증실패시종료 // 인증에성공한경우처리해야되는부분 if (!session_is_registered("logged_in")) $logged_in = 1; // 인증에성공했을경우 logged_in 에 1의값을세팅 $user_ip = $_SERVER["REMOTE_ADDR"]; session_register("logged_in"); // 인증결과저장 session_register("userid"); // 사용자 ID를저장 session_register("user_ip"); // 사용자 IP를저장 LogSave($userid, $user_ip); // 접속한사용자 ID 및 IP 기록... 중략...?> o JSP page contenttype = "text/html; charset = euc-kr" %> page import="java.util.* " %> page import="java.sql.* " %> <% //HttpSession session = request.getsession(true); String user_ip = request.getremoteaddr(); // form 에서사용자 id와사용자 password를아래변수로전달 if(!myfunc_userauth(userid, userpw)!user_ip.equals(" ")) //DB 에서사용자인증을처리, 관리자 IP인지확인 out.println " 인증실패 "; LogSave(userid, user_ip, 0) ' 접속에실패한 ID 및 IP 기록 else // 인증에성공한경우처리해야되는부분 session.putvalue("logged_in","logok"); session.putvalue("userid",userid); 72

77 session.putvalue("user_ip", user_ip); LogSave(userid, user_ip); // 접속한사용자 ID 및 IP기록 %> 73

78

79 웹응용프로그램개발보안가이드 2010 발행일자 : 2010년 1월 1일발행기관 : 행정안전부홈페이지 : 행정안전부 ( 정부통합전산센터 ( 전자우편 : 전화번호 : ~3 본가이드는행정안전부에서작성되었으며, 무단복제 / 열람을금함

80

웹애플리케이션 취약점 대응 가이드

웹애플리케이션 취약점 대응 가이드 웹애플리케이션취약점 대응가이드 < 목차 > I. 취약점대응방안... 4 1. 입력값검증부재... 4 1.1. SQL Injection... 4 1.2. 업로드파일제한부재... 13 1.3. 코드실행... 24 1.4. XSS(Cross Side Scripting)... 26 1.5. 디렉터리이동... 35 1.6. 소스코드노출... 41 1.7. 사용자입력의길이제한...

More information

*2008년1월호진짜

*2008년1월호진짜 3. USB 이동식저장장치를이용하여전파되는악성코드분석 1. 개 요 최근 USB 이동식 저장장치를 통하여 전파되는 악성코드에 대한 감염피해가 증가하고 있어 주의가 필요하다. 이번에 확인된 ntion.exe 악성코드는 감염 시, 특정 사이트에 접속하여 추가 악성코드를 다운로드하는 Dropper 기능을 수행한다. 또한, 웹 서버가 감염될 경우는 웹 서버내의 웹 페이지가

More information

XSS Attack - Real-World XSS Attacks, Chaining XSS and Other Attacks, Payloads for XSS Attacks

XSS Attack - Real-World XSS Attacks, Chaining XSS and Other Attacks, Payloads for XSS Attacks XSS s XSS, s, May 25, 2010 XSS s 1 2 s 3 XSS s MySpace 사건. Samy (JS.Spacehero) 프로필 페이지에 자바스크립트 삽입. 스크립트 동작방식 방문자를 친구로 추가. 방문자의 프로필에 자바스크립트를 복사. 1시간 만에 백만 명이 친구등록. s XSS s 위험도가 낮은 xss 취약점을 다른 취약점과 연계하여

More information

ActFax 4.31 Local Privilege Escalation Exploit

ActFax 4.31 Local Privilege Escalation Exploit NSHC 2013. 05. 23 악성코드 분석 보고서 [ Ransomware 악성코드 ] 사용자의 컴퓨터를 강제로 잠그고 돈을 요구하는 형태의 공격이 기승을 부리고 있 습니다. 이러한 형태의 공격에 이용되는 악성코드는 Ransomware로 불리는 악성코 드 입니다. 한번 감염 시 치료절차가 복잡하며, 보고서 작성 시점을 기준으로 지속 적인 피해자가 발생되고

More information

<3035303432365FC8A8C6E4C0CCC1F620B0B3B9DF20BAB8BEC8B0A1C0CCB5E5C3D6C1BE28C0FAC0DBB1C7BBE8C1A6292E687770>

<3035303432365FC8A8C6E4C0CCC1F620B0B3B9DF20BAB8BEC8B0A1C0CCB5E5C3D6C1BE28C0FAC0DBB1C7BBE8C1A6292E687770> 개 요 홈페이지 해킹 현황 및 사례 홈페이지 개발시 보안 취약점 및 대책 주요 애플리케이션 보안 대책 결 론 참고자료 [부록1] 개발 언어별 로그인 인증 프로세스 예제 [부록2] 대규모 홈페이지 변조 예방을 위한 권고(안) [부록3] 개인정보의 기술적 관리적 보호조치 기준(안) [부록4] 웹 보안관련 주요 사이트 리스트 7000 6,478 6000 5000

More information

<C0CCBCBCBFB52DC1A4B4EBBFF82DBCAEBBE7B3EDB9AE2D313939392D382E687770>

<C0CCBCBCBFB52DC1A4B4EBBFF82DBCAEBBE7B3EDB9AE2D313939392D382E687770> i ii iii iv v vi 1 2 3 4 가상대학 시스템의 국내외 현황 조사 가상대학 플랫폼 개발 이상적인 가상대학시스템의 미래상 제안 5 웹-기반 가상대학 시스템 전통적인 교수 방법 시간/공간 제약을 극복한 학습동기 부여 교수의 일방적인 내용전달 교수와 학생간의 상호작용 동료 학생들 간의 상호작용 가상대학 운영 공지사항,강의록 자료실, 메모 질의응답,

More information

PHP & ASP

PHP & ASP 단어장프로젝트 프로젝트2 단어장 select * from address where address like '% 경기도 %' td,li,input{font-size:9pt}

More information

MySQL-.. 1

MySQL-.. 1 MySQL- 기초 1 Jinseog Kim Dongguk University jinseog.kim@gmail.com 2017-08-25 Jinseog Kim Dongguk University jinseog.kim@gmail.com MySQL-기초 1 2017-08-25 1 / 18 SQL의 기초 SQL은 아래의 용도로 구성됨 데이터정의 언어(Data definition

More information

SBR-100S User Manual

SBR-100S User Manual ( 1 / 13 ) SBR-100S 모델에 대한 사용자 펌웨어 업그레이드 방법을 안내해 드립니다. SBR-100S 는 신규 펌웨어가 있을시 FOTA(자동업데이트) 기능을 통하여 자동 업그레이드가 되며, 필요시 사용자가 신규 펌웨어를 다운받아 수동으로 업그레이드 할 수 있습니다. 1. 준비하기 1.1 연결 장치 준비 펌웨어 업그레이드를 위해서는 SBR-100S

More information

BMP 파일 처리

BMP 파일 처리 BMP 파일처리 김성영교수 금오공과대학교 컴퓨터공학과 학습내용 영상반전프로그램제작 2 Inverting images out = 255 - in 3 /* 이프로그램은 8bit gray-scale 영상을입력으로사용하여반전한후동일포맷의영상으로저장한다. */ #include #include #define WIDTHBYTES(bytes)

More information

<3035313230325FBBE7B0EDB3EBC6AE5FB5F0C6FAC6AEC6D0BDBABFF6B5E5C3EBBEE0C1A128BCF6C1A4292E687770>

<3035313230325FBBE7B0EDB3EBC6AE5FB5F0C6FAC6AEC6D0BDBABFF6B5E5C3EBBEE0C1A128BCF6C1A4292E687770> 네트워크 장비의 디폴트 로그인 패스워드 취약점 및 대책 2005. 11. 30 본 보고서의 전부나 일부를 인용시 반드시 [자료: 한국정보보호진흥원(KISA)]룰 명시하여 주시기 바랍니다. - 1 - 1. 개요 패스워드 관리는 보안의 가장 기본적인 사항으로 유추하기 어려운 패스워드를 사용하고, 주기적 으로 패스워드를 변경하는 등 패스워드 관리에 신경을 많이 쓰고

More information

354-437-4..

354-437-4.. 357 358 4.3% 5.1% 8.2% 6.2% 5.6% 6% 5% 5.3% 96.1% 85.2% 39.6% 50.8% 82.7% 86.7% 28.2% 8.0% 60.0% 60.4% 18,287 16,601 (%) 100 90 80 70 60 50 40 86.6% 80.0% 77.8% 57.6% 89.7% 78.4% 82.1% 59.0% 91.7% 91.4%

More information

암호내지2010.1.8

암호내지2010.1.8 Contents 분류 안내서 해설서 해당팀명 발간년월 대상 수준 인터넷 진흥 인터넷 이용 활성화 정보보호 시스템 관리 한국인터넷진흥원(KISA) 안내서 해설서 시리즈 DNS 설정 안내서 시스템관리팀

More information

Windows Server 2012

Windows Server  2012 Windows Server 2012 Shared Nothing Live Migration Shared Nothing Live Migration 은 SMB Live Migration 방식과다른점은 VM 데이터파일의위치입니다. Shared Nothing Live Migration 방식은 Hyper-V 호스트의로컬디스크에 VM 데이터파일이위치합니다. 반면에, SMB

More information

EDB 분석보고서 (04.06) ~ Exploit-DB(http://exploit-db.com) 에공개된별로분류한정보입니다. Directory Traversal users-x.php 4.0 -support-x.php 4.0 time-

EDB 분석보고서 (04.06) ~ Exploit-DB(http://exploit-db.com) 에공개된별로분류한정보입니다. Directory Traversal users-x.php 4.0 -support-x.php 4.0 time- EDB 분석보고서 (04.06) 04.06.0~04.06.0 Exploit-DB(http://exploit-db.com) 에공개된별로분류한정보입니다. 분석내용정리 ( 작성 : 펜타시큐리티시스템보안성평가팀 ) 04년 06월에공개된 Exploit-DB의분석결과, SQL 공격에대한보고개수가가장많았습니다. 이와같은결과로부터여전히 SQL 이웹에서가장많이사용되는임을확인할수있습니다.

More information

Chapter 1

Chapter 1 3 Oracle 설치 Objectives Download Oracle 11g Release 2 Install Oracle 11g Release 2 Download Oracle SQL Developer 4.0.3 Install Oracle SQL Developer 4.0.3 Create a database connection 2 Download Oracle 11g

More information

아이콘의 정의 본 사용자 설명서에서는 다음 아이콘을 사용합니다. 참고 참고는 발생할 수 있는 상황에 대처하는 방법을 알려 주거나 다른 기능과 함께 작동하는 방법에 대한 요령을 제공합니다. 상표 Brother 로고는 Brother Industries, Ltd.의 등록 상

아이콘의 정의 본 사용자 설명서에서는 다음 아이콘을 사용합니다. 참고 참고는 발생할 수 있는 상황에 대처하는 방법을 알려 주거나 다른 기능과 함께 작동하는 방법에 대한 요령을 제공합니다. 상표 Brother 로고는 Brother Industries, Ltd.의 등록 상 Android 용 Brother Image Viewer 설명서 버전 0 KOR 아이콘의 정의 본 사용자 설명서에서는 다음 아이콘을 사용합니다. 참고 참고는 발생할 수 있는 상황에 대처하는 방법을 알려 주거나 다른 기능과 함께 작동하는 방법에 대한 요령을 제공합니다. 상표 Brother 로고는 Brother Industries, Ltd.의 등록 상표입니다. Android는

More information

Microsoft Word - windows server 2003 수동설치_non pro support_.doc

Microsoft Word - windows server 2003 수동설치_non pro support_.doc Windows Server 2003 수동 설치 가이드 INDEX 운영체제 설치 준비과정 1 드라이버를 위한 플로피 디스크 작성 2 드라이버를 위한 USB 메모리 작성 7 운영체제 설치 과정 14 Boot Sequence 변경 14 컨트롤러 드라이버 수동 설치 15 운영체제 설치 17 운영체제 설치 준비 과정 Windows Server 2003 에는 기본적으로

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Web Browser Web Server ( ) MS Explorer 5.0 WEB Server MS-SQL HTML Image Multimedia IIS Application Web Server ASP ASP platform Admin Web Based ASP Platform Manager Any Platform ASP : Application Service

More information

1. 제품 개요 AhnLab Policy Center 4.6 for Windows(이하 TOE)는 관리대상 클라이언트 시스템에 설치된 안랩의 안티바이러스 제품인 V3 제품군에 대해 보안정책 설정 및 모니터링 등의 기능을 제공하여 관리대상 클라이언트 시스템에 설치된 V3

1. 제품 개요 AhnLab Policy Center 4.6 for Windows(이하 TOE)는 관리대상 클라이언트 시스템에 설치된 안랩의 안티바이러스 제품인 V3 제품군에 대해 보안정책 설정 및 모니터링 등의 기능을 제공하여 관리대상 클라이언트 시스템에 설치된 V3 CR-15-59 AhnLab Policy Center 4.6 for Windows 인증보고서 인증번호 : ISIS-0631-2015 2015년 7월 IT보안인증사무국 1. 제품 개요 AhnLab Policy Center 4.6 for Windows(이하 TOE)는 관리대상 클라이언트 시스템에 설치된 안랩의 안티바이러스 제품인 V3 제품군에 대해 보안정책 설정

More information

System Recovery 사용자 매뉴얼

System Recovery 사용자 매뉴얼 Samsung OS Recovery Solution 을이용하여간편하게 MagicInfo 의네트워크를설정하고시스템을백업및복원할수있습니다. 시스템시작시리모컨의 - 버튼이나키보드의 F3 키를연속해서누르면복구모드로진입한후 Samsung OS Recovery Solution 이실행됩니다. Samsung OS Recovery Solution 은키보드와리모컨을사용하여조작할수있습니다.

More information

학습목표 함수프로시저, 서브프로시저의의미를안다. 매개변수전달방식을학습한다. 함수를이용한프로그래밍한다. 2

학습목표 함수프로시저, 서브프로시저의의미를안다. 매개변수전달방식을학습한다. 함수를이용한프로그래밍한다. 2 학습목표 함수프로시저, 서브프로시저의의미를안다. 매개변수전달방식을학습한다. 함수를이용한프로그래밍한다. 2 6.1 함수프로시저 6.2 서브프로시저 6.3 매개변수의전달방식 6.4 함수를이용한프로그래밍 3 프로시저 (Procedure) 프로시저 (Procedure) 란무엇인가? 논리적으로묶여있는하나의처리단위 내장프로시저 이벤트프로시저, 속성프로시저, 메서드, 비주얼베이직내장함수등

More information

EDB 분석보고서 (04.03) ~ Exploit-DB(http://exploit-db.com) 에공개된별로분류한정보입니다. ** 5개이상발생한주요소프트웨어별상세 EDB 번호 종류 공격난이도 공격위험도 이름 소프트웨어이름 3037 SQL Inj

EDB 분석보고서 (04.03) ~ Exploit-DB(http://exploit-db.com) 에공개된별로분류한정보입니다. ** 5개이상발생한주요소프트웨어별상세 EDB 번호 종류 공격난이도 공격위험도 이름 소프트웨어이름 3037 SQL Inj EDB 분석보고서 (04.03) 04.03.0~04.03.3 Exploit-DB(http://exploit-db.com) 에공개된별로분류한정보입니다. 분석내용정리 ( 작성 : 펜타시큐리티시스템보안성평가팀 ) 04년 03월에공개된 Exploit-DB의분석결과, 해커들이가장많이시도하는공격으로알려져있는 SQL Injection 공격에대한보고개수가가장많았습니다. 무엇보다주의가필요한부분은

More information

목차 데모 홖경 및 개요... 3 테스트 서버 설정... 4 DC (Domain Controller) 서버 설정... 4 RDSH (Remote Desktop Session Host) 서버 설정... 9 W7CLIENT (Windows 7 Client) 클라이얶트 설정

목차 데모 홖경 및 개요... 3 테스트 서버 설정... 4 DC (Domain Controller) 서버 설정... 4 RDSH (Remote Desktop Session Host) 서버 설정... 9 W7CLIENT (Windows 7 Client) 클라이얶트 설정 W2K8 R2 RemoteApp 및 Web Access 설치 및 구성 Step-By-Step 가이드 Microsoft Korea 이 동 철 부장 2009. 10 페이지 1 / 60 목차 데모 홖경 및 개요... 3 테스트 서버 설정... 4 DC (Domain Controller) 서버 설정... 4 RDSH (Remote Desktop Session Host)

More information

TTA Journal No.157_서체변경.indd

TTA Journal No.157_서체변경.indd 표준 시험인증 기술 동향 FIDO(Fast IDentity Online) 생체 인증 기술 표준화 동향 이동기 TTA 모바일응용서비스 프로젝트그룹(PG910) 의장 SK텔레콤 NIC 담당 매니저 76 l 2015 01/02 PASSWORDLESS EXPERIENCE (UAF standards) ONLINE AUTH REQUEST LOCAL DEVICE AUTH

More information

슬라이드 1

슬라이드 1 핚국산업기술대학교 제 14 강 GUI (III) 이대현교수 학습안내 학습목표 CEGUI 라이브러리를이용하여, 게임메뉴 UI 를구현해본다. 학습내용 CEGUI 레이아웃의로딩및렌더링. OIS 와 CEGUI 의연결. CEGUI 위젯과이벤트의연동. UI 구현 : 하드코딩방식 C++ 코드를이용하여, 코드내에서직접위젯들을생성및설정 CEGUI::PushButton* resumebutton

More information

개발문서 Oracle - Clob

개발문서 Oracle - Clob 개발문서 ORACLE CLOB 2008.6.9 ( 주 ) 아이캔매니지먼트 개발팀황순규 0. clob개요 1. lob과 long의비교와 clob와 blob 2. 테이블생성쿼리 ( 차이점-추가사항 ) 3. select 쿼리 4. insert 쿼리및 jdbc프로그래밍 5. update 쿼리및 jdbc프로그래밍 (4, 5). putclobdata() 클래스 6. select

More information

* Factory class for query and DML clause creation * tiwe * */ public class JPAQueryFactory implements JPQLQueryFactory private f

* Factory class for query and DML clause creation * tiwe * */ public class JPAQueryFactory implements JPQLQueryFactory private f JPA 에서 QueryDSL 사용하기위해 JPAQuery 인스턴스생성방법 http://ojc.asia, http://ojcedu.com 1. JPAQuery 를직접생성하기 JPAQuery 인스턴스생성하기 QueryDSL의 JPAQuery API를사용하려면 JPAQuery 인스턴스를생성하면된다. // entitymanager는 JPA의 EntityManage

More information

오버라이딩 (Overriding)

오버라이딩 (Overriding) WindowEvent WindowEvent 윈도우가열리거나 (opened) 닫힐때 (closed) 활성화되거나 (activated) 비활성화될때 (deactivated) 최소화되거나 (iconified) 복귀될때 (deiconified) 윈도우닫힘버튼을누를때 (closing) WindowEvent 수신자 abstract class WindowListener

More information

1

1 2/33 3/33 4/33 5/33 6/33 7/33 8/33 9/33 10/33 11/33 12/33 13/33 14/33 15/33 16/33 17/33 5) 입력을 다 했으면 확인 버튼을 클릭합니다. 6) 시작 페이지가 제대로 설정이 되었는지 살펴볼까요. 익스플로러를 종료하고 다시 실행시켜 보세요. 시작화면에 야후! 코리아 화면이 뜬다면 설정 완료..^^

More information

Xcovery 사용설명서

Xcovery 사용설명서 ㄱ 센티리온 프리미엄 사용설명서 목 차 Chapter 1 프로그램 소개 및 기본개념 1) 시스템 복구 2) 시스템백업 3) 시스템 백업 및 시스템 복구 활용하기 4) 폴더보호 Chapter 2 프로그램 설치하기 1) 프로그램 설치 방법 2) Centillion 설치 소프트웨어 사용권 계약서 3) 제품 인증 키 입력 4) Centillion 폴더보호 5) Windows

More information

Microsoft PowerPoint - web-part03-ch19-node.js기본.pptx

Microsoft PowerPoint - web-part03-ch19-node.js기본.pptx 과목명: 웹프로그래밍응용 교재: 모던웹을 위한 JavaScript Jquery 입문, 한빛미디어 Part3. Ajax Ch19. node.js 기본 2014년 1학기 Professor Seung-Hoon Choi 19 node.js 기본 이 책에서는 서버 구현 시 node.js 를 사용함 자바스크립트로 서버를 개발 다른서버구현기술 ASP.NET, ASP.NET

More information

Microsoft Word - FunctionCall

Microsoft Word - FunctionCall Function all Mechanism /* Simple Program */ #define get_int() IN KEYOARD #define put_int(val) LD A val \ OUT MONITOR int add_two(int a, int b) { int tmp; tmp = a+b; return tmp; } local auto variable stack

More information

5장. JSP와 Servlet 프로그래밍을 위한 기본 문법(완성-0421).hwp

5장. JSP와 Servlet 프로그래밍을 위한 기본 문법(완성-0421).hwp 1 0 1.7 6 5 'A ' '/ u 4 4 2 2 ' " JS P 프로그래밍 " A ', 'b ', ' 한 ', 9, \ u d 6 5 4 ' c h a r a = 'A '; 0 1 0 2 0 3 0 4 0 5 0 6 0 7 0 8 0 9 1 0 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9 < % @ p a g e c o n te n

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 SECUINSIDE 2017 Bypassing Web Browser Security Policies DongHyun Kim (hackpupu) Security Researcher at i2sec Korea University Graduate School Agenda - Me? - Abstract - What is HTTP Secure Header? - What

More information

목 차 1. 드라이버 설치...3 1.1 설치환경...3 1.2 드라이버 설치 시 주의사항...3 1.3 USB 드라이버 파일...3 1.4 Windows XP에서 설치...4 1.5 Windows Vista / Windows 7에서 설치...7 1.6 Windows

목 차 1. 드라이버 설치...3 1.1 설치환경...3 1.2 드라이버 설치 시 주의사항...3 1.3 USB 드라이버 파일...3 1.4 Windows XP에서 설치...4 1.5 Windows Vista / Windows 7에서 설치...7 1.6 Windows 삼성SDS 하이패스 USB 드라이버 설치 매뉴얼 삼성SDS(주) 목 차 1. 드라이버 설치...3 1.1 설치환경...3 1.2 드라이버 설치 시 주의사항...3 1.3 USB 드라이버 파일...3 1.4 Windows XP에서 설치...4 1.5 Windows Vista / Windows 7에서 설치...7 1.6 Windows 8에서 설치...9 2. 드라이버

More information

UNIST_교원 홈페이지 관리자_Manual_V1.0

UNIST_교원 홈페이지 관리자_Manual_V1.0 Manual created by metapresso V 1.0 3Fl, Dongin Bldg, 246-3 Nonhyun-dong, Kangnam-gu, Seoul, Korea, 135-889 Tel: (02)518-7770 / Fax: (02)547-7739 / Mail: contact@metabrain.com / http://www.metabrain.com

More information

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

Microsoft PowerPoint - ch09 - 연결형리스트, Stack, Queue와 응용 pm0100 2015-1 프로그래밍언어 9. 연결형리스트, Stack, Queue 2015 년 5 월 4 일 교수김영탁 영남대학교공과대학정보통신공학과 (Tel : +82-53-810-2497; Fax : +82-53-810-4742 http://antl.yu.ac.kr/; E-mail : ytkim@yu.ac.kr) 연결리스트 (Linked List) 연결리스트연산 Stack

More information

Adobe Flash 취약점 분석 (CVE-2012-0754)

Adobe Flash 취약점 분석 (CVE-2012-0754) 기술문서 14. 08. 13. 작성 GNU C library dynamic linker $ORIGIN expansion Vulnerability Author : E-Mail : 윤지환 131ackcon@gmail.com Abstract 2010 년 Tavis Ormandy 에 의해 발견된 취약점으로써 정확한 명칭은 GNU C library dynamic linker

More information

SBR-100S User Manual

SBR-100S User Manual ( 1 / 25 ) SBR-200S 모델에 대한 Web-CM 사용을 위한 방법을 안내해 드립니다. 아래 안내 사항은 제품의 초기 설정값을 기준으로 작성되어 있습니다. 1. Web-CM 이띾? SBR-200S 의 WIFI, LTE 의 상태 확인 및 설정을 변경하기 위해서는 Web-CM 을 사용해야 하며, Web-CM 은 SBR-200S 에 연결된 스마트폰이나

More information

ThinkVantage Fingerprint Software

ThinkVantage Fingerprint Software ThinkVantage 지문 인식 소프트웨어 First Edition (August 2005) Copyright Lenovo 2005. Portions Copyright International Business Machines Corporation 2005. All rights reserved. U.S. GOVERNMENT USERS RESTRICTED RIGHTS:

More information

SIGIL 완벽입문

SIGIL 완벽입문 누구나 만드는 전자책 SIGIL 을 이용해 전자책을 만들기 EPUB 전자책이 가지는 단점 EPUB이라는 포맷과 제일 많이 비교되는 포맷은 PDF라는 포맷 입니다. EPUB이 나오기 전까지 전 세계에서 가장 많이 사용되던 전자책 포맷이고, 아직도 많이 사 용되기 때문이기도 한며, 또한 PDF는 종이책 출력을 위해서도 사용되기 때문에 종이책 VS

More information

1. 배경 업무 내용이나 개인정보가 담긴 청구서 등을 메일로 전달 시 중요한 정보가 유출되는 경우가 발생하고 있으며, 이에 따른 메일 암호화 솔루션을 도입하고 있으나 기존 ActiveX를 기반으로 한 플러그인 방식은 여러 가지 제약으로 인해 사용성이 저하되고, 고객 대

1. 배경 업무 내용이나 개인정보가 담긴 청구서 등을 메일로 전달 시 중요한 정보가 유출되는 경우가 발생하고 있으며, 이에 따른 메일 암호화 솔루션을 도입하고 있으나 기존 ActiveX를 기반으로 한 플러그인 방식은 여러 가지 제약으로 인해 사용성이 저하되고, 고객 대 Non-ActiveX 방식의 메일암호화 솔루션 1. 배경 업무 내용이나 개인정보가 담긴 청구서 등을 메일로 전달 시 중요한 정보가 유출되는 경우가 발생하고 있으며, 이에 따른 메일 암호화 솔루션을 도입하고 있으나 기존 ActiveX를 기반으로 한 플러그인 방식은 여러 가지 제약으로 인해 사용성이 저하되고, 고객 대응 및 운영 비용이 증가하는 원인이 되어 개선이

More information

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

개인정보보호의  이해 및 안전한 관리 - 개인PC 및 스마트폰 개인정보보호- 개인정보보호의 이해와 안전한 관리 - 안전한 개인정보 관리- 2013. 6. 26 최 윤 형 (한국정보화진흥원) 1 안전한 개인PC 관리방법 목 차 2 안전한 스마트폰 관리방법 1. 안전한 개인PC 관리방법 정보통신 기기의 보안 위협요인 위협요소 웜, 바이러스, 악성코드, DDos공격침입, 네트워크 공격 휴대성, 이동성 오픈 플랫폼 3G, WiFi, Wibro

More information

vi 사용법

vi 사용법 네트워크프로그래밍 6 장과제샘플코드 - 1:1 채팅 (udp 버전 ) 과제 서버에서먼저 bind 하고그포트를다른사람에게알려줄것 클라이언트에서알려준포트로접속 서로간에키보드입력을받아상대방에게메시지전송 2 Makefile 1 SRC_DIR =../../common 2 COM_OBJS = $(SRC_DIR)/addressUtility.o $(SRC_DIR)/dieWithMessage.o

More information

슬라이드 1

슬라이드 1 Web Hacking Basic hardsoju hardsoju@hanmail.net Notice 본문서의저작권은저자및 Wise Guys 에게있습니다. 상업적인용도외에어떠한용도 ( 복사, 인용, 수정, 배포 ) 로도사용할수있으며 Wise Guys 의동의없이상업적인목적으로사용됨을금지합니다. 본문서로인해발생한어떠한사건에대한책임도저작권자에게는없음을밝힙니다. 본문서의잘못된부분이나지적이나추가하고싶은내용은저자에게메일을보내기바랍니다.

More information

LG-LU6200_ICS_UG_V1.0_ indd

LG-LU6200_ICS_UG_V1.0_ indd 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67

More information

슬라이드 1

슬라이드 1 UNIT 16 예외처리 로봇 SW 교육원 3 기 최상훈 학습목표 2 예외처리구문 try-catch-finally 문을사용핛수있다. 프로그램오류 3 프로그램오류의종류 컴파일에러 (compile-time error) : 컴파일실행시발생 럮타임에러 (runtime error) : 프로그램실행시발생 에러 (error) 프로그램코드에의해서해결될수없는심각핚오류 ex)

More information

2 PX-8000과 RM-8000/LM-8000등의 관련 제품은 시스템의 간편한 설치와 쉬운 운영에 대한 고급 기술을 제공합니다. 또한 뛰어난 확장성으로 사용자가 요구하는 시스템을 손쉽게 구현할 수 있습니다. 메인컨트롤러인 PX-8000의 BGM입력소스를 8개의 로컬지

2 PX-8000과 RM-8000/LM-8000등의 관련 제품은 시스템의 간편한 설치와 쉬운 운영에 대한 고급 기술을 제공합니다. 또한 뛰어난 확장성으로 사용자가 요구하는 시스템을 손쉽게 구현할 수 있습니다. 메인컨트롤러인 PX-8000의 BGM입력소스를 8개의 로컬지 PX-8000 SYSTEM 8 x 8 Audio Matrix with Local Control 2 PX-8000과 RM-8000/LM-8000등의 관련 제품은 시스템의 간편한 설치와 쉬운 운영에 대한 고급 기술을 제공합니다. 또한 뛰어난 확장성으로 사용자가 요구하는 시스템을 손쉽게 구현할 수 있습니다. 메인컨트롤러인 PX-8000의 BGM입력소스를 8개의 로컬지역에

More information

SH100_V1.4

SH100_V1.4 User Manual VLUU SH100 1 2 3 4 5 6 m m 7 8 9 10 11 12 13 15 16 17 x y 18 19 1 4 z x 20 2 o 5 o 6 3 7 10 11 21 8 12 o 9 o 22 1 m 2 3 2 1 3 23 24 o 25 1 2 o 1 2 3 26 1 2 1 2 27 1 28 2 1 3 29 2 4 30 1 m

More information

예제 2) Test.java class A intvar= 10; void method() class B extends A intvar= 20; 1"); void method() 2"); void method1() public class Test 3"); args) A

예제 2) Test.java class A intvar= 10; void method() class B extends A intvar= 20; 1); void method() 2); void method1() public class Test 3); args) A 제 10 장상속 예제 1) ConstructorTest.java class Parent public Parent() super - default"); public Parent(int i) this("hello"); super(int) constructor" + i); public Parent(char c) this(); super(char) constructor

More information

고객 카드 1588-7278

고객 카드 1588-7278 고객 카드 1588-7278 i 안전을 위한 경고사항 안전을 위한 주의사항 i 헤드유닛 DISP RADIO MEDIA PHONE SEEK TRACK 헤드유닛 FOLDER MUTE SCAN SETUP 스티어링 휠 리모트 컨트롤 + - MODE 기본모드 화면 Radio 모드 변경 RADIO 라디오 주파수 검색하기 SEEK TRACK 라디오 모드 사용하기 저장방송

More information

Microsoft PowerPoint - CSharp-10-예외처리

Microsoft PowerPoint - CSharp-10-예외처리 10 장. 예외처리 예외처리개념 예외처리구문 사용자정의예외클래스와예외전파 순천향대학교컴퓨터학부이상정 1 예외처리개념 순천향대학교컴퓨터학부이상정 2 예외처리 오류 컴파일타임오류 (Compile-Time Error) 구문오류이기때문에컴파일러의구문오류메시지에의해쉽게교정 런타임오류 (Run-Time Error) 디버깅의절차를거치지않으면잡기어려운심각한오류 시스템에심각한문제를줄수도있다.

More information

<4D F736F F F696E74202D20C1A63038C0E520C5ACB7A1BDBABFCD20B0B4C3BC4928B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

<4D F736F F F696E74202D20C1A63038C0E520C5ACB7A1BDBABFCD20B0B4C3BC4928B0ADC0C729205BC8A3C8AF20B8F0B5E55D> Power Java 제 8 장클래스와객체 I 이번장에서학습할내용 클래스와객체 객체의일생직접 메소드클래스를 필드작성해 UML 봅시다. QUIZ 1. 객체는 속성과 동작을가지고있다. 2. 자동차가객체라면클래스는 설계도이다. 먼저앞장에서학습한클래스와객체의개념을복습해봅시다. 클래스의구성 클래스 (class) 는객체의설계도라할수있다. 클래스는필드와메소드로이루어진다.

More information

Windows Live Hotmail Custom Domains Korea

Windows Live Hotmail Custom Domains Korea 매쉬업코리아2008 컨퍼런스 Microsoft Windows Live Service Open API 한국 마이크로소프트 개발자 플랫폼 사업 본부 / 차세대 웹 팀 김대우 (http://www.uxkorea.net 준서아빠 블로그) Agenda Microsoft의 매쉬업코리아2008 특전 Windows Live Service 소개 Windows Live Service

More information

비디오 / 그래픽 아답터 네트워크 만약에 ArcGolbe를 사용하는 경우, 추가적인 디스크 공간 필요. ArcGlobe는 캐시파일을 생성하여 사용 24 비트 그래픽 가속기 Oepn GL 2.0 이상을 지원하는 비디오카드 최소 64 MB 이고 256 MB 이상을 메모리

비디오 / 그래픽 아답터 네트워크 만약에 ArcGolbe를 사용하는 경우, 추가적인 디스크 공간 필요. ArcGlobe는 캐시파일을 생성하여 사용 24 비트 그래픽 가속기 Oepn GL 2.0 이상을 지원하는 비디오카드 최소 64 MB 이고 256 MB 이상을 메모리 ArcGIS for Desktop 10.4 Single Use 설치가이드 Software: ArcGIS for Desktop 10.4 Platforms: Windows 10, 8.1, 7, Server 2012, Server 2008 ArcGIS for Desktop 10.4 시스템 요구사항 1. 지원 플랫폼 운영체제 최소 OS 버전 최대 OS 버전 Windows

More information

User's Guide Manual

User's Guide Manual 1. 롯데 통합구매 시스템 사용자 매뉴얼 (공급사용) 2006.01-1 - 문서 이력(Revision History) Date Version Description Author(s) 2006/01 V1.0 사용자 매뉴얼 - 공급사용 롯데CFD 주) 이 사용자 안내서의 내용과 롯데 통합구매 시스템은 저작권법과 컴퓨터 프로그램 보호법으로 보호 받고 있으며, 롯데CFD의

More information

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

Microsoft PowerPoint - 5. 사용자 계정관리-1(2016-1학기).ppt [호환 모드] 운영체제실습 사용자계정관리 2016. 4 표월성 passwd74@naver.com cherub.sungkyul.ac.kr 목차 Ⅰ. 사용자계정관리 2. 그룹관리 3. 사용자계정관련파일 4. 패스워드관리 5. 사용자신분확인 사용자계정관리 사용자, 그룹 u Multi-User System( 다중사용자시스템 ) 리눅스 - 1대의시스템을동시에여러사람이접속하여쓸수있게하는시스템

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 KeyPad Device Control - Device driver Jo, Heeseung HBE-SM5-S4210 에는 16 개의 Tack Switch 를사용하여 4 행 4 열의 Keypad 가장착 4x4 Keypad 2 KeyPad 를제어하기위하여 FPGA 내부에 KeyPad controller 가구현 KeyPad controller 16bit 로구성된

More information

Microsoft PowerPoint - 02_Linux_Fedora_Core_8_Vmware_Installation [호환 모드]

Microsoft PowerPoint - 02_Linux_Fedora_Core_8_Vmware_Installation [호환 모드] 리눅스 설치 Vmware를 이용한 Fedora Core 8 설치 소프트웨어실습 1 Contents 가상 머신 실습 환경 구축 Fedora Core 8 설치 가상 머신 가상 머신 가상 머신의 개념 VMware의 설치 VMware : 가상 머신 생성 VMware의 특징 실습 환경 구축 실습 환경 구축 Fedora Core 8 설치 가상 머신의 개념 가상 머신 (Virtual

More information

목 차 1. 개 요... 1 1.1. 배경... 1 1.2. 요약... 1 1.3. 정보... 2 1.4. 대상시스템... 2 1.5. 원리... 2 2. 공격 기법 및 기본 개념... 3 2.1. Heap Spray... 3 2.2. Font... 4 3. 공 격..

목 차 1. 개 요... 1 1.1. 배경... 1 1.2. 요약... 1 1.3. 정보... 2 1.4. 대상시스템... 2 1.5. 원리... 2 2. 공격 기법 및 기본 개념... 3 2.1. Heap Spray... 3 2.2. Font... 4 3. 공 격.. 취약점 분석 보고서 [ Adobe Flash Player 11.3 Kern Table Parsing Integer Overflow - CVE-2012-1535 ] 2012-08-23 RedAlert Team 안상환 목 차 1. 개 요... 1 1.1. 배경... 1 1.2. 요약... 1 1.3. 정보... 2 1.4. 대상시스템... 2 1.5. 원리...

More information

class Sale void makelineitem(productspecification* spec, int qty) SalesLineItem* sl = new SalesLineItem(spec, qty); ; 2. 아래의액티비티다이어그램을보고 Java 또는 C ++,

class Sale void makelineitem(productspecification* spec, int qty) SalesLineItem* sl = new SalesLineItem(spec, qty); ; 2. 아래의액티비티다이어그램을보고 Java 또는 C ++, Level 1은객관식사지선다형으로출제예정 1. 다음은 POST(Post of Sales Terminal) 시스템의한콜레보레이션다이어그램이다. POST 객체의 enteritem(upc, qty) 와 Sale 객체의 makellineitem(spec,qty) 를 Java 또는 C ++, C # 언어로구현하시오. 각메소드구현과관련하여각객체내에필요한선언이있으면선언하시오.

More information

View Licenses and Services (customer)

View Licenses and Services (customer) 빠른 빠른 시작: 시작: 라이선스, 라이선스, 서비스 서비스 및 주문 주문 이력 이력 보기 보기 고객 가이드 Microsoft 비즈니스 센터의 라이선스, 서비스 및 혜택 섹션을 통해 라이선스, 온라인 서비스, 구매 기록 (주문 기록)을 볼 수 있습니다. 시작하려면, 비즈니스 센터에 로그인하여 상단 메뉴에서 재고를 선택한 후 내 재고 관리를 선택하십시오. 목차

More information

helpU 1.0

helpU 1.0 helpu May I help You 고품격 저비용 합리적인 원격지원 헬프유 목차 1. 제안 배경 2. 헬프유 개요 3. 파격 제안 4. 경쟁사 비교 5. 안전성 검증 6. 주요 기능 7. 도입 효과 기존 고객지원의 문제점 및 환경요인 > IT 기반의 Customer Service 수준 향상 추진 필요 노후한 고객지원 환경 전화를 통한 고객응대 시간 지체로

More information

<B3EDB4DC28B1E8BCAEC7F6292E687770>

<B3EDB4DC28B1E8BCAEC7F6292E687770> 1) 초고를읽고소중한조언을주신여러분들게감사드린다. 소중한조언들에도불구하고이글이포함하는오류는전적으로저자개인의것임을밝혀둔다. 2) 대표적인학자가 Asia's Next Giant: South Korea and Late Industrialization, 1990 을저술한 MIT 의 A. Amsden 교수이다. - 1 - - 2 - 3) 계량방법론은회귀분석 (regression)

More information

슬라이드 1

슬라이드 1 마이크로컨트롤러 2 (MicroController2) 2 강 ATmega128 의 external interrupt 이귀형교수님 학습목표 interrupt 란무엇인가? 기본개념을알아본다. interrupt 중에서가장사용하기쉬운 external interrupt 의사용방법을학습한다. 1. Interrupt 는왜필요할까? 함수동작을추가하여실행시키려면? //***

More information

KYO_SCCD.PDF

KYO_SCCD.PDF 1. Servlets. 5 1 Servlet Model. 5 1.1 Http Method : HttpServlet abstract class. 5 1.2 Http Method. 5 1.3 Parameter, Header. 5 1.4 Response 6 1.5 Redirect 6 1.6 Three Web Scopes : Request, Session, Context

More information

설치 순서 Windows 98 SE/Me/2000/XP 1 PC를 켜고 Windows를 시작합니다. 아직 컴퓨터에 프린터를 연결하지 마십시오. 2 PC에 P-S100 CD-ROM(프 린터 드라이버)을 삽입합니다. 3 설치 프로그램을 시작합니다. q CD-ROM의 PS1

설치 순서 Windows 98 SE/Me/2000/XP 1 PC를 켜고 Windows를 시작합니다. 아직 컴퓨터에 프린터를 연결하지 마십시오. 2 PC에 P-S100 CD-ROM(프 린터 드라이버)을 삽입합니다. 3 설치 프로그램을 시작합니다. q CD-ROM의 PS1 디지털 사진 프린터 P-S100 프린터 드라이버 설치 가이드 사용하는 컴퓨터에 따라 제공된 프린터 드라이버를 설치합니다. 설치 절차 에 대한 자세한 내용은 CD-ROM의 Readme 파일을 참조하십시오. 작동 환경 Windows 호환 모델: IBM PC/AT 및 호환품 운영 체제: Windows 98 SE/Me/2000/XP (Windows 98 SE/Me/2000/XP

More information

6강.hwp

6강.hwp ----------------6강 정보통신과 인터넷(1)------------- **주요 키워드 ** (1) 인터넷 서비스 (2) 도메인네임, IP 주소 (3) 인터넷 익스플로러 (4) 정보검색 (5) 인터넷 용어 (1) 인터넷 서비스******************************* [08/4][08/2] 1. 다음 중 인터넷 서비스에 대한 설명으로

More information

FileMaker 15 WebDirect 설명서

FileMaker 15 WebDirect 설명서 FileMaker 15 WebDirect 2013-2016 FileMaker, Inc.. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, California 95054 FileMaker FileMaker Go FileMaker, Inc.. FileMaker WebDirect FileMaker, Inc... FileMaker.

More information

IP Cam DDNS 설정설명서(MJPEG)-101021.hwp

IP Cam DDNS 설정설명서(MJPEG)-101021.hwp PH-MIP001 PH-MIP002 PH-MIP003 기능이란? 대부분의 자가 가입한 인터넷 서비스는 유동IP 방식을 합니다. 유동IP 방식은 필요에 따라 할당되는 IP가 변화하기 때문에 공유기 또는 공유기에 연결된 를 외부에서 접근이 필요할 경우 불편함을 느낄 수 있습니다. (Dynamic DNS)는 이와같은 불편함을 해소하기 위해 자가 지정한 도메인 이름으로

More information

IRISCard Anywhere 5

IRISCard Anywhere 5 이 빠른 사용자 가이드는 IRISCard Anywhere 5 및 IRISCard Corporate 5 스캐너의 설치와 시작을 도와 드립니다. 이 스캐너와 함께 제공되는 소프트웨어는: - Cardiris Pro 5 및 Cardiris Corporate 5 for CRM (Windows 용) - Cardiris Pro 4 (Mac OS 용) Cardiris 의

More information

10X56_NWG_KOR.indd

10X56_NWG_KOR.indd 디지털 프로젝터 X56 네트워크 가이드 이 제품을 구입해 주셔서 감사합니다. 본 설명서는 네트워크 기능 만을 설명하기 위한 것입니다. 본 제품을 올바르게 사 용하려면 이 취급절명저와 본 제품의 다른 취급절명저를 참조하시기 바랍니다. 중요한 주의사항 이 제품을 사용하기 전에 먼저 이 제품에 대한 모든 설명서를 잘 읽어 보십시오. 읽은 뒤에는 나중에 필요할 때

More information

Microsoft PowerPoint - XUSB_제품메뉴얼_140206

Microsoft PowerPoint - XUSB_제품메뉴얼_140206 XUSB 제품 사용설명서 목차. XUSB 특징 6. XUSB 실행하기 9. XUSB 초기화. XUSB 주요 기능 7. XUSB 보안폴더 0. XUSB 오류 복구 3. XUSB 명칭 및 기능 3- 공통사항 3- 보안폴더 3-3 관리기능 4. XUSB 설치하기 4- 다운로드 4- 신규 라이선스 등록 4-3- 설치프로그램에서 라이선스 병합 4-3- XUSB에서 라이선스

More information

웹 웹서비스모의침투 (Oyes mall 쇼핑물 ) by hyd3(hyde0401@gmail.com) Contents 1. 개요... 3 1.1. 모의해킹정의... 3 1.2. 수행일정 / 수행인원... 3 1.3. 수행대상및장소... 4 1.4. 수행단계별방법... 4 1.5. 침투시나리오... 5 1.6. 점검항목... 6 1.7. 점검도구... 8 2. 결과요약...

More information

I. 서론 FOCUS 한국인터넷진흥원(KISA) 인터넷침해대응센터(KrCERT)는 다양한 방법으로 해킹사고를 탐지하고 있다. 인터넷침해대응센터 자체적으로 보유하고 있는 탐지체계 뿐만 아니라 시스템 담당자들이 직접 신고하는 신고체계 또한 해킹사고 탐지에 있어 중요한 역할

I. 서론 FOCUS 한국인터넷진흥원(KISA) 인터넷침해대응센터(KrCERT)는 다양한 방법으로 해킹사고를 탐지하고 있다. 인터넷침해대응센터 자체적으로 보유하고 있는 탐지체계 뿐만 아니라 시스템 담당자들이 직접 신고하는 신고체계 또한 해킹사고 탐지에 있어 중요한 역할 FOCUS 1 주요 해킹기법과 대응 전략 이재광 인터넷을 통한 침해사고는 꾸준히 증가하고 있다. 해킹된 시스템은 악성코드를 유포하는 경유지로 악용되거나 또 다른 시스템을 공격하는 공격 도구로 악용되기도 한다. 또한, 시스템을 해킹한 공격자는 시스템을 파괴하거나 시스템이 보유하고 있는 중요 자산을 탈취하여 피해 대상에게 막대한 손실을 입히기도 한다. 한국인터넷진흥원(KISA)

More information

Contents Test Lab 홖경... 3 Windows 2008 R2 서버를도메인멤버서버로추가... 4 기존 Windows 2003 AD 홖경에서 Windows 2008 R2 AD 홖경으로업그레이드를위한사젂작업 7 기존 Windows 2003 AD의스키마확장...

Contents Test Lab 홖경... 3 Windows 2008 R2 서버를도메인멤버서버로추가... 4 기존 Windows 2003 AD 홖경에서 Windows 2008 R2 AD 홖경으로업그레이드를위한사젂작업 7 기존 Windows 2003 AD의스키마확장... Active Directory Upgrade from W2K3 to W2K8 R2 5/10/2010 Microsoft Dong Chul Lee Contents Test Lab 홖경... 3 Windows 2008 R2 서버를도메인멤버서버로추가... 4 기존 Windows 2003 AD 홖경에서 Windows 2008 R2 AD 홖경으로업그레이드를위한사젂작업

More information

ALTIBASE 사용자가이드 Templete

ALTIBASE 사용자가이드 Templete Real Alternative DBMS ALTIBASE, Since 1999 WINDOWS ADO.NET 환경의 ALTIBASE 개발가이드 2010. 09 Copyright c 2000~2013 ALTBASE Corporation. All Rights Reserved. Document Control Change Record Date Author Change

More information

wtu05_ÃÖÁ¾

wtu05_ÃÖÁ¾ 한 눈에 보는 이달의 주요 글로벌 IT 트렌드 IDG World Tech Update May C o n t e n t s Cover Story 아이패드, 태블릿 컴퓨팅 시대를 열다 Monthly News Brief 이달의 주요 글로벌 IT 뉴스 IDG Insight 개발자 관점에서 본 윈도우 폰 7 vs. 아이폰 클라우드 컴퓨팅, 불만 검증 단계 돌입 기업의

More information

제목을 입력하세요.

제목을 입력하세요. 1. 4 1.1. SQLGate for Oracle? 4 1.2. 4 1.3. 5 1.4. 7 2. SQLGate for Oracle 9 2.1. 9 2.2. 10 2.3. 10 2.4. 13 3. SQLGate for Oracle 15 3.1. Connection 15 Connect 15 Multi Connect 17 Disconnect 18 3.2. Query

More information

Microsoft PowerPoint - 07-EDU-Apache-9-1.ppt

Microsoft PowerPoint - 07-EDU-Apache-9-1.ppt 1 아파치, HTTP, APM 소개 APM 설치하기 순천향대학교컴퓨터학부이상정 1 아파치, HTTP, APM 소개 순천향대학교컴퓨터학부이상정 2 소개 정식명칭 : Apache HTTP server 관련홈페이지 : www.apache.org GNU GPL 라이센스를통해무료로배포되는소프트웨어 현재 50% 이상의웹서버소프트웨어시장점유율 안정적으로동작 www.amazon.com이나

More information

목 차 DEXTUpload Pro 소개 시스템 요구 사항 기능 및 특징 시스템 구성도 벤치마킹 적용 효과 유지보수 안내 담당자 안내

목 차 DEXTUpload Pro 소개 시스템 요구 사항 기능 및 특징 시스템 구성도 벤치마킹 적용 효과 유지보수 안내 담당자 안내 LOW SYSTEM RESOURCE REQUIREMENTS HIGH UPLOAD SPEED GRAPHICAL PROGRESS INDICATOR DEXTUpload Pro Introduction www.devpia.com l www.dextsolution.com 목 차 DEXTUpload Pro 소개 시스템 요구 사항 기능 및 특징 시스템 구성도 벤치마킹 적용

More information

본문서는 초급자들을 대상으로 최대한 쉽게 작성하였습니다. 본문서에서는 설치방법만 기술했으며 자세한 설정방법은 검색을 통하시기 바랍니다. 1. 설치개요 워드프레스는 블로그 형태의 홈페이지를 빠르게 만들수 있게 해 주는 프로그램입니다. 다양한 기능을 하는 플러그인과 디자인

본문서는 초급자들을 대상으로 최대한 쉽게 작성하였습니다. 본문서에서는 설치방법만 기술했으며 자세한 설정방법은 검색을 통하시기 바랍니다. 1. 설치개요 워드프레스는 블로그 형태의 홈페이지를 빠르게 만들수 있게 해 주는 프로그램입니다. 다양한 기능을 하는 플러그인과 디자인 스마일서브 CLOUD_Virtual 워드프레스 설치 (WORDPRESS INSTALL) 스마일서브 가상화사업본부 Update. 2012. 09. 04. 본문서는 초급자들을 대상으로 최대한 쉽게 작성하였습니다. 본문서에서는 설치방법만 기술했으며 자세한 설정방법은 검색을 통하시기 바랍니다. 1. 설치개요 워드프레스는 블로그 형태의 홈페이지를 빠르게 만들수 있게

More information

슬라이드 1

슬라이드 1 고객의 불편을 모바일과 웹을 통해 실시간으로 해결하는 모바일 영상 기반 A/S 시스템 매뉴얼 (AnySupport Video) Contents 1. 애니서포트 비디오 소개 2. 각 부분별 기능 소개 3. 프로그램 설치 4. 주요기능 설명 고객의 불편을 웹과 모바일을 통해 실시간으로 해결 1. 애니서포트 비디오 소개 fdfsfds 고객과 기업이 모두 만족하는

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 스팸릴레이기술적예방대책 김상철 Kims@certcc.or.kr kims@kisa.or.kr 한국정보보호진흥원 배경 스팸, 웜바이러스, 해킹사례가증가하여주변국가를보안을위협 초 중 고교, PC 방중소기업등이정보보호인식부족과투자 / 관리소홀 초고속국가망의위신뿐만아니라국가전체의이미지를실추 설정오류의프락시서버와메일서버 잘못설정된프락시서버, 메일서버를운영하면서스팸메일을중계하여기관전체가스팸머로오인

More information

C 프로그래밍 언어 입문 C 프로그래밍 언어 입문 김명호저 숭실대학교 출판국 머리말..... C, C++, Java, Fortran, Python, Ruby,.. C. C 1972. 40 C.. C. 1999 C99. C99. C. C. C., kmh ssu.ac.kr.. ,. 2013 12 Contents 1장 프로그래밍 시작 1.1 C 10 1.2 12

More information

Microsoft PowerPoint - Lecture_Note_5.ppt [Compatibility Mode]

Microsoft PowerPoint - Lecture_Note_5.ppt [Compatibility Mode] TCP Server/Client Department of Computer Engineering Kyung Hee University. Choong Seon Hong 1 TCP Server Program Procedure TCP Server socket() bind() 소켓생성 소켓번호와소켓주소의결합 listen() accept() read() 서비스처리, write()

More information

특징 찾아보기 열쇠 없이 문을 열 수 있어요! 비밀번호 및 RF카드로도 문을 열 수 있습니다. 또한 비밀번호가 외부인에게 알려질 위험에 대비, 통제번호까지 입력해 둘 수 있어 더욱 안심하고 사용할 수 있습니다. 나만의 비밀번호 및 RF카드를 가질 수 있어요! 다수의 가

특징 찾아보기 열쇠 없이 문을 열 수 있어요! 비밀번호 및 RF카드로도 문을 열 수 있습니다. 또한 비밀번호가 외부인에게 알려질 위험에 대비, 통제번호까지 입력해 둘 수 있어 더욱 안심하고 사용할 수 있습니다. 나만의 비밀번호 및 RF카드를 가질 수 있어요! 다수의 가 www.kdnetwork.com 특징 찾아보기 열쇠 없이 문을 열 수 있어요! 비밀번호 및 RF카드로도 문을 열 수 있습니다. 또한 비밀번호가 외부인에게 알려질 위험에 대비, 통제번호까지 입력해 둘 수 있어 더욱 안심하고 사용할 수 있습니다. 나만의 비밀번호 및 RF카드를 가질 수 있어요! 다수의 가능할 삭제할 건전지 사용자를 위한 개별 비밀번호 및 RF카드

More information

01

01 IM-A900S 사용 설명서 01 사용하기 전에 라이선스 DivX 비디오에 관하여 DivXR 는 Rovi Corporation의 자회사 DivX, LLC가 개발한 디지털 비디오 포맷입니다. 본 제품은 DivX 비디오 재생 가능 여부를 확인하는 엄격한 테스트를 통과한 공식 DivX CertifiedR 기기입니다. 자세한 정보 및 일반 동영상을

More information

컴파일러

컴파일러 YACC 응용예 Desktop Calculator 7/23 Lex 입력 수식문법을위한 lex 입력 : calc.l %{ #include calc.tab.h" %} %% [0-9]+ return(number) [ \t] \n return(0) \+ return('+') \* return('*'). { printf("'%c': illegal character\n",

More information

학습목표 텍스트파일을다룰수있다. 스트림읽기, 쓰기를안다. 2

학습목표 텍스트파일을다룰수있다. 스트림읽기, 쓰기를안다. 2 학습목표 텍스트파일을다룰수있다. 스트림읽기, 쓰기를안다. 2 8.1 텍스트파일다루기 8.2 스트림읽기, 쓰기 3 텍스트파일 문자, 숫자, 단어들이하나이상의줄로구성 파일확장명 :.txt,.ini,.log, OpenFileDialog 컨트롤 : 파일의위치를사용자가쉽게선택가능 Filter 속성 : 파일의형식선택가능 ShowDialog 메서드 : 열기대화상자 FileName

More information

PCServerMgmt7

PCServerMgmt7 Web Windows NT/2000 Server DP&NM Lab 1 Contents 2 Windows NT Service Provider Management Application Web UI 3 . PC,, Client/Server Network 4 (1),,, PC Mainframe PC Backbone Server TCP/IP DCS PLC Network

More information

Microsoft PowerPoint - 03_DB Migration 방법론 및 툴 사용법-인쇄.ppt

Microsoft PowerPoint - 03_DB Migration 방법론 및 툴 사용법-인쇄.ppt DB Migration 방법론및툴사용법 대상정보기술솔루션사업본부 / DB 기술팀이정용과장 1 목 차 0. Case Company 1. Migration Workflow (SQL Server, DB2 to Oracle) 2. Migration 시기술적인문제점분석 3. Migration Process Overview 4. 세부적인 Migration Process

More information

BEef 사용법.pages

BEef 사용법.pages 1.... 3 2.... 3 (1)... 3 (2)... 5 3. BeEF... 7 (1) BeEF... 7 (2)... 8 (3) (Google Phishing)... 10 4. ( )... 13 (1)... 14 (2) Social Engineering... 17 (3)... 19 (4)... 21 5.... 22 (1)... 22 (2)... 27 (3)

More information

MF Driver Installation Guide

MF Driver Installation Guide Korean MF 드라이버 설치설명서 사용자 소프트웨어 CD-ROM... 드라이버 및 소프트웨어 정보...1 지원되는 운영 체제...1 MF 드라이버 및 MF Toolbox 설치... [쉬운 설치]를 사용한 설치...2 [사용자 정의 설치]를 사용한 설치...10 USB 케이블 연결(USB를 이용해 연결하는 경우만)...20 설치 결과 확인...21 온라인

More information

FileMaker ODBC and JDBC Guide

FileMaker ODBC and JDBC Guide FileMaker 13 5 5 5 6 6 6 7 7 8 8 8 8 9 9 10 10 11 11 12 12 12 12 12 12 13 13 14 14 16 16 18 4 19 19 20 20 21 21 21 23 23 23 23 25 26 26 26 26 27 28 28 28 28 29 31 31 32 33 33 33 33 34 34 35 35 35 36 1

More information

Chapter 4. LISTS

Chapter 4. LISTS C 언어에서리스트구현 리스트의생성 struct node { int data; struct node *link; ; struct node *ptr = NULL; ptr = (struct node *) malloc(sizeof(struct node)); Self-referential structure NULL: defined in stdio.h(k&r C) or

More information

H3250_Wi-Fi_E.book

H3250_Wi-Fi_E.book 무선 LAN 기능으로 할 수 있는 것 2 무선 LAN 기능으로 할 수 있는 것 z q l D w 3 Wi-Fi 기능 플로우차트 z q l D 4 Wi-Fi 기능 플로우차트 w 5 본 사용 설명서의 기호 설명 6 각 장별 목차 1 2 3 4 5 6 7 8 9 10 11 12 13 14 7 목차 1 2 3 4 8 목차 5 6 7 8 9 9 목차 10 11 12

More information

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

1장.  유닉스 시스템 프로그래밍 개요 Unix 프로그래밍및실습 7 장. 시그널 - 과제보충 응용과제 1 부모프로세스는반복해서메뉴를출력하고사용자로부터주문을받아자식프로세스에게주문내용을알린다. (SIGUSR1) ( 일단주문을받으면음식이완료되기전까지 SIGUSR1 을제외한다른시그널은모두무시 ) timer 자식프로세스는주문을받으면조리를시작한다. ( 일단조리를시작하면음식이완성되기전까지 SIGALARM 을제외한다른시그널은모두무시

More information

슬라이드 1

슬라이드 1 강력한성능! 인터넷 / 업무용데스크탑 PC NX-H Series Desktop PC NX1- H700/H800/H900 NX2- H700/H800/H900 NX1-H Series 사양 Series 제품설명 ( 모델명 ) NX1-H Series, 슬림타입 기본형모델중보급형모델고급형모델 NX1-H800:112SN NX1-H800:324SN NX1-H800:534MS

More information