40
안전한 Service 운영을 위한 보안교육 황성호 IT보안대응실 / NBP ⓒ NAVER BUSINESS PLATFORM Corp.

[네이버D2SF] 안전한 서비스 운영을 위한 Ncloud 보안교육

Embed Size (px)

Citation preview

Page 1: [네이버D2SF] 안전한 서비스 운영을 위한 Ncloud 보안교육

안전한 Service�운영을위한보안교육

황성호

IT보안대응실 /�NBP

ⓒNAVER�BUSINESS�PLATFORM�Corp.

Page 2: [네이버D2SF] 안전한 서비스 운영을 위한 Ncloud 보안교육

목차

1.외부위협유형

2.계정관리

3.DDoS 공격예방

4.어플리케이션로직

5.시스템취약점

6.For�Safety�Service

Page 3: [네이버D2SF] 안전한 서비스 운영을 위한 Ncloud 보안교육

1. 외부 위협유형

Page 4: [네이버D2SF] 안전한 서비스 운영을 위한 Ncloud 보안교육

1.1 수치로보는위협, 취약성, 위험

712,868,621 213,883 257공격시도수 공격유입수 유효공격수

위협 위험취약성

위협 = 사건(이벤트)

• 힘으로으르고 협박함• 정보자산의 보안에 부정적 영향을 줄

수있는외부 환경또는사건(이벤트)

위험 = 가능성(확률)

• 해로움이나손실이생길우려가있음• 보 안 의 3 대 요 소 인 기 밀 성

(Confidentiality), 무결성(Integrity),가용성(Availability)를 해치는 사건이발생할가능성

취약성(취약점) = 속성, 상태

• 무르고약한점• 위협에 의해 정보자산의 보안에 부정

적 영향을 줄 수 있는 정보자산의 속성이나상태

Page 5: [네이버D2SF] 안전한 서비스 운영을 위한 Ncloud 보안교육

1.2 2016년상반기위험유형

5428

262222

1110

87766544433333

Mysql_Login_Success

NETBIOS_Name_Query

WP_Pingback

System_Command_Linux

UDP_Flooding

wget_Execute_Success

Django_Stack_Trace

Directory_Indexing

TCP_SYN_Flooding

DB_Error

IRC

33%

1%

9%

13%

33%

11%

Account

Bruteforce

DDoS

Exposure

Intrusion

Vulnerability

Mysql_Login_Success : 계정 관리

- 계정 설정및 계정정책방안

WP_Pingback : DDoS 공격 예방

- Secure Coding

- 취약점패치

Wget_Execute_Success : Application 설정

- Web Application 설정

- Error 출력 설정

- Trace 정보 출력

Account : Application Logic

- SQL Injetion

- Filte Upload

Intrusion : 침입탐지

- NETBIOS, WGET, WebShell 탐지

- IRC, Malware, Anti Virus

Vulnerability : 패치 및 업데이트

- Apache, Tomcat 취약점(RCE)

- Struct 취약점(RCE)

[TOP20�공격명]

[공격유형]

Page 6: [네이버D2SF] 안전한 서비스 운영을 위한 Ncloud 보안교육

2. 계정 관리

Page 7: [네이버D2SF] 안전한 서비스 운영을 위한 Ncloud 보안교육

2.1 Default�계정

Vendor별 Default�계정정보 3Com�&�Cisco�Default�계정정보 D-Link�Default�계정정보

MySQL�Default�계정정보 Router�Default�계정정보

Page 8: [네이버D2SF] 안전한 서비스 운영을 위한 Ncloud 보안교육

2.2 계정보안

안전한패스워드를만드는 6가지원칙

1. 패스워드를최소한 9자 이상으로만들어라

2. 대문자와소문자, 특수문자와숫자를섞어만들어라

3. 흔히 사용하는문자나 숫자의조합을피해라

4. 60일 혹은 90일 간격으로패스워드를변경해라

5. 잘못된패스워드입력시 계정잠금을설정해라

6. 패스워드정보를이메일로보내거나제3자에게공유하지마라

[참고URL]• 패스워드 선택 및 이용 가이드 : http://www.krcert.or.kr/data/guideView.do?bulletin_writi

ng_sequence=436&queryString=cGFnZT0yJnNvcnRfY29kZT0mc2VhcmNoX3NvcnQ9dGl0bGVfbmFtZSZzZWFyY2hfd29yZD0=

Page 9: [네이버D2SF] 안전한 서비스 운영을 위한 Ncloud 보안교육

