IPAの偽セキュリティ警告(サポート詐欺)画面の作り方

偽セキュリティ警告(サポート詐欺)画面とは

偽セキュリティ警告(サポート詐欺)画面とは偽の警告によって、パソコンでウイルスに感染したかのように見せて、対策が必要だとして金銭やソフトウェアのインストールなどを要求する、Webサイトの画面のことです。

このようなサポート詐欺の画面では以下の特徴があります。

  • 画面がフルスクリーンになり、タブなどが操作不可になる
  • キーボードの操作ができなくなる
  • マウスの右クリックができなくなる
  • 警告音が鳴る

IPAでは偽セキュリティ警告(サポート詐欺)画面を体験できるWebサイトが作られました。

偽セキュリティ警告(サポート詐欺)画面の閉じ方体験サイト

画面をフルスクリーンにする、キーボードを操作不可にする、右クリック不可、警告音を鳴らすなどはJavaScriptを使うと簡単にWebサイトに実装できます。

この記事ではこの4つの処理の実装方法について説明します。

画面をフルスクリーンにする

JavaScriptで画面をフルスクリーンにするには requestFullscreen() を実行するだけで実装できます。

ただし、ブラウザをフルスクリーンにするにはボタンのクリックなど、ユーザーのイベントによるものでなければ実行されません。

JavaScript内に以下のようにフルスクリーンの処理だけ書いてもフルスクリーンにはなりません。

document.documentElement.requestFullscreen()

まず、ボタンを用意してクリックした際にrequestFullscreen()を実行すればフルスクリーンになります。

<button id="btn">警告画面を表示</button>
const btn = document.getElementById('btn')

function fullScreen() {
  document.documentElement.requestFullscreen()
}

btn.addEventListener('click', () => {
  fullScreen()
})

ちなみに「document.exitFullscreen()」を実行するとフルスクリーンを解除できます。

IPAのサイトではフルスクリーンの解除は「escキーを長押し」と説明していますが、デベロッパーツールのConsoleで「document.exitFullscreen()」を実行することでも解除できます。

キーボードの入力を受け付けない

キーボードのショートカットキーで開いているWebページを閉じられないようにするためには、キーボードのkeydownイベントをpreventDefault()で無効化します。

function disableKeyboard(event) {
  event.preventDefault()
}

document.addEventListener('keydown', disableKeyboard)

この処理を追加しても、フルスクリーン画面ではescキーだけは例外的に使用可能です。

マウスの右クリックを無効化

マウスの右クリックを無効化するにはcontextmenuイベントでpreventDefault()を実行するだけで実装できます。

document.addEventListener('contextmenu', function(event) {
  event.preventDefault()
})

警告音を鳴らす

警告音を鳴らすにはまず警告音のmp3ファイルを用意してサーバーにアップします。

warning.mp3

次にaudioタグを使用して音声を埋め込みます。

<audio id="warning">
  <source src="warning.mp3" type="audio/mpeg">
</audio>

あとはJavaScriptで該当の要素をplay()で再生すれば音が鳴ります。

const warning = document.getElementById('warning')
warning.play()

IPAの偽セキュリティ警告画面では女性の音声による説明が流れていますが、あれもaudioタグで音声を埋め込んでmp3を再生しています。

<audio id="beep" loop>
  <source src="yuriko3.mp3" type="audio/mpeg">
</audio>

まとめ

これまでの処理をまとめてWebページに追加すると、IPAの偽セキュリティ警告画面のようなWebページが作成できます。(制作時間10分)

偽セキュリティ警告画面サンプル