안전한 Service 운영을 위한
보안교육
황성호
IT보안대응실 / NBP
ⓒ NAVER BUSINESS PLATFORM Corp.
목차
1.외부 위협 유형
2.계정 관리
3.DDoS 공격 예방
4.어플리케이션 로직
5.시스템 취약점
6.For Safety Service
1. 외부 위협 유형
1.1 수치로 보는 위협, 취약성, 위험
712,868,621 213,883 257
공격 시도 수 공격 유입 수 유효 공격 수
위협 위험취약성
위협 = 사건(이벤트)
• 힘으로 으르고 협박함
• 정보자산의 보안에 부정적 영향을 줄
수 있는외부 환경 또는 사건(이벤트)
위험 = 가능성(확률)
• 해로움이나 손실이 생길 우려가 있음
• 보 안 의 3 대 요 소 인 기 밀 성
(Confidentiality), 무 결 성 (Integrity),
가용성(Availability)를 해치는 사건이
발생할 가능성
취약성(취약점) = 속성, 상태
• 무르고 약한 점
• 위협에 의해 정보자산의 보안에 부정
적 영향을 줄 수 있는 정보자산의 속
성이나 상태
1.2 2016년 상반기 위험유형
54
28
26
22
22
11
10
8
7
7
6
6
5
4
4
4
3
3
3
3
3
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 공격명]
[공격유형]
2. 계정 관리
2.1 Default 계정
Vendor별 Default 계정정보 3Com & Cisco Default 계정정보 D-Link Default 계정정보
MySQL Default 계정정보 Router Default 계정정보
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=cGFnZT0yJnNvcnRfY29kZT0mc2VhcmNoX3NvcnQ9d
Gl0bGVfbmFtZSZzZWFyY2hfd29yZD0=
2.3 Jenkins 보안
① Configure Global Security 선택
② Enable Security 체크
Disable remember 체크
Jenkins’ own user database 선택
사용자의 가입 허용 선택 해제
③ Matrix-based security 선택
User/group to add에 관리자 계정 입력후 Add 클릭
2.3 Jenkins 보안
④ 추가된 관리자 계정의 권한 설정을 위해 Overall의
Administer를 체크후 Save 클릭
⑤ 계정명에 생성한 관리자 계정명을 입력하고 암호와
이름, Email을 입력후 Sign Up 클릭
⑥ 계정등록이 완료되면 성공 Message가 표시됨
3. DDoS 공격 예방
3.1 DDoS 공격 이란?
DDoS(Distributed Denial of Service)
해킹 방삭의 하나로 여러 대의 공격자를 분산 배치하여 동시에 ‘서비스 거부 공격(Denial of Service attack : DoS)’을 함으로써 시스템이 더이상 정상적인 서비
스를 제공할 수 없도록 만드는것을 말함
3.2 DDoS 공격 유형
DNS Amplification Attack NTP Amplification Attack
WrodPress Pingback Attack DDoS Attack Tool
3.3 DDoS 공격 대응절차
Step1.
초기대응
Step2.
공격회피
Step3.
용량증설
Step4.
사후조치
• 공격유형 파악 및 공격자 IP
추출
• ACL/IPTables을 이용한 공
격자 차단
• Server Rebooting
• Redirect를 이용하여 정상
사용자만을 허용
• Server/Network 증설 • 외부기관 연계
• 원복 및 사후조치 방안 도출
Server
DNS
DNS
② ③ ⑤
Proxy①
④
• www.test.com
100.100.100.100
• www.test2.com
100.100.100.101
⑤
Server
DNS
DNS
② ③ ⑤
Proxy①
④
• www.test.com
100.100.100.100
• www.test2.com
100.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으
로만 공격시도
3.4 DDoS 공격 예방방안
OS Hardening
Application
취약점 제거
KISA
사이버대피소
• Server와 PC OS의 기본 보안옵
션 활성화
• 악성코드 감염 최소화
• 사용중인 Application의 최신버
전 확인 및 정기적인 Update 정
책 수립
• KISA에서 제공하는 사이버대피
소 활용
[참고URL]
• 민간사이버안전메뉴얼 : http://www.krcert.or.kr/data/guideView.do?bulletin_writing_se
quence=399&queryString=cGFnZT0zJnNvcnRfY29kZT0mc2VhcmNoX3NvcnQ9dGl0b
GVfbmFtZSZzZWFyY2hfd29yZD0=
• 사이버대피소 : http://www.krcert.or.kr/webprotect/cyberShelters/cyberShelters.do
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
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/apac
he/cgi-bin/”
민간사이버안전매뉴얼 ISP및IDC용 -
155P
응답 헤더 정보 숨기기
httpd.conf 파일내 ServerTokens 지시자에 불필요
한 설정값을 제거하였는가?
• httpd.conf 파일내 ServerTokens 지
시자에 Prod 설정값만 있는지 점검
• ServerTokens Prod
민간사이버안전매뉴얼 ISP및IDC용 -
158P
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/apac
he/cgi-bin/”
민간사이버안전매뉴얼 ISP및IDC용 -
155P
응답 헤더 정보 숨기기
httpd.conf 파일내 ServerTokens 지시자에 불필요
한 설정값을 제거하였는가?
• httpd.conf 파일내 ServerTokens 지
시자에 Prod 설정값만 있는지 점검
• ServerTokens Prod
민간사이버안전매뉴얼 ISP및IDC용 -
158P
4. 어플리케이션 로직
4.1 XSS(Cross-Site Script)
XSS(Cross-Site Script)
웹 페이지에 악의적인 Javascript를 Injection 해서 사용자를 공격하는 기법
Reflected XSS / Stored XSS 공격
4.1 XSS(Cross-Site Script)
Reflected XSS
Stored XSS
4.1 XSS(Cross-Site Script) 대응 방법
• 사용자 입력값 한정
파라미터로 들어오는 사용자 값에 대한 철저한 검증
• 특수문자가 필요한 경우?
HTML Entity 처리 or URL Encoding
• 추가로 할 수 있는 것은?
X-XSS-PROTECTION Header or HTTP Only Cookie
4.2 SQL Injection
SQL Injection
사용자 입력 파라미터에 SQL 구문을 Injection 해서 DB에 정보를 가져오거나 시스템을 조작하는 취약점
Classical SQL Injection / Blind SQL Injection / Compound SQL Injection …
4.2 SQL Injection
Exposure SQL Query Exposure DB Data
4.2 SQL Injection
• Sysadmin (SA) 권한 계정 미 사용
• 허용하지 않는 형식의 값 제한
• 모든 입력 값은 인용부호(‘ 또는 “)로 묶음
• 불필요한 프로시저 사용 제한
• 입력 값에 대한 검증 로직 추가 (아래 문자)
• 프로시저 또는 PreparedStatement 사용
4.3 GET / POST 외 HTTP 메시지 허용
HTTP Method
HTTP 프로토콜에서 제공하는 사용자의 요청을 구분하기 위한 미리 정의된 프로토콜
각 프로토콜별 의미에 따라 HTTP 서버에서 다른 동작 수행
4.3 GET / POST 외 HTTP 메시지 허용
HTTP TRACE method
4.4 Directory Listing
Directory Listing
웹서버설정 오류 및 어플리케이션의버그로인하여서버내에 파일들의 목록이 보여지는 취약점
서버의 구조 파악을 및 소스코드 탈취 가능
Directory Listing Vulnerability
4.5 서버 정보 노출
서버 정보 노출
PHP, Apache, Tomcat등에서 제공하는 서버의 상태를 확인할 수 있는 페이지 노출
/phpinfo.php, /server-status, /jkmanager 등의 페이지를 통해서 접근 가능
4.6 인증 우회
인증우회
어플리케이션의 인증을 통해서 접근할 수 있는 페이지 / api를 우회해서 접근
우회된 권한에 따라서 다양한 공격 가능(파일 업로드, 시스템 수정, 백도어 설치, 웹쉘 설치 등)
Register Notice in Notice BoardAdmin page Access
4.7 File Upload
File Upload
PUT Method, 서비스에서 제공하는 File Upload 기능을 이용해서 webshell or 악성코드 upload
정보 노출이 아닌 시스템 침해로 다양한 피해 발생 가능
WebShell Upload
4.8 오류 페이지 노출
오류 페이지 노출
HTTP Server, DB, Tomcat Server등에서 오류 발생시 노출되는 오류 메시지를 사용자에게 전달
이 정보를 통해서 시스템 정보 및 디렉토리 구조, 취약점 확인 가능
MS SQL DB Error Message Exposure Apache HTTP Server Error Message Exposure
5. 시스템 취약점
5.1 CVE(Common Vulnerabilities and Exposures)
CVE(Common Vulnerabilities and Exposures)
보안 도구 제조업체, 대학 연구소, 정부 기관, 기타 보안 전문가 등 수많은 보안 관련 기관의 대표들이 포함된 공통 보안 취약성 및 노출(CVE) 편찬 위원회
5.1 CVE(Common Vulnerabilities and Exposures)
CVE-2014-0226 : Apache HTTP RCE(Remote Code Execution) Vulnerability
5.2 Unknown Communication
Unknown Communication
침해 발생 후 데이터 유출 및 지속적인 접근을 시도할 경우 발생.
SSH / HTTPS / 자체 암호화 통신에 의한 정상적인 통신과 구분이 필요함.
6. For Safety Service…
6.1 안전한 서비스
§ 기술적 보안에 대한 관심
• 개발자들이 관심 가지면 대부분 해결
• 필요시 전문 서비스 요청
§ 업데이트 확인 / 패치
• 웹 서버 / 라이브러리의 주기적인 패치
• 서비스에서 사용하는 라이브러리, 오픈소스에 대한 모니터링
§ 아이디 / 패스워드 관리
• 아이디 / 패스워드에 대해 나름의 원칙을 가지고 관리
• 종이에 적어서 금고에 넣기(?)
§ 서비스에서 사용하는 언어 / 프로토콜 / 시스템에 대한 정확한 이해
• 설정만으로 보안 OK!
• 불 필요한 프로토콜 / 시스템 사용 중지
6.2 지원이 필요하면?
End of Document

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

  • 1.
    안전한 Service 운영을위한 보안교육 황성호 IT보안대응실 / NBP ⓒ NAVER BUSINESS PLATFORM Corp.
  • 2.
    목차 1.외부 위협 유형 2.계정관리 3.DDoS 공격 예방 4.어플리케이션 로직 5.시스템 취약점 6.For Safety Service
  • 3.
  • 4.
    1.1 수치로 보는위협, 취약성, 위험 712,868,621 213,883 257 공격 시도 수 공격 유입 수 유효 공격 수 위협 위험취약성 위협 = 사건(이벤트) • 힘으로 으르고 협박함 • 정보자산의 보안에 부정적 영향을 줄 수 있는외부 환경 또는 사건(이벤트) 위험 = 가능성(확률) • 해로움이나 손실이 생길 우려가 있음 • 보 안 의 3 대 요 소 인 기 밀 성 (Confidentiality), 무 결 성 (Integrity), 가용성(Availability)를 해치는 사건이 발생할 가능성 취약성(취약점) = 속성, 상태 • 무르고 약한 점 • 위협에 의해 정보자산의 보안에 부정 적 영향을 줄 수 있는 정보자산의 속 성이나 상태
  • 5.
    1.2 2016년 상반기위험유형 54 28 26 22 22 11 10 8 7 7 6 6 5 4 4 4 3 3 3 3 3 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 공격명] [공격유형]
  • 6.
  • 7.
    2.1 Default 계정 Vendor별Default 계정정보 3Com & Cisco Default 계정정보 D-Link Default 계정정보 MySQL Default 계정정보 Router Default 계정정보
  • 8.
    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=cGFnZT0yJnNvcnRfY29kZT0mc2VhcmNoX3NvcnQ9d Gl0bGVfbmFtZSZzZWFyY2hfd29yZD0=
  • 9.
    2.3 Jenkins 보안 ①Configure Global Security 선택 ② Enable Security 체크 Disable remember 체크 Jenkins’ own user database 선택 사용자의 가입 허용 선택 해제 ③ Matrix-based security 선택 User/group to add에 관리자 계정 입력후 Add 클릭
  • 10.
    2.3 Jenkins 보안 ④추가된 관리자 계정의 권한 설정을 위해 Overall의 Administer를 체크후 Save 클릭 ⑤ 계정명에 생성한 관리자 계정명을 입력하고 암호와 이름, Email을 입력후 Sign Up 클릭 ⑥ 계정등록이 완료되면 성공 Message가 표시됨
  • 11.
  • 12.
    3.1 DDoS 공격이란? DDoS(Distributed Denial of Service) 해킹 방삭의 하나로 여러 대의 공격자를 분산 배치하여 동시에 ‘서비스 거부 공격(Denial of Service attack : DoS)’을 함으로써 시스템이 더이상 정상적인 서비 스를 제공할 수 없도록 만드는것을 말함
  • 13.
    3.2 DDoS 공격유형 DNS Amplification Attack NTP Amplification Attack WrodPress Pingback Attack DDoS Attack Tool
  • 14.
    3.3 DDoS 공격대응절차 Step1. 초기대응 Step2. 공격회피 Step3. 용량증설 Step4. 사후조치 • 공격유형 파악 및 공격자 IP 추출 • ACL/IPTables을 이용한 공 격자 차단 • Server Rebooting • Redirect를 이용하여 정상 사용자만을 허용 • Server/Network 증설 • 외부기관 연계 • 원복 및 사후조치 방안 도출 Server DNS DNS ② ③ ⑤ Proxy① ④ • www.test.com 100.100.100.100 • www.test2.com 100.100.100.101 ⑤ Server DNS DNS ② ③ ⑤ Proxy① ④ • www.test.com 100.100.100.100 • www.test2.com 100.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으 로만 공격시도
  • 15.
    3.4 DDoS 공격예방방안 OS Hardening Application 취약점 제거 KISA 사이버대피소 • Server와 PC OS의 기본 보안옵 션 활성화 • 악성코드 감염 최소화 • 사용중인 Application의 최신버 전 확인 및 정기적인 Update 정 책 수립 • KISA에서 제공하는 사이버대피 소 활용 [참고URL] • 민간사이버안전메뉴얼 : http://www.krcert.or.kr/data/guideView.do?bulletin_writing_se quence=399&queryString=cGFnZT0zJnNvcnRfY29kZT0mc2VhcmNoX3NvcnQ9dGl0b GVfbmFtZSZzZWFyY2hfd29yZD0= • 사이버대피소 : http://www.krcert.or.kr/webprotect/cyberShelters/cyberShelters.do
  • 16.
    3.5 OS HardeningChecklist(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
  • 17.
    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/apac he/cgi-bin/” 민간사이버안전매뉴얼 ISP및IDC용 - 155P 응답 헤더 정보 숨기기 httpd.conf 파일내 ServerTokens 지시자에 불필요 한 설정값을 제거하였는가? • httpd.conf 파일내 ServerTokens 지 시자에 Prod 설정값만 있는지 점검 • ServerTokens Prod 민간사이버안전매뉴얼 ISP및IDC용 - 158P
  • 18.
    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/apac he/cgi-bin/” 민간사이버안전매뉴얼 ISP및IDC용 - 155P 응답 헤더 정보 숨기기 httpd.conf 파일내 ServerTokens 지시자에 불필요 한 설정값을 제거하였는가? • httpd.conf 파일내 ServerTokens 지 시자에 Prod 설정값만 있는지 점검 • ServerTokens Prod 민간사이버안전매뉴얼 ISP및IDC용 - 158P
  • 19.
  • 20.
    4.1 XSS(Cross-Site Script) XSS(Cross-SiteScript) 웹 페이지에 악의적인 Javascript를 Injection 해서 사용자를 공격하는 기법 Reflected XSS / Stored XSS 공격
  • 21.
  • 22.
    4.1 XSS(Cross-Site Script)대응 방법 • 사용자 입력값 한정 파라미터로 들어오는 사용자 값에 대한 철저한 검증 • 특수문자가 필요한 경우? HTML Entity 처리 or URL Encoding • 추가로 할 수 있는 것은? X-XSS-PROTECTION Header or HTTP Only Cookie
  • 23.
    4.2 SQL Injection SQLInjection 사용자 입력 파라미터에 SQL 구문을 Injection 해서 DB에 정보를 가져오거나 시스템을 조작하는 취약점 Classical SQL Injection / Blind SQL Injection / Compound SQL Injection …
  • 24.
    4.2 SQL Injection ExposureSQL Query Exposure DB Data
  • 25.
    4.2 SQL Injection •Sysadmin (SA) 권한 계정 미 사용 • 허용하지 않는 형식의 값 제한 • 모든 입력 값은 인용부호(‘ 또는 “)로 묶음 • 불필요한 프로시저 사용 제한 • 입력 값에 대한 검증 로직 추가 (아래 문자) • 프로시저 또는 PreparedStatement 사용
  • 26.
    4.3 GET /POST 외 HTTP 메시지 허용 HTTP Method HTTP 프로토콜에서 제공하는 사용자의 요청을 구분하기 위한 미리 정의된 프로토콜 각 프로토콜별 의미에 따라 HTTP 서버에서 다른 동작 수행
  • 27.
    4.3 GET /POST 외 HTTP 메시지 허용 HTTP TRACE method
  • 28.
    4.4 Directory Listing DirectoryListing 웹서버설정 오류 및 어플리케이션의버그로인하여서버내에 파일들의 목록이 보여지는 취약점 서버의 구조 파악을 및 소스코드 탈취 가능 Directory Listing Vulnerability
  • 29.
    4.5 서버 정보노출 서버 정보 노출 PHP, Apache, Tomcat등에서 제공하는 서버의 상태를 확인할 수 있는 페이지 노출 /phpinfo.php, /server-status, /jkmanager 등의 페이지를 통해서 접근 가능
  • 30.
    4.6 인증 우회 인증우회 어플리케이션의인증을 통해서 접근할 수 있는 페이지 / api를 우회해서 접근 우회된 권한에 따라서 다양한 공격 가능(파일 업로드, 시스템 수정, 백도어 설치, 웹쉘 설치 등) Register Notice in Notice BoardAdmin page Access
  • 31.
    4.7 File Upload FileUpload PUT Method, 서비스에서 제공하는 File Upload 기능을 이용해서 webshell or 악성코드 upload 정보 노출이 아닌 시스템 침해로 다양한 피해 발생 가능 WebShell Upload
  • 32.
    4.8 오류 페이지노출 오류 페이지 노출 HTTP Server, DB, Tomcat Server등에서 오류 발생시 노출되는 오류 메시지를 사용자에게 전달 이 정보를 통해서 시스템 정보 및 디렉토리 구조, 취약점 확인 가능 MS SQL DB Error Message Exposure Apache HTTP Server Error Message Exposure
  • 33.
  • 34.
    5.1 CVE(Common Vulnerabilitiesand Exposures) CVE(Common Vulnerabilities and Exposures) 보안 도구 제조업체, 대학 연구소, 정부 기관, 기타 보안 전문가 등 수많은 보안 관련 기관의 대표들이 포함된 공통 보안 취약성 및 노출(CVE) 편찬 위원회
  • 35.
    5.1 CVE(Common Vulnerabilitiesand Exposures) CVE-2014-0226 : Apache HTTP RCE(Remote Code Execution) Vulnerability
  • 36.
    5.2 Unknown Communication UnknownCommunication 침해 발생 후 데이터 유출 및 지속적인 접근을 시도할 경우 발생. SSH / HTTPS / 자체 암호화 통신에 의한 정상적인 통신과 구분이 필요함.
  • 37.
    6. For SafetyService…
  • 38.
    6.1 안전한 서비스 §기술적 보안에 대한 관심 • 개발자들이 관심 가지면 대부분 해결 • 필요시 전문 서비스 요청 § 업데이트 확인 / 패치 • 웹 서버 / 라이브러리의 주기적인 패치 • 서비스에서 사용하는 라이브러리, 오픈소스에 대한 모니터링 § 아이디 / 패스워드 관리 • 아이디 / 패스워드에 대해 나름의 원칙을 가지고 관리 • 종이에 적어서 금고에 넣기(?) § 서비스에서 사용하는 언어 / 프로토콜 / 시스템에 대한 정확한 이해 • 설정만으로 보안 OK! • 불 필요한 프로토콜 / 시스템 사용 중지
  • 39.
  • 40.