ユーザーが提供する任意の画像でImageMagickを使用すると、セキュリティ上の懸念があるかもしれないと聞きました。たとえば、以下のリンクは、バッファオーバーフローエクスプロイトがあったことの証拠を提供します。ユーザー画像を扱うWebサービスの一部としてこれを安全に使用できるかどうかは誰にもわかりますか?
ユーザーが提供する任意の画像でImageMagickを使用すると、セキュリティ上の懸念があるかもしれないと聞きました。たとえば、以下のリンクは、バッファオーバーフローエクスプロイトがあったことの証拠を提供します。ユーザー画像を扱うWebサービスの一部としてこれを安全に使用できるかどうかは誰にもわかりますか?
回答:
このセキュリティアドバイザリは2006年のものです。すべてのソフトウェアにはバグがありますが、ImageMagickには他のソフトウェア以上のものがあるとは言いません。真剣に、Webサービスを実装している場合、ImageMagickよりもApacheを介して誰かにハッキングされる可能性が高いでしょう。
つまり、心配する必要はありませんが、すべてのソフトウェアを最新の状態に保ちます。
編集:ところで、私はクライアントがImageMagickを使用したWebサービスを実装するのを手伝いましたが、1つの問題について聞いたことはありません。
はい。セキュリティ上のリスクがあります。ソフトウェアにはバグがあり、それらのいくつかは実行中のシステムを攻撃するために使用できます。
ただし、リスクを最小限に抑えることができます。
ImageMagickを実行するのに十分であるように、最小限の権限を持つユーザーアカウントを作成します。ImageMagickの実行にそのアカウントのみを使用するようになりました
自動セキュリティ更新を有効にする:UbuntuのようなLinuxシステムは、セキュリティ修正を自動的にインストールするように構成できます。これにより、脆弱性が見つかった場合にシステムが脆弱になる時間が短縮されます。Windowsシステムにも自動更新システムがありますが、ImageMagickなどのサードパーティソフトウェアは含まれていません。
いや
ImageMagickは柔軟性のために設計されました。ブラウザの画像処理ライブラリのように細工された入力に対して強化されていません。おそらく、ブラウザよりもImageMagickのようなライブラリで悪用可能なバグを見つける方がずっと簡単でしょう。
ImageMagickでバッファオーバーフローを発見した攻撃者は、それを使用して、ImageMagickを実行しているプロセスの権限で任意のコードを実行できます。
これにより、攻撃者は、特権をさらにエスカレートするために使用できる橋頭headを得ることができます。たとえば、PATHおよびトロイの木馬攻撃を介して、他のバックエンドを混乱させたり、本番環境内でパッチ未適用の他のサービスを悪用したりします。
サードパーティのコンテンツでImageMagick を絶対に使用する必要がある場合は、ImageMagickのセキュリティポリシードキュメントの「その他のセキュリティに関する考慮事項」を参照してください。
セキュリティポリシーに加えて、ImageMagickをより安全にすることができます...
- ImageMagickを最新の状態に保ちます。最新リリースには、過去に発見したセキュリティ上の欠陥に対する修正が含まれています。
- ImageMagickに渡すファイル名またはコマンドラインオプションをサニタイズします。
- DockerなどのサニタイズされたソフトウェアコンテナーでImageMagickを実行する。
- ImageMagickを最も特権の低いユーザー(例: 'nobody')として実行します。画像ファイルの種類を明示的に設定します。たとえば、image.pngではなくファイル名png:image.pngを使用します。ファイル名に明示的な画像タイプがない場合、ImageMagickは画像タイプを推測します。