Jeśli przesyłasz pliki przez FTP, jest coś, o czym powinieneś wiedzieć: standardowy FTP wysyła nazwę użytkownika, hasło i każdy plik w postaci całkowicie niezaszyfrowanej. Każdy w tej samej sieci może zobaczyć wszystko za pomocą podstawowych narzędzi do przechwytywania pakietów. To nie jest ryzyko teoretyczne. Podatności w transferach plików doprowadziły do niektórych z największych naruszeń danych w ostatnich latach.
Dobra wiadomość: zabezpieczenie transferów nie jest skomplikowane. Wystarczy używać właściwego protokołu i przestrzegać kilku zasad.
Dlaczego zwykły FTP stanowi problem
FTP został zaprojektowany w 1971 roku, na długo przed tym, gdy bezpieczeństwo internetu stało się kwestią wartą uwagi. Przesyła wszystko w postaci jawnej, łącznie z danymi logowania. W kawiarni z Wi-Fi, przy skompromitowanym routerze lub nawet w korporacyjnej sieci z nieuczciwym aktorem, Twoje pliki i hasła są w pełni narażone.
Nie chodzi tylko o prywatne pliki. W 2023 roku podatność w platformie MOVEit dotknęła ponad 3000 organizacji i szacunkowo 100 milionów użytkowników. W 2024 roku platforma SFTP firmy Finastra została skompromitowana, potencjalnie narażając dane banków na całym świecie. W 2025 roku krytyczne podatności w Wing FTP Server i CrushFTP były aktywnie wykorzystywane w praktyce.
Wzorzec jest wyraźny: transfer plików to wartościowy cel ataku, a używanie niezaszyfrowanych protokołów czyni go trywialnie łatwym do wykorzystania.
SFTP vs FTPS vs FTP: którego używać
SFTP (SSH File Transfer Protocol) to najlepszy wybór dla większości użytkowników. Szyfruje wszystko przez jedno połączenie SSH na porcie 22. Obsługuje uwierzytelnianie kluczem (bez haseł przesyłanych przez sieć), a jego architektura jednokanałowa upraszcza konfigurację zapory sieciowej. Jeśli masz wybór, używaj SFTP.
FTPS (FTP przez TLS) dodaje szyfrowanie SSL/TLS do oryginalnego protokołu FTP. Jest bezpieczny przy prawidłowej konfiguracji, ale dziedziczy dwukanałową architekturę FTP (oddzielne połączenia sterowania i danych), co komplikuje reguły zapory sieciowej i translację adresów NAT. Wymaga też zarządzania certyfikatami SSL. Używaj FTPS, gdy serwer nie oferuje SFTP.
Zwykły FTP powinien być używany tylko w izolowanych sieciach wewnętrznych, gdzie ruch nigdy nie trafia do internetu. Nawet wtedy zastanów się, czy SFTP nie byłby równie łatwy do skonfigurowania.
Używaj uwierzytelniania kluczem SSH
Hasła można odgadnąć, wyłudzić lub przechwycić. Klucze SSH są kryptograficznie silne i praktycznie niemożliwe do złamania metodą brute-force. Klucz RSA 4096-bitowy lub klucz Ed25519 zapewnia bezpieczeństwo, z którym żadne hasło nie może się równać.
Aby wygenerować klucz na Macu, otwórz Terminal i uruchom:
ssh-keygen -t ed25519 -C "twoj-email@przyklad.pl"
To tworzy parę kluczy w ~/.ssh/. Dodaj klucz publiczny do autoryzowanych kluczy serwera. Następnie skonfiguruj klienta FTP (lub FTPull/FTPush), aby używał klucza prywatnego zamiast hasła.
Aby zachować hasło klucza w Pęku kluczy macOS (bez konieczności wpisywania go za każdym razem):
ssh-add --apple-use-keychain ~/.ssh/id_ed25519
Przechowywanie danych uwierzytelniających na Mac
Ważne jest, gdzie przechowujesz dane uwierzytelniające FTP. Niektóre aplikacje przechowują hasła w plikach konfiguracyjnych lub plikach preferencji jako zwykły tekst. Jeśli złośliwe oprogramowanie lub nieupoważniony użytkownik uzyska dostęp do Twojego Maca, te dane są natychmiast skompromitowane.
Bezpiecznym podejściem jest używanie Pęku kluczy macOS, który szyfruje dane uwierzytelniające i chroni je hasłem logowania do Maca. FTPSuite przechowuje wszystkie dane uwierzytelniające połączeń w Pęku kluczy, a nie w plikach aplikacji. Korzysta to z wbudowanego szyfrowania i kontroli dostępu Apple.
Pamiętaj, że infostealer'y dla Mac (jak Atomic Stealer i Banshee) celowo atakują dane Pęku kluczy. Żeby się chronić: aktualizuj macOS, włącz szyfrowanie dysku FileVault, używaj silnego hasła logowania i zachowaj ostrożność przy pobieraniu z nieznanych źródeł.
Lista kontrolna najlepszych praktyk
- Nigdy nie używaj zwykłego FTP do czegokolwiek wrażliwego lub przez internet.
- Preferuj SFTP nad FTPS, gdy oba są dostępne.
- Używaj uwierzytelniania kluczem SSH zamiast haseł, gdy to możliwe.
- Jeśli używasz haseł, niech będą długie (16+ znaków), unikalne i przechowywane w menedżerze haseł lub Pęku kluczy.
- Używaj tylko TLS 1.2 lub 1.3 dla połączeń FTPS. Wyłącz starsze wersje SSL/TLS.
- Weryfikuj certyfikaty serwera dla FTPS. Nie pomijaj walidacji certyfikatu.
- Ogranicz dostęp do serwera według adresu IP, gdy to możliwe.
- Monitoruj logi transferów pod kątem niezwykłych godzin logowania, nieudanych prób uwierzytelniania lub nieoczekiwanych adresów IP.
- Aktualizuj oprogramowanie. Podatności zero-day w serwerach FTP są szybko wykorzystywane.
- Włącz FileVault na Macu, aby zaszyfrować cały dysk i chronić pobrane pliki w spoczynku.
Jak FTPSuite podchodzi do bezpieczeństwa
FTPSuite (FTPull i FTPush) jest zaprojektowany z myślą o tych praktykach:
- Obsługuje FTP, SFTP i FTPS (Explicit i Implicit).
- Przechowuje wszystkie dane uwierzytelniające w Pęku kluczy macOS.
- Obsługuje uwierzytelnianie kluczem SSH dla połączeń SFTP.
- Działa jako natywna aplikacja macOS bez zewnętrznych zależności ani procesów w tle.
Bezpieczeństwo Twoich transferów plików zależy od protokołu, który wybierasz, i od tego, jak zarządzasz danymi uwierzytelniającymi. Narzędzia istnieją. Korzystaj z nich.