Download presentation
Presentation is loading. Please wait.
1
LINUX SECURITY - FTP 보안 -
네트워크 실험실 김 윤 수 #
2
목 차 파일전송 프로토콜 FTP기본 보안 특징 SSLftp 특정 FTP 애플리케이션 보안문제 요약 #
3
파일 전송 프로토콜 하나의 시스템에서 또 다른 시스템으로 파일을 전송하기 위한 기본적인 방법 FTP의 목적
하나의 시스템에서 또 다른 시스템으로 파일을 전송하기 위한 기본적인 방법 FTP의 목적 - 파일(프로그램,데이터)의 공유 증진 - 원격 컴퓨터를 간접적인 이용 - 호스트들간의 다양한 종류의 저장 시스템들로부터 유저를 보호 - 효율적이고 신뢰성 있는 데이터 전송 #
4
FTP의 보안문제 FTP는 표준 사용자명/패스워드 인증방법을 사용하기 때문에 주어진 사용자가 정당한 사용자인지 확실하게 확인하지 못한다. 패스워드는 일반적인 텍스트로 전달되어 공격자로 하여금 전기적인 도청을 통한 패스워드의 획득을 가능하게 한다. FTP 세션은 암호화 되어 있지 않기 때문에 사생활 보호 기능을 제공하지 않는다. 단순, 객체지향적, 분산환경의 응용에 적합, 인터프리터, 안전, 구조중립, 이식성, 높은 성능, 다중 쓰레드, 동적 견고(포인터X, garbage Collection, 엄격한 형검사, 실시간 에러 처리) 컴파일에 의해 바이트 코드로 변환되고 실행시에 인터프리터에 의해 해석되어 처리. #
5
FTP보안 역사 FTP 바운스 공격(FTP Bounce Attacks)
잘못된 파일 퍼미션(Erroneous file permission) SITE EXEC 버그 (The Site EXEC bug) 단순, 객체지향적, 분산환경의 응용에 적합, 인터프리터, 안전, 구조중립, 이식성, 높은 성능, 다중 쓰레드, 동적 견고(포인터X, garbage Collection, 엄격한 형검사, 실시간 에러 처리) 컴파일에 의해 바이트 코드로 변환되고 실행시에 인터프리터에 의해 해석되어 처리. #
6
FTP protocol(1) FTP는 2개의 TCP연결을 사용하기 때문에 다른 어플리케이션과 다르다.
- Control Connection - Data Connection Server client Control connection (FTP commands) (FTP replies) data connection 단순, 객체지향적, 분산환경의 응용에 적합, 인터프리터, 안전, 구조중립, 이식성, 높은 성능, 다중 쓰레드, 동적 견고(포인터X, garbage Collection, 엄격한 형검사, 실시간 에러 처리) 컴파일에 의해 바이트 코드로 변환되고 실행시에 인터프리터에 의해 해석되어 처리. Processes involved in file transfer #
7
FTP protocol(2) Port command going across FTP control connection
FTP server doing active open of data connection FTP server FTP client Control connection PORT 140,252,13,34,4,150\r\n Port 1173 Port 21 Port 1174 (Passive open) IP addr FTP server FTP client Control connection 바이트 코드는 클래스 로더에 의해 로드되며, 바이트 코드 검증기는 프로그램이 수행되기 전에 부적절한 클래스 접근이나 스택의 오버 플로우, 부적절한 형변환을 검사한다. Port 1173 Port 21 SYN to , port 1174 Port 20 Port 1174 (active open) (Passive open) IP addr #
8
FTP 바운스 공격 FTP세션에서 클라이언트가 포트 21번 연결을 요구하고, 핸드쉐이크(handshake)가 이루어지면 클라이언트는 데이터 전송을 위한 포트 정보를 서버로 보낸다. 그러나 이러한 행동은 attacker는 시작한 클라이언트가 아닌 attacker가 선택한 시스템상의 포트에 연결 할 수 있음을 의미한다. - port scanning - Bypassing basic packet filtering devices - Bypassing export restrictions #
9
잘못된 퍼미션 anonymous FTP 디렉토리와 퍼미션 디렉토리 퍼 미 션 [FTP-home]ftp/
퍼 미 션 [FTP-home]ftp/ root가 소유주인 555로 설정. 유저가 읽고 실행가능. [FTP-home]ftp/bin [FTP-home]ftp/bin/ls root가 소유쥬인 111로 설정. 유저가 실행만 가능. [FTP-home]ftp/etc root가 소유주인 555로 설정. [FTP-home]ftp/etc/passwd Root가 소유주인 444로 설정 유저가 읽기만 가능. #
10
SITE EXEC 버그 (1) 초기 wu-ftpd버전이 FTP포트인 21번을 통해서 텔넷으로 접속하여 쉘 접근이 가능한 문제점을 가지고 있음. CERT 권고안 이 문제는 src/pathnames.h에 있는 PATH_EXEC PATH변수가 /bin으로 되어있기 때문이다. PATH_EXECPATH는 /bin/ftp-exec디렉토리나 쉘, 명령어 인터프리터가 존재하지 않는 디렉토리로 설정되어야만 한다. 컨텐트(Content) 핸들러: 새로운 형식의 파일들을 전송 받을때 사용 내용에 관한 정보(MIME형식) plain/text, text/html.. 프로토콜 핸들러:기존의 프로토콜 이외의 프로토콜을 처리 가능 #
11
SITE EXEC 버그 (2) 컨텐트(Content) 핸들러: 새로운 형식의 파일들을 전송 받을때 사용
내용에 관한 정보(MIME형식) plain/text, text/html.. 프로토콜 핸들러:기존의 프로토콜 이외의 프로토콜을 처리 가능 #
12
FTP의 기본 보안 특징 호스트와 사용자기반의 네트워크 접근 제어 - /etc/ftpusers - /etc/ftphosts
- /etc/ftpaccess #
13
/etc/ftpusers 파일에 기록된 사용자들은 FTP로그인 접근이 거부된다 #
14
/etc/ftphosts (1) Ftphosts는 ftpd의 각 사용자/호스트 접근 파일이다.
사용법 allow [사용자명] [호스트나 호스트 패턴] [호스트나 호스트 패턴] deny [사용자명] [호스트나 호스트 패턴] [호스트나 호스트 패턴] Example 1) theircompany.com에서 접속하는 mwagner라는 사용자의 접근 거부하고 ourcompany.net에서 접속하는 jsprat라는 사용자의 접근은 허가 deny mwagner theircompany.com allow jsprat ourcinpany.net #
15
/etc/ftphosts (2) Example 2)
ourcompany.net으로부터 접속하는 jsprat라는 사용자의 접근을 거부하고, accounting.ourcompany.net으로부터 접속하는 jsprat라는 사용자의 접근을 허가 하려면 allow/deny의 순서로교려. - allow jsprat accounting.ourcompany.net - deny jsprat ourcompany.net Example 3) 와일드 카드및 공백을 주소를 분리 표현 - *.mycompany.net, *.yourcompany.net * *.some.othercompany.ne #
16
/etc/ftpaccess(1) /etc/ftpaccess는 ftpd의 핵심 설정파일로 지시문을 통해서 ftpd가 동작하는 방법을 제어 할 수 있다. /etc/ftpaccess의 예 class all real, guest, anonymous * loginfails 5 readme README* login readme README* cwd=* message /welcome.msg login message .message cwd=* compress yes all tar yes all chmod no guest, anonymous delete no guest, anonymous #
17
/etc/ftpaccess(2) class all real, guest, anonymous *
loginfails 5 readme README* login readme README* cwd=* message /welcome.msg login message .message cwd=* compress yes all tar yes all chmod no guest, anonymous delete no guest, anonymous overwrite no guest, anonymous rename no guest, anonymous log transfers anonymous, real inbound, outbound shutdown /etc/shutmsg passwd-check rfc822 warn #
18
/etc/ftpaccess(3) 명 령 어 결 과 banner [경로명] 사용자 로그린 전 출력 메시지
명 령 어 결 과 banner [경로명] 사용자 로그린 전 출력 메시지 chmod [yes|no] 특정 클래스 유형에속하는 사용자만이 chmod실행 명시 class [클래스명|유형|주소] 특별한 사용자 클래스 정의 delete 특정 클래스 유형에 속하는 사용자만이 파일 삭제 명시 deny [addr] [메시지] 연결을 거부할 호스트 명시 [사용자명] FTP 사이트 관리자를 명시 guestgroup 게정이 있는 사람들도 anonymous사용자 처럼 취급 limit [class|N|time|msg] 특정 사용자 클래스 사용자중 동시에 N명까지만 접속 log commands [클래스 유형] 명시된 클래스 사용자들의 실행 명령어는 로그 기록 log transfers [클래스 유형] 명시된 클래스 사용자들의 데이터 전송은 로그 기록 loginfails [N] 로그인 시도 횟수 지정 #
19
/etc/ftpaccess(4) 명 령 어 결 과 Messages [path|when]
명 령 어 결 과 Messages [path|when] 사용자가 로그인 후 추가적인 메시지 경로 Notretrieve [파일명] 사용자가 가져갈 수 없는 파일 명시 Overwrite [yes|no] [클래스유형] 특정 사용자만이 파일 덮어쓰기 가능 Passwd-check [옵션] Ftpd가 패스워드를 검사할 때 기준 명시 Rename [yes|no] [클래스유형] 특정 사용자만이 rename 명령 실행 Umask [yes|no] [클래스 유형] 특정 사용자만이 umask 명령 실행 Upload [dir] [옵션] 사용자가 업로드 할 수 없는 디렉토리 명시 #
20
SSLftp SSLftp는 SSL기반의 FTP클라이언트와 서버
SSL은 보안 소켓 계층(secure Socket Layer)을 의미하는 말로 3계층으로 되어있는 프로토콜 MD5 세션 무결성 검사 기능뿐 아니라 RSA와 DES인증 방법과 암호화 API를 채택 SSLftp를 설치하기전에 먼저 SSLeay가 설치 SSLftp는 Eric Young이 구현한 공개된 SSL 라이브러러인 SSLeay를 기반 #
21
SSLftp 설치 Gunzip SSLftp-0_8_tar.gz Tar –xvf SSLftp-0_8_tar
Cd SSLftp-0.8 Vi Makefile를 실행하여 SSLTOP이라는 변수를 찾아서 SSLeay가 설치되어있는 디렉토리로 바꾼다. Socks를 사용하지 않으면 SOCKS관련 항목을 주석처리 리눅스를 위한 두 항목의 주석처리를 없앤다. Make ftp Make ftpd Make install #
22
특정 FTP애플리케이션 보안 문제 (1) ncftp
ncftp version2.0.0과 2.4.2는 원격 FTP서버로 부터 공격당할 수 있다. 원격 FTP administrator이 .rhost에 “+ +”와 같은 원격 실행 컴맨드를 실행할 수 있는 디렉토리를 만들 수 있다. ncftp version2.3.4(libc5)는 로깅기능을 마미시키는 DOS에 노출 되어있다. #
23
특정 FTP애플리케이션 보안 문제 (2) Filerunner - X를 위한 그래픽 환경의 FTP 클라이언트.
- version 2.2.1x는 악의 있는 지역 사용자가 특별한 권한을 가지고 디스크에 파일을 쓸수 있도록 하는 임시파일을 open한다. #
24
특정 FTP애플리케이션 보안 문제 (3) ftpwatch - ftpwatch는 원격 FTP사이트를 감시할 수 있는 도구
- 초기버전(데비안 1.3)은 로컬 사용자가 간단한 결점을 이용해서 루트 권한을 얻을 수 있다. #
25
특정 FTP애플리케이션 보안 문제 (4) wu-ftpd 2.4.2-academ[BETA-18]
- 칼데라 오픈 리눅스 1.3 - 레드헷 5.2 - 슬렉웨어 3.6 #
26
요 약 Telnet과 마찬가지로 FTP서비스는 리눅스 네트워크에서 필수 적인것이다. FTP는 그렇게 안전하지가 않으므로 일반적인 FTP를 사용하고자 한다면 엄격한 접근 옵션을 적용하고 모든 상태를 기록해야만 한다. #
Similar presentations