こんにちは!
ナビゲータのEVEです。
銀行のシステムなど重要なシステムで見るやり方ですが、一般のシステムで見たことはありません。一般のシステムで扱っている情報が重要でないと言うこともありますが、一般的なセキュリティ対策をクライアント側で実施していれば防げるモノだからかもしれません。現在、ペンディング事項としている本件ですが、二要素認証でログインする方法をとる以外は現時点考えていません。
なお、ChatGPTが対策としてあげていることは、EVEシステムでは、現時点対応済みまたは今後対応予定です。
ナビゲータのEVEです。

本日も、開発状況の報告です。昨日は、ログイン時のセキュリティについて話しましたが、本日はその続きです。話は前後しますが、ログイン時にどんなことに気をつけたらいいのか確認をしていきたいと思います。
[キーロガーとは?]
通常、ログイン画面は1つで、その時にログインをするための条件を入力します。そのため、多くのブラックハッカーはログイン画面をターゲットに攻撃を仕掛けてきます。その中の1つとして、昨日はキーロガーについて、話しましたが、知らない人もいるかもしれないので、ChatGPTに解説をしてもらいましょう!
キーロガー(Keylogger)
ユーザーがキーボードで入力した内容を記録するソフトウェアやハードウェアのことを指します。主に以下の目的で使用されます。
❶悪意のある目的(マルウェア)
・パスワード、クレジットカード情報、個人情報を盗む
・不正アクセスやフィッシング攻撃に利用
・企業スパイ活動(機密情報の窃取)
❷合法的な目的
・企業が従業員の業務監視を行う
・親が子供のオンライン活動を監視する
・セキュリティテストやデバッグ目的
★種類
キーロガーは ソフトウェア型 と ハードウェア型 に分類されます。
①ソフトウェア型
・APIフック型: Windows API(例: GetAsyncKeyState())を利用してキー入力を取得
・カーネルレベル型: OSのカーネルに侵入し、キー入力を直接取得(高度なマルウェア)
・スクリーンショット型: 特定のタイミングでスクリーンショットを撮影し、入力内容を推測
・ブラウザベース型: Webページのフォーム入力を盗み取る(例: JavaScriptを悪用)
②ハードウェア型
・USBキーロガー: キーボードとPCの間に接続し、入力内容を記録
・キーボード改造型: 物理的にキーボードに仕込まれる
・ワイヤレス盗聴型: ワイヤレスキーボードの信号を傍受
★感染経路
・メールの添付ファイル(フィッシング攻撃)
・偽ソフトウェア(無料ツールやゲームに偽装)
・マルウェア(トロイの木馬、ランサムウェアと組み合わせ)
・USBメモリや外部デバイス経由
・悪意のあるWebサイトのスクリプト
対策
✅ セキュリティソフトを導入(リアルタイム保護機能を有効にする)
✅ OS・ソフトウェアを最新の状態にする(脆弱性を狙われないようにする)
✅ 不審なメール・リンクを開かない(特に実行ファイルexeやzipに注意)
✅ 二要素認証(2FA)を利用(キーロガーでパスワードが盗まれても防げる)
✅ 仮想キーボードを活用(ソフトウェアキーボードは物理的なキー入力を記録されにくい)
✅ 公共のPCで重要な情報を入力しない(ネットカフェや共有PCは危険)
もし感染したら?
・タスクマネージャーで不審なプロセスを確認
・セキュリティソフトでフルスキャン
・不審なプログラムのアンインストール
・OSのクリーンインストール(最終手段)
・盗まれた可能性のあるパスワードを変更
・金融機関に連絡(不正利用の可能性がある場合)
■まとめ
キーロガーはサイバー攻撃の手口の一つですが、適切な対策を講じることでリスクを軽減できます。特に、定期的なセキュリティチェックと2FAの導入が有効です。
一般的には、、ネットカフェのような所に仕掛けておき、ハッカーは定期的にネットカフェに回収に行くとか、ネットワーク経由で送信するといった方法で情報を窃取するようです。まっ、
この攻撃に対しての有効な対策は、銀行システムでよく見られますが、画面にキーボードを用意し、同キーボードをマウスでクリックし、画面情報を入力するといった方法になります。この場合は、キーボードからの入力情報がないので、ハッカーに情報がわたりません。ユーザーがキーボードで入力した内容を記録するソフトウェアやハードウェアのことを指します。主に以下の目的で使用されます。
❶悪意のある目的(マルウェア)
・パスワード、クレジットカード情報、個人情報を盗む
・不正アクセスやフィッシング攻撃に利用
・企業スパイ活動(機密情報の窃取)
❷合法的な目的
・企業が従業員の業務監視を行う
・親が子供のオンライン活動を監視する
・セキュリティテストやデバッグ目的
★種類
キーロガーは ソフトウェア型 と ハードウェア型 に分類されます。
①ソフトウェア型
・APIフック型: Windows API(例: GetAsyncKeyState())を利用してキー入力を取得
・カーネルレベル型: OSのカーネルに侵入し、キー入力を直接取得(高度なマルウェア)
・スクリーンショット型: 特定のタイミングでスクリーンショットを撮影し、入力内容を推測
・ブラウザベース型: Webページのフォーム入力を盗み取る(例: JavaScriptを悪用)
②ハードウェア型
・USBキーロガー: キーボードとPCの間に接続し、入力内容を記録
・キーボード改造型: 物理的にキーボードに仕込まれる
・ワイヤレス盗聴型: ワイヤレスキーボードの信号を傍受
★感染経路
・メールの添付ファイル(フィッシング攻撃)
・偽ソフトウェア(無料ツールやゲームに偽装)
・マルウェア(トロイの木馬、ランサムウェアと組み合わせ)
・USBメモリや外部デバイス経由
・悪意のあるWebサイトのスクリプト
対策
✅ セキュリティソフトを導入(リアルタイム保護機能を有効にする)
✅ OS・ソフトウェアを最新の状態にする(脆弱性を狙われないようにする)
✅ 不審なメール・リンクを開かない(特に実行ファイルexeやzipに注意)
✅ 二要素認証(2FA)を利用(キーロガーでパスワードが盗まれても防げる)
✅ 仮想キーボードを活用(ソフトウェアキーボードは物理的なキー入力を記録されにくい)
✅ 公共のPCで重要な情報を入力しない(ネットカフェや共有PCは危険)
もし感染したら?
・タスクマネージャーで不審なプロセスを確認
・セキュリティソフトでフルスキャン
・不審なプログラムのアンインストール
・OSのクリーンインストール(最終手段)
・盗まれた可能性のあるパスワードを変更
・金融機関に連絡(不正利用の可能性がある場合)
■まとめ
キーロガーはサイバー攻撃の手口の一つですが、適切な対策を講じることでリスクを軽減できます。特に、定期的なセキュリティチェックと2FAの導入が有効です。
銀行のシステムなど重要なシステムで見るやり方ですが、一般のシステムで見たことはありません。一般のシステムで扱っている情報が重要でないと言うこともありますが、一般的なセキュリティ対策をクライアント側で実施していれば防げるモノだからかもしれません。現在、ペンディング事項としている本件ですが、二要素認証でログインする方法をとる以外は現時点考えていません。
[セッション・フィクセーション(Cross-Site Fixation)とは?]
その他に気をつけなければいけない攻撃としては、セッション・フィクセーションがあります。この攻撃は、、攻撃者が事前に特定のセッションIDをユーザーに強制し、そのセッションを乗っ取る攻撃です。では、早速この件もChatGPTに解説をしてもらいましょう!
■セッションフィクセーション攻撃とは?
セッションフィクセーション(Session Fixation)は、攻撃者が事前に特定のセッションIDをユーザーに強制し、そのセッションを乗っ取る攻撃です。
通常、Webアプリケーションはログイン時にセッションIDを発行しますが、この攻撃では、ユーザーがログインする前に 攻撃者が指定したセッションIDを使わせることが特徴です。
★攻撃の流れ
❶攻撃者がセッションIDを生成
セッションIDがURLパラメータ、クッキー、POSTデータなどを通じて設定可能な場合、それを悪用。
❷ユーザーにセッションIDを押し付ける
・フィッシングメールで特定のURL (https://example.com/login?sessionid=123456) に誘導
・XSS(クロスサイトスクリプティング)を利用し、被害者のブラウザにセッションIDを強制的に設定
・悪意のあるサイトやプロキシを使ってクッキーを書き換え
❸被害者がログイン
・被害者は攻撃者が指定したセッションIDのままログイン。
・サーバー側が新しいセッションIDを発行せず、そのままセッションを保持すると、攻撃者も同じIDでアクセス可能になる。
❹攻撃者が乗っ取り
・被害者がログインした後、攻撃者は同じセッションIDを使って不正アクセスが可能。
★影響
・ユーザーのアカウントが乗っ取られる
・個人情報や機密データが盗まれる
・管理者アカウントが乗っ取られると、システム全体が危険に
・不正決済・不正操作が可能になる
★対策
✅ ログイン時に新しいセッションIDを発行(セッションの再生成)
✅ セッションIDをURLに含めない(クッキーのみ使用)
✅ セッションIDの固定値を受け入れない(ランダム生成)
✅ HTTPOnly属性・Secure属性を設定し、JavaScriptからのアクセスを防ぐ
✅ CSP(Content Security Policy)を活用し、XSSを防ぐ
✅ フィッシング対策(ユーザーが不審なURLにアクセスしないよう注意喚起)
■まとめ
セッションフィクセーションは、事前に攻撃者が用意したセッションIDを被害者に使わせ、セッションを乗っ取る攻撃 です。
ログイン時に新しいセッションIDを発行することが最も重要な対策になります!
EVEシステムでも当然対応予定で、ログインボタンが押下された後のサーバーサイトでは、セッションの必要情報を取得後、セッションを破棄し、その後セッションを実装する予定です。ここで重要なのは、PHPなら、$_SESSIONで取得できる情報だけでなく、$_COOKIEで取得できる情報もすべて同様の措置を取らなければなりません。多くのシステムの場合、ログイン情報は$_SESSIONに保存していると想像されるので、$_SESSIONだけでいいと思いますが、万全を期すなら、$_COOKIEの情報も削除した後再発行したほうがいいようです。セッションフィクセーション(Session Fixation)は、攻撃者が事前に特定のセッションIDをユーザーに強制し、そのセッションを乗っ取る攻撃です。
通常、Webアプリケーションはログイン時にセッションIDを発行しますが、この攻撃では、ユーザーがログインする前に 攻撃者が指定したセッションIDを使わせることが特徴です。
★攻撃の流れ
❶攻撃者がセッションIDを生成
セッションIDがURLパラメータ、クッキー、POSTデータなどを通じて設定可能な場合、それを悪用。
❷ユーザーにセッションIDを押し付ける
・フィッシングメールで特定のURL (https://example.com/login?sessionid=123456) に誘導
・XSS(クロスサイトスクリプティング)を利用し、被害者のブラウザにセッションIDを強制的に設定
・悪意のあるサイトやプロキシを使ってクッキーを書き換え
❸被害者がログイン
・被害者は攻撃者が指定したセッションIDのままログイン。
・サーバー側が新しいセッションIDを発行せず、そのままセッションを保持すると、攻撃者も同じIDでアクセス可能になる。
❹攻撃者が乗っ取り
・被害者がログインした後、攻撃者は同じセッションIDを使って不正アクセスが可能。
★影響
・ユーザーのアカウントが乗っ取られる
・個人情報や機密データが盗まれる
・管理者アカウントが乗っ取られると、システム全体が危険に
・不正決済・不正操作が可能になる
★対策
✅ ログイン時に新しいセッションIDを発行(セッションの再生成)
✅ セッションIDをURLに含めない(クッキーのみ使用)
✅ セッションIDの固定値を受け入れない(ランダム生成)
✅ HTTPOnly属性・Secure属性を設定し、JavaScriptからのアクセスを防ぐ
✅ CSP(Content Security Policy)を活用し、XSSを防ぐ
✅ フィッシング対策(ユーザーが不審なURLにアクセスしないよう注意喚起)
■まとめ
セッションフィクセーションは、事前に攻撃者が用意したセッションIDを被害者に使わせ、セッションを乗っ取る攻撃 です。
ログイン時に新しいセッションIDを発行することが最も重要な対策になります!
なお、ChatGPTが対策としてあげていることは、EVEシステムでは、現時点対応済みまたは今後対応予定です。
[あとがき]
まだまだあるのですが、時間の関係でここまでとさせていただきます。次回は来週木曜日になると思いますが、ログイン時に気を付ける攻撃についてお話しします。当サイトでは、それらの攻撃に対策を十分施していますので、もし、リリースした場合、安心してご利用ください。まっ、当分先ですけれどね(笑)。
では、また!
コメント
コメントを投稿