보안 지식

[FTP] FTP 동작방식 - Active, Passive mode와 보안 취약점

ruming 2023. 7. 12. 18:40

*RFC 959

 

FTP (File Transfer Protocol, 파일 전송 프로토콜)

TCP/IP 네트워크의 컴퓨터 간에 파일을 전송할 때 사용하는 규칙. 파일을 주고 받기 위해서는 FTP 서버와 클라이언트가 필요하다. 클라이언트/서버 방식의 동작 구조를 이루고 있으며 클라이언트는 파일을 요청하고 서버는 요청된 파일을 제공한다. FTP를 사용하면 인터넷이 연결된 곳 어디서든 빠른 파일 전송이 가능해 자체적으로 클라우드를 구현할 수 있다. 그러나 보안에 매우 취약하다는 치명적인 단점이 있어, FTP에 TLS 프로토콜이 적용된 FTPS, 또는 SSH 연결을 사용하는 SFTP를 사용하는 것이 좋다.

 

*FTP 프로그램: Filezila, 알FTP, FTP Rush

 

FTP 연결 설정을 위해 2개의 기본 채널이 필요하다.

[제어 채널, ControlChannel]

21번 포트, 클라이언트와 서버 사이의 명령, 제어 등의 송수신 담당

전체 FTP 세션 동안 상시 연결 유지, 명령과 응답 방식으로 동작

예) 사용자 계정, 파일 전송 명령 등

[데이터 채널, DataChannel]

20번 포트, 클라이언트와 서버 사이의 직접적인 파일 송/수신 담당

파일이 전송될 때마다 연결 유지, 전송 완료 후에는 연결 해제

 

FTP에는 2가지 연결 모드가 있고, 기본적인 동작 방식은 Active Mode다.

Active Mode (능동 모드)

1. 클라이언트(2020 port) → 서버(21 port) 연결 요청 - 제어 채널 형성

2. 클라이언트(2021 port) → 서버(21 port) : 데이터전송을 위한 포트를 열고 서버에 요청

3. 서버는 클라이언트의 요청에 대한 응답 전송

4. 서버(20 port) → 클라이언트(2021 port) : 데이터 채널 형성

5. 클라이언트는 서버의 요청에 대한 응답 전송 

*클라이언트 포트는 1024이상의 포트 중에 사용 가능한 임의의 포트로 생성됨. 해당 포트는 필자가 임의로 정한 것.

*클라이언트 PC에 방화벽이 설치되어 외부 접속을 허용하지 않을 경우(20번 포트를 차단하는 경우) 접속은 가능하지만 파일을 받을 수 없는 단점이 있다. 이를 해결하기 위해 수동 모드가 등장함.

 

Passive Mode (수동 모드)

1. 클라이언트(2020 port) → 서버(21 port) : 제어 채널 형성

2. 클라이언트(2020 port) → 서버(21 port) : Passive 명령 전송, 서버의 데이터 포트 질의

3. 서버는 데이터 채널 형성을 위한 포트를 열고(1024이상) 클라이언트에 알림

4. 클라이언트는 서버가 연 포트로 접속해 데이터채널 연결 요청

5. 서버가 클라이언트의 요청에 대한 응답 전송

*클라이언트가 서버에 접속하는 방식이므로 방화벽 상관없이 파일 송수신 가능. Passive 모드에서는 20번 혹은 1024이상의 포트를 사용함.

 

Active 모드와 Passive 모드의 차이

Active 모드는 서버 → 클라이언트 접속 후 데이터 채널 형성 (방화벽 문제 발생 가능)

Passive 모드는 클라이언트 → 서버 접속 후 데이터 채널 형성

 

FTP 보안 취약점

취약점 내용
FTP Bounce Attack - 제어 채널과 데이터 채널 생성 시 목적지를 확인하지 않는 FTP의 구조적 취약점을 이용
- 익명 FTP 서버를 경유해 호스트를 스캔 가능
- IP를 변경해 공격자가 원하는 곳으로 데이터를 전송시킴
Anonymous FTP - 익명 계정을 허용했을 때 익명 계정으로 악성코드 업로드 가능
스니핑 - 암호화가 이루어지지 않기 때문에(평문전송 취약점) 패스워드나 전송되는 정보가 탈취당할 수 있음
TFTP 취약점 - 인증절차를 요구하지 않아 공격자가 해당 호스트에 접근해 파일 다운로드 가능
- 상위 디렉터리 접근 방지 설정 필요 (접근제어)
FTP 서버 취약점 - 포맷 스트링 및 각종 BOF 공격 가능

 


FTP Active Mode (능동모드) 및 Passive Mode (수동모드) - 네이버블로그

[IT KEYWORD] FTP란? - EasyMedia

FTP란 무엇입니까? - websiterating

[정보통신기술용어해설] FTP

[FTP] FTP의 Active Mode와 Passive Mode 차이점

FTP Active Passive Mode 정리 - tistory