FTPセキュリティリスクとより安全な代替案
キーポイント:
しかし、これはあなたとあなたのビジネスにセキュリティの問題を引き起こす可能性があることを知っていますか?この状況に深く飛び込みましょう。
filezilla、 cyberduck、送信またはキャプテンftpなどなどのプログラムは安全です。他の人が視聴を防ぐために、パスワードを隠すなどの測定値を実装する場合があります。ただし、FTPを使用してデータを転送する場合、これらの測定値は実際に弱くなります。 私がこれを書いた理由は8月のSitePointでの興味深い議論だったと率直に言った。議論は主にFilezillaに焦点を当て、それがどれほど安全でない(またはそうでないか)について一連の主張をしました。
議論の重要な側面は、パスワードをFilezillaに保存する必要があるかどうかに焦点を当てています。コメントの1つは、ソフトウェアを使用するときに資格情報が隠されているが、保存すると簡単に取得できることを示す説明的な記事にリンクしています。
この記事を読んでいない場合、Filezillaは次のように接続の詳細を簡単なXMLファイルに保存します。
接続に関する多くの情報を保存しているので、覚えておく必要はありません。ただし、パスワードをPlantextに保存していることに注意してください。
<?xml version="1.0" encoding="UTF-8" standalone="yes"?><filezilla3></filezilla3> <servers></servers> <server></server> <host>localhost</host> <port>21</port> <protocol>0</protocol> <type>0</type> <user>anonymous</user> <pass>user</pass> <logontype>1</logontype> <timezoneoffset>0</timezoneoffset> <pasvmode>MODE_DEFAULT</pasvmode> <maximummultipleconnections>0</maximummultipleconnections> <encodingtype>Auto</encodingtype> <bypassproxy>0</bypassproxy> <name>test site</name> <comments> </comments> <localdir> </localdir> <remotedir> </remotedir> <syncbrowsing>0</syncbrowsing>test site > > >
ただし、コンピューターにアクセスできる場合は、コンピューターからパスワードを抽出することは意味がありません。公平を期すために、Filezillaの最新バージョンでは、パスワードストレージはデフォルトでは許可されていません。
誰かが、少なくとも構成ファイルを暗号化するか、1PasswordやKeepAssxのようにアクセスを許可する前にマスターパスワードを要求する方法で設定する必要があることを提案しました。
ルイス・ラザリスは、この見解に反論するために、スタック交換に関する議論にリンクします。この記事のコアコンテンツは次のとおりです。
ご覧のとおり、資格情報を暗号化するには、どこかに保存する必要がある暗号化キーが必要です。ユーザーアカウントでマルウェアを実行している場合、彼らはあなた(または同じレベルで実行されている他のアプリケーション)と同じくらい多くあります。これは、暗号化キーまたは暗号化キーなどを暗号化するキーなどにもアクセスできることを意味します。
上記の主張は、1PasswordやKeepAssxなどのプログラムの設計上の考慮事項を完全には理解していないと考えています。パスワードやその他の安全な情報の安全な金庫として特別に設計されたアプリケーションは、この答えが示唆するほど簡単にクラックすることはできません。
たとえば、1Passwordによる最近のブログ投稿には、ハッカーに対する重要なメカニズムがリストされています。これらには、128ビットと256ビットの対称キー、SHA512およびPBKDF2暗号化、および使いやすさとシンプルさを維持しながら、アクセスされたデータファイルを保護するための他のさまざまな機能が含まれます。
したがって、特にこれらの利用可能なすべての技術を考えると、安全な暗号化されたボールトを使用することは実際にはそれほど安全ではないと推測するのは間違っています。
はFTPであり、アプリケーションではありません!
ただし、FTP自体を使用するとキーポイントが無視されるため、資格情報を保存する必要があるかどうかについての議論は無関係です。資格情報とデータはプレーンテキストで送信されます。信じない? DeccanHostsブログでFTPが安全でない理由をお読みください。この情報を長い間.iniと構成ファイルに保存することが一般的な慣行であることを考えると、WordPress、Joomlaなどのかなりの量の容易なロードソフトウェアがこれで開発されることをお勧めします。方法。
FTPはセキュリティのために設計されていません。このデザインには、本質的にセキュリティを考慮に入れない一連のさらなる仮定が含まれています。 ZendのシニアソフトウェアエンジニアであるEnrico Zimuelは、さらにはFTPを使用しないでください。
はい、セキュリティの変更は後で出てきましたが、組み込みではなく添付されていました。ブルートフォースの攻撃に対する保護はありません。SSHトンネリングは可能ですが、コマンドとデータチャネルを暗号化する必要があるため困難です。したがって、あなたの選択は限られています。難易度係数は、それらを実装しようとするときに必ずしも些細なものではありません。
あなたはウェブサイト管理者ですか? FTPユーザーのChroot Jailを有効にしましたか? Chrootという用語に慣れていない場合は、ユーザーの動きとアクセスを制限する方法です。ログインするディレクトリから始めて、任意のサブディレクトリに移動できますが、そのディレクトリの外側に移動することはできません。
ftp
の代替案私はあなたにすべてがひどいことを納得させる前に、そうではありません。今日のFTPプログラムの一部、特に上記のプログラムは、より安全なFTP派生物と代替案もサポートしています。それらを見てみましょう。
FTPSは安全なFTPです。HTTPSが安全なHTTPと同様に、SSL(セキュアソケット層)とTLS(輸送層セキュリティ)の上で実行されます。ユーザーの資格とデータは、最初に暗号化されてから送信されます。
サーバーが許可している場合、クライアントソフトウェアは、すべてではなく通信の一部のみを暗号化する柔軟性もあります。現在の議論に基づいて、これは直感に反するようです。
ただし、転送されたファイルが暗号化されている場合、または機密性のある性質の情報が送信されない場合、暗号化に必要なオーバーヘッドがない場合があります。ただし、FTPに切り替えるには価格(および価格)があります。 FTPを使用するには、自己署名のSSL証明書を生成するか、信頼できる証明書当局から証明書を購入する必要があります。したがって、より良いセキュリティが利用可能ですが、より多くの労力とコストが必要です。
しかし、あなたが戻ってくる前に、あなたの情報はあなたのビジネスにいくら価値があるかを自問してください。これはあなたがそれに固執するように説得するかもしれません。
今すぐSFTPを見てみましょう。 SFTPまたはSSHファイル転送プロトコルは、FTPSとは異なる方法で機能します。 SFTPはSSH 2.0の拡張として設計されており、通常のFTP接続を作成しますが、すでに暗号化された接続で実行されます。 FTPデータストリーム自体は通常のFTPよりも安全ではありませんが、実行する接続はより安全です。
SSH、SCPおよびその他のログインシェル
単純なユースケースでは、すべてのファイルをローカルディレクトリからリモートコンピューターのディレクトリに再帰的にコピーするために使用できます。最初の実行のとき、すべてのファイルがコピーされます。
2番目と後の実行では、ファイルの違いをチェックし、異なる新しいファイルのみを転送し、リモートコンピューターに存在しなくなったローカルファイルとディレクトリを削除するオプションがあります。
問題は、このアクセスを許可すること自体がセキュリティの問題であることです。しかし、効果を減らすことができます。 OpenSSHを使用すると、ルートアクセスを許可しない、リモートでログインできるユーザーの制限、特定のディレクトリにユーザーを閉鎖するなど、多くの構成オプションが可能になります。
たぶん、ユーザーはリモートコンピューターにいる必要がないかもしれませんし、そこにいるときに多くのアクセス許可を必要としないかもしれません。もしそうなら、おそらく、これらの状況に適応するように設計された多くのシェルから選択できます。
2つのベストは、scponlyとrsshです。 scponlyを使用すると、ユーザーはリモートコンピューターのみにファイルをコピーできます。
ユーザーは、ファイルをログイン、移動、表示、または変更することはできません。良いことは、rsync(およびその他のツール)を使用できることです。 RSSHはさらに一歩進んで、SCP、SFTP、RDIST、RSYNC、CVSへのアクセスを許可します。
それを実装するために、システム管理者は選択したツールを使用してユーザーのシェルを変更し、 /etc/rssh.confを編集して許可されたプロトコルをリストします。サンプル構成は次のとおりです
<?xml version="1.0" encoding="UTF-8" standalone="yes"?><filezilla3></filezilla3> <servers></servers> <server></server> <host>localhost</host> <port>21</port> <protocol>0</protocol> <type>0</type> <user>anonymous</user> <pass>user</pass> <logontype>1</logontype> <timezoneoffset>0</timezoneoffset> <pasvmode>MODE_DEFAULT</pasvmode> <maximummultipleconnections>0</maximummultipleconnections> <encodingtype>Auto</encodingtype> <bypassproxy>0</bypassproxy> <name>test site</name> <comments> </comments> <localdir> </localdir> <remotedir> </remotedir> <syncbrowsing>0</syncbrowsing>test site > > >
ssh key
最初に、サーバーの公開キーは、残りのセッションを保護するために使用される対称キーを交渉し、チャネルの機密性、整合性保護、およびサーバー認証を可能にする対称キーを交渉することにより、安全なSSHチャネルを構築するために使用されます。チャネル関数が安全になると、ユーザー認証が実行されます。
ただし、コンピューターにログインするときにこれをユーザーセッションにリンクできるツールがあります。正しく設定すると、パスワードが自動的に提供されるため、システムを最大限に活用できます。次に、サーバーはランダムな値を作成し、ユーザーの公開キーで暗号化して送信します。ユーザーがユーザーが必要な場合、チャレンジを復号化してサーバーに送り返すことができます。これにより、ユーザーのIDが確認されます。これは、古典的なチャレンジ応答モデルです。
このテクノロジーの重要な利点は、秘密鍵がクライアントを離れることはなく、ユーザー名やパスワードを送信しないことです。誰かがSSLトラフィックを傍受し、それを解読できる場合(破損したサーバーの秘密鍵を使用して、またはサーバーに接続するときに間違った公開キーを受け入れる場合)、プライベートの詳細は攻撃者の手に渡ることはありません。
SCPまたはSFTPで使用すると、セキュリティを改善しながら使用するために必要な作業量がさらに減少します。 SSHキーには、プライベートキーのロックを解除するためにパスワードが必要になる場合があります。これにより、使用がより困難になるようです。
継続的な配達はどうですか?
たぶん、この用語は聞いたことがないかもしれませんが、しばらく前から存在しています。先週、SitePointで以前に書いたことがあります。 Martin Fowlerによって作成された継続的な配信は、次のように定義されています。
それを実装するには多くの方法がありますが、CodeshipやBeanStalkなどのサービスは大部分が痛みを排除します。以下は、どのように機能するかについての大まかな比phorです。テストコードや展開スクリプトを含むソフトウェアプロジェクトを設定し、これらすべてをバージョン制御下に保存します。 GithubやBitbucketなどのオンラインサービスを使用していると仮定しています。
コードブランチでコミットまたは公開した後、サービスはこれらのサービスのいずれかにプッシュされるたびにアプリケーションのテストを実行します。テストが合格した場合、アプリケーションはテストであろうと生産であろうと展開されます。
すべてがうまくいく限り、それはあなたのための展開を自動的に処理します。その後、展開が成功または失敗するという通知を受け取ります。
成功した場合は、次の機能またはバグ修正に進むことができます。何かがうまくいかない場合は、問題の原因を見つけるためにそれをチェックできます。コードシップを使用して実際にテストリポジトリを展開するプロセスを示す短いビデオをご覧ください。
何をしなければならないの? Githubリポジトリへのプッシュコミット - それだけです!スクリプトを実行することを覚えておく必要はありません。スクリプトは、スクリプトが渡すオプションとスイッチを渡すことを覚えておく必要はありません(特に金曜日の夜に遅くなる場合は、仕事よりもどこにでもあります)。
これはかなり単純であり、すべてのオプションや微妙さをカバーしていないことを理解していますが、私が意味することを理解しています。
最後に、FTPを使用することの基本的なセキュリティ問題から、日常の使用の有効性に移行しましょう。たとえば、eコマースストアなどのウェブサイトを開発しているとし、展開プロセスではFTP、特にFilezillaを使用しているとします。 ここに、ヒューマンエラーに関連するいくつかの固有の問題があります:
すべてのファイルは正しい場所にアップロードされていますか?
filezilla
に謝罪します
filezillaをターゲットにしているかのように表示したくありません。それは私が何年も使用してきた非常に良いアプリです。そして、テクノロジーはそれをより安全にしようとするために使用されてきました。要約
これは、FTPセキュリティの議論に関する私の意見です。私のアドバイス - それを使用しないでください。展開を管理するときはセキュリティに留意してください。結局のところ、これはあなたのデータです。
FTPプログラムを使用するリスクを軽減する方法は?
FTP、SFTP、FTPSの違いは何ですか?
今日でもFTPを使用していますか?
私のFTPプログラムが安全かどうかを見分ける方法は?
FTPプログラムでVPNを使用してセキュリティを強化できますか?
ブルートフォース攻撃とは何ですか?また、FTPにどのように影響しますか?
FTPプログラムをスプーフィング攻撃から保護する方法は?
パケットキャプチャとは何ですか?また、FTPにどのように影響しますか?
以上がFTPプログラムは安全ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。