SQLiの脆弱性WebアプリケーションがSELinux
Linuxシステムで強制モードで実行されているとします。 MariaDBは、root以外のユーザーとして実行されます(例:)db_user
。私たちがSQLiの脆弱性を悪用しようとし、INTO OUTFILE
サーバーのWebルートに悪意のあるPHPファイルを生成しようとしているとしましょう(現在の場所がそこにあるとします)。 AFAIK Webサーバーは、www-rootなどの独自のユーザーコンテキストで実行する必要があります。 SELinuxは、この悪意のあるファイルがWebルートに書き込まれるのを防ぎますか?ログファイルでこの試みを見ることはできますか?それでは見に行きましょうか?
ありがとうございます!
答え1
私はSELinuxの専門家ではありませんが(AppArmorを使用しています)、一般的にこれを言いたいと思います。できるこれらの攻撃は防ぎますが、これは構成によって異なります。
一般的にSELinuxはSQL Server/var/lib/mysql
です/var/log/mysql
。これらの場所では、安全でないアプリケーションがそのファイルやディレクトリにアクセスする前に行くことができる場所はありません(そしてUnix権限またはSELinuxを介して停止する必要があります)。
これらのルールに違反する試みはログファイルに記録され、場所はauditd
展開によって異なります。
ただし、ここにはいくつかの注意事項があります。
INTO OUTFILE
これにより、アプリケーション内の使用が大幅に制限されます。- 攻撃者がSQLインジェクションにアクセスして出力ファイルを生成する場合は、さまざまな選択肢を作成し、アプリケーションからデータをスクラップするなど、さまざまな方法でデータを取得することもできます。より多くの作業が必要ですが、かなり自動化できます。
はい。正しく設定すると、これらの攻撃を防ぐことができますが、通常、SQLインジェクション攻撃は防げず、SQLインジェクション攻撃に依存する攻撃だけを防ぎます。INTO OUTFILE