■ FTP (File Transfer Protocol) : File을 전달하는 프로토콜
- 인터넷상의 컴퓨터들 간에 파일을 교환하기 위한 표준 프로토콜(IETF RFC 959)이며, 인터넷의 TCP/IP 응용 서비스 중 하나
- 인터넷을 통하여 어떤 한 컴퓨터에서 다른 컴퓨터로 파일을 송ㆍ수신할 수 있도록 지원하는 방법과 그런 프로그램을 통칭하기도 함
- FTP를 이용하면 자신이 원하는 프로그램이나 각종 데이터를 무료나 저렴한 가격에 살 수 있다
- 용량이 큰 파일도 빠르게 송ㆍ수신할 수 있다
- 파일을 송ㆍ수신할 때에는 정당한 자격, 즉 원격 호스트 컴퓨터를 이용할 수 있는 사용자 ID와 패스워드(password)가 있어야 원하는 원격 호스트 컴퓨터에 접속할 수 있다
★ FTP 연결
- FTP를 이용해서 특정한 디렉터리로 File을 주고 받을 수 있는 것(Telnet은 Host에서 원격지 서버를 제어하는 것)
- FTP는 파일을 주거나 받을 때 사용한다
- 정상적인 서비스 Connection을 위해서는 2개의 포트 (20:전송, 21:제어)를 사용한다. 즉 20번 포트에서 File을 전송하고, 21번 포트에서 제어한다
- 만약 FTP에 접속했는데 로그인까지는 성공하지만 파일 목록이 안 나오거나 전송이 안 되면 방화벽에서 막고 있는 것이다 (포트는 0~65535 사이에 번호 부여 가능, 서버에서는 1024~65535 사이의 포트는 안전을 위해 막음)
- /etc/ftpusers 에 사용자 ID를 등록하여 접근을 제한할 수 있다
- 클라이언트에서 FTP모드를 Active 또는 Passive 모드로 전환할 수 있다
** FTP로 연결할 때 접근이 통제되는 파일
구분 | 설명 |
/etc/ftpusers (/etc/vsftpd/ftpusers) |
FTP 접속 제한 계정 등록 (이 파일 안에 ID가 존재하면 FTP 접속이 거부됨) |
/etc/hosts.deny | 특정한 IP의 접근 제한 |
/etc/hosts.allow | 특정한 IP의 접근 허용 |
■ Active Mode (능동모드)와 Passive Mode (수동모드)
1) Active Mode (능동모드)
- Active Mode : 원격사용자가 사용할 수 있는 포트를 서버단에서 지정해 사용한다
- 서버관리자가 포트를 지정할 수 있다. 이게 더 안전하며 FTP의 Default 셋팅이다. 단 로그인은 잘 되는데 클라이언트에 방화벽이 있ㅇ면 File을 못 받아온다
2) Passive Mode (수동모드)
- Passive Mode : 원격사용자가 임의의 포트로 접속해 사용한다
- 20 (Data 전송), 21 (Command 제어) 포트를 사용하고 1024~65535 사이의 포트 2개를 임의적으로 사용한다. 따라서 서버관리자는 평소에 닫혀있는 1024~65535 포트를 모두 열어야 해서 보안위협이 증가된다
■ FTP의 보안 취약점
- 임의의 계정으로 로그인 시도를 반복적으로 수행하여 사용자 계정의 패스워드를 유추할 수 있는 취약점이 있다
- 사용자 인증정보 유출 방지를 위한 보안대책으로 SCP, SFTP, FTPS 등이 있다
- FTP 보안대책으로 반드시 서비스 사용이 필요하지 않은 경우 FTP 서비스 사용을 금지하는 것이 좋다
■ 익명 FTP (anonymous FTP)
- 공개된 FTP 서버를 익명 FTP 서버라고 하며, 그 호스트에 대해서는 누구든지 계정 없이도 anonymous 또는 ftp라는 로그인명으로 FTP를 실행할 수 있는데, 이것을 익명 FTP라고 한다
- 암호는 필요 없으며 사용자의 이메일 주소를 입력하면 된다. 로그인한 다음에는 자유로이 파일에 접근할 수 있다. 프리웨어나 문서 등을 공급하는 수단으로 사용된다
- 익명 FTP는 아이디로 anonymous나 ftp를 사용한다. 그리고 패스워드로 guest 또는 이메일 주소를 사용하기도 한다. 이때 입력하는 비밀번호(guest, 이메일 주소)는 실제 비밀번호가 아니며 누가 접속하고 있는지 서버가 로그에 기록하는 데 쓰일 뿐으로 유효하지 않은 임의ㅡ이 이메일 주소를 등록해도 체크하지 않는다
■ FTP bounce(바운스) 공격
- 설계 헛점 이용, 즉 서버가 클라이언트에 데이터 전송 시 프로토콜 확인 과정이 없음을 이용한 공격
- FTP 바운스 공격 (FTP Bounce Attack)은 FTP 서버가 데이터를 전송할 때 목적지가 어디인지 검사하지 않는 설계상의 문제점을 이용한 공격으로, 익명 FTP 서버를 경유하여 호스트를 스캔하여 FTP 서버를 통해 임의의 네트워크 접속을 릴레이 함으로써 수행한다
★ FTP와 TFTP 비교 (TFTP : Trivial File Transfer Protocol)
- TFTP는 FTP와 마찬가지로 파일을 전송하기 위한 프로토콜이지만 FTP보다 더 단순한 방식으로 파일을 전송한다
- TFTP는 FTP와 비슷한 역할을 하지만 인증과정을 거치지 않고 바로 원격 파일을 읽거나 저장할 수 있는 프로토콜이다. 따라서 데이터 전송 과정에서 데이터가 손실될 수 있는 등 불안정하다는 단점을 가지고 있다. 하지만 FTP처럼 복잡한 프로토콜을 사용하지 않기 때문에 구현이 간단하다. 임베디드 시스템에서 운영체제 업로드로 주로 사용된다
FTP | TFTP |
TCP 기반 | UDP 기반 |
20, 21번 포트 | 69번 포트 |
로그인 절차가 있다 | 로그인 절차가 없다 |
파일디렉터리를 볼 수 있다 | 파일디렉터리를 볼 수 없다 |
- TFTP 서비스는 보안상 취약하므로 서비스하지 않는 것이 좋지만 꼭 사용해야 하는 상황이라면 TCP Wrapper를 사용하여 접근 가능한 디렉터리를 제한해야 한다
'정보보호론 > 애플리케이션 보안' 카테고리의 다른 글
스팸메일 대책 (0) | 2020.09.14 |
---|---|
전자우편 보안통신규약 (0) | 2020.09.14 |
이메일 보안 (0) | 2020.09.14 |