Chapter 11 웹 서버 보안.

Slides:



Advertisements
Similar presentations
Avaya one-X & SBM2401A Button Module : KOREAN Update Manual (96xx IP Phone)
Advertisements

웹 서버 구축 숭의여대 인터넷정보과 최지영. 웹 ? 웹사이트 ? 웹서버 ? 웹서비스 ? IIS? 아파치 ?
전공 : 컴퓨터 공학 전공 과목 : 인터넷 정보 검색 학번 : , 이름 : 조 항 두, 오 철 원.
1 장 Unix/Linux 소개 1 Helpers. 1 장 내용 1. 왜 유닉스인가 ? 2. 유닉스 시스템 구조 3. 유닉스 역사 및 버전 4. 리눅스 설치 ( 별도 2 시간 실습 ) 5. 사용 환경 6. 사용자 계정 관리 Unix/Linux 2.
SPARCS 10 이 가 영 기본 UNIX 명령어. 일단 로그인 ! Linux login 시 계정을 입력하거나 root 를 입력 Root -> # 일반 사용자 -> $ 패스워드 : echo 기능을 꺼서 볼 수 없다. 대소문자 구분 패스워드 처음 설정 시 : ~$ passwd.
1. Section I. 웹 프로토콜과 로그의 이해 1. 웹 프로토콜 1.1 통신 절차 1.2 HTTP Request 1.3 HTTP Response 2. 웹 로그 2.1 W3C 유형 2.2 NCSA 포맷 2.3 로그 분석 2.
사 업 제 휴 제 안 서사 업 제 휴 제 안 서 J & K 목 차 1. 인사말 2. 사업 구상 및 기획 의도 3. 사업개요 4. 시장분석 5. 대 - 일본 홈쇼핑 사업전략 6. 년 매출 목표 7. 상품 선별 8. 제휴업체 9. 조직도 10. 프로필 J.
쉘 스크립트와 cron coearth, george.
Chapter 02. 웹에 대한 이해. Chapter 02. 웹에 대한 이해 웹의 역사 HTTP 웹 애플리케이션 기술.
Chapter 03. 웹 해킹의 기초. Chapter 03. 웹 해킹의 기초 해킹 기술의 진화 일반적인 웹 해킹의 절차 OWASP Top 10 취약점 WebGoat 설치.
1.eVPN 홈페이지 접속불가 (X) (O)
Chapter 09. 웹 서버와 메일 서버 구축.
Introduction to Django
(개정판) 뇌를 자극하는 Red Hat Fedora 리눅스 서버 & 네트워크
원격업무지원서비스 접속 및 로그인 문제 해결 방안
웹 해킹 기초와 실습.
12장. 웹 서버의 설치와 운영.
Chapter-2. 개발환경 구축하기.
NFS, FTP coearth, george.
(개정판) 뇌를 자극하는 Red Hat Fedora 리눅스 서버 & 네트워크
1. JSP(Java Server Pages) 소개
Chapter 02. 시스템 보안 : 건강한 시스템이 챙겨야 할 기본
서버의 종류와 기능 환경공학과 권진희.
Chapter 04. 웹 보안 : 웹, 그 무한한 가능성과 함께 성장한 해킹
Chapter 16 백업 및 복구 Solaris 2 . ufsdump 와 ufsrestore
1장. JSP 및 Servlet을 활용한 동적 웹 프로그래밍 소개 제1장.
Minicom,tftp,nfs설정,vnc설정
Web Servers (IIS & Apache)
APM (Apache+PHP+MySQL)
1. WEB access log 형식 2. WEB access log 위치 3. WEB access log 분석
김승겸 한남대학교 컴퓨터공학과 인공지능 실험실
윈도우&유닉스 시스템 보안설정 Start! 서화섭.
[beginning] Linux & vi editor
ASP 정 보 보 호 학 과 양 계 탁.
Chapter 02 웹의 이해.
HTML5를 이용한 모바일 웹 앱 학과:컴퓨터 시뮬레이션 학과 학번: / 이름:이성진 / 정지영.
Windows XP Windows Vista
15장. Samba 서버의 설치와 운영.
MPOS-1100AE CAT단말기 ★버전확인★ JA35 버전 이하는 포스 영수증 출력 불가.
인터넷정보관리사 3급(필기/실기) 제20강 Lee Hoon
ASP.NET Mobile Controls
Sun Java System Web Server 6.1 설치와 WebLogic 8.1과의 연동
DataStage 운영자 지침서 Operator’s Guide
Web Server Program 구현 - 네트워크 프로그래밍 - 박내갑 ( ) 김상언 ( )
시스템 보안 정보 보안 개론 9장.
DHCP 박윤환 윤준호.
1. 개 요 2. WWW의 용어 3. WWW(World Wide Web) HTTP
2. JSP의 환경설정.
LINUX SECURITY - web서버보안 -
사회 2학년 1학기 2.인도와 동남아시아의 근대화 운동>1) 인도의 민족운동> 5/8 인도의 민족운동.
「 LINUX IBM SpectrumScale 설치 가이드」
GIT 설정 및 사용 방법 (윈도우 기반).
웹 서버 활용 RaspberryPi Sejin Oh.
Microsoft PowerPoint 익히기
Part 04-3 Windows 2000 Server IIS Outlook Express 도메인 사용 관리자
인터넷보안 실습 2012년 1학기.
Chapter 13 사례 연구(Case Studies)
SPS2003의 서버 구성 요소 SPS2003은 서버 컴포넌트가 각 역할별로 분리되어 있다. Web Component
사회 2학년 2학기 1.현대사회 과제> 1) 시민사회 모습> 1/4 시민사회 특징.
1월 KB손해보험 설계사 시상 I. 설맞이 2017년 Good Start 상품시상 II. A군 FC 주차시상 5만원↑
프린터 서버 최재우.
민주 시민의 의식과 역할 (심화보충과정) 사회 2학년 2학기
3부 해킹 전 정보 획득 Chapter 9. IP 주소 추적
제4장 유닉스 쉘 숙명여대 창병모
사회 2학년 2학기 2.민주시민의 자질과 역할> 1) 시민사회와 시민의 참여> 3/4 민주시민의 자질과 역할.
Web Server Install.
웹 서비스 서버 구축 IIS: Internet Information Service Windows 운영체계에 포함됨
소리가 작으면 이어폰 사용 권장!.
한국 휴렛팩커드/고객지원사업본부/IT 기술사업부 박기영
원격업무지원 서비스 F A Q 한국교육학술정보원.
Presentation transcript:

