본문 바로가기
카테고리 없음

FTP(File Transfer Protocol)_(1)

by BTC_DIGIMON 2023. 1. 2.

 

안녕하세요!!! 임오군란과 민씨의 임입니다.😊

 

드디어 2023년 새해가 밝았네요 여러분 새해 복 많이 받으세요!!

 

이번에는 FTP와 VSFTP에 대해 2편으로 나누어 알아보겠습니다

 

차례는 아래와 같습니다.

 


FTP란

FTP전송모드

FTP 보안 취약점


지금 바로 시작하겠습니다.🔥🔥

 


1. FTP란

File Transfer Protocol으로 하나의 호스트에서 다른 호스트로 파일을 복사하기 위해 TCP/IP에 의해 제공되는 표준 기능.

20번 포트는 데이터 전송 포트, 21번 포트는 제어 포트를 위해 사용됩니다.

 

현재는 HTTP프로토콜을 통해 접속되는 WWW방식이 주된 파일 전송 방식이지만 FTP는 동작이 단순하고 직관적입니다. 그래서 사용법이 간단하고, 빠른 속도로 많은 파일을 주고받을 수 있는 장점이 존재합니다.

 

하지만 단점도 존재하는데, FTP는 클라이언트와 서버간 파일 전송 교환을 실시하지만, 그 통신을 암호화하지 않습니다. 

즉, 악의를 가진 사용자가 개입하여 통신 내용을 탈취할 수 있는 위험이 있습니다.

 


2. FTP 전송모드

FTP 전송 모드에는 (Active Mode/Passive Mode)로 선택할 수 있습니다.

 

1) Active Mode

 

 - 작동방식

1. 클라이언트가 서버의 21번 포트로 접속 후 명령을 송수신하기 위해 제어 채널을 생성합니다. 사용자가 ls 명령어를 입력하면 클라이언트가 사용할 5150(1024 이상의 포트)을 서버에 알려줍니다.

2. 서버는 이에 대해 ACK로 응답합니다.

3. 서버의 20번 포트는 클라이언트가 알려준 두번째 포트로 접속 후 데이터 채널을 생성한다.

4. 마지막으로 클라이언트가 ACK로 응답합니다.

 

여기서 주의할 점은 서버->클라이언트로 요청을 하기 때문에 클라이언트 PC에 방화벽이 설치되어 외부 접속을 허용하지 않는다면 FTP 접속은 되지만 데이터 채널 연결이 불가능하여 파일을 받을 수 없습니다.

 

2) Passive Mode

 

- 작동방식

1. 클라이언트의 서버의 21번 포트로 접속 후 제어 채널을 생성합니다. 이후 사용자가 명령어를 클릭하면 클라이언트는 Passive Mode로 연결하기 위해 PASV명령어를 전송합니다.

2. 서버에서는 서버가 사용할 1024번 이상의 포트를 알려줍니다.

3. 클라이언트는 서버가 알려준 포트번호로 접속을 시도하여 데이터 채널을 생성합니다.

4. 서버는 ACK로 응답한 후 데이터를 송신한 후 데이터 채널 연결을 종료합니다.

 

Passive Mode는 20번 포트 대신 1024이후의 임의의 포트를 사용합니다. 서버에서 포트번호를 알려주기 때문에, 해당 대역의 방화벽 포트를 열어 두어야 합니다.

 


3. FTP 보안 취약점

1) FTP Bounce Attack

 

- 개념

제어 채널과 데이터 채널을 다르고 사용하고 데이터 채널을 생성(PORT명령)할 때 목적지를 확인하지 않는 FTP 설계의 구조적 취약점을 이용합니다.

 

- 공격방법

주로 익명 FTP서버를 이용합니다.

PORT명령을 조작하여 공격대상 네트워크를 스캔 후 FTP서버로 하여금 공격자가 원하는 곳으로 데이터를 전송합니다.

 

- 대응방법

다른 서비스가 20번 포트 접속을 요청하면 거절하도록 설정합니다.

 

2) 익명FTP(Anonymous FTP)

 

- 개념

서버에 계정이 없는 사용자가 서버 자원에 한정된 접근을 할 수 있는 권한을 제공합니다.

기술지원이나 고객지원, 파일 배포 등을 할 때 사용됩니다. 익명 사용자가 보안 절차를 거치지 않고 서버에 접속할 수 있고, 쓰기 권한이 있는 경우 악성코드 생성이 가능합니다.

 

- 대응방법

/etc/passwd 파일에서 익명 FTP에 불필요한 항목을 제거합니다.

반드시 사용해야 하지 않는 경우 서비스를 제거하고 익명 사용자는 핵심 디렉터리의 권한을 설정하여 접근하지 못하도록 합니다.

 

3) TFTP(Trivial File Transfer Protocol)

 

- 개념

소프트웨어 패키지를 읽기 전용 메모리나 디스크 없는 워크스테이션에 설치할 때 주로 사용되고 자체 디스크를 가지고 있지 않는 워크스테이션에 부팅이미지를 전달할 목적으로 사용됩니다.

69/UDP 포트를 사용하여 별도의 인증과정 없이 지정된 디렉터리에 접근할 수 없는 보안상 취약점을 이용합니다.

 

- 대응방법

/etc/xinetd.d/tftp에서 disable = yes로 설정, 중요하지 않은 파일에만 접근할 수 있도록 secure mode(chroot) 기능을 사용하여 제한합니다. 아래와 같이 설정하면 ftp 접근 시 tftpboot 하위 경로만 접근이 가능합니다.

 


오늘 준비한 게시글은 여기까지입니다.

다음에 더 유익한 게시글로 찾아오도록 하겠습니다.

새해 복 많이 받으세요!!!

댓글