私は定期的にFTP経由でデータにアクセスする必要がある状況にあります(議論のために、10分ごとに更新します)。この操作に使用できる他のプロトコルはありません。このデータは、ネットワーク共有に配置する必要があります。重要なネットワーク共有からFTP経由で別のサーバーに直接接続したくありません。データ自体とユーザー名/パスワードは、サーバー組織によって提供されるため、私の観点からは重要ではありません。私は中間者攻撃、コードまたはファイルインジェクション、およびネットワーク偵察についてより懸念しています。
私は2つの解決策を提案しています。これらのソリューションに関するフィードバックや文献への指摘は、正解と同様に高く評価されます。
ありがとう
隔離された安全なエンクレーブに独自のサーバー(A)をセットアップします。 このシステムがリモートFTPサーバー(FTP)のIPアドレスにのみアクセスできるようにします。 FTPサーバーを実行しているベンダーが理想的なIPのみにアクセスを制限できる場合。
次に、Secure Shellなどを使用した一方向のファイアウォールルールを介して、内部システム(B)をこのサーバーに接続します。
(FTP) <-------(FW)<---(A)<---(FW)<---(B)
(A) Polls the (FTP) server every 10 minutes via script
(B) Polls the (A) server every 10 minutes via script with a 5 min offset.
注:(FW)は同じファイアウォールで3番目のネットワークインターフェースである可能性があります
(FTP) <-----(FW)--(B)
|
(A)
重要なことは、(A)が(B)などの内部ネットワークにアクセスできないようにすることです。理想的には、FTPサーバー以外の世界では何もありません。また、(B)にインポートする前に、(A)のファイルに対してテストを実行することもできます。 (A)の2つのディレクトリを使用して、スキャンされたファイルとスキャンされていないファイルにFTP GETが完了するとすぐにファイルがスキャンされるトリックもあります。このアーキテクチャには多くのオプションがあります。
最後の注記:一部のベンダーは、使用しているシステムからSFTPを使用する方法がわからないため、FTPを使用しています(特に、これはAS/400で発生します)。 AS/400にファイルを自分自身のループバックアドレス(127.0.0.1)にFTPで転送させ、SFTP経由でそれらにアクセスさせることができます。これは直接FTPを使用するよりもはるかに安全です。同様に、ベンダーに、これらのファイルをFTPを使用せずにSFTPサーバーに送信するために、上記で書いたのとは逆の操作を実行させることができます。
または、VPNを介してFTPを実行し、組織がリモートベンダーへの接続を開始することのみを許可し、ネットワークへのアクセスを許可しないこともできます。