[03 FTP]
(1) 개요
- FTP는 TCP/IP 기반의 원격으로 떨어져 있는 서버와 클라이언트 사이의 파일 전송을 위한 통신 프로토콜 중 하나이다.
- FTP 서비스는 아이디 및 패스워드가 암호화되지 않은 채로 전송되어 간단한 스니퍼에 의해서도 아이디 및 패스워드가 노출될 수 있으므로 반드시 필요한 경우를 제외하고는 FTP 서비스 사용을 제한해야 한다.
- FTP 서비스를 이용할 경우에는 안전한 암호화된 통신을 수행하는 다음 서비스 이용을 권장한다.
- SFTP : SSH 기반의 파일 전송 프로토콜로 기본적으로 22/TCP 포트 사용
- FTPS : 전송계층의 SSL/TLS 기반의 파일 전송 프로토콜로 기본적으로 990/TCP 포트 사용
(2) 동작모드
FTP 능동 Mode
- 특징
- 일반적으로 능동모드가 FTP 클라이언트의 기본 값으로 설정된다. 클라이언트에서 서버 측 21번 포트로 접속하여 제어채널을 생성하고 데이터는 서버에서 클라이언트로 접속하여 데이터를 보내는 방식이다.
- 만약 클라이언트 PC에 바화벽이 설치되어 외부에서의 접속을 허용하지 않는다면 FTP 접속은 되지만 (제어채널은 연결되지만) 이후 데이터채널 연결이 불가능하여 파일을 받을 수 없는 문제가 발생할 수 있다.
- 동작방식
- FTP 클라이언트는 FTP 서버의 21번 포트로 연결 설정하여 제어 채널을 생성한다.
- 사용자가 파일 목록을 보기 위해 ls 명령을 입력하면 FTP 클라이언트는 사용할 임시포트(1024이상 포트)를 결정하여 FTP 서버에게 알린다.
- FTP 서버는 FTP 클라이언트가 알려준 포트(5001)로 연결을 설정하여 데이터 채널을 생성한다.
- 데이터채널을 통해 데이터를 송신한 후 데이터채널 연결을 종료한다.
FTP 수동 Mode
- 특징
- 클라이언트에서 서버 측 21번 포트로 접속하여 제어 채널을 생성하고 데이터채널도 클라이언트에서 서버로 접속하여 데이터를 보내는 방식이다.
- 동작방식
- FTP 클라이언트는 FTP 서버의 21번 포트로 연결 설정하여 제어 채널을 생성한다.
- 사용자가 파일 목록을 보기 위해 ls 명령을 입력하면 FTP 클라이언트는 수동모드로 연결하기 위해 PASV 명령을 전송하고 이 명령을 받은 FTP 서버는 사용할 임시포트(1024 이상 포트)를 결정하여 FTP 클라이언트에게 알려준다.
- FTP 클라이언트는 FTP 서버가 알려준 포트(4900)으로 연결을 설정하여 데이터채널을 생성한다.
- 데이터채널을 통해 데이터를 송신한 후 데이터채널 연결을 종료한다.
(3) FTP 보안 취약점
FTP Bounce Attack
- 개요
- 제어 채널과 데이터 채널을 다르게 사용하고 데이터 채널을 생성할 때 목적지를 확인하지 않는 FTP 설계의 구조적 취약점을 이용하는 공격이다.
- 일반적인 모드(Active Mode)에서 FTP 서버의 파일을 요청하면 클라이언트에서 파일을 받을 IP와 포트를 지정해서 전달해준다. (PORT 명령) 이때 IP와 포트를 요청한 클라이언트가 아닌 임의의 주소로 지정할 수 있는데 이러한 FTP 설계의 취약점을 이용하는 방식이다.
- 위 예는 debug 모드로 접속한 ftp 클라이언트 화면이다. get 명령을 통해 ftp 서버로 파일 요청 시 PORT 명령을 통해 데이터 채널을 생성하기 위한 IP와 포트정보를 전달하고 있다.
- ","를 식별자로 하여 바이트 단위로 보여주고 있으며 IP(192.168.197.1)와 포트(18.214)순으로 보여주고 있다.
공격방식
- 주로 익명 FTP 서버를 이용, PORT 명령을 조작하여 공격대상 네트워크를 스캔하고 FTP 서버로 하여금 공격자가 원하는 곳으로 데이터를 전송하게 한다.
- 예를 들어 FTP 서버에 스팸메일파일을 업로드한 후 해당 파일을 요청하면서 PORT 명령을 통해 수신측 주소를 조작하여 SMTP 서버로 지정하면 FTP 서버는 스팸메일을 SMTP 서버로 전달하게 된다.
- 데이터 채널을 생성하기 위한 PORT 명령을 조작하여 내부 시스템(외부에서는 접근은 가능)에 다양한 포트로 접근하여 그 결과를 제어 채널로 받음으로써 네트워크 스캔을 수행한다.
TFTP 공격
- 개요
- TFTP는 읽기 전용 메모리나 디스크가 없는 워크스테이션에 설치될 수 있을 정도로 매우 단순하고 간단한 파일 송수신 프로토콜/어플리케이션이다.
- 자제 디스크를 가지고 있지 않은 워크스테이션에 부팅이미지를 전달할 목적으로 주로 사용한다.
- 69/udp 포트를 사용하며 별도의 인증과정 없이 지정된 디렉터리에 접근할 수 있는 보안상 취약점이 존재한다.
- 공격방식
- TFTP 공격은 접근 제어를 제대로 하지 않을 경우 보안 기능이 없는 TFTP의 취약점을 이용하여 공격자가 임의의 파일에 접근할 수 있다.
- 대응책
- TFTP 서비스가 불필요한 경우 이를 제거한다.
- inetd 환경에서는 inetd.conf 설정파일에서 해당 서비스를 주석 처리
- xinetd 환경에서는 TFTP 설정 파일의 disable 속성을 yes로 설정하여 비활성화 시킨다.
- TFTP가 필요한 경우 secure mode로 운영한다. secure mode 는 chroot기능을 이용하는 것으로 지정한 디렉터리를 최상위 디렉터리로 지정하여 지정하여 지정한 디렉터리의 상위 디렉터리로 접근하지 못하도록 제한하는 방식이다.
- TFTP 서비스가 불필요한 경우 이를 제거한다.
'공부 > 정보보안기사 실기' 카테고리의 다른 글
[Section 08] 웹 어플리케이션 취약점 (356~ 374pg) (0) | 2022.05.05 |
---|---|
[Section 07] 어플리케이션 기본 학습 (350~ 355pg) (0) | 2022.05.04 |
[Section 07] 어플리케이션 기본 학습 (333~ 341pg) (0) | 2022.05.01 |
[Section 07] 어플리케이션 기본 학습 (315~ 332pg) (0) | 2022.04.29 |
[Section 05] 네트워크 보안 프로토콜 (277~ 301pg) (0) | 2022.04.22 |