(これを回避する方法を見つけたので、今のところ、この問題は純粋に理論的なものです。しかし、それが現れた時点では解決できませんでした。)
Javaを使用して、SSHFTP経由で単一の固定サーバーから一定の間隔でファイルを検出してダウンロードしたいと思います。
リモートサーバー、プロトコル、タイミング、およびファイルは私の制御の範囲外です。リモートサーバーは、信頼できるソースによって制御されます。
私は現在、ファイルのダウンロードとのJava実装を使用ls
しget
ています。
私のクライアントはセキュリティを非常に重視しているため、技術的な迎え角をできるだけ多く防止したいと考えています。
悪意のあるエンティティがリモートサーバーになりすましている、またはリモートサーバーを制御している可能性について考えていると、通常のサーバーが、ls
ファイルの無限のリストで応答する実装、またはget
バイトの無限のストリームで応答する実装に置き換えられる可能性があることに気付きました。 。ある時点で、メモリまたはハードドライブが壊れ、プログラムがクラッシュしました。
ファイルのサイズがわからないと仮定すると、合法的な(ただし大規模な)ダウンロードを停止せずに、このような攻撃を検出して防止する方法はありますか?
事前にファイル数やファイルサイズを確認することを考えていたのですが、それでも攻撃者は私が確認して初めて攻撃を仕掛けることができました。