FTP 쓰면 해킹당합니다: 비개발자가 서버 연결 전에 꼭 알아야 할 SFTP 이야기
FileZilla 설치 후 FTP와 SFTP 중 무엇을 선택해야 할지 몰라 고민한 적 있나요? FTP는 비밀번호를 평문으로 보내 해킹 위험이 큽니다. AI 학습과 개발 입문 과정에서 안전하게 서버에 연결하는 방법을 실제 사례로 설명합니다.

“서버에 파일 업로드하려고 FileZilla 깔았는데, FTP랑 SFTP 중에 뭐 선택하지?”
AI 학습용 데이터셋을 서버에 올리거나, 간단한 웹 프로젝트를 배포하려는 순간 마주하는 질문입니다. 대충 FTP를 선택해서 연결했더니 작동은 되는데, 이게 맞는 선택인지 알 수 없습니다. 결론부터 말하면 FTP를 선택했다면 지금 당장 SFTP로 바꿔야 합니다. FTP SFTP 차이는 단순한 기능 차이가 아니라 보안 위험의 차이입니다.
이 글에서는 FTP가 왜 위험한지, SFTP는 어떻게 문제를 해결하는지 실제 사례와 함께 정리합니다. FileZilla 설정 화면에서 무엇을 선택해야 하는지, 그리고 비개발자가 놓치기 쉬운 보안 포인트도 함께 다룹니다.
실제 사례: FTP 자격증명 유출로 수천 개 웹사이트 해킹
2023년 초, 사이버 보안 기업 Wiz는 충격적인 발견을 공개했습니다. 최소 10,000개 이상의 웹사이트가 유출된 FTP 자격증명을 통해 해킹당했다는 것입니다.[1] 공격자들은 정상적인 FTP 계정 정보를 탈취한 후, 이를 이용해 웹사이트에 악성 코드를 삽입하고 사용자를 피싱 사이트로 리다이렉트시켰습니다.
(참고 1. Thousands of Websites Hijacked Using Compromised FTP Credentials, SecurityWeek, 2023)
조사 결과 다양한 호스팅 업체와 기술 스택을 사용하는 웹사이트들이 피해를 입었으며, 공격자들이 어떻게 초기 FTP 자격증명을 탈취했는지는 정확히 밝혀지지 않았습니다. 하지만 전문가들은 네트워크 스니핑, 피싱, 또는 다른 데이터 유출 사고를 통해 얻은 것으로 추정합니다.
이 사례가 보여주는 것은 명확합니다. FTP는 구조적으로 안전하지 않으며, 자격증명이 한 번 노출되면 공격자가 정상 사용자인 것처럼 서버에 접속할 수 있습니다.
FTP가 위험한 이유: 암호화 없이 모든 것을 보냄
FTP(File Transfer Protocol)는 1971년에 만들어진 파일 전송 방식입니다.[2] 당시에는 인터넷이 소수 연구자들만 사용하는 폐쇄 네트워크였기 때문에 보안을 고려하지 않았습니다. 문제는 이 프로토콜이 2025년 현재에도 여전히 사용된다는 점입니다.
(참고 2. RFC 114: File Transfer Protocol, IETF, April 16, 1971 – Written by Abhay Bhushan at MIT)
평문 전송의 위험
FTP는 다음 정보를 암호화하지 않고 그대로 보냅니다:
- 사용자명과 비밀번호
- 전송하는 파일 내용
- 서버에서 실행하는 명령어
카페에서 공용 와이파이에 연결해 FTP로 파일을 업로드한다면, 같은 네트워크에 있는 누구나 당신의 로그인 정보를 볼 수 있습니다. 심지어 집 와이파이라도 공유기가 해킹당했거나 ISP 수준에서 패킷을 모니터링한다면 노출될 위험이 있습니다.
실제 공격 시나리오
공격자가 FTP 연결을 가로채는 과정은 생각보다 간단합니다:
- Wireshark나 tcpdump 같은 패킷 캡처 도구 실행
- 같은 네트워크의 FTP 트래픽 필터링
- USER, PASS 명령어가 포함된 패킷 검색
- 평문으로 전송된 계정 정보 확인
기술적 지식이 많지 않아도 온라인 튜토리얼을 따라하면 30분 안에 실행할 수 있습니다.
| 위험 요소 | FTP | FTPS | SFTP |
|---|---|---|---|
| 비밀번호 노출 | 평문 전송 → 누구나 볼 수 있음 | TLS/SSL 암호화 → 보호됨 | SSH 암호화 → 가로채도 해독 불가 |
| 파일 내용 노출 | 평문 전송 → 중간 탈취 가능 | TLS/SSL 암호화 → 보호됨 | 암호화 전송 → 내용 보호 |
| 네트워크 스니핑 | 완전 취약 | 암호화로 안전 | 안전 |
| 공용 와이파이 사용 | 매우 위험 | 안전 | 안전 |
| 사용 포트 | 21 (제어), 20 (데이터) | 21 (제어), 989-990 (암호화) | 22 (통합) |
| 방화벽 설정 | 복잡 (다중 포트) | 복잡 (다중 포트) | 간단 (단일 포트) |
SFTP vs FTPS: 어떤 차이가 있을까?
SFTP와 FTPS는 모두 FTP의 보안 문제를 해결하기 위해 만들어졌지만, 접근 방식이 완전히 다릅니다. 둘 다 암호화를 제공하지만, 선택 기준을 이해하면 상황에 맞는 프로토콜을 사용할 수 있습니다.
SFTP: SSH 기반의 완전히 다른 프로토콜
SFTP(SSH File Transfer Protocol)는 이름에 FTP가 들어가지만, 실제로는 FTP와 완전히 다른 프로토콜입니다. SSH 프로토콜을 기반으로 만들어졌으며, 파일 전송을 위한 별도의 하위 시스템으로 작동합니다.
SFTP의 장점:
- 단일 포트(22) 사용으로 방화벽 설정이 간단합니다
- SSH 키 기반 인증으로 비밀번호 없이 안전하게 접속할 수 있습니다
- 최신 클라우드 플랫폼과 개발 환경에서 표준으로 지원합니다
- 파일 권한, 심볼릭 링크 등 고급 파일 관리 기능을 제공합니다
SFTP의 단점:
- SSH를 지원하지 않는 오래된 시스템에서는 사용할 수 없습니다
- 일부 레거시 호스팅 환경에서는 설정이 복잡할 수 있습니다
FTPS: FTP에 TLS/SSL을 추가한 방식
FTPS(FTP Secure 또는 FTP over TLS/SSL)는 기존 FTP에 TLS/SSL 암호화 계층을 추가한 프로토콜입니다. 웹사이트에서 사용하는 HTTPS와 비슷한 방식으로 암호화를 제공합니다.
FTPS의 장점:
- FTP 기반이라 레거시 시스템과의 호환성이 좋습니다
- 기존 FTP 서버를 업그레이드하기 쉽습니다
- 은행, 금융 기관 등 FTP 인프라가 구축된 환경에서 유용합니다
- Explicit 모드와 Implicit 모드를 선택할 수 있습니다
FTPS의 단점:
- 여러 포트를 사용해 방화벽 설정이 복잡합니다
- Active/Passive 모드 구분이 필요합니다
- SSH 키 인증을 지원하지 않고 인증서 기반 인증을 사용합니다
- NAT 환경에서 연결 문제가 발생할 수 있습니다
| 비교 항목 | FTP | FTPS | SFTP |
|---|---|---|---|
| 암호화 방식 | 없음 | TLS/SSL | SSH |
| 프로토콜 기반 | FTP | FTP + TLS/SSL | SSH |
| 사용 포트 | 21, 20 | 21, 989-990, 기타 | 22 |
| 방화벽 친화성 | 나쁨 | 나쁨 | 좋음 |
| 인증 방식 | 비밀번호 | 비밀번호 + 인증서 | 비밀번호 + SSH 키 |
| 레거시 호환성 | 최고 | 높음 | 낮음 |
| 클라우드 지원 | 거의 없음 | 제한적 | 표준 |
| 보안 수준 | 매우 낮음 | 높음 | 매우 높음 |
| 설정 복잡도 | 간단 | 복잡 | 중간 |
| 권장 사용 | ❌ 사용 금지 | △ 레거시 환경 | ✅ 대부분의 경우 |
SFTP가 해결하는 문제: SSH 암호화로 모든 것을 보호
SFTP는 FTP의 보안 문제를 근본적으로 해결합니다. 모든 데이터가 암호화되어 전송되기 때문에, 누군가 패킷을 가로채더라도 내용을 알 수 없습니다.
암호화된 터널을 통한 전송
SFTP 연결이 시작되면 다음과 같은 과정이 진행됩니다:
- 클라이언트와 서버가 SSH 연결을 맺음
- 암호화된 터널이 생성됨
- 이후 모든 데이터가 이 터널을 통해 전송됨
결과적으로 로그인 정보도, 파일 내용도, 실행 명령어도 모두 암호화됩니다. 공용 와이파이에서 SFTP를 사용해도 안전한 이유입니다.
SSH 키 인증: 비밀번호보다 안전한 방법
SFTP는 비밀번호 외에도 SSH 키를 사용한 인증을 지원합니다. 공개키와 개인키 쌍을 만들어서, 서버에는 공개키를 등록하고 개인키는 자신의 컴퓨터에만 보관합니다. 이 방식은 다음과 같은 장점이 있습니다:
- 비밀번호가 네트워크로 전송되지 않음
- 키 파일이 없으면 접속 불가능
- 비밀번호 추측 공격(brute force) 방지
많은 클라우드 서버나 웹 호스팅 서비스가 SSH 키 인증을 기본으로 권장하는 이유입니다.
FileZilla 설정: FTP 대신 SFTP 선택하기
FileZilla는 FTP, FTPS, SFTP를 모두 지원하는 대표적인 클라이언트입니다. 하지만 이름이 “FTP 클라이언트”라서 많은 사람이 FTP만 사용할 수 있다고 오해합니다. 실제로는 다양한 보안 프로토콜을 지원합니다.
연결 설정 시 확인해야 할 항목
FileZilla 사이트 관리자(Site Manager)를 열면 다음 항목을 설정할 수 있습니다:
프로토콜 선택
- FTP – File Transfer Protocol (❌ 사용 금지)
- SFTP – SSH File Transfer Protocol (✅ 최우선 선택)
- FTPS – FTP over explicit TLS/SSL (△ SFTP를 사용할 수 없는 레거시 환경에서만)
포트 번호
- SFTP를 선택하면 자동으로 22번 포트가 입력됩니다
- FTPS를 선택하면 21번 포트가 입력됩니다 (Explicit 모드)
- 서버 관리자가 다른 포트를 지정했다면 변경합니다
로그온 유형
- 일반(Normal): 사용자명과 비밀번호 입력
- 키 파일(Key file): SSH 개인키 파일 선택 (SFTP 전용)
연결 테스트와 문제 해결
SFTP로 연결 시도 시 다음과 같은 메시지가 나타날 수 있습니다:
“The server’s host key is unknown. You have no guarantee that the server is the computer you think it is.”
이것은 처음 연결하는 서버의 지문(fingerprint)을 확인하는 보안 절차입니다. 서버 관리자에게 받은 지문과 일치하는지 확인한 후 “OK”를 누르면 됩니다. 이후 연결에서는 이 메시지가 나타나지 않습니다.
| 연결 실패 원인 | 해결 방법 |
|---|---|
| “Connection timed out” (SFTP) | 포트 22가 방화벽에서 막혀있을 수 있음. 네트워크 관리자에게 확인 |
| “Connection timed out” (FTPS) | 포트 21과 데이터 포트가 막혀있을 수 있음. Passive 모드 시도 |
| “Authentication failed” | 사용자명이나 비밀번호 오류. 대소문자 구분 확인 |
| “No supported authentication methods” | 서버가 비밀번호 인증을 허용하지 않음. SSH 키 필요 |
| “Certificate verification failed” (FTPS) | 서버 인증서 문제. 신뢰할 수 있는 서버인지 확인 후 예외 추가 |
언제 FTPS를 선택해야 할까?
SFTP가 대부분의 상황에서 최선의 선택이지만, 다음과 같은 특수한 경우에는 FTPS가 더 적합할 수 있습니다:
레거시 금융 시스템
은행이나 금융 기관은 수십 년 동안 FTP 인프라를 구축해왔습니다. 이런 환경에서는 SSH를 지원하지 않는 시스템이 많고, FTPS로 업그레이드하는 것이 현실적인 선택입니다. 규제 준수를 위해 암호화가 필요하지만, 기존 시스템을 완전히 교체하기 어려운 경우입니다.
대용량 파일 전송 요구사항
일부 기업 환경에서는 수 GB~TB 단위의 대용량 파일을 정기적으로 전송합니다. FTPS는 FTP의 성능 특성을 그대로 유지하면서 암호화를 제공하기 때문에, 특정 네트워크 환경에서 SFTP보다 빠를 수 있습니다. (하지만 현대 하드웨어에서는 차이가 미미합니다)
기존 FTP 서버 업그레이드
이미 FTP 서버가 구축되어 있고 SSH 설치가 어려운 환경이라면, FTPS로 업그레이드하는 것이 가장 빠른 보안 개선 방법입니다. 서버 소프트웨어만 업데이트하고 TLS/SSL 인증서를 설정하면 됩니다.
중요: 위 상황에 해당하지 않는다면 SFTP를 선택하는 것이 더 안전하고 관리하기 쉽습니다.
FTP를 써야 하는 경우는 정말 없을까?
원칙적으로 FTP SFTP 차이를 이해했다면 FTP를 선택할 이유가 거의 없습니다. 하지만 다음과 같은 극히 제한적인 상황에서는 FTP를 사용할 수밖에 없을 수 있습니다:
완전히 격리된 내부 네트워크
외부 인터넷과 물리적으로 분리된 폐쇄 네트워크에서는 FTP의 보안 위험이 상대적으로 낮습니다. 하지만 이 경우에도 내부 위협(악의적 직원, USB로 유입된 악성코드)을 고려하면 FTPS나 SFTP가 더 안전합니다.
공개 파일 배포
누구나 다운로드할 수 있는 공개 파일을 제공하는 경우, 익명 FTP 서버를 운영하기도 합니다. 하지만 요즘은 HTTP/HTTPS를 통한 다운로드가 더 일반적이고 관리도 편리합니다.
결론: 위 상황 중 어디에도 해당하지 않는다면 무조건 SFTP를 사용해야 합니다. SFTP를 사용할 수 없는 환경이라면 차선책으로 FTPS를 선택합니다.
AI 학습 환경에서 SFTP가 특히 중요한 이유
AI나 머신러닝을 공부하면서 서버를 사용하는 경우가 많습니다. Jupyter Notebook 서버에 접속하거나, 학습용 데이터셋을 업로드하거나, 학습된 모델을 다운로드하는 과정에서 파일 전송이 필요합니다.
민감한 데이터 보호
AI 학습에 사용하는 데이터는 개인 정보가 포함된 경우가 많습니다. 의료 이미지, 금융 거래 내역, 사용자 행동 로그 같은 데이터를 FTP로 전송하면 법적 문제가 발생할 수 있습니다. GDPR이나 개인정보보호법은 데이터 전송 시 암호화를 요구합니다.
모델 파일 유출 방지
학습이 완료된 AI 모델 파일(weights, checkpoints)은 수개월의 연구와 컴퓨팅 자원이 투입된 결과물입니다. FTP로 전송하다가 중간에 가로채지면 지적 재산권 침해나 경쟁사에 유출될 위험이 있습니다.
클라우드 GPU 서버 접속
AWS, Google Cloud, Azure 같은 클라우드 플랫폼에서 GPU 인스턴스를 사용하는 경우, 기본적으로 SFTP 접속만 허용합니다. FTP나 FTPS 포트는 보안상 막혀있는 경우가 대부분입니다. 클라우드 환경에 익숙해지려면 처음부터 SFTP를 사용하는 습관을 들여야 합니다.
| 작업 유형 | FTP 사용 시 위험 | FTPS 사용 시 | SFTP 사용 시 이점 |
|---|---|---|---|
| 데이터셋 업로드 | 개인정보 노출 가능 | 암호화로 보호되나 설정 복잡 | 암호화로 데이터 보호 + 간편한 설정 |
| 모델 파일 다운로드 | 지적재산 유출 위험 | 암호화로 보호됨 | 안전한 전송 + SSH 키 인증 |
| Jupyter 서버 접속 | 토큰/비밀번호 노출 | 암호화되나 호환성 제한 | SSH 키 인증으로 안전 + 클라우드 표준 |
포트 22가 막혀있다면? 대안 솔루션
회사나 학교 네트워크에서 보안 정책상 SSH 포트 22를 막아놓는 경우가 있습니다. 이럴 때는 다음 방법을 시도할 수 있습니다:
다른 포트로 SSH 실행
서버 관리자 권한이 있다면 SSH 서비스를 다른 포트(예: 2222, 8022)에서 실행하도록 설정할 수 있습니다. 일반적으로 80(HTTP)이나 443(HTTPS) 포트는 막히지 않기 때문에, 이 포트로 SSH를 실행하는 방법도 있습니다.
FTPS 사용
SFTP를 사용할 수 없다면 차선책으로 FTPS를 고려할 수 있습니다. FTP에 TLS/SSL 암호화를 추가한 방식으로, SFTP만큼 간편하지는 않지만 평문 FTP보다는 훨씬 안전합니다. FileZilla에서 “FTPS – FTP over explicit TLS/SSL” 옵션을 선택하면 됩니다.
FTPS 설정 시 주의사항:
- Explicit 모드와 Implicit 모드 중 서버가 지원하는 방식 확인
- Passive 모드를 사용하면 방화벽 통과가 더 쉬움
- 서버 인증서가 유효한지 확인 필요
VPN을 통한 접속
회사에서 VPN을 제공한다면, VPN 연결 후 SFTP를 사용할 수 있습니다. VPN 자체가 암호화된 터널을 제공하기 때문에 안전합니다.
실무 의사결정 플로우차트
상황에 맞는 프로토콜을 선택하는 간단한 의사결정 과정입니다:
- SSH(포트 22)가 사용 가능한가?
- 예 → SFTP 사용 (최선의 선택)
- 아니오 → 2번으로
- 레거시 시스템이 SSH를 지원하지 않는가?
- 예 → 3번으로
- 아니오 → SSH 포트를 다른 번호로 변경 가능한지 확인 → SFTP 사용
- TLS/SSL을 지원하는 FTP 서버가 있는가?
- 예 → FTPS 사용 (차선책)
- 아니오 → 4번으로
- 완전히 격리된 내부 네트워크인가?
- 예 → FTP 사용 가능하나 FTPS나 SFTP 도입 권장
- 아니오 → FTP 사용 금지, 서버 업그레이드 필요
맺음말
FTP SFTP 차이는 단순한 기술 스펙 차이가 아니라, 해킹당할 수 있느냐 없느냐의 차이입니다. FTP는 비밀번호와 파일을 평문으로 보내 네트워크 스니핑 공격에 완전히 노출됩니다. 반면 SFTP는 SSH 암호화로 모든 데이터를 보호하며, SSH 키 인증으로 추가 보안을 제공합니다.
FTPS는 레거시 환경에서 FTP를 안전하게 업그레이드할 수 있는 중간 단계입니다. 암호화를 제공하지만 방화벽 설정이 복잡하고 최신 개발 환경과의 호환성이 떨어집니다. 가능하다면 SFTP를 선택하고, 불가능한 상황에서만 FTPS를 차선책으로 고려해야 합니다.
AI 학습이나 개발에 입문하면서 서버를 처음 사용하는 순간, FileZilla 같은 클라이언트에서 프로토콜을 선택할 때 반드시 SFTP를 선택해야 합니다. 특별한 사유가 없는 한 FTP는 사용하지 말아야 하며, 호스팅 업체나 서버 관리자가 FTP 정보를 제공하더라도 SFTP 접속 정보를 요청하는 것이 안전합니다.
보안은 사건이 일어난 후에는 복구할 수 없습니다. 처음부터 안전한 방법을 선택하는 것이 가장 확실한 보호입니다.