FTPでファイルを転送しているなら、知っておくべきことがあります。標準FTPはユーザー名、パスワード、すべてのファイルを完全に暗号化せずに送信します。同じネットワーク上の誰でも、基本的なパケットスニッフィングツールですべてを見ることができます。これは理論上のリスクではありません。ファイル転送の脆弱性は、近年最大級のデータ侵害を引き起こしています。
良いニュースは、転送のセキュリティ確保は難しくないということです。適切なプロトコルを使用し、いくつかの実践を守るだけです。
プレーンFTPが問題である理由
FTPは1971年に設計されました。インターネットセキュリティが懸念事項になるはるか前のことです。ログイン認証情報を含むすべてをクリアテキストで送信します。カフェのWi-Fi、侵害されたルーター、さらには内部に悪意のある人物がいる企業ネットワーク上では、あなたのファイルとパスワードは完全に露出しています。
これは個人ファイルだけの問題ではありません。2023年にはMOVEitファイル転送プラットフォームの脆弱性が3,000以上の組織と推定1億人のユーザーに影響を与えました。2024年にはFinastra社のSFTPプラットフォームが侵害され、世界中の銀行のデータが露出した可能性があります。2025年にはWing FTP ServerとCrushFTPの重大な脆弱性が実際に悪用されました。
パターンは明らかです。ファイル転送は高価値のターゲットであり、暗号化されていないプロトコルの使用は悪用を非常に容易にします。
SFTP vs FTPS vs FTP:どれを使うべきか
SFTP(SSHファイル転送プロトコル)はほとんどのユーザーにとって最良の選択です。ポート22の単一のSSH接続上ですべてを暗号化します。キーベース認証(パスワードがネットワーク上を流れない)をサポートし、単一ポートアーキテクチャによりファイアウォール設定が簡単です。選択肢があるなら、SFTPを使ってください。
FTPS(FTP over TLS)は元のFTPプロトコルにSSL/TLS暗号化を追加します。正しく設定すれば安全ですが、FTPのデュアルチャネルアーキテクチャ(制御接続とデータ接続が分離)を引き継ぐため、ファイアウォールルールとNATトラバーサルが複雑になります。SSL証明書の管理も必要です。サーバーがSFTPを提供していない場合にFTPSを使用してください。
プレーンFTPは、トラフィックがインターネットに触れない隔離された内部ネットワークでのみ使用すべきです。その場合でも、SFTPの設定が同じくらい簡単ではないか検討してください。
SSHキー認証を使用する
パスワードは推測、フィッシング、傍受される可能性があります。SSHキーは暗号学的に強力で、ブルートフォース攻撃はほぼ不可能です。4096ビットRSAキーまたはEd25519キーは、どんなパスワードにも匹敵できないセキュリティを提供します。
Macでキーを生成するには、ターミナルを開いて次を実行します:
ssh-keygen -t ed25519 -C "your-email@example.com"
これにより~/.ssh/にキーペアが作成されます。公開キーをサーバーのauthorized keysに追加します。次にFTPクライアント(またはFTPull/FTPush)でパスワードの代わりに秘密キーを使用するように設定します。
キーのパスフレーズをmacOSキーチェーンに保存して毎回入力しなくて済むようにするには:
ssh-add --apple-use-keychain ~/.ssh/id_ed25519
Macでの認証情報の保存
FTP認証情報の保存場所は重要です。一部のアプリはパスワードをディスク上のプレーンテキスト設定ファイルやplistに保存します。マルウェアや権限のないユーザーがMacにアクセスした場合、それらの認証情報は即座に漏洩します。
安全なアプローチは、認証情報を暗号化してMacのログインパスワードで保護するmacOSキーチェーンを使用することです。FTPSuiteはすべての接続認証情報をアプリ固有のファイルではなくキーチェーンに保存します。これによりAppleの組み込み暗号化とアクセス制御を活用します。
Mac用のインフォスティーラー(Atomic StealerやBansheeなど)は特にキーチェーンデータを標的にすることに注意してください。身を守るには:macOSを最新の状態に保ち、FileVaultディスク暗号化を有効にし、強力なログインパスワードを使用し、不明なソースからのダウンロードに注意してください。
ベストプラクティスチェックリスト
- 機密性の高いものやインターネット経由ではプレーンFTPを使用しない。
- 両方利用可能な場合はFTPSよりSFTPを優先する。
- 可能な場合はパスワードの代わりにSSHキー認証を使用する。
- パスワードを使用する場合は、長く(16文字以上)、一意にし、パスワードマネージャーまたはキーチェーンに保存する。
- FTPS接続にはTLS 1.2または1.3のみを使用する。古いSSL/TLSバージョンは無効にする。
- FTPSのサーバー証明書を検証する。証明書の検証をスキップしない。
- 可能な場合はIPアドレスでサーバーアクセスを制限する。
- 転送ログを監視する。異常なログイン時間、認証の失敗、予期しないIPアドレスに注意する。
- ソフトウェアを最新の状態に保つ。FTPサーバーのゼロデイ脆弱性はすぐに悪用される。
- MacでFileVaultを有効にしてディスク全体を暗号化し、ダウンロードしたファイルを保護する。
FTPSuiteのセキュリティ対策
FTPSuite(FTPullとFTPush)はこれらのベストプラクティスを念頭に設計されています:
- FTP、SFTP、FTPS(ExplicitとImplicit)をサポート。
- すべての認証情報をmacOSキーチェーンに保存。
- SFTP接続でSSHキー認証をサポート。
- 外部依存関係やバックグラウンドデーモンのないネイティブmacOSアプリとして動作。
ファイル転送のセキュリティは、選択するプロトコルと認証情報の管理方法にかかっています。ツールは存在します。活用してください。