侵入者の視点から防御を考えるため、まず侵入者がどのようにして侵入してくるのかを知る必要があります。現在、より一般的な Web 侵入方法は、まずプログラムの脆弱性を探して Web サイトの Web シェルを取得し、次に対応する悪用可能な方法を見つけてサーバーの構成に基づいて権限を昇格し、サーバーのアクセス許可を取得するというものです。そのため、サーバーと連携してWebシェルを防ぐ設定を行うことが有効な方法です。
1. データベースの違法ダウンロードを防止する
ネットワーク セキュリティに多少の知識がある管理者は、インターネットからダウンロードした Web サイト プログラムのデフォルトのデータベース パスを変更することがあります。もちろん、非常に不注意な管理者もおり、データベース パスの変更はおろか、説明ファイルの削除もせずに、プログラムを入手して自分のサーバーに直接インストールします。このようにして、ハッカーはソース コード サイトから Web サイトのソース プログラムを直接ダウンロードし、それをローカルでテストしてデフォルトのデータベースを見つけ、データベースをダウンロードして内部のユーザー情報とデータ (通常は MD5 暗号化) を読み取り、管理者を見つけることができます。にアクセスしてログインし、WebShell を取得します。もう 1 つの状況は、プログラム エラーにより Web サイト データベースへのパスが公開されることです。では、これを防ぐにはどうすればよいでしょうか。mdb の拡張マッピングを追加します。以下に示すように:
IIS を開いて MDB マッピングを追加し、mdb をダウンロードできない他のファイルに解析できるようにします: 「IIS プロパティ」 - 「ホーム ディレクトリ」 - 「構成」 - 「マッピング」 - 「アプリケーション拡張機能」 を選択し、.mdb ファイルを追加します。データベース ファイルにアクセスできない限り、解析に使用するファイルを自分で選択できます。
この利点は次のとおりです。 1. mdb サフィックス形式のデータベース ファイルは絶対にダウンロードされません。 2. サーバー上のすべての mdb ファイルに対して機能するため、仮想ホスト管理者にとって非常に便利です。
2. アップロードを禁止する
上記の構成では、MSSQL データベースを使用している場合、注入ポイントがある限り、注入ツールを使用してデータベースを推測できます。ファイルのアップロード時に認証がまったく行われない場合は、ASP トロイの木馬を直接アップロードしてサーバーの Web シェルを取得できます。
アップロードに関してまとめると、アップロードできるディレクトリには実行権限が与えられず、実行できるディレクトリにはアップロード権限が与えられません。 Web プログラムは IIS ユーザーによって実行されます。必要なのは、IIS ユーザーに特定のアップロード ディレクトリへの書き込み権限を付与し、その後、侵入者がアップロードを通じて Web シェルを取得できないように、このディレクトリからスクリプトの実行権限を削除することだけです。設定方法: まず、IIS Web ディレクトリでアクセス許可タブを開き、IIS ユーザーにディレクトリの読み取りとリストのアクセス許可のみを与えます。次に、アップロードされたファイルとデータベースが保存されているディレクトリに入り、IIS ユーザーに書き込みアクセス許可を追加します。これら 2 つのディレクトリの「プロパティ」-「実行許可」オプションで「Pure Script」を「None」に変更するだけです。以下の図を参照してください。
最後にもう一度注意してください。上記の権限を設定するときは、親ディレクトリの継承の設定に注意する必要があります。無駄な設定は避けてください。
[カットページ]
3. MSSQL インジェクション
MSSQL データベースを防御するには、まずデータベース接続アカウントから始める必要があると言います。データベースには SA アカウントを使用しないでください。 SA アカウントを使用してデータベースに接続すると、サーバーに障害が発生します。一般に、データベースが正常に実行できる場合は、DB_OWNER 権限アカウントを使用してデータベースに接続できます。パブリック ユーザーを使用するのが最も安全です。データベースに接続するための dbo 権限を設定した後、侵入者は基本的にユーザー名とパスワードを推測するか、差分バックアップを行うことによってのみ Web シェルを取得できます。前者については、管理バックグラウンドのデフォルトのログイン アドレスを暗号化して変更することで防御できます。 。差分バックアップの場合、その条件はバックアップ権限を持ち、Web のディレクトリを知っていることであることがわかっています。 Web ディレクトリの検索は、通常、ディレクトリを横断して検索するか、レジストリを直接読み取ることによって行われます。これら 2 つの方法では、どちらも 2 つの拡張ストアド プロシージャ xp_regread と xp_dirtree を使用します。もちろん、対応する dll ファイルを一緒に削除することもできます。
ただし、プログラム エラーが原因で Web ディレクトリが公開された場合は、何もすることができません。したがって、アカウントの権限を低くする必要があり、バックアップ操作を完了できなくなります。具体的な操作は次のとおりです。 このアカウントのプロパティ - データベース アクセス オプションで、対応するデータベースを選択し、DBO 権限を付与するだけです。他のデータベースは操作しないでください。次に、database-properties-permissions に移動してユーザーのバックアップおよびバックアップ ログのアクセス許可を削除し、侵入者が差分バックアップを通じて Web シェルを取得できないようにします。
[カットページ] 3. MSSQL インジェクション
MSSQL データベースを防御するには、まずデータベース接続アカウントから始める必要があると言います。データベースには SA アカウントを使用しないでください。 SA アカウントを使用してデータベースに接続すると、サーバーに障害が発生します。一般に、データベースが正常に実行できる場合は、DB_OWNER 権限アカウントを使用してデータベースに接続できます。パブリック ユーザーを使用するのが最も安全です。データベースに接続するための dbo 権限を設定した後、侵入者は基本的にユーザー名とパスワードを推測するか、差分バックアップを行うことによってのみ Web シェルを取得できます。前者については、管理バックグラウンドのデフォルトのログイン アドレスを暗号化して変更することで防御できます。 。差分バックアップの場合、その条件はバックアップ権限を持ち、Web のディレクトリを知っていることであることがわかっています。 Web ディレクトリの検索は、通常、ディレクトリを横断して検索するか、レジストリを直接読み取ることによって行われます。これら 2 つの方法では、どちらも 2 つの拡張ストアド プロシージャ xp_regread と xp_dirtree を使用します。もちろん、対応する dll ファイルを一緒に削除することもできます。
ただし、プログラム エラーが原因で Web ディレクトリが公開された場合は、何もすることができません。したがって、アカウントの権限を低くする必要があり、バックアップ操作を完了できなくなります。具体的な操作は次のとおりです。 このアカウントのプロパティ - データベース アクセス オプションで、対応するデータベースを選択し、DBO 権限を付与するだけです。他のデータベースは操作しないでください。次に、database-properties-permissions に移動してユーザーのバックアップおよびバックアップ ログのアクセス許可を削除し、侵入者が差分バックアップを通じて Web シェルを取得できないようにします。