ユーザーのコンピューター上のWindowsクライアントバイナリのすべての権限を処理するソフトウェアを使用しています。ソフトウェアは、sa
アカウントを使用してバックエンドデータベースに接続します。 sa
パスワードは暗号化されてクライアントの構成ファイルに格納されますが、クライアントはデータベースで認証する前にそれを復号化する必要があります。
デバッガの使用、メモリダンプの検索、および WinHex によるメモリの直接検索など、さまざまな方法でsa
パスワードを回復できました。この脆弱性をさらに簡単に悪用できるようにするツールやマルウェアがあるかどうか、知りたいです。パスワードは、クライアントプロセスがアクティブである間、MSSQL接続文字列としてメモリに保存されます。
この種の脆弱性を悪用するために接続文字列をメモリで検索することが知られているマルウェアはありますか?これを自動的に実行するユーザーがダウンロードできるツールはありますか、またはこれを活用するために必要な適切な量の技術知識がありますか?
メモリスニッフィングマルウェアは、攻撃者がPOSシステムからアカウント番号を取得するために一般的に使用されています。ほとんどのRAMスクレイパーは、設定可能な正規表現によって駆動され、攻撃者は別のプロセスのメモリでアカウント番号のパターンを検索します。
検索されるパターンは、攻撃者によって完全に構成可能です。このようなソフトウェアが別のアプリのメモリを検索して "Provider ="、 "UID ="、 "PWD ="などのデータベース構成文字列に存在する可能性のある他のデータを検索するのを妨げるものは何もありません。
攻撃者が実際にそうしたかどうかは、科学捜査官(または攻撃者)にとっての問題です。
Windows認証ではなくSQL Server認証を使用することの欠点の1つを示しました。これが、正当な理由がない限り、Windows認証の使用を推奨する理由です。 ここ は、それぞれの長所と短所の説明です。特に:
暗号化されたSQL Server認証ログインパスワードは、接続時にネットワーク経由で渡される必要があります。自動的に接続する一部のアプリケーションは、クライアントにパスワードを保存します。これらは追加の攻撃ポイントです。
ここ は、Entity FrameworkのSQL Server接続文字列を保護する方法を説明する別のMicrosoftの記事ですが、EFを使用していない場合でも同じルールが適用されます。この声明は、彼らが常にWindows認証の使用を推奨する理由を繰り返し述べています。
ログオン情報とパスワードがメモリダンプに表示される場合があることに注意してください。
データソースのログオンとパスワードの情報が接続文字列で提供されると、この情報はガベージコレクションがリソースを再利用するまでメモリに保持されます。これにより、パスワード文字列がメモリに存在しなくなった時期を特定できなくなります。アプリケーションがクラッシュすると、メモリダンプファイルに機密性の高いセキュリティ情報が含まれる可能性があり、アプリケーションを実行しているユーザーとコンピューターへの管理アクセス権を持つユーザーは、メモリダンプファイルを表示できます。 Microsoft SQL Serverへの接続にWindows認証を使用します。
既存のマルウェアアプリケーションがこれを利用するかどうかについてはどうですか?確かに私たちはそれらができることができることを知っています。必要なのは、アプリケーションを、メモリにパスワードを格納する別のアプリケーションのメモリを表示するための十分な権限で実行することだけです。トリッキーな部分は、これを利用するためにメモリがどのように配置されているかを知る必要がある可能性が高いことです。言い換えれば、アプリケーションがどのように機能するかを最初に知ってから、その周りにメモリスニファを構築する必要があるでしょう。たぶんあなたが検索できる一般的なキーワードがあるかもしれませんが、それはかなりの幸運を必要とするでしょう。まだ宝物が残っているかもしれない失われた船を海底で探すようなものです。ある時点で、コスト/報酬はそれだけの価値がありません。
とはいえ、特定の(人気のある)アプリケーションにこの種のセキュリティの欠陥があることがわかっている場合は、そのアプリケーションに合わせて調整されたマルウェアを設計し、そのアプリケーションのユーザーをターゲットにして、自分のアプリケーションをインストールするように説得することができます。同じマシン上のマルウェア。
提供された回答はすべて役に立ちましたが、実際にこれを迅速かつ自動的に実行するツールを指摘したものはありませんでした。自分で構成可能な設定を使用してWindowsプロセスのメモリをすばやくスキャンするものを書きました。他の人に役立つ場合のGithubのプロジェクトは次のとおりです。
攻撃者にとってよりありそうな方法は、単にパスワードを盗聴することだと思います。攻撃者が低レベルの十分なスニッフィングメモリへのアクセス権を持っている場合、パケットスニッファを実行し、暗号化されていないワイヤでSQL Server接続文字列を探すだけの十分なアクセス権も必要です。 (SQL Serverは通常、暗号化されていない接続を持っています)。
さらに、ビジネスアプリケーションには数多くある、暗号化されていない他の接続を傍受できるという利点もあります。適切なスニファアーキテクチャを使用すると、SQL Server接続など、新しく興味深いものをスニファに追加できるようになります。
このマルウェアが存在するかどうかはわかりませんが、SQL Server認証を標的とするものよりもはるかに一般的な目的です。