[정보보안기사 PART 06] 애플리케이션 보안 - FTP 보안


Section 32 FTP 보안

 

1. 최신 보안 기술과 솔루션

 

(1) FTP(File Transfer Protocol)

1) 개요

 파일 전송 프로토콜(FTP, FIle Transfer Protocol)은 하나의 호스트에서 다른 호스트로 파일을 복사하기 위해 TCP/IP에 의해 제공되는 표준 기능이다.

 FTP는 호스트 간에 두 개의 연결을 설정한다는 점에서 다른 클라이언트 서버 응용들과 다르다. 하나의 연결은 데이터 전송을 위하여 사용되고, 또 다른 하나는 명령과 응답 등의 제어 정보를 위하여 사용한다. 이러한 제어와 데이터 전송의 분리는 FTP를 좀 더 효율적으로 사용할 수 있도록 만들어 준다.

 FTP는 두 개의 잘 알려진(well-known) TCP 포트를 사용한다. 포트 21번은 제어 연결을 위해 사용되고, 포트 20번은 데이터 연결을 위해 사용된다.

 

2) FTP 로그인 순서와 인증

 USER 명령을 통해 사용자명을 전송하여 어떤 사용자가 접근을 시도하는지를 확인한다. 그리고는 PASS 명령을 통해 사용자의 비밀번호를 전송한다.

 서버는 사용자 데이터베이스에서 사용자명과 비밀번호를 대조하여 접근을 시도하고 있는 사용자가 서버에 접근할 권한이 있는지를 확인한다.

 

3) FTP 연결

- 능동(Active) Mode (일반 연결)

 FTP 클라이언트의 기본 값으로 설정. 클라이언트에서 서버측 21번 포트로 접속하여 제어채널을 생성하고 데이터는 서버에서 클라이언트로 접속하여 데이터를 보내는 방식

 서버 21, 20번 포트 사용

 서버에서는 두 개의 포트만 열면 서비스 가능

 두 번째 connection은 서버에서 클라이언트로 접속

 클라이언트에 방화벽 설치 시 접속 불가

 

- 수동(Passive) Mode (수동 연결)

 클라이언트에서 서버측 21번 포트로 접속하여 제어채널을 생성하고 데이터 채널도 클라이언트에서 서버로 접속하여 데이터를 보내는 방식

 서버가 21, 1024번 이후 포트 사용

 데이터 전송을 위해 1024번 이후 포트 사용

 서버에서 클라이언트로 접속해야 하는 모순 해결을 위해 고안된 방식

 

(2) 익명 FTP

 

(3) TFTP(Trivial File Transfer Protocol)

1) 개요

 FTP의 기능을 전부 지원할 필요가 없거나 모두 지원하는 것이 비현실적인 경우 위해 사용

 UDP(69번 포트) 사용

 소프트웨어 패키지를 읽기 전용 메모리나 디스크 없는 워크스테이션에 설치할 때 주로 쓰인다.

 

특징

- 한정된 개수의 명령 : 파일을 보내고 받는 기능만 지원

- 한정된 데이터 표현 방식 : ASCII와 바이너리 지원

- 인증의 부족

 

2) 데이터 전송

 신뢰성 없는 UDP 서비스 사용

 파일은 데이터와 블록으로 나뉘고, 마지막 블록을 제외한 각 블록은 정확히 512바이트의 크기를 갖는다. 마지막 블록은 0에서 511바이트의 크기를 갖는다.

 연속적인 데이터 블록으로 파일을 전송하기 위하여 흐름 제어와 오류 제어 메커니즘을 생성해야 한다.

 

(4) NFS와 삼바

1) NFS(Network File System)

 TCP/IP 프로토콜을 사용하여 네트워크상에서 파일시스템을 운영할 수 있도록 해주는 프로토콜

 데이터의 보안과 무결성 보장

 인증된 네트워크 사용자가 공유된 네트워크 파일을 사용할 수 있는 방법 제공

 

2) 삼바(Samba)

 유닉스 계열 시스템과 윈도우 시스템 간에 파일 및 프린터 자원을 공유할 수 있는 기능 제고

 

 

 

2. FTP 보안 위협 및 대책

 

1) FTP 보안

 비밀번호는 평문(암호화되지 않음)으로 되어 있어, 공격자가 가로챙 사용할 수 있다.

 

2) SFTP(Secure File Transfer Protocol) 프로그램

 보안 파일 전송 프로토콜

 SSH 프로토콜의 일부분인 SFTP라 불리는 Unix 프로그램

 

3) TFTP 보안

 보안에 대한 고려가 없다.

 사용자 확인이나 비밀번호 없다. -> 파일 보호하기 위한 예방조치가 취해져야 한다.

 중요하지 않은 파일에만 접근할 수 있도록 제한

 TFTP가 필요한 경우 secure mode로 운영, chroot 기능을 이용

 

4) Bounce attack

 제어 채널과 데이터 채널을 다르게 사용하고 데이터 채널을 생성할 때 목적지를 확인하지 않는 FTP 설계의 구조적 취약점을 이용하는 공격

 능동모드에서 FTP 서버의 파일을 요청하면 클라이언트에서 파일을 받을 IP와 포트를 지정해서 전달해준다.(PORT 명령) 이때 IP와 포트를 요청항 클라이언트가 아닌 임의의 주소로 지정할 수 있는데 이러한 FTP 설계의 취약점을 이용하는 방식이다.

 

5) anonymous ftp 취약점

 보안 절차를 거치지 않은 익명의 사용자에게 FTP 서버로의 접근 허용

 익명 사용자가 서버에 쓰기 권한이 있을 때 악성 코드 생성 가능

 

보안대책

 보안상 심각한 취약점을 가지고 있기 때문에 반드시 사용해야하는 경우가 아니라면 서비스르 제거

 사용자의 루트 디렉터리, bin, etc, pub 디렉터리의 소유자와 퍼미션을 관리

 

6) FTP 접근 제어 설정

 - ftpuser 파일을 통한 접근 제어

 - TCP Wrapper를 통한 접근 제어

 

3. FTP 서비스 운영

 

1) proftpd 특징

- wu-ftpd의 대안으로 개발

- 매우 안정적이고 빠름

- xinetd / standalone 형태로 작동 가능

 

ftp 접속시 확인 설정

 /etc/passwd, /etc/shadow에 사용자 계정이 있는지 검사

 /etc/ftpusers에 사용자 id가 있으면 거부

 /etc/shell에 등록되지 않은 셸을 사용하는 유저는 접근 거부

 

2) vsftpd(Very Secure FTP Daemon)

 가상 IP별 별도의 환경 설정 기능

 가상 사용자 설정

 전송 대역폭 지정

 PAM 지원

 xferlog 표준 로그 파일보다 상세한 자체 로그 파일 형식 지원

 Standalone 방식과 inetd를 통한 운영 모두 지원

 IP별로 다른 환경 파일 지정 기능

 

 

 

 

 

*출처:[알기사] 2019 정보보안기사&산업기사

*해당 블로그는 개인적인 공부와 정보 공유를 위해 만들었습니다.

+ Recent posts