2.3 Jenkins 보안

① Configure�Global�Security 선택

② Enable�Security�체크Disable�remember�체크Jenkins’�own�user�database�선택사용자의가입허용선택해제

③ Matrix-based�security�선택User/group�to�add에 관리자계정입력후 Add�클릭

Page 10: [네이버D2SF] 안전한 서비스 운영을 위한 Ncloud 보안교육

2.3 Jenkins 보안

④ 추가된관리자계정의권한설정을위해 Overall의Administer를 체크후 Save�클릭

⑤ 계정명에생성한관리자계정명을입력하고암호와이름, Email을 입력후 Sign�Up 클릭

⑥ 계정등록이완료되면성공Message가 표시됨

Page 11: [네이버D2SF] 안전한 서비스 운영을 위한 Ncloud 보안교육

3. DDoS 공격 예방

Page 12: [네이버D2SF] 안전한 서비스 운영을 위한 Ncloud 보안교육

3.1 DDoS 공격이란?

DDoS(Distributed Denial of Service)

해킹 방삭의 하나로 여러 대의 공격자를 분산 배치하여 동시에 ‘서비스 거부 공격(Denial of Service attack : DoS)’을 함으로써 시스템이 더이상 정상적인 서비

스를 제공할수없도록 만드는것을말함

Page 13: [네이버D2SF] 안전한 서비스 운영을 위한 Ncloud 보안교육

3.2 DDoS 공격유형

DNS�Amplification�Attack NTP�Amplification�Attack

WrodPress Pingback�Attack DDoS Attack�Tool

Page 14: [네이버D2SF] 안전한 서비스 운영을 위한 Ncloud 보안교육

3.3 DDoS 공격대응절차

Step1.초기대응

Step2.공격회피

Step3.용량증설

Step4.사후조치

• 공격유형 파악 및 공격자 IP추출

• ACL/IPTables을 이용한 공격자차단

• Server Rebooting

• Redirect를 이용하여 정상사용자만을허용

• Server/Network 증설 • 외부기관연계• 원복및사후조치방안도출

Server

DNS

DNS

② ③ ⑤

Proxy①

• www.test.com100.100.100.100

• www.test2.com100.100.100.101

Server

DNS

DNS

② ③ ⑤

Proxy①

• www.test.com100.100.100.100

• www.test2.com100.100.100.101

L4�Proxy를 이용한 공격자 차단 Flow

① 예비 DNS�및 VIP�등록② www.test.com�접속③ www.test2.com Redirect�요청④ Zombie 특성상 www.test2.com DNS�Update 불가⑤ www.test2.com 접속하지 못하고 www.test.com으

로만 공격시도

Page 15: [네이버D2SF] 안전한 서비스 운영을 위한 Ncloud 보안교육

3.4 DDoS 공격예방방안

OS�HardeningApplication취약점 제거

KISA사이버대피소

• Server와 PC OS의 기본 보안옵션활성화

• 악성코드감염최소화

• 사용중인 Application의 최신버전 확인 및 정기적인 Update 정책 수립

• KISA에서 제공하는 사이버대피소활용

[참고URL]• 민간사이버안전메뉴얼 : http://www.krcert.or.kr/data/guideView.do?bulletin_writing_se

quence=399&queryString=cGFnZT0zJnNvcnRfY29kZT0mc2VhcmNoX3NvcnQ9dGl0bGVfbmFtZSZzZWFyY2hfd29yZD0=

• 사이버대피소 : http://www.krcert.or.kr/webprotect/cyberShelters/cyberShelters.do

Page 16: [네이버D2SF] 안전한 서비스 운영을 위한 Ncloud 보안교육

3.5 OS�Hardening�Checklist(Linux)

구분 점검사항 세부항목 비고

최신버전 패치 최신 OS�버전 및 주요 보안패치를 적용하였는가?• OS Version• Apache�Version• MySQL�Version

민간사이버안전매뉴얼 ISP및IDC용 - 118P

사용자계정 및 패스워드관리

사용하지 않는 계정을 삭제하였는가? • /etc/passwd 점검 민간사이버안전매뉴얼 ISP및IDC용 - 120P

불필요한 서비스 중지 불필요한 서비스를 중지하였는가?• /etc/inetd.conf 점검• /etc/xinetd.d 점검

민간사이버안전매뉴얼 ISP및IDC용 - 121P

원격접속 관리 원격 root�계정 접속을 제한하였는가? • /etc/securitty 점검 민간사이버안전매뉴얼 ISP및IDC용 - 125P

