Windows system >> Windowsの知識 >  >> コンピュータソフトウェアのチュートリアル >> サーバー技術 >> サーバーについて >> FTPサービスプログラムの安全でない要因の調査

FTPサービスプログラムの安全でない要因の調査

  

FTP(File Tranfer Protocol)は非常に古いプロトコルであり、Unix、FTPから使用されています。マルチユーザー同時ダウンロード機能を提供できないためです。 FTPは一般的にアカウントとパスワードを必要とし、アカウントごとに異なる権限を与えることができるため、継続的な開発では、ftpを使用してコマンドをリモートで実行することもできます。今日はとても人気があります。ただし、FTPサービスで発生する可能性があるセキュリティ問題について説明します。

FTP接続には通常2つの接続があります。1つはクライアントとサーバーの転送コマンド、もう1つはデータ転送接続です。 FTPサービスプログラムは一般的に二つの異なるモードをサポートしています、一つはポートモード、もう一つはパッシブモード(Pasvモード)です。


最初に、クライアントがCで、サーバーがSであると仮定します。

ポートモード:

クライアントCがサーバーSに接続するときに使用します。ポートモードでは、クライアントCはサーバーSにポートコマンドを受信すると、サーバーSに通知するコマンドを送信し(クライアントCはローカルにポートNを開いてデータ接続を開始する)、クライアントSに送信します。開いているポートNが接続され、このデータ接続が生成されます。

Pasvモード:
クライアントCがサーバーSに接続すると、サーバーSはメッセージをクライアントCに送信します。この情報は次のとおりです。今すぐ接続します。)クライアントCがこのメッセージを受信すると、サーバーSのMポートに接続できます。接続が成功すると、データ接続も確立されます。

上記の説明から、2つのモードの主な違いは、データ接続の確立の違いであることがわかりますポートモードでは、クライアントCがポートを開き、他のサーバーSが接続します。データ接続; Pasvモードでは、サーバーSはポートを開き、クライアントCがデータ接続を確立するのを待ちます。

2つのモードは問題ないようですが、すべてセキュリティ上の問題を隠しています。

ポートモードでは、サーバーにファイアウォールがあり、クライアントに接続させるためにPasvを使用してサーバーのポートを開くことができず、強制的に使用されるため、このモードが主に使用されます。接続自体が本質的にセキュリティ上の問題です。接続がハイジャックされた場合、接続はサーバー自体によって接続されているため、ファイアウォールがその接続を処理するためのアクションを実行しないためです。

Pasvモードでは、Portモードよりもはるかに安全に思えますが、真剣に考えても、それでも問題はあります。サーバは接続するためにポートと他のクライアントを開くでしょうが、開いたポートが接続されたIPがクライアントのIPであるかどうかを検出しない場合、セキュリティ問題が発生します。多くのFTPサーバーオープンデータポートがあり、他のクライアント接続はランダムであるため、特定の範囲内、例えば20000から21000の間になります。データポートの接続を受信したときにFTPサーバーが接続されたIPがすでに正規のログインユーザーであるかどうかを検出しない場合、ログインしていない他のユーザーがプログラムハイジャックを作成する可能性があります。以下に例を示します。

サーバーSはPasvモードを使用してクライアントC(IP = 12.12.12.12)コマンド接続を受信し、サーバーSはポート20000を開いてデータ接続を待ちます。このとき、ハッカー(IP = 11.11.11.11)は、サーバSの20,000〜20100のポートをスキャンし、20,000のポートが開かれていることを知り、すぐにサーバSの20000のポートに接続しました。この場合、サーバSが11.11.11.11のIPが合法的にログインしているユーザのIPであるかどうかを検出しない場合、クライアントCがそれをサーバに送信すれば、実際のクライアントCのデータ接続がハイジャックされる。 Sのコマンドはファイルをダウンロードすることです、そしてそのファイルはハッカーにだけ送られるでしょう。この場合、ハッカーはランダムにスキャンして異なる接続に乗っ取ったり、同時にそれらのポートに接続したりすることができます。その後、正規のユーザーの接続が頻繁に乗っ取られ、その後ハッカーが行うことになります。ハッカーの能力と彼がやりたいこと

解決策:

ポートモードの場合、それはFTP自体の問題であるため、それを解決する良い方法はありません。可能であれば、Pasvモードを許可し、Portモードを許可しないでください。

Pasvモードでは、データ接続を受信したときにIPが正当なユーザーからの要求として検出される限り、接続がハイジャックされる問題を回避できます。

上記のハイジャック接続は、より高度な"ハッカー"にしか接続できません。FTPサービスプログラムが異なるため、通常は最初にFTPサービスを調査する必要があります。プログラムを実装してからプログラムを書くことだけが可能です。以下は、セキュリティのためにFTPサービスプログラムを書くことによって、平均的なユーザがFTPを通してシステムに侵入することができるという問題について話します。

この問題は通常非常に一般的であり、一般に、ユーザーがFTPにログインした後にジャンプできるディレクトリに対する権限制限です。

anonymouse ftp(aftp)そのクラスのようなたくさんの使われているFTPプログラム(最も基本的なFTPサービス、アップロード、ダウンロードのみを提供、ユーザー名とパスワードさえその種類を必要としない)はログインを制限しないでしょうユーザがジャンプできるディレクトリ、つまりログインしたユーザは、システム内の異なるディレクトリのファイルを表示したり、異なるディレクトリのファイルをダウンロードしたり、任意のディレクトリにファイルをアップロードしたり、任意のファイルを任意のディレクトリにアップロードしたりできます。問題がどれほど深刻であるか、私はそれを言う必要はありません。

いくつかのFTPプログラムは、ユーザー名とパスワードを提供しますが、ディレクトリへのユーザーアクセスに制限はありません、xfocusが生成します、xftpdはユーザーログイン後の良い例です、同じことができます。前述のように、ユーザーはシステムから任意のファイルをダウンロードしたり、任意のディレクトリに任意のファイルをアップロードすることができます。
いくつかのFTPはディレクトリへのアクセスを制限するほど包括的ではないので、ログインユーザはいくつかの特殊文字を使って制限されたアクセスディレクトリにアクセスできます。良い例はslimftpdの古いバージョンです。この状況は一般的に「ディレクトリトラベリングの脆弱性」と呼ばれており、多くの古いバージョンの共有FTPサーバーではこれらの問題が発生しています。

もしあなたがFTPサーバを設定したいのなら、私が与えることができるアドバイスはもっと安定した安全なFTPプログラムを選ぶことです(もちろんあなたはそれを自分で書くことを考えることができます)。セキュリティの問題は自分でチェックします、あなたがそれを自分で書いた場合、あなたはユーザーをテストするためにいくつかの無料版(フル機能ではない)をリリースすることができます。

上記はFTPサービスプログラムを開発する際に友人とFTPプロトコルを研究するときに注意を払うことについてのすべてですが、テスト中に間違っていることも避けられません。投稿に従ってください。

Copyright © Windowsの知識 All Rights Reserved