web-dev-qa-db-ja.com

伝播ベクトルとして機能することを軽減するサーバー上のセキュリティ対策とウイルス対策

他のユーザーが表示およびダウンロードできるドキュメントをユーザーがアップロードできるようにする機能を追加するように依頼されたWebアプリケーションがあります。これらのドキュメントは通常、最初はPDF形式ですが、将来的には他のオフィス形式に拡張される可能性がある画像と監査ドキュメントになります。ファイルをアップロードまたはダウンロードできる各ユーザーは、最初に認証する必要があります。サーバーはDebianを実行します。

この機能を使用すると、私たちのサーバーは、次のシナリオを通じてウイルスの配布ベクトルになる可能性があります。

  1. ユーザー1がウイルスを含むファイルをアップロードし、
  2. サーバーはファイルをダウンロードできるようにし、
  3. ユーザー2は感染したファイルをダウンロードし、ウイルスを増殖させます。

この脅威を緩和するために、すべてのファイルが安全なフォルダーにサーバーにアップロードされ、チェックされ、すべてのチェックに合格した場合にのみダウンロード可能になる隔離メカニズムを実装することを考えていました。私が念頭に置いていたセキュリティチェックは次のとおりです。

  • 許可するファイルタイプのホワイトリストを用意し、そのタイプではないファイルを拒否
  • 実際のファイルのタイプがPOSTリクエストでアドバタイズされたものと同じであることを確認し、不一致があるファイルを拒否します。
  • ファイルに対してウイルス対策を実行します。

特定のファイルタイプに固有のフィルターを含めることもできます。たとえば、「サニタイズされた」バージョンを保存するために、ImageMagickを通過させることができます。同様に、ドキュメントファイルを部分的に解析して、ファイルからいくつかの情報を抽出し、さらにチェックを実行できる必要があります。

これらのチェックを実装するための私の現在のアイデアは次のとおりです。

  • file -iを使用してファイルタイプを確認します。
  • ウイルス対策としてClamAVを使用します。

考えるべき他の攻撃ベクトルや、実装すべき他のチェックはありますか?

ClamAVはファイルのウイルスをチェックするための正しいツールですか?

10
Bruno Girin

Clamav自体は、最良の代替製品と同等ではありません。最良の結果を得るには、複数の検出エンジンを使用してください 比較レビュー で十分に評価されています。検出率が最も高いエンジンは、一般に誤検出が多くなるため、後で手動でチェックするために、矛盾する結果を検疫することを検討してください。 cuckoo sandbox のような自動化されたサンドボックス分析ツール、および virustotal's API のようなオンラインのサードパーティサービスも利用できます(他のサービスには [〜#〜] nda [〜#〜] )。

ファイルの種類と拡張子は、ホワイトリストベースでフィルタリングする必要があります。多くの場合、サーバー側の言語にはファイル認識ライブラリが含まれており、file -iの追加または代替として使用できます。ユーザーは、コンテンツをスキャンできない暗号化されたドキュメントまたはZipファイルをアップロードすることを許可されるべきではありません。

Responsibilityaccountabilityは、ユーザーが愚かであったり不注意であったりする前に2度考えるのに役立ちます。すぐに感染を報告するように依頼してください。マルウェアをアップロードする可能性が高いため、マルウェアのアップロードを追跡します。 Webサイトの使用パターンにより、資格情報の漏洩と悪意のある動作が明らかになる可能性があります。

全体的なセキュリティに対する単一の最も効果的な緩和策は、指定された企業部門と連携して準備されたユーザーのための認識Webページかもしれません。これにより、そもそもユーザーマシンの感染を防ぐことができます。それは技術的な測定ではなく、あなたの範囲外であり、あなたの他の努力の認識された価値を最小にするかもしれないことに注意してください。

2
Enos D'Andrea