Chapter 11 웹 서버 보안

01 IIS 웹 서버 보안 02 아파치 웹 서버 보안

웹 서버의 취약점을 이해한다. 웹 서버 보안 설정을 학습한다. 웹 서버와 관련된 시스템 보안 요소를 이해한다. 웹 서버를 설치한 시스템의 보안 설정을 학습한다. 웹 서버의 로그를 이해하고 분석한다.

1.1 IIS 웹 서버 설치 윈도우 서버 2008 R2(x86) 평가판 다운로드 http://care.dlservice.microsoft.com/dl/download/4/1/D/41DEA7E0-B30D-401 2-A1E3-F24DC03BA1BB/7601.17514.101119-1850_x64fre_server_eval_enus- GRMSXEVAL_EN_DVD.iso 한글 언어팩을 사용하려면 아래 파일을 내려받은 후 설치 http://download.microsoft.com/download/4/B/9/4B9533BB-4296-4DA6-9667- D1F36A868ED0/Windows6.1-KB2483139-x64-ko-KR.exe → 평가판은 60일 동안 무료로 사용할 수 있고 세 번 연장할 수 있기 때문에 최 대 180일 동안 추가 비용 없이 쓸 수 있음.

1.1 IIS 웹 서버 설치 서버 관리자 열기 [시작]-[제어판]-[프로그램 및 기능]의 왼쪽 상단에 있는 [Windows 기능 사용/ 사용 안 함] 클릭

