본문 바로가기

Information Security/Hacking

FTP (File Transfer Protocol)

반응형

* FTP : TCP/IP 기반으로 ID/PW의 암호화 없이, 서버와 클라이언트 사이 파일 전송에 사용되는 프로토콜암호화된 FTP 통신 서비스를 사용 권장
- SFTP : SSH 기반의 FTP로 22/TCP Port 사용
- FTPS : SSL/TLS 기반의 FTP로 990/TCP 포트 사용

 

 

 

* FTP 동작 모드

1) Active Mode

FTP Active Mode

- Client에서 Server 측 제어포트(21/TCP)로 접속하여 제어 채널 생성 후, Server에서 Client로 접속하여 데이터를 보내는 방식 (만약, 클라이언트PC 방화벽에서 외부 접속을 차단 하는 경우, 제어 채널은 생성 되지만, 데이터채널 연결이 불가능)

- 클라이언트가 사용하는 임시 포트들의 경우 TCP/1024 이상의 포트를 사용


2) Passive Mode

FTP Passive Mode

- Client 측에서 Server 측으로 Control 채널(21/TCP 고정) 생성 후, 데이터 채널(TCP/1024 이상)도 Cleint에서 서버로 접속하여 데이터를 보내는 방식

 

 

 

* FTP 보안 취약점

1) FTP Bounce Attack : FTP 특성 상 제어/데이터 채널을 다르게 사용하며, 데이터 채널 생성 시, 목적지를 확인하지 않는 구조적 취약점을 이용하여 Active Mode에서 PORT 명령으로 파일을 요청한(응답을 받아야 하는) 대상의 IP와 Port를 지정할 때, 임의 주소를 지정이 가능

- 보통 익명 FTP 서버를 이용하여, 외부에서는 접근 불가하나, FTP를 통한 내부 시스템에 다양한 포트로 접근하여 악성 파일 전송, 네트워크 스캔 등의 결과를 제어 채널로 수신


2) TFTP (Trivial FTP) Attack : 보통 자체 디스크가 없는 워크스테이션의 부팅이미지 전달이 목적인 TFTP(TCP/69, 매우 단순하고 간단한 FTP)의 별도 인증과정 없이 지정 디렉터리에 접근할 수 있는 취약점을 악용

- 대응책 : TFTP 서비스가 불필요한 경우 이를 삭제(inetd 환경은 inetd.conf에서 주석처리 / xinetd 환경은 TFTP 설정 파일의 disable 속성 yes로 변경하여 비활성화)하며, 필요한 경우 chroot(지정 디렉터리를 최상위 디렉터리로 지정하여, 다른 상위 디렉터리로 접근하지 못하게 하는 기능)가 가능한 secure mode로 운영 권장

secure mode는 inetd.conf(또는 xinetd)의 tftp 서비스에서 server-args 옵션을 -s /tftpboot 설정 및 주석 제거하여 활성화 가능


3) Anonymous FTP Attack : FTP를 익명(anonymous) 계정(패스워드 없음)으로 접속하여 파일에 접근쓰기 권한이 있는 경우, 악성 코드 업로드 등의 피해를 유발

- 대응책 : 필요가 없을 시, 반드시 해당 서비스를 제거하며, vsftpd.conf 파일에서 anonymous_enable=NO 설정으로 비활성화를 적용 함

- 이외 FTP 최신 패치 작업으로 추가 취약점 방지 필요

 

 

 

* FTP 접근 제어 설정

1) ftpusers 파일을 통한 접근 제어 : FTP 기본 특성 상 평문 송수신을 하므로, 직접 접속을 제한해야 하며, ftpusers 파일(이외, 데몬 프로그램 별 TCP Wrapper 연동 설정 필요)에 접속을 제한할 계정을 명시하여 접근을 제한 (ex) root, bin, daemon 등))


2) TCP Wrapper를 통한 접근 제어 : hosts.allow, hosts.deny 파일을 이용하여 IP 기반 접근 제어를 수행하며, vsftpd.conf 파일에서 tcp_wrappers=YES 로 적용함(데몬 프로그램 별 TCP Wrapper 연동 설정 필요)

반응형