Security

[Security] FTP(File Transfer Protocol)

구루싸 2020. 3. 5. 14:07
반응형
SMALL

코로나19의 기세는 여전히 수그러들지 않는 가운데

매일 아침 출근길에 마스크 착용 곤욕이네요-_-

안경 끼는데 김서려서 미치겠고 답답해 미치겠고..

후.. 아무튼 오늘의 학습 주제는 FTP(File Transfer Protocol)입니다

FTP는 인터넷에 연결된 시스템 간 파일을 전송하는 통신 프로토콜의 하나로

사용자는 FTP 클라이언트 프로그램을 이용하여 FTP 서버에 접속한 후 파일을 송·수신합니다

내부적으로는 TCP 프로토콜을 사용하고 포트는 20, 21을 사용합니다

USER, PASS, GET 등의 FTP 명령을 FTP 서버에 전송하기 위한 명령 포트(21번)과

실제 파일을 업로드하거나 다운로드 하기 위한 데이터 포트를 사용하는데

데이터 포트는 Active Mode 일 때는 20번

Passive Mode 일 때는 FTP 서버가 결정해서 클라이언트에게 보내줍니다

FTP는 스니핑(Sniffing) 도구를 사용할 경우

사용자의 패스워드, 파일 업/다운로드 시에 파일의 내용을 모두 알 수 있어

보안에 매우 취약하기 때문에 전송 과정의 내용을 암호화하는 SFTP를 사용해야합니다

FTP의 종류를 잠깐 살펴보면 다음과 같습니다

종류 내용
FTP ID 및 Password 인증을 수행하고 TCP 프로토콜을 사용하여 사용자의 데이터를 송수신
tFTP 인증 과정 없이 UDP 기반으로 데이터를 빠르게 송수신(69번 포트 이용)
sFTP 전송 구간에 암호화 기법을 사용하여 기밀성을 제공

또한 FTP의 접근을 통제할 수 있는 파일들이 있는데 다음과 같습니다

종류 내용
/etc/ftpusers 파일에 적용된 사용자에 대한 FTP 접근 제한
/etc/hosts.deny 특정 IP의 접근 제한
/etc/hosts.allow 특정 IP의 접근 허용

FTP 서비스를 기동할 때 -l 옵션을 부여해서 실행하면 xferlog 파일을 기록합니다

앞서 FTP가 스니핑에 취약하다고 하였는데 스니핑 외에 취약점을 살펴보면 다음과 같습니다

취약점 내용
Bounce Attack

· 익명 FTP 서버를 경유하여 호스트를 스캔

· 네트워크 포트 스캐닝을 위해서 사용

· FTP 바운스 공격을 통해 전자 메일을 보내는 공격을 Fake Mail 이라고함

tFTP Attack

· 인증 절차를 요구하지 않기 때문에 설정이 잘못되어 있으면 누구나 해당 호스트에 접근하여 파일을 다운로드 가능

· FTP보다 간단함

· 불필요한 경우에는 secure mode로 운영 필요

Anonymous FTP Attack

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

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

· root, bin, etc, pub directory 소유자의 권한 관리 필요

· /etc/passwd 파일의 anonymous ftp에 불필요 항목 제거 필요

· /etc/passwd 파일의 FTP 사용자 nologin으로 설정 필요

· /etc/inetd.conf 파일의 소유자 및 권한 변경(소유자 root, 권한 600)필요

FTP 서버 취약점 wuftp format string 취약점 및 각종 버퍼 오버플로우 공격
Sniffing ID 및 Password 입력 후 접속 시도 시 암호화가 이루어지지 않음
Brute Force Attack 무작위 대입법을 사용

이것으로 FTP에 대한 학습을 마치도록 하겠습니다

그럼 이만-_-

 

반응형
LIST