web-dev-qa-db-ja.com

キーロガーWebアプリケーション保護

Webアプリケーションのセキュリティを改善しようとしています。アプリケーションには管理サイトがあり、キーロガーは私が解決しようとしている懸念事項です。アプリケーションは、キーロガーが正しく機能しない原因となる可能性がありますか?私はキーストローク干渉ソフトウェアについて読みました(各ユーザーのキーストロークに対して、ユーザー入力を妨げないキーストロークをランダムに追加します)。JavaScriptでそのようなことを行うことはできますか?

21
Schockey

多くのアプリケーションは、複雑な(そして面倒な)パスワード入力方法を使用して、キーロガーやスパイウェアをだまそうとする無駄な試みを行っています。キーロガーに対抗できるものはなく、多くの場合、パスワードマネージャーを使用するのが難しくなるため、実際にはユーザーの安全性が低下します。

この種のことを処理する最良の方法は、ワンタイムパスワードを使用することです。 TOTP( RFC 6238 )は多くのソフトウェア認証システム(Google認証システムなど)で動作するので、実装が簡単で安価であり、無料で使用できます。 。ただし、ユーザーが設定してスマートフォンを持っている必要があります。

SMSを介してワンタイムパスワードを送信する別のアプローチ。これは少し高価です(メッセージを送信する必要があるため)が、ユーザーにとっても簡単です(携帯電話のみを必要とし、セットアップは必要ありません)。

56
Stephane

キーロガーを個別に扱っていた場合、リスクを軽減できる可能性があります(たとえば、スクリーンキーボード、2FAなどを使用)。ただし、攻撃者がシステムにキーストロークロガーをインストールできる場合は、その可能性が非常に高いです。 (物理的なキーストロークロガーは別として)問題のシステムへの特権アクセスを持っているため、他の保護を回避できる可能性が高い(そうする意欲があると想定)

たとえば、これがWebアプリケーションであるため、2FAを実装するとします。ユーザーが認証されると、セッショントークンが発行され、アイドルタイムアウトが発生するか、ユーザーが明示的にログアウトするまで、通常は有効のままです。攻撃者がシステムへの特権アクセスを持っている場合、攻撃者は「キープアライブ」要求を発行してアイドルロックアウトを防ぎ、ブラウザインジェクションを使用してログアウトを無効にすることが可能です。

侵害されたクライアントから特権システムにユーザーがアクセスすることを懸念している場合、より良い解決策は、専用デバイスまたはロックダウンされたデバイスを利用し、それらのデバイスのみへのアクセスを制限することです。

16
Rory McCune

JavaScriptは低システムコールを制御できず、それらを変更してそのキーストロークの干渉を取得できません。ユーザーモードのソフトウェア保護でさえ、カーネルモードのキーロギングによって無効になります。

簡単に実装できるオンスクリーンキーボードを使用して、ハードウェアキーロガーから保護できます。

ソフトウェアのキーロガーはより強力です。スマートバンキングのトロイの木馬は、バンキングのWebサイトでマウスをクリックすると、HTTPリクエストとスクリーンショットもキャプチャします。 スティールワンタイムパスワード または バイパス もあります。

5
Cristian Dobre

キーストローク(手動パスワード入力)またはコピー/貼り付け(パスワードマネージャー)を記録するキーロガーが心配な場合は、マウスを使用する必要があります。

  1. パスワードを入力するための仮想キーボードをユーザーに表示します。これは実際にはあまりユーザーフレンドリーではなく、グローバルに使用するために設定するのは困難です(キーボードレイアウトの地域差)。それでも、「パラノイアではない」ユーザーには、慣れ親しんだ方法でパスワードを入力させます。

または別の(周辺機器)デバイス:

  1. アプリまたはSMSによる2要素認証。
0
ST2OD