1.1 IIS 웹 서버 설치 역할 추가 선택 [서버 관리자] 대화상자가 나타나면 ‘역할 요약’ 항목에서 [역할 추가] 클릭

1.1 IIS 웹 서버 설치 웹 서버(IIS) 체크 [역할 추가 마법사]에서 [서버 역할]을 선택하고 ‘웹 서버(IIS)’에 체크 표시한 후 <다음> 클릭

1.1 IIS 웹 서버 설치 필요한 기능 추가 <필요한 기능 추가> 버튼 클릭

1.1 IIS 웹 서버 설치 역할 서비스 선택 웹 서버 역할에 필요한 역할 서비스 선택

1.1 IIS 웹 서버 설치 선택한 옵션 확인 설치 결과 확인 수정이 필요하면 <이전> 클릭 후 옵션 변경, 변동 사항이 없다면 <설치> 클릭 설치 결과 확인 [서버 관리자] 대화상자의 ‘역할’ 항목에 웹 서버(IIS)가 설치된 것 확인

1.1 IIS 웹 서버 설치 설치 결과 확인 웹 브라우저에서 http://localhost에 접속하면 IIS7이 성공적으로 설치되었다고 표시됨.

1.2 IIS 웹 서버 보안 설정 IIS 웹 서버 보안 설정 정을 수정할 수 있는 관리자 화면이 나타남.

1.2 IIS 웹 서버 보안 설정 IIS 관리자에서 웹 사이트 추가 새로운 웹 사이트를 만들기 전 C:\ 디렉터리에 website 폴더 생성 [IIS(인터넷 정보 서비스) 관리자] 화면 왼쪽의 [Default Web Site]에서 마우스 오른쪽 버튼을 클릭 후 [웹 사이트 관리]-[중지]를 눌러 중지

1.2 IIS 웹 서버 보안 설정 IIS 관리자에서 웹 사이트 추가 새로운 웹 사이트를 만들기 위해 화면 왼쪽의 [사이트] 아이콘에서 마우스 오 른쪽 버튼을 눌러 [웹 사이트 추가] 클릭 [웹 사이트 추가]가 나타나면 사이트 이름에 ‘New Web Site’를 입력하고, 실제 경로에는 C:\websites를 찾아서 선택 후 <확인> 클릭

1.2 IIS 웹 서버 보안 설정 기본 문서의 순서 확인 가장 위에 있는 파일을 웹 사이트에서 가장 먼저 불러옴. 웹 사이트를 방문했을 때 Default.htm 파일이 있으면 그 파일을 가장 먼저 읽 고, 없으면 순서대로 Default.asp, index.htm, index.html, iisstart.htm, default.aspx를 읽음.

1.2 IIS 웹 서버 보안 설정 새로운 웹 사이트 디렉터리로 이동 IIS7을 설치하고 Default Web Site가 운영되고 있는 경우에는 iisstart.htm 파일 이 기본으로 설치 처음에 새로운 웹 사이트를 만들면 이 디렉터리는 비어 있음.

1.2 IIS 웹 서버 보안 설정 default.htm 파일 생성 웹 사이트에 접속해서 확인 아무 내용이나 입력 웹 사이트에 접속해서 확인 기본 문서에서 사용하지 않는 파일은 모두 삭제

1.2 IIS 웹 서버 보안 설정 디렉터리 검색 기능 : 특정 디렉터리 내에 index.html과 같은 기본 문서 파일이 없을 경우 웹 브라우저에서 해당 디렉터리를 불러왔을 때 파일 목록이 화면에 뜨는 기능 불필요할 뿐만 아니라 보안상 위험하기 때문에 비활성화를 유지하는 것이 좋음. IIS7은 기본적으로 디렉터리 검색이 비활성화로 설정되어 있음.

1.2 IIS 웹 서버 보안 설정 IIS에서 제공하는 오류 페이지 확인 수 있음. 공격자가 주로 관심을 갖는 상태 코드는 400번대와 500번대

1.2 IIS 웹 서버 보안 설정 해당 파일이 존재하지 않을 때의 오류 메시지 확인 http://localhost/admin/login.asp에 접속 후 확인

