Download presentation
Presentation is loading. Please wait.
1
LINUX SECURITY - web서버보안 -
네트워크 실험실 김 윤 수 #
2
목 차 필요없는 서비스 제거 웹서버 보안 기본 HTTP 인증방법 HTTP와 암호화 인증 HTTP와 암호화 인증방법 요약
목 차 필요없는 서비스 제거 웹서버 보안 기본 HTTP 인증방법 HTTP와 암호화 인증 HTTP와 암호화 인증방법 요약 #
3
필요없는 서비스 제거 파일전송 프로토콜(FTP) finger 네트워크 파일 시스템(NFS) 다른 RPC 서비스
SMB(server Message Block) 프로토콜 R 서비스 #
4
FTP Service제공시 문제점 공격자가 FTP 서버를 공격하여 성공하면 호스트의 남은 자원에 접근할수 있는 권한 획득
쓰기 권한이 부여된 디렉토리를 가진 공개된 FTP서버에서 디스크 포화공격(disk saturation attack) 가능. 법으로 금지한 외설적인 자료를 저장하는 FTP 서비스로 사용. 단순, 객체지향적, 분산환경의 응용에 적합, 인터프리터, 안전, 구조중립, 이식성, 높은 성능, 다중 쓰레드, 동적 견고(포인터X, garbage Collection, 엄격한 형검사, 실시간 에러 처리) 컴파일에 의해 바이트 코드로 변환되고 실행시에 인터프리터에 의해 해석되어 처리. #
5
finger (1) 특정사용자의 정보(사용자명, 성명, 쉘, 디렉토리, 사무실 전화번호등을 알려주는 기능
Danfarmer and Wiethse venema - “Improving the Security of Your Site by Breaking Into It” 크래커에 제공될 수 있는 정보 일반적인 사용자(root, bin, ftp, system등)외에도 대해서 finger기능이 가능하기 때문에 finger의 버전에 따라서 다르긴 하지만 다양한 정보를 알수 있다. 그중 주목할 만한것이 사용자명과, 홈디렉토리, 언제 어디서 마지막으로 로그인 했는지에 대한 정보이다. 단순, 객체지향적, 분산환경의 응용에 적합, 인터프리터, 안전, 구조중립, 이식성, 높은 성능, 다중 쓰레드, 동적 견고(포인터X, garbage Collection, 엄격한 형검사, 실시간 에러 처리) 컴파일에 의해 바이트 코드로 변환되고 실행시에 인터프리터에 의해 해석되어 처리. #
6
finger (2) 크래서들은 finger정보를 이용하여 다양한 공격 방법을 시도할 수 있다.
고정된 IP나 호스트명을 가진 워크스테이션에서 접속 – 불법적인 직접 접근이 불가능하므로 다른 호스트에 대한 공격(신뢰관계 추정) 내부사용자의 Id로 시스템 탐색 X 세션(cs-xt6,bu.edu:0.0)및 r 서비스(rlogin)제공 확인 단순, 객체지향적, 분산환경의 응용에 적합, 인터프리터, 안전, 구조중립, 이식성, 높은 성능, 다중 쓰레드, 동적 견고(포인터X, garbage Collection, 엄격한 형검사, 실시간 에러 처리) 컴파일에 의해 바이트 코드로 변환되고 실행시에 인터프리터에 의해 해석되어 처리. #
7
네트워크 파일 시스템(NFS)조치 Export하고자 하는 파일 시스템은 분리된 파티션을 생성하고 nosuid 옵션을 설정.
신뢰할 수 있는 호스트로 부터 portmapper 접근 제한 루트 파일 시스템은 절대로 export해서는 안 된다. NFS서버는 기본적으로 루트로 원격에서 접근하는것을 거부하도록 설정되어있으면 이 설정은 절대로 바꾸지 말것. 단순, 객체지향적, 분산환경의 응용에 적합, 인터프리터, 안전, 구조중립, 이식성, 높은 성능, 다중 쓰레드, 동적 견고(포인터X, garbage Collection, 엄격한 형검사, 실시간 에러 처리) 컴파일에 의해 바이트 코드로 변환되고 실행시에 인터프리터에 의해 해석되어 처리. #
8
다른 RPC 서비스 (1) rpc.ruserd(remote user 정보출력) #
9
다른 RPC 서비스 (2) Rstatd Rwall
cpu와 가상 메로리 사용통게, 네트워크 가동시간, 하드 디스크에 대한 정보제공 Rwall Rwalld 은 rwall의 요구를 처리하며 원격 사용자가 네트워크에 있는 모든 사용자에게 메시지를 보낼수 있도록 한다. 바이트 코드는 클래스 로더에 의해 로드되며, 바이트 코드 검증기는 프로그램이 수행되기 전에 부적절한 클래스 접근이나 스택의 오버 플로우, 부적절한 형변환을 검사한다. #
10
R 서비스 rshd(원격 쉘 서버) rlogin(원격 login 서비스) rexec(원격 실행 서비스)
rwhod(원격 who 서비스) #
11
다른 서비스들 서비스 설 명 amd 파일 시스템을 자동적으로 마운트하기 위한 데몬으로 NFS를 사용하는 환경에서 자주 사용한다. bootparamd 썬시스템을 원격에서 부팅하도록 한다. dhcpd DHCP 서버로 연결이 들어오는 클라이언트에게 네트워크 정보를 제공 Innd 인터넷 뉴스 데몬으로 공개 웹 호스트에서는 필요하지 않다. Lpd 라인 프린터 데몬 Portmap RPC프로그램 번호를 DARPA 프로토콜 포트 번호로 변경한다. Smbd 삼바 서버. Ypbind 사용자가 프로세스가 바인드하고 NIS서버에 연결 할 수 있다. ypserv 로컬 NIS 정보를 원격 호스트에 제공. #
12
httpd httpd 애플리케이션 : httpd 필요조건 : apache 1.3.12/apache2.0Alpha
위치 : 설정파일 : access.conf, httpd.conf, srm.con #
13
웹서버 구조 Apache Server 디렉토리 구조
bin/ cgi-bin/ conf/ htdocs/ icons/ include/ libexec/ logs/ man/ proxy/ Apache Daemon root Apr06 ? :00:00 /apache/bin/httpd nobody Apr09 ? :00:00 /apache/bin/httpd #
14
CGI란? CGI? - CGI(Common Gateway Interface)란 웹서버의
기능을 확장하기 위해 웹서버와 다른 프로그램간의 인터페이스 규약. - 서비스 요청이 있을때 마다 HTTP에 의해 실행되어 서버에 독립적인 프로세스. 단순, 객체지향적, 분산환경의 응용에 적합, 인터프리터, 안전, 구조중립, 이식성, 높은 성능, 다중 쓰레드, 동적 견고(포인터X, garbage Collection, 엄격한 형검사, 실시간 에러 처리) 컴파일에 의해 바이트 코드로 변환되고 실행시에 인터프리터에 의해 해석되어 처리. #
15
Web Data 흐름도 PC(Web Browser) SUN SPARC (Web Server) CGI Program
요청헤더 + 데이타 웹서버 인자 MIME 헤더 + 데이타 응답 헤더 + 데이타 ① 웹브라우저에서 CGI 프로그램의 실행을 웹서버에 요청 ② 웹브라우저의 요청을 분석한 다음 CGI 프로그램에 CGI 정보나 인자값을 전달한후 실제 처리 ③ 처리된 결과를 MIME 헤더와 함께 웹서버에 전달 ④ 웹서버는 MIME 헤더를 분석해 응답헤더를 생성하고 실제 데이터 전달 GET/POST 환경변수/표준입력 #
16
Web server 설정파일 access.conf srm.conf httpd.conf httpd.conf mime.types
바이트 코드는 클래스 로더에 의해 로드되며, 바이트 코드 검증기는 프로그램이 수행되기 전에 부적절한 클래스 접근이나 스택의 오버 플로우, 부적절한 형변환을 검사한다. #
17
외부접근제어: access.conf - allow 연결이 가능한 호스트 제어(all, none, list) - deny
- order allow/deny규칙적용순서를 제어하며, allow,deny/deny,allow/mutual-failure 세가지 옵션이 지원된다. #
18
포괄적 선택 : 승인된 호스트 명시 EX1) Order deny, allow
allow from netwk.hannam.ac.kr deny from all EX2) Order deny, allow allow from linux1.mydom.net linux2.mydom.net linux3.mydom.net EX3) Order deny,allow alllow from mydom.net EX4) Order deny, allow allow from #
19
배타적 선택 : 원하지 않는 호스트 명시 EX1) Order deny, allow allow from all
deny from hackers.annoying.net EX2) Order deny, allow deny from annoying.net #
20
mutual-failure EX1) Order mutual-failure allow from ourcompany.net
deny from accounts.ourcompany.net shipping.ourcompany.net mutual-failure지시문은 요구가 들어오는 호스트가 allow와 deny의 두가지 조건을 만족시키는지 테스트한다. Ourcompany.net에 있는 모든 호스트들은 접근 허가가 되는 반면에 accounts와 shipping은 접근이 거부된다. #
21
보안에 영향을 미칠 수 있는 설정옵션 ExecCGI CGI 스크립트가 특정 디렉토리 에서 실행될 수 있는지 명시
FollowSymLinks 사용자가 심볼릭 링크를 따라갈 수 있도록 허가 Includes SSI(Server Side Include)를 처리하도록 명시 Indexes 기본페이지가 존재하지 않을 때 디렉토리 목록을 보여준다. 컨텐트(Content) 핸들러: 새로운 형식의 파일들을 전송 받을때 사용 내용에 관한 정보(MIME형식) plain/text, text/html.. 프로토콜 핸들러:기존의 프로토콜 이외의 프로토콜을 처리 가능 #
22
OPTION Example … <Directory "/usr/local/apache/htdocs">
Options Indexes FollowSymLinks ExecCGI Includes </Directory> #
23
ExecCGI ExecCGI OPTION
CGI를 이용 데이터 베이스를 검색하고 통계를 출력하며 웹 인터페이스를 통해 WHOIS나 FINGER에 대한 질의를 처리. 능숙하지 못한 일반 사용자들이 시스템 보안을 약화시킬 수 있는 부주의한 CGI프로그램을 작성할 수 있기 때문이다. #
24
FollowSymLinks OPTION
내부사용자가 우연히(또는 악의적으로) 내부시스템 파일과 링크하게 되면 원격 사용자가 웹 공간과 분리된 파일시스템에 접근할 수 있기 때문이다. #
25
Includes Includes Example <!--#exec 층=“ls –l /”--> (디렉토리 목록출력)
웹 관리자가 CGI프로그램을 작성하지 않고도 HTML문서에 필요한 정보를 삽입할 수 있는 SSI(Server Side Includes)기능지원. Example <!--#exec 층=“ls –l /”--> (디렉토리 목록출력) 공격자들이 HTML소스를 전송 받아서 악의적인 exec명령을 삽입하고, 그 양식을 서버로 전송하면 서버는 exec에 할당된 명령을 수행. #
26
Indexes Example Indexes
요청된 페이지 목록이 빠져 있을때 기본적으로 index.html문서를 찾게 되는데 Index.html문서가 없을 경우 Web Server는 디렉토리 목록을 출력한다. #
27
HTTP 기본 인증방법(htpasswd)
필요조건 : htpasswd와 apache 설정파일 : AllowOverride, .htpasswd, .htaccess, .htgroup .htpasswd – 패스워드 데이터 베이스 . 사용자명과 패스워드를 기록 .htgroup – htpasswd의 그룹파일. 그룹회원 정보를 저장. .htaccess – htpasswd접근 파일. 접근 규칙(allow, deny), 설정파일 위치, 인증방법 저장 #
28
HTTP 기본 인증방법(htpasswd)
#
29
HTTP 기본 인증방법(htpasswd)
#
30
HTTP 기본 인증방법(htpasswd)
AuthUserFile .htpasswd데이타베이스 위치 지정.절대경로 AuthGroupFile .htgroup그룹접근파일. /dev/null AuthName 인증상자 나타날때 출력하는 텍스트 문자열 AuthType 인증방법명시. Basic Limit 접근이 허가된 사용자와 접근할 수 있는 종류 #
31
HTTP 기본 인증방법(htpasswd)
#
32
MD5 다이제스트 인증방법 #
33
chroot웹 환경 수행하기 chroot환경 생성하기 웹 디렉토리를 위한 사용자 소유자 생성 그룹생성 웹 디렉토리 생성
시스템과 비슷한 디렉토리 생성 #
Similar presentations