파일시스템 보안 setuid와 setgid 퍼미션을 제한하였는가? • setuid/setgid 퍼미선 점검 민간사이버안전매뉴얼 ISP및IDC용 - 126P

중요파일 퍼미션 설정중요파일에 대한 퍼미션을 제한하였는가?임의 사용자의 쓰기권한을 제한하였는가?

• /etc/utmp,�/var/adm/wtmp,/etc/motd,�/etc/mtab 퍼미션 644로변경

• 중요파일에 대해 퍼미션 644로 변경

민간사이버안전매뉴얼 ISP및IDC용 - 127P

예약 작업(Cron)관리crontab의 퍼미션을 root만 사용하도록 변경하였는가?

• crontab 허용권한을 600으로 설정 민간사이버안전매뉴얼 ISP및IDC용 - 128P

FTP�보안 FTP�접근 계정 및 디렉토리 권한을 제한하였는가?• FTP�접근 계정 설정• FTP�디렉토리 퍼미션 점검

민간사이버안전매뉴얼 ISP및IDC용 - 128P

Page 17: [네이버D2SF] 안전한 서비스 운영을 위한 Ncloud 보안교육

3.6 Application�취약점제거(Apache)

구분 점검사항 세부항목 비고

웹 프로세스 계정웹 프로세스 계정은 로그인 할 수 없는 계정“nobody”�계정을 사용하는가?

• /etc/passwd와 /etc/shadow�파일의nobody 계정에 /bin/sh,�/bin/csh등shell을 명시한 부분이 제거되어 있는지를 점검

• httpd.conf 파일에 User�nobody,�Group�nobody로 설정되어 있는지를점검

민간사이버안전매뉴얼 ISP및IDC용 -153P

DocumentRoot 설정 DocumnetRoot 경로를 변경 하였는가?• httpd.conf 파일내 Default

DocumentRoot 경로를 변경하였는지를 점검

민간사이버안전매뉴얼 ISP및IDC용 -154P

불필요 CGI�스크립트 제거 cgi-bin 디렉토리내 모든 파일을 삭제하였는가?• .../cgi-bin/�디렉토리내 모든 파일이 삭

제되었는지를 점검민간사이버안전매뉴얼 ISP및IDC용 -154P

디렉토리 리스팅 방지 httpd.conf 파일내 Indexes�옵션을 제거하였는가?• httpd.conf 파일내 Options 지시자에

서 Indexes�옵션을 모두 제거민간사이버안전매뉴얼 ISP및IDC용 -155P

심볼릭 링크 베거httpd.conf 파일내 FollowSymLinks 옵션을 제거하였는가?

• httpd.conf 파일내 Options 지시자에서 FollowSymLinks 옵션을 모두 제거

민간사이버안전매뉴얼 ISP및IDC용 -155P

SSI(Server Side�Includes)�사용제한

httpd.conf 파일내 IncludesNoExec 옵션을 제거하였는가?

• httpd.conf 파일내 Options 지시자에서 IncludesNoExec옵션을 모두 제거

민간사이버안전매뉴얼 ISP및IDC용 -155P

CGI 실행 디렉토리 제한httpd.conf 파일내 ScriptsAlias 지시자를 설정하였는가?

• httpd.conf 파일내 ScriptsAlias 지시자를 설정하였는지 점검

• ScriptAlias /cgi-bin/�“/usr/local/apache/cgi-bin/”

민간사이버안전매뉴얼 ISP및IDC용 -155P

응답 헤더 정보 숨기기httpd.conf 파일내 ServerTokens 지시자에 불필요한 설정값을 제거하였는가?

• httpd.conf 파일내 ServerTokens 지시자에 Prod�설정값만 있는지 점검

• ServerTokens Prod

민간사이버안전매뉴얼 ISP및IDC용 -158P

Page 18: [네이버D2SF] 안전한 서비스 운영을 위한 Ncloud 보안교육

3.6 Application�취약점제거(MySQL)

구분 점검사항 세부항목 비고

웹 프로세스 계정웹 프로세스 계정은 로그인 할 수 없는 계정“nobody”�계정을 사용하는가?

• /etc/passwd와 /etc/shadow�파일의nobody 계정에 /bin/sh,�/bin/csh등shell을 명시한 부분이 제거되어 있는지를 점검

• httpd.conf 파일에 User�nobody,�Group�nobody로 설정되어 있는지를점검