1.2 IIS 웹 서버 보안 설정 오류 메시지를 보여주기 위한 별도의 파일 생성 웹 사이트에서 오류가 발생했을 때 원하는 오류 메시지를 보여주기 위해 별도 의 파일을 생성

1.2 IIS 웹 서버 보안 설정 오류 메시지 편집 화면 오류 메시지 편집 기능 선택 IIS 관리자 도구에서 새로 생성한 New Web Site를 클릭하고 오류 페이지 기능 을 열어 변경하고자 하는 상태 코드를 더블클릭 오류 메시지 편집 기능 선택 ‘이 사이트에서 URL 실행’을 선택 후 error_page.html을 입력

1.2 IIS 웹 서버 보안 설정 ‘사용자 지정 오류 페이지’ 선택 [기능 설정 편집]을 클릭하여 [오류 페이지 설정 편집] 대화상자가 나타나면 ‘사 용자 지정 오류 페이지’ 선택 브라우저를 통해 존재하지 않는 페이지를 요청하면 다음과 같이 error_page.html 의 내용이 화면에 나타남.

1.2 IIS 웹 서버 보안 설정 admin과 member 디렉터리 생성 을 간단히 설명하는 index 파일을 만듦.

1.2 IIS 웹 서버 보안 설정 차단할 IP 주소 입력 admin 디렉터리를 선택하고 ‘ IPv4 주소 및 도메인 제한 기능’을 선택 오른쪽의 [거부 항목 추가]를 클릭하여 차단할 IP 주소 입력

1.2 IIS 웹 서버 보안 설정 허용할 IP 주소 입력 [허용 항목 추가]를 클릭하여 특정 IP 주소에 ‘127.0.0.1’을 입력

1.2 IIS 웹 서버 보안 설정 접근 제어 메시지 확인

