낮은비용으로효율적인 기업보안구축방안 홍석범 (CDNetworks)
Key Words
타산지석 2011 년 Adobe flash 0-day exploit 취약성을이용한 2 통의메일 ( 엑셀파일 ) 전송엑셀실행시 RAT(remote administration tool) 활성화 => 목표지점으로접근
패치만해도안전? 패치로 80% 의위협은제거할수있다. 시스템에서는아직도알려지지않은취약성이더많을수있다. 강력한접근통제는보안의기본이다. 모든 Application 의실행권한은최소한으로유지한다. 취약성공개전후공격발생시간에대한통계 :: 적지않은공격이 CVE 공개전부터수행됨
보안사고의교훈 대부분의악성코드는 MS 계열 기술조직은모두 Linux 를기반 OS 로사용 필요하다면 VM 으로 Windows 설치 Office( 아웃룩 /PPT) 만사용 Gray zone 과 Clean zone 의분리 Mac 주소로필터링 서비스망인 Clean zone 은 Linux Only Gray zone 은 Linux/Mac 권장 Gateway 등주요시스템로그인에도입 초기에 Google OTP 도입 => 상용 migration 진행중 마지막보루로서침해사고의 golden time(1 주 ~2 주 ) 활용
물리적망분리예 virus-free Device Sandbox monitoring Sandbox monitoring Gateway Sandbox monitoring 미리등록된 MAC 외회사망접속차단 이외의 MAC 은 Guest 망접속 외부망 내부망 Sandbox monitoring File Server
OSSEC :: OpenSourceSECurity 오픈소스기반의 Host 기반 IDS/IPS( 침입탐지시스템 ), 현재는 Trendmicro 에서인수하여제공 Http://ossec.net/ Log 분석, 파일무결성모니터링 (FIM), 루트킷탐지, 실시간탐지및차단 agent 기반, agentless 모두지원, log management 솔루션은아님 System(kernel, 내부 daemons 등 ) 의 visibility( 가시성 ) 를제공함 Server-agent 기반으로각서버에는로그를수집하는 agent 만설치하면되므로확장성이용이 기본적으로 /var/ossec 에설치되고, 주설정파일은 /var/ossec/etc/ossec.conf /var/ossec/rules/*.xml :: 룰파일, snort 처럼오탐이많지는않음 /var/ossec/logs/alert.log :: 알람파일
OSSEC Log 는 ossec 서버에서만분석되며 agent 는로그를보내기만함 활용사례 <syscheck> <directories check_all="yes">/etc,/usr/bin,/usr/sbin</directories> <directories check_all="yes">/root/users.txt,/bsd,/root/db.html</directories> <ignore>/etc/random-seed</ignore> </syscheck> 파일이나디렉토리의속성 (md5,owner,permission 등 ) 이변경시알람함 <rule id= 100345 level= 12 > <if_matched_group>syscheck</if_matched_group> <match>/var/www/htdocs</match> <description>changes to /var/www/htdocs </description> <hostname>webserver1 webserver2</hostname> </rule> webserver1 이나 webserver2 에서 /var/www/htdocs 내파일변동시알람
OSSEC 알람예 Received From: (www.example.com) 192.168.7.19->/var/log/secure Rule: 5551 fired (level 10) -> "Multiple failed logins in a small period of time." Src Location: CN,Guangdong,Guangzhou Portion of the log(s): www vsftpd: pam_unix(vsftpd:auth): authentication failure; logname= uid=0 euid=0 tty=ftp ruser=zhaolg rhost=61.144.79.245 => 지속적인 ftp 접속시도를알람 Received From: localhost->ossec-logcollector Rule: 592 fired (level 8) -> "Log file size reduced." Portion of the log(s): ossec: File size reduced (inode remained): '/var/log/messages'. 파일을삭제하거나로그의특정부분을삭제시알람 Rule: 510 fired (level 7) -> "Host-based anomaly detection event (rootcheck)." Portion of the log(s): Process '17251' hidden from /proc. Possible kernel level rootkit. => Hidden process 탐지
Google OTP Iphone, 안드로이드, 윈도우폰등모든 device 지원 OTP 코드는 30 초간유효, 30 초마다 Random 하게변경됨 T(Time based)otp 의경우 WIFI/LTE 연결이되지않아도사용가능 ( 시간동기화가중요 ) 별도의인증서버가필요하지않아비용투자가없음 Brute force 공격에안전, ID/PW 를저장하는사이트에도안전 IP 등으로 ACL 설정이불가한서비스에도유용함 사용하기편리함
Google OTP :: SSH 연동 https://github.com/google/google-authenticator/wiki Git 또는 # yum install google-authenticator 이후 QR code 를볼수있도록 # yum install qrencode 로설치각유저들은각자아래명령어로설정초기화 $ google-authenticator 이후.google_authenticator 라는설정파일이생성됨
Google OTP :: SSH 이후 /etc/pam.d/sshd 파일에아래설정추가하여적용 auth required pam_google_authenticator.so /etc/ssh/sshd_config 파일에아래설정추가 UsePAM yes ChallengeResponseAuthentication yes PasswordAuthentication yes $ ssh antihong@192,168.11.4 -p22 Verification code: xxxxxx <== OTP 코드 Password: <== 기존에사용중인 password 응용예 ) Match User somebody AuthenticationMethods "publickey" Match User "*,!somebody" AuthenticationMethods "publickey,keyboard-interactive" => Sombody 는 Key 로만인증, 나머지는 Key 와 OTP 로인증
상용 OTP Google OTP 의단점 QR Code 를복사해두면 OTP 를재사용 ( 재생성 ) 할수있음 Browser plugin 을설치하여사용할수있음 OTP 사용에대한 history 관리가안됨 SSH 외 RDP 나 Web 등다른 Application 적용에어려움 여러 Application 을사용할경우중앙관리를위해서는별도개발이필요함 상용 OTP :: DUO OTP / AUTHY 10 개계정까지는 Free 로사용가능함 https://www.duosecurity.com/ CEO 는 Dug Song( 송덕준 ) 으로한국계 http://www.monkey.org/~dugsong/dsniff/ SSH, RDP, VPN, WIKI, JIRA, OWA, WEB site 등대부분의 Application 을지원함 OTP 적용에 API 를이용하여수십분소요
DUO OTP :: Push 기능, Passcode 입력 (TOTP), SMS 등다양한옵션지원가능 Portal 을통한관리자의관리 ( 로그모니터링 )
취약성스캐너 가장대표적인취약성스캐너솔루션, 초기에는오픈소스로시작 => 현재는 tenable 에서인수 Nessus Professional 의경우 $2,000/year 로제한없이대부분의기능이용가능 HOME license 는일부기능 ( 동시스캔가능한 ip 수등 ) 의제한으로 Free 로사용가능 안정성 ( 스팸..) 과정확도 ( 오탐..) 가매우높음 rpm -Uvh Nessus-x.x.x-xxx.i386.rpm 후 https://example.com:8834/ 로즉시사용가능 Home License 에서의다양한메뉴
Nessus 의패치기능 리눅스시스템패치전후 Credentials scan 결과 다수의 ip 를동시에스캔가능 각취약성항목에대해상세정보 Html 이나 pdf 등으로 report 생성
Kali Linux https://www.exploit-db.com/ 의 offensive-security 에서운영하는데비안기반배포판 이전에는백트랙, 2013 년 Kali 라는이름으로바꾸어현재 2.0 정보수집, 취약성점검, 웹어플리케이션분석, 패스워드크랙, 무선해킹, 리버스엔지니어링, 스니핑및 spoofing 툴, 포렌식, 리포팅툴등다양한분야별로가장대표적인 300 여개의프로그램들을제공 복잡한설치과정없이즉시사용가능
Kali 의많은응용프로그램 http://tools.kali.org/tools-listing Openvas (http://openvas.org/) Nessus 의뒤를잇는취약성점검솔루션매우복잡한설치과정, Kali 는매우쉬움 openvas-setup; openvas-stop ; openvas-start
OpenVAS
Nmap 의 NSE 기능활용 가장대표적인 port scanner :: https://nmap.org Matrix 등 13 편의영화에출현 (?) 함 NSE(Nmap Scripting Engine) 를활용, 확장된기능가능 /usr/local/share/nmap/scripts 에 500 여개스크립트 auth : 인증과관련된스크립트, anonymous ftp 스캔등 discovery : 대상에대한깊이있는정보를찾는스크립트들 external : 외부의자원 (resources) 을활용한스크립트들 intrusive : 대상에대한공격시도를하는스크립트들 malware : 백도어나악성코드 (malware) 점검과관련된스크립트들 Vuln : 알려진취약성을점검하는스크립트들 nmap --script dns-recursion 192.168.1.0/24 nmap --script ftp-anonn 192.168.1.0/24 nmap --script ftp-brute 192.168.1.0/24 nmap -p 80 --script http-backup-finder www.example.com index.bak 나 index.html~ 등과같은백업파일검색
Nmap 의 NSE 활용 nmap -p 80 --script http-comments-displayer www.example.com http-comments-displayer: Spidering limited to: maxdepth=3; maxpagecount=20; withinhost=www.example.com Path: http://www.example.com:80/ Line number: 367 Comment: <!--<li><a href="#"><img src="images/right_btn-04.png ></a></li>--> nmap -p 80 --script=http-errors www.examlpe.com d :: 400/500 에러점검 80/tcp open http syn-ack Spidering limited to: maxpagecount=40; withinhost=some-random-page.com Found the following error pages: Error Code: 404 http://some-random-page.com/admin/
Nmap 의 NSE 활용 nmap -p80 --script http-google-malware <host> safe browsing 을이용, malware 가삽입되었는지여부점검 PORT STATE SERVICE 80/tcp open http _http-google-malware.nse: Host is known for distributing malware. nmap -p80 --script http-sql-injection www.example.com nmap -p80 --script http-slowloris www.example.com nmap --script http-virustotal --script-args='apikey= xxxxxxx",http-virustotal.filename="/root/john-1.8.0.tar.gz"' http-virustotal: Permalink: https://www.virustotal.com/file/xxxxxx/analysis/1418142671/ Scan date: 2014-12-09 16:31:11 Results name result date version AhnLab-V3-20141209 2014.12.10.00 ALYac - 20141209 1.0.1.4 Comodo UnclassifiedMalware 20141209 20312 Fortinet Riskware/JohnRipper 20141209 5.0.999.0
Nmap 의 NSE 활용 nmap -sv --script=mysql-brute.nse -p 3306 192.168.1.201 3306/tcp open mysql mysql-brute: Accounts root:root - Valid credentials nmap --script reverse-index 192.168.0.0/24 Post-scan script results: reverse-index: 22/tcp: 192.168.0.60 23/tcp: 192.168.0.100 80/tcp: 192.168.0.70 445/tcp: 192.168.0.1 53/udp: 192.168.0.105, 192.168.0.70, 192.168.0.60, 192.168.0.1 _ 5353/udp: 192.168.0.105, 192.168.0.70, 192.168.0.60, 192.168.0.1 nmap -sv --script ssl-cert -p443 www.example.com ssl-cert: Subject: commonname=*.facebook.com/organizationname=facebook, Not valid before: 2014-08-28T00:00:00 Not valid after: 2015-10-28T12:00:00 spdy/3.1
Comodo Free WAF Modsecurity 기반, Free 로제공 Comodo 에서 customizing 한 rule 제공 Agent 를통해룰자동업데이트가능
Comodo WAF GUI 관리 cpanel, Webmin, web hosting panel 등연동시 GUI 로룰관리가능함
OpenSCAP 활용 OpenSCAP(Security Content Automation Protocol) :: http://www.open-scap.org/ OpenSCAP 는 Open 되어있고 Free 이며매우활발히업데이트되고있다. scan 할항목을 customize 할수있어환경에따라불필요한항목은제외하고스캔할수있다. 유사한프로젝트로 Lynis 가있음
OpenSCAP 활용 yum -y install openscap openscap-utils scap-security-guide # oscap xccdf eval --profile stig-rhel6-server-upstream --results /tmp/oscap-results.xml -- report /tmp/oscap-results.html --cpe /usr/share/xml/scap/ssg/content/ssg-rhel6-cpedictionary.xml /usr/share/xml/scap/ssg/content/ssg-rhel6-xccdf.xml
OpenSCAP 활용 --remediate option 시자동으로 fix Lynis :: https://cisofy.com/lynis/ Lynis 는 Linux,MacOS, unix 에대한 audit 지원
SIEM 활용 Security Information and Event Management Splunk 및 ELK 가대표적 Logstash - 데이터의 IN and OUT 을처리 Elasticsearch - Data 를검색가능하게저장 Kibana dashboard UI 를보여준다 https://splunkbase.splunk.com/ 에서다양한 App 제공, 예 ) ossec App
감사합니다. antihong@gmail.com