민간사이버안전매뉴얼 ISP및IDC용 -153P

DocumentRoot 설정 DocumnetRoot 경로를 변경 하였는가?• httpd.conf 파일내 Default

DocumentRoot 경로를 변경하였는지를 점검

민간사이버안전매뉴얼 ISP및IDC용 -154P

불필요 CGI�스크립트 제거 cgi-bin 디렉토리내 모든 파일을 삭제하였는가?• .../cgi-bin/�디렉토리내 모든 파일이 삭

제되었는지를 점검민간사이버안전매뉴얼 ISP및IDC용 -154P

디렉토리 리스팅 방지 httpd.conf 파일내 Indexes�옵션을 제거하였는가?• httpd.conf 파일내 Options 지시자에

서 Indexes�옵션을 모두 제거민간사이버안전매뉴얼 ISP및IDC용 -155P

심볼릭 링크 베거httpd.conf 파일내 FollowSymLinks 옵션을 제거하였는가?

• httpd.conf 파일내 Options 지시자에서 FollowSymLinks 옵션을 모두 제거

민간사이버안전매뉴얼 ISP및IDC용 -155P

SSI(Server Side�Includes)�사용제한

httpd.conf 파일내 IncludesNoExec 옵션을 제거하였는가?

• httpd.conf 파일내 Options 지시자에서 IncludesNoExec옵션을 모두 제거

민간사이버안전매뉴얼 ISP및IDC용 -155P

CGI 실행 디렉토리 제한httpd.conf 파일내 ScriptsAlias 지시자를 설정하였는가?

• httpd.conf 파일내 ScriptsAlias 지시자를 설정하였는지 점검

• ScriptAlias /cgi-bin/�“/usr/local/apache/cgi-bin/”

민간사이버안전매뉴얼 ISP및IDC용 -155P

응답 헤더 정보 숨기기httpd.conf 파일내 ServerTokens 지시자에 불필요한 설정값을 제거하였는가?

• httpd.conf 파일내 ServerTokens 지시자에 Prod�설정값만 있는지 점검

• ServerTokens Prod

민간사이버안전매뉴얼 ISP및IDC용 -158P

Page 19: [네이버D2SF] 안전한 서비스 운영을 위한 Ncloud 보안교육

4. 어플리케이션로직

Page 20: [네이버D2SF] 안전한 서비스 운영을 위한 Ncloud 보안교육

4.1 XSS(Cross-Site�Script)

XSS(Cross-Site Script)

웹 페이지에악의적인 Javascript를 Injection 해서 사용자를공격하는기법

Reflected XSS / Stored XSS 공격

Page 21: [네이버D2SF] 안전한 서비스 운영을 위한 Ncloud 보안교육

4.1 XSS(Cross-Site�Script)

Reflected�XSSStored�XSS

Page 22: [네이버D2SF] 안전한 서비스 운영을 위한 Ncloud 보안교육

4.1 XSS(Cross-Site�Script)�대응방법

• 사용자입력값한정

파라미터로 들어오는사용자값에대한철저한검증

• 특수문자가필요한경우?

HTML Entity 처리 or URL Encoding

• 추가로할수있는것은?

X-XSS-PROTECTION Header or HTTP Only Cookie

Page 23: [네이버D2SF] 안전한 서비스 운영을 위한 Ncloud 보안교육

4.2 SQL�Injection

SQL Injection

사용자 입력파라미터에 SQL 구문을 Injection 해서 DB에 정보를가져오거나시스템을조작하는취약점

Classical SQL Injection / Blind SQL Injection / Compound SQL Injection …

Page 24: [네이버D2SF] 안전한 서비스 운영을 위한 Ncloud 보안교육

4.2 SQL�Injection

Exposure�SQL�Query Exposure�DB�Data

Page 25: [네이버D2SF] 안전한 서비스 운영을 위한 Ncloud 보안교육

4.2 SQL�Injection

• Sysadmin (SA) 권한 계정미사용

• 허용하지않는형식의값제한

• 모든입력값은인용부호(‘ 또는 “)로 묶음

• 불필요한프로시저사용제한

• 입력값에대한검증로직추가 (아래 문자)

• 프로시저또는 PreparedStatement 사용

Page 26: [네이버D2SF] 안전한 서비스 운영을 위한 Ncloud 보안교육

4.3 GET�/�POST�외 HTTP�메시지허용

HTTP Method

HTTP 프로토콜에서 제공하는사용자의요청을구분하기위한미리정의된프로토콜