1.2 IIS 웹 서버 보안 설정 WebKnight 방화벽 AQTRONIX(http://www.aqtronix.com/?PageID=99)에서 제공하는 IIS 기반의 공 개 웹 애플리케이션 방화벽 한국인터넷진흥원에서 운영하는 ‘ WebKnight 자료실’에 상세한 설명과 사용법 이 나와 있음. http://toolbox.krcert.or.kr/MMBF/MMBFBBS_S.aspx?MENU_CODE=37&BOA RD_ID=8

1.2 IIS 웹 서버 보안 설정 Setup\w32\WebKnight.msi 파일 실행

1.2 IIS 웹 서버 보안 설정 ISAPI 필터 기능 실행

1.2 IIS 웹 서버 보안 설정 WebKnight ISAPI 추가 필터 이름: WebKnight 32-bit 실행 파일: C:\Program Files\AQTRONIX Webknight\WebKnight.dll

1.2 IIS 웹 서버 보안 설정 ~ ⑤ 웹 사이트 경로 설정 후 생성 폴더 추가 [시작]-[모든 프로그램]-[AQTRONIX Webknight][WebKnight Configuration]을 실행하고 WebKnight.xml을 선택 Allowed Paths 부분에 라인을 추가하여 ‘C:\website’를 입력

1.2 IIS 웹 서버 보안 설정 특정 확장자를 요청하지 못하도록 하는 옵션 추가 [WebKnight Configuration] 메뉴에서 [Requested File]을 선택하고 Denied Extensions 부분에 ‘.inc’를 추가

1.2 IIS 웹 서버 보안 설정 신규 규칙 실행 확인 브라우저를 통해 http://localhost/dbconn.inc 파일을 요청하면 WebKnight 에 의해 차단된 화면이 나타남.

1.3 로그 관리 IIS7 웹 서버에서 이용 가능한 대표적인 로그 형식 Microsoft IIS 로그 파일 형식 NCSA 공통 로그 파일 형식 W3C 확장 로그 파일 형식(IIS 웹 서버의 기본 설정이며 가장 널리 이용)

1.3 로그 관리 웹 로그 파일 형식 설정 IIS 관리자에서 [사이트]-[New Web Site]를 선택하고 ‘상태 및 진단’에 있는 로 깅을 더블클릭

1.3 로그 관리 세부 필드 값 선택 <필드 선택>을 클릭하면 로그를 남기고 싶은 세부 필드 값을 선택할 수 있음.

1.3 로그 관리 로깅 기능 로그 파일의 형식과 로그 파일을 만드는 주기, 최대 파일 크기와 같은 옵션 을 선택할 수 있음. 기본 설정은 매일 단위의 생성이며, 현재 날짜와 시간을 기반으로 C:\ inetpub \logs\LogFiles 디렉터리에 u_exyymmdd.log와 같은 파일 형태로 기록됨.

2.1 아파치 웹 서버 설치 httpd 설치 페도라에서 yum을 이용하여 아파치 설치 yum install httpd

2.1 아파치 웹 서버 설치 httpd 서비스 시작 httpd 서비스를 구동하는 명령어 : ‘service httpd start’ httpd 서비스가 정상적으로 구동되고 있는지 확인 : ‘ps .ef | grep http’

2.1 아파치 웹 서버 설치 설치 결과 확인 브라우저를 통해 웹 사이트를 접속해 설치 및 구동 확인

2.2 아파치 웹 서버 보안 설정 아파치 설치 디렉터리 확인 vi /etc/httpd/conf/httpd.conf

2.2 아파치 웹 서버 보안 설정 아파치 설치 디렉터리 확인 중요한 파일에는 적절한 권한 설정이 필요함.

2.2 아파치 웹 서버 보안 설정 서버 이름과 IP, 포트 설정 기본 설정 : 서버의 80번 포트를 이용하여 접속 특정 인터페이스로만 서비스를 제공할 경우 Listen을 이용하여 설정

2.2 아파치 웹 서버 보안 설정 서버 실행 계정과 그룹 설정 확인 ‘apache’라는 별도의 계정을 nobody 권한으로 만들어 아파치 웹 프로세스에 대한 권한으로 할당

2.2 아파치 웹 서버 보안 설정 서버 실행 계정과 그룹 설정 확인 /etc/passwd 파일에서 ‘/sbin/nologin’으로 나타나므로 로그인 권한이 없음. gid 값이 0으로 되어 있으면 root 그룹이라는 뜻이므로 apache가 일반 그룹임 을 확인 할 수 있음. cat /etc/passwd cat /etc/group

2.2 아파치 웹 서버 보안 설정 웹 페이지 디렉터리 설정 확인 httpd.conf 파일에서는 웹 페이지 루트 경로를 설정할 수 있음.(기본 웹 페이지 루트 경로는 /var/www/html로 설정되어 있음.) DocumentRoot는 공격자가 추측하기 어려운 경로로 만들 거나 중요한 디렉터 리에는 접근할 수 없도록 제한된 하위 디렉터리로 지정해야 함.

2.2 아파치 웹 서버 보안 설정 기본 문서 설정 확인 기본 문서 설정을 확인하기 위해 httpd.conf 파일에서 DirecotryIndex 문자열 을 찾음. 기본 설정은 index.html이 가장 높은 우선순위로 되어 있음.

2.2 아파치 웹 서버 보안 설정 디렉터리 리스팅 설정 확인 디렉터리의 Options에 Indexes가 설정되어 있다면 디렉터리 리스팅이 불가능 하도록 삭제해야 함.

2.2 아파치 웹 서버 보안 설정 디렉터리 리스팅 설정 확인 디렉터리 리스팅이 되어있으면 해당 폴더의 하위 파일을 볼 수 있음.

2.2 아파치 웹 서버 보안 설정 디렉터리 리스팅 설정 확인 디렉터리 리스팅의 취약점을 제거하려면 httpd.conf 파일의 Options 부분에 있는 Indexes를 삭제해야 함.

2.2 아파치 웹 서버 보안 설정 FollowSymLinks 설정 확인 FollowSymLinks는 ServerRoot, DocumentRoot 설정과는 무관하게 중요 시스 템 디렉터리로의 접근이 가능해지기 때문에 반드시 주의해야 함. /etc 디렉터리에 대한 심벌릭 링크 생성 ln .s /etc /var/www/html/et

2.2 아파치 웹 서버 보안 설정 FollowSymLinks 설정 확인 http://192.168.109.130/etc/에 접속하면 /etc 디렉터리의 여러 파일에 바로 접 근할 수 있으며, passwd 파일도 읽을 수 있음. 반드시 필요한 경우가 아니라면 Options에서 FollowSymLinks를 삭제해야 함.

2.2 아파치 웹 서버 보안 설정 접근 제어의 확인과 설정 DocumentRoot로 설정되어 있는 /var/ www/html에 대한 접근 제어 확인 <Directory "/var/www/html"> ⋮ Order Allow, Deny Allow from all </Directory>

2.2 아파치 웹 서버 보안 설정 접근 제어의 확인과 설정 특정 IP에 대한 거부 설정 특정 도메인에 대한 접근 허락 설정 Order Allow, Deny Allow from all Deny from 11.22.33.44 Order Deny, Allow Deny from all Allow from .hacker.com

2.2 아파치 웹 서버 보안 설정 ServerSignature 설정 외부에서 아파치 서버의 버전과 운영체제의 종류를 알아내지 못하도록 할 수 있음. ServerSignature 값은 On, Off, Email로 설정(기본값은 On)

2.3 로그 관리 아파치 설치 디렉터리 확인 vi /etc/httpd/logs/access_log

2.3 로그 관리 예) 첫 행 내용 확인 서버에 요청을 한 클라이언트(원격 호스트)의 IP 주소 클라이언트의 사용자 이름 접속을 시도한 날짜와 시간 요청한 메소드(GET)와 접근 경로(/), 프로토콜 종류(HTTP 1.1) 서버가 클라이언트에 보내는 상태 코드 클라이언트에 보내는 내용의 크기 링크를 설정한 항목에 대한 접근 기록 서버에 접근하는 클라이언트의 웹 브라우저 종류 127.0.0.1 - - [12/May/2013: 11: 32: 18 +0900] "GET / HTTP/1.1" 403 4609 "-“ ① ② ③ ④ ⑤ ⑥ ⑦ "Mozilla/5.0 (X11; Linux i686; rv: 12.0) Gecko/20100101 Firefox/ 12.0“ ⑧

