もうおなじみですが、Windows Server 2003 以降ではACL で保護されてます。実体は registry です。
Windows Server 2003 のイベント ログのセキュリティをローカルまたはグループ ポリシーで設定する方法
では、Windows XP 以前はどうなの?って話になりますが、その解説は下記。
Event Logging Security
Log |
Account |
Read |
Write |
Clear |
Application |
Administrators (system) |
X |
X |
X |
|
Administrators (domain) |
X |
X |
X |
|
LocalSystem |
X |
X |
X |
|
Interactive user |
X |
X |
|
System |
Administrators (system) |
X |
X |
X |
|
Administrators (domain) |
X |
|
X |
|
LocalSystem |
X |
X |
X |
|
Interactive user |
X |
|
|
Custom |
Administrators (system) |
X |
X |
X |
|
Administrators (domain) |
X |
X |
X |
|
LocalSystem |
X |
X |
X |
|
Interactive user |
X |
X |
|
あれ、security は?って思った人がいるかもしれませんけど、security log に関してはそれ専用の特権 (SE_SECURITY_NAME privilege) があるのでそっちで制御されてます。Reference にちゃんと載っていますね。
これ見たところ、内部で他の object と同様に ACL で制御しているのは確実っぽいですね。ただし、その実体は hard coding でもされているんじゃないかと。
Windows 2003 以降は ACL を編集できるようになったんですが、これを扱う API がない。内部的には絶対あるはずなんですが、どうやら公開されていない模様。なんでだろ?