각 프로토콜별의미에 따라 HTTP 서버에서다른동작수행

Page 27: [네이버D2SF] 안전한 서비스 운영을 위한 Ncloud 보안교육

4.3 GET�/�POST�외 HTTP�메시지허용

HTTP�TRACE�method

Page 28: [네이버D2SF] 안전한 서비스 운영을 위한 Ncloud 보안교육

4.4 Directory�Listing

Directory Listing

웹서버설정오류및 어플리케이션의버그로인하여서버내에파일들의목록이보여지는취약점

서버의 구조파악을 및소스코드탈취가능

Directory�Listing�Vulnerability

Page 29: [네이버D2SF] 안전한 서비스 운영을 위한 Ncloud 보안교육

4.5서버정보노출

서버정보노출

PHP, Apache, Tomcat등에서제공하는서버의상태를확인할수있는페이지노출

/phpinfo.php, /server-status, /jkmanager 등의 페이지를통해서접근가능

Page 30: [네이버D2SF] 안전한 서비스 운영을 위한 Ncloud 보안교육

4.6 인증우회

인증우회

어플리케이션의인증을 통해서접근할수있는페이지 / api를 우회해서접근

우회된 권한에따라서 다양한공격가능(파일 업로드, 시스템수정, 백도어설치, 웹쉘 설치등)

Register�Notice�in�Notice�BoardAdmin�page�Access

Page 31: [네이버D2SF] 안전한 서비스 운영을 위한 Ncloud 보안교육

4.7 File�Upload

File Upload

PUT Method, 서비스에서 제공하는 File Upload 기능을이용해서 webshell or 악성코드 upload

정보 노출이아닌 시스템침해로다양한피해발생가능

WebShell Upload

Page 32: [네이버D2SF] 안전한 서비스 운영을 위한 Ncloud 보안교육

4.8오류페이지노출

오류페이지노출

HTTP Server, DB, Tomcat Server등에서오류발생시노출되는오류메시지를사용자에게전달

이 정보를통해서 시스템정보및디렉토리구조, 취약점확인가능

MS�SQL�DB�Error�Message�Exposure Apache�HTTP�Server�Error�Message�Exposure

Page 33: [네이버D2SF] 안전한 서비스 운영을 위한 Ncloud 보안교육

5. 시스템취약점

Page 34: [네이버D2SF] 안전한 서비스 운영을 위한 Ncloud 보안교육

5.1 CVE(Common�Vulnerabilities�and�Exposures)

CVE(Common Vulnerabilities and Exposures)

보안 도구제조업체, 대학 연구소, 정부 기관, 기타 보안전문가등수많은보안관련기관의대표들이포함된공통보안취약성및노출(CVE) 편찬 위원회

Page 35: [네이버D2SF] 안전한 서비스 운영을 위한 Ncloud 보안교육

5.1 CVE(Common�Vulnerabilities�and�Exposures)

CVE-2014-0226�:�Apache�HTTP�RCE(Remote�Code�Execution)�Vulnerability

Page 36: [네이버D2SF] 안전한 서비스 운영을 위한 Ncloud 보안교육

5.2 Unknown�Communication

Unknown Communication

침해 발생후데이터 유출및지속적인접근을시도할경우발생.

SSH / HTTPS / 자체 암호화통신에의한정상적인통신과구분이필요함.

Page 37: [네이버D2SF] 안전한 서비스 운영을 위한 Ncloud 보안교육

6. For�Safety�Service…

Page 38: [네이버D2SF] 안전한 서비스 운영을 위한 Ncloud 보안교육

6.1 안전한서비스

§ 기술적보안에대한관심

• 개발자들이관심가지면대부분해결

• 필요시전문서비스요청

§ 업데이트확인 / 패치

• 웹서버 /라이브러리의주기적인패치

• 서비스에서사용하는라이브러리,오픈소스에대한모니터링

§ 아이디 / 패스워드관리

• 아이디 / 패스워드에대해나름의원칙을가지고관리

• 종이에적어서금고에넣기(?)

§ 서비스에서사용하는언어 / 프로토콜 / 시스템에대한정확한이해

• 설정만으로보안 OK!

• 불필요한프로토콜 / 시스템 사용중지

Page 39: [네이버D2SF] 안전한 서비스 운영을 위한 Ncloud 보안교육

6.2 지원이필요하면?

Page 40: [네이버D2SF] 안전한 서비스 운영을 위한 Ncloud 보안교육

End�of�Document