2.3 로그 관리 CustomLog 접근 로그의 위치와 내용을 지정

2.3 로그 관리 LogFormat 일반적으로 사용하는 로그 포맷은 combined와 common

2.3 로그 관리 LogFormat

2.3 로그 관리 LogFormat

2.3 로그 관리 SetEnvIf Customlog에서 env 인수를 이용하여 이름이 dontlog인 항목을 로깅하지 않도 록 설정 Request_URI가 \.ida로 요청하는 것을 ‘worm’이라고 이름 짓고, 그 로그를 env 를 이용 하여 로깅하지 않게 설정 SetEnvIf Remote_Addr "127\.0\.0\.1" dontlog CustomLog logs/access_log common env =! dontlog SetEnvIf Request_URI \.ida worm CustomLog logs/access_log common env =! worm

2.3 로그 관리 SetEnvIf

2.3 로그 관리 에러 로그 /etc/httpd/logs/error_log에서 에러 로그 내용 확인 httpd.conf 파일의 ErrorLog 값을 이용하여 경로를 설정

2.3 로그 관리 에러 로그 마지막 줄 오류가 생긴 날짜와 시간 오류의 심각성을 알리는 것(debug, info, notice, warn, error, criti 등으로 표시) 클라이언트의 접근 IP 주소 접근한 웹 경로 성공 또는 실패 여부 발생한 오류에 대한 설명 Mon May 13 00: 17: 15 2013] [error] [client 192.168.109.130] (13)Permission denied: ① ② ③ ④ access to /etc/sudoers.d/index.html.var denied (filesystem path'/var/www/html/ ④ ⑤ ⑥ etc/sudoers.d/index.html.var') because search permissions are missing on a component ⑥ of the path