Windowsのセキュリティイベントログを眺めていると、「SID: S-1-5-18」「アカウント: %%1843」「ログオンの種類: 5」といった一見あやしいイベントが大量に並ぶことがあります。これだけ見ると「SYSTEMで誰かが勝手にログオンしている?」と不安になりますが、実は多くの場合、これはOS内部の通常動作です。この記事では、この組み合わせが何を意味し、侵害の兆候なのか、どこまで気にすべきかを、管理者向けに丁寧に解説します。
結論:S-1-5-18/%%1843/ログオンの種類 5 は、ほぼ「OSの通常動作」
まず最初に、質問のポイントを整理します。
SID: S-1-5-18… Windowsの組み込みアカウント「ローカル システム(NT AUTHORITY\SYSTEM)」を表す固定SID(いわゆる Well-known SID)。%%1843… イベントメッセージ内部の「置換文字列」で、本来は「Virtual Account: No(仮想アカウントではない)」というフラグを表す値。ログ収集ツールの都合で%%1843のまま見えているケースが多いです。- ログオンの種類 5 … 「サービス ログオン」。サービスコントロールマネージャ(
services.exe)がサービスを起動したとき等に記録されるログオンタイプです。
これら3つが同時に出ている場合、多くは次のような意味になります。
- OS自身(ローカル システム アカウント)が、サービスを起動・認証しただけ
- 人間のユーザーが対話的にログオンしたわけではない
- 単体では侵害の兆候とは言えず、通常のシステム動作としてよく見られる
したがって、イベント単体だけを見た場合は基本的に特別な対応は不要です。ただし、「本当にそれだけか?」を確認するために、周辺のイベントを軽くチェックしておくのが実務的にはおすすめです。
イベントの見え方をイメージしてみる
典型的には、セキュリティログのイベント ID 4624(アカウントのログオンに成功)が、次のような形で記録されます。
ログの名前: Security ソース: Microsoft Windows security auditing. イベント ID: 4624 タスクのカテゴリ: ログオン キーワード: 成功の監査 ... 新しいログオン: セキュリティ ID: S-1-5-18 アカウント名: SYSTEM アカウント ドメイン: NT AUTHORITY ログオン ID: 0x3E7 ログオン情報: ログオンの種類: 5 Virtual Account: %%1843 Elevated Token: %%1842 プロセス情報: プロセス ID: 0x3xx プロセス名: C:\Windows\System32\services.exe
SIEMやSysmon連携などでパースされた結果を見ると、「アカウント: %%1843」のように見えてしまうケースがあり、「%%1843ってユーザー名?誰?」となりがちです。しかし、実際に重要なのは次の2点です。
- New Logon の SID(
S-1-5-18)とアカウント名(SYSTEM) … 実際にログオンしたアカウント - ログオンの種類 5 … どういう形態のログオンか(ここではサービスログオン)
つまり、「SID: S-1-5-18」「アカウント名: SYSTEM」「ログオンの種類: 5」が揃っていれば、「OS内部でサービスが動き始めただけ」と読めるのがポイントです。
今回のイベント要素を表で整理
| 項目 | 値 | 本来の意味 | 管理者視点のポイント |
|---|---|---|---|
| SID | S-1-5-18 | ローカル システム(LocalSystem)アカウントを表す、全マシン共通の固定SID | OSが内部で使う最上位権限のアカウント。人間がこのSIDで直接ログオンすることはない。 |
| アカウント表示 | %%1843 | 本来は「Virtual Account」項目の「No」を意味する内部コード。ツールによりそのまま表示されることがある。 | 実際のアカウントは別フィールド(SID / アカウント名)を見る。%%1843自体を「ユーザー名」と誤解しない。 |
| ログオンの種類 | 5 | サービス ログオン。Service Control Manager がサービスを起動・認証するときに生成されるログオン。 | 人間のログインではなく、サービス起動に伴うシステム内部処理。単体では通常動作。 |
SID S-1-5-18(ローカル システム)とは何か
SIDの基本をおさらい
SID(Security Identifier)は、Windowsがユーザーやグループ、サービスなどの「セキュリティ主体」を識別するための一意なIDです。
- ユーザー名やグループ名は途中で変更可能だが、SIDは原則として変わらない
- ファイルやレジストリ等のアクセス制御リスト(ACL)は、名前ではなくSIDに対して権限を記録する
- ログオン時に、ユーザーのSIDと所属グループのSIDを含む「アクセストークン」が作られ、アクセス判定に使われる
この仕組みにより、「ユーザー名の変更や移動があっても、SIDさえ同じなら権限が維持される」という柔軟性が実現されています。
S-1-5-18 = LocalSystem(ローカル システム)
SIDには、「どのマシンでも値が変わらない特別なSID(Well-known SID)」がいくつか定義されています。その一つが S-1-5-18 で、LocalSystem(ローカル システム)アカウント を表します。
ローカル システムの特徴をまとめると次の通りです。
- OS自体や、多くの標準サービスが内部処理で利用する特権アカウント
- 通常のユーザーアカウントよりも強力な、ほぼ「神様」に近い権限を持つ
- 通常のログオン画面からパスワードを入力してログインするような使い方は想定されていない
似たような組み込みアカウントとして、「ローカル サービス」「ネットワーク サービス」も存在します。
| SID | アカウント | 概要 |
|---|---|---|
S-1-5-18 | LocalSystem(ローカル システム) | OSと多くのシステムサービスが利用する、最上位権限のサービスアカウント |
S-1-5-19 | Local Service | ローカルリソースに限定された比較的限定的な権限で動作するサービス用アカウント |
S-1-5-20 | Network Service | ネットワークリソースにアクセスするサービスのためのアカウント。権限はLocalSystemより低い。 |
今回のイベントでは、新しいログオンの SID に S-1-5-18 が記録されているため、「ローカル システム アカウントでサービスが動作し始めた」と読めます。
%%1843 という謎の文字列の正体
イベントメッセージの「置換文字列」としての %%1843
イベントログのメッセージは、「テンプレート+数値コード」を組み合わせて、人間に分かりやすい文章に展開される仕組みになっています。その際に使われるのが %%1842 や %%1843 のような「置換文字列」です。
Windowsの公式ドキュメントでは、イベント ID 4624 の「Virtual Account」フィールドについて、次のように定義されています。
- Virtual Account … 「Yes」または「No」のフラグ(仮想アカウントかどうか)
%%1842… Yes%%1843… No
本来、イベントビューアで直接イベントを開くと、この部分は「Virtual Account: No(または日本語環境なら『いいえ』)」のように表示されます。しかし、ログ転送先や一部ツールでは、%%1843 という「内部コード」そのものが見えてしまうことがあります。このため、「%%1843 というユーザーなのか?」という誤解が生まれがちです。
%%1843 は「ユーザー名」ではない
重要なのは、%%1843 はユーザー名でもSIDでもなく、単なるフラグ値 だという点です。
- 仮想アカウント(
NT SERVICE\○○など)でログオンした場合 … Virtual Account: Yes(=%%1842) - 通常のアカウントや LocalSystem でログオンした場合 … Virtual Account: No(=
%%1843)
今回のケースでは、「新しいログオンの SID: S-1-5-18(LocalSystem)」かつ「Virtual Account: %%1843(No)」という組み合わせになっており、
- LocalSystem アカウントで動作している
- かつ、仮想アカウント(Managed Service Account 等)ではない
という情報を表しています。実運用では、
「S-1-5-18 + Virtual Account: %%1843 の組み合わせ → LocalSystem で動作しているサービス」
くらいの感覚で覚えておくと、ログを読み解くときに迷いにくくなります。
ログオンの種類 5(サービス ログオン)を詳しく理解する
ログオンの種類とは?
イベント ID 4624 には「ログオンの種類」という項目があり、どういう経路・目的でログオンが行われたか を示します。たとえば次のような値があります。
| ログオンの種類 | 種類名(代表例) | 典型的なケース | 監視上のポイント |
|---|---|---|---|
| 2 | 対話型 (Interactive) | キーボード/ローカルコンソールからのログオン | 物理的にマシン操作が行われたタイミング。誰がいつログオンしたかの確認に重要。 |
| 3 | ネットワーク (Network) | ファイル共有アクセス、DCへの認証、SMB等 | 大量・不審なIPからのアクセスがないかを確認する指標。 |
| 5 | サービス (Service) | サービス起動時にサービスアカウントで行われるログオン | OSやアプリのサービスが自動的にログオンする通常動作。変化や異常パターンに注目。 |
| 7 | ロック解除 (Unlock) | 既存セッションのロック解除 | 不在中のロック解除など、タイミングが不自然な場合は注意。 |
| 10 | リモート デスクトップ (RemoteInteractive) | RDP接続によるリモートログオン | 不審なIPからのRDPログオンやブルートフォース攻撃の検知に重要。 |
ログオンの種類 5 = サービス起動時のログオン
ログオンの種類 5 は、主にサービスの起動(または再起動)時に記録されるログオンで、Service Control Manager(services.exe)がサービスを立ち上げるタイミングで生成されます。
典型的には、次のような状況で大量に発生します。
- OS起動直後 … 各種Windowsサービスや常駐アプリケーションのサービスが一斉に起動
- Windows Update後の再起動直後
- サービスの手動開始・停止、再起動操作を行ったとき
サービスのプロセス情報として Process Name: C:\Windows\System32\services.exe が記録されていることが多く、これも「サービス経由でのログオン」であることのヒントになります。
念のため確認しておきたい手順(ステップバイステップ)
「基本的には通常動作」とはいえ、ログ監査として最低限の確認はしておきたいところです。ここでは、Windows標準ツールだけでできる確認手順をまとめます。
1. セキュリティログで対象イベントの詳細を確認
eventvwr.mscでイベントビューアを開く。- 左ペインで [Windows ログ] → [セキュリティ] を選択。
- 右ペインの [現在のログをフィルター] をクリックし、[イベント ID に 4624] を指定。
- 必要に応じて、[XML] タブでログオンの種類 = 5 に絞り込む。
- 該当イベントをダブルクリックし、「詳細」タブの「XMLビュー」や「全般」タブを確認。
次の点を確認します。
- New Logon の SID が
S-1-5-18、アカウント名がSYSTEMになっているか - ログオンの種類が 5 になっているか
- プロセス名が
services.exeなどサービス関連になっているか
2. システムログの Service Control Manager イベントと突き合わせる
サービスの開始・停止は、通常「システム」ログに Service Control Manager からのイベントとしても記録されます。
- イベントビューアで [Windows ログ] → [システム] を開く。
- 右側の [現在のログをフィルター] を選択。
- ソース に
Service Control Managerを指定し、イベント ID に 7035, 7036 を入力。 - 4624(ログオンの種類 5)と同時刻付近の 7035 / 7036 を探す。
| ログ名 | イベント ID | 意味 | 今回のケースでの見方 |
|---|---|---|---|
| システム | 7035 | サービスに「開始」「停止」などの制御要求が送信された | 対象サービスがいつ起動/停止要求を受けたかの確認に使う。 |
| システム | 7036 | サービスが「開始状態」「停止状態」に遷移した | 4624(種類5)と時刻が揃っていれば、サービス起動に伴うログオンと判断しやすい。 |
| システム | 7045 | 新しいサービスがインストールされた | 見覚えのないサービス名がないか要チェック。マルウェアがサービスを作るケースもある。 |
セキュリティログの 4624(種類5)と、システムログの 7035 / 7036 が数秒以内に対応していれば、「そのサービスが LocalSystem で起動した」と読み取れます。
3. services.msc でサービスのログオンアカウントを確認
services.mscを実行し、「サービス」管理ツールを開く。- システムログの 7035 / 7036 に記録されていたサービス名を探し、ダブルクリック。
- [ログオン] タブを開き、次のどれに設定されているかを確認。
- ローカル システム アカウント
- このアカウント(ドメインアカウントやサービス専用アカウント)
- ローカル サービス / ネットワーク サービス(OSバージョンにより表記異なる)
ここで「ローカル システム アカウント」にチェックが入っていれば、S-1-5-18 と結びつきます。「このアカウント」でドメインユーザー等が設定されている場合は、4624のNew Logon部分にもそのSID/アカウント名が出るので見比べてみましょう。
今回のケースには当てはまらない「本当に怪しいパターン」
「S-1-5-18 + ログオンの種類 5」は基本的に通常動作ですが、以下のような 別種のイベント が近いタイミングで出ている場合は、より慎重な調査が必要です。
- ログオンの種類 2 / 7 / 10 で見知らぬユーザーがログオンしている
- 種類 2 … コンソールからの対話型ログオン
- 種類 7 … ロック解除
- 種類 10 … RDPによるリモートログオン
- これらが業務時間外や未知のユーザーで発生していると、不正アクセスの可能性が高まります。
- イベント ID 7045(新しいサービスのインストール)があり、サービス名やパスが不審
- 知らない名前、ユーザーのプロファイル配下や一時フォルダから起動されるサービスなどは要注意。
- イベント ID 4625(ログオン失敗)が短時間に多数発生している
- 総当たり攻撃やパスワードスプレー攻撃の可能性。
- 未知のIPからの種類 3(ネットワーク)ログオンが大量発生
これらは「S-1-5-18/種類5」とは別枠の話であり、今回の組み合わせ自体は、あくまで「OSがサービスを起動しただけ」と見なして問題ありません。
似たイベントとの見分け方のコツ
ログ監視をしていると、似たような4624イベントが大量に出てきます。実務上の整理として、次のような分類で見ると分かりやすくなります。
| パターン | 特徴 | 例 | 優先度 |
|---|---|---|---|
| サービス起動(今回のケース) | ログオンの種類 5、SID S-1-5-18(SYSTEM)、プロセス名 services.exe | OS起動直後、サービス再起動時 | 通常は低。変化があったときだけ見る。 |
| ユーザーのログイン | ログオンの種類 2 / 10、ユーザーアカウントのSID/名前が New Logon に記録 | 社員のサインイン、RDP接続 | 高。誰がいつログインしたかの記録として重要。 |
| ファイル共有等のアクセス | ログオンの種類 3、ネットワーク情報にIPアドレスが記録 | ファイルサーバーへのアクセス、DCへの認証 | 中~高。不明なIPや短時間に大量発生していないかを確認。 |
SIEMのルールやスクリプトを書く際も、「ログオンの種類 5 かつ S-1-5-18」はノイズとして除外し、「種類 2 / 10 / 3」の方にフォーカスする、といったフィルタリングが現実的です。
運用で使えるログ監視・フィルタリングの工夫
イベントビューアだけでできる簡易フィルタ
「とりあえずローカルで状況を見たい」という場合、イベントビューアに以下のようなフィルタを設定しておくと便利です。
- サービスログオンだけを見るフィルタ ログ: Security イベント ID: 4624 XML のクエリ: <QueryList> <Query Id=”0″ Path=”Security”> <Select Path=”Security”> *[System[(EventID=4624)]] and *[EventData[Data[@Name=’LogonType’]=’5′]] </Select> </Query> </QueryList>
- 人間のログオンだけを見るフィルタ(種類 2, 10) *[System[(EventID=4624)]] and *[EventData[Data[@Name=’LogonType’]=’2′ or Data[@Name=’LogonType’]=’10’]]
このようにログオンの種類で切り分けるだけでも、「どこから誰がログインしているのか」と「OSが勝手にやっていること」を簡単に分離できます。
SIEM・スクリプトでのノイズ削減例
SplunkやElastic、PowerShellスクリプトなどでログを集計する場合も、例えば次のような条件をベースにするとノイズを大きく減らせます。
- 大量のサービスログオンを除外
- 条件例:
EventID=4624 AND LogonType=5 AND TargetUserSid=S-1-5-18を監視対象から外す
- 条件例:
- 関心のあるログオンだけ抽出
- 条件例:
EventID=4624 AND (LogonType=2 OR LogonType=3 OR LogonType=10)
- 条件例:
もちろん、初期導入時にはあえて「全部を見る」時期も必要ですが、運用フェーズに入ったら、こうしたノイズカットが「本当に見るべきログ」を浮かび上がらせるカギになります。
よくある誤解と注意点
誤解1:「SYSTEMでログオンしている=絶対に怪しい」
LocalSystem(S-1-5-18)は極めて強い権限を持つため、「SYSTEMのログオン=マルウェアでは?」と思いがちです。しかし、実際には以下のような正当なケースの方が圧倒的に多いです。
- Windows Update や Defender、バックアップソフト等のサービス実行
- ドライバやエージェント系ソフト(監視エージェント、ウイルス対策など)のサービス起動
- システムメンテナンスやスケジュールタスクの実行
大事なのは、「SYSTEM だから危険」ではなく、
- どのサービス/プロセスが、そのSYSTEMログオンを使って何をしているか
- 普段と比べてパターンが変わっていないか(急に増えた、夜中だけ発生など)
を見ることです。
誤解2:「%%1843 というユーザーが存在する」
先述の通り、%%1843 は「No」を意味する内部コードであり、ユーザーやグループを表すものではありません。イベントビューアで直接見れば「Virtual Account: No」と表示されるはずですが、ログ転送や解析ツールがこの展開処理を行っていないと、%%1843 のまま出力されます。
このため、
- 「アカウント名: %%1843」と表示されていたら、「パースに失敗している」「VirtualAccount列をアカウント名として誤解している」可能性を疑う
- 本当のアカウントは「SID」や「New Logon」のフィールドを確認する
といった見方をすると、ログ解析の精度が大きく向上します。
まとめ:S-1-5-18/%%1843/ログオンの種類 5 の扱い方
最後に、この記事のポイントを実務視点で整理します。
- S-1-5-18 は LocalSystem(ローカル システム)アカウントの固定SID であり、OS自身やサービスが使う特権アカウントです。
- %%1843 は「Virtual Account: No」を意味する内部コード で、ユーザー名ではありません。SID とアカウント名のフィールドを見るのが正攻法です。
- ログオンの種類 5 は「サービス ログオン」 であり、Service Control Managerによるサービス起動のたびに記録される通常動作です。
- これらが組み合わさったイベントは、「OSが内部でサービスを起動・認証しただけ」 であることがほとんどで、単体では侵害の兆候とはみなさないのが一般的です。
- 一方で、種類 2 / 10 / 3 のログオン や、7045(新しいサービスのインストール)、4625の大量発生 といったイベントが近いタイミングで出ていないかは確認すべきです。
- SIEMやスクリプトでは、「
EventID=4624 AND LogonType=5 AND TargetUserSid=S-1-5-18」などの条件でノイズを除外し、人間によるログオンや不審なネットワークアクセスに焦点を当てると効率的です。
このように、「S-1-5-18/%%1843/ログオンの種類 5」は、Windowsの内部挙動を理解するうえで欠かせない基本パターンです。一度きちんと意味を整理しておけば、今後同じログを見たときに無用な不安を感じることなく、「これは通常」「これは怪しい」と冷静に仕分けできるようになります。

コメント