2. 全体構成
SQL Server(Implem.Pleasanter)
└ dbo.SysLogs
↓(VBA + SQL)
Excel
├ Sheet0:条件指定/閾値/メッセージ表示
├ Sheet1:抽出・集計済みログ明細(監視の基礎データ)
├ Sheet2:日付×ユーザー×テーブル別 集計
├ Sheet3:ユーザー×テーブル別 集計(パレート)
├ Sheet4:テーブル別 集計(パレート)
├ Sheet5:ユーザー×操作カテゴリ 集計(パレート)
├ Sheet6:テーブル×操作カテゴリ 性能集計(パレート)
3. 抽出対象データ仕様(SysLogs)
3.1 使用テーブル
- dbo.SysLogs
- dbo.Sites(SiteId → テーブル名解決)
- dbo.Users(UserId → ユーザー名解決)
3.2 抽出項目一覧
| 分類 | 項目 | 説明 | 用途 |
|---|---|---|---|
| 時刻 | CreatedTime | ログ発生日時 | 日付・時間帯判定 |
| 利用者 | Updator | 実行ユーザーID | 利用者特定 |
| 端末 | UserHostName | クライアント名 | なりすまし検知 |
| 対象 | SiteId | サイト(テーブル)ID | 操作対象判定 |
| 対象 | ReferenceId | レコードID | 危険操作判定 |
| 操作 | Method | メソッド名 | 操作分類 |
| API | Api | API実行フラグ | 自動処理検知 |
| 結果 | Status | HTTPステータス | エラー検知 |
| 性能 | Elapsed | 処理時間(ms) | 性能劣化検知 |
4. ログ分類ロジック設計
4.1 時間帯区分
| 条件 | 時間帯 |
|---|---|
| 08:00–17:59 | 通常 |
| 18:00–22:59 | 夜間 |
| 23:00–07:59 | 深夜 |
→ 深夜帯の自動操作は最重要監視対象
4.2 操作カテゴリ分類(Method)
| カテゴリ | 内容 |
|---|---|
| フォルダ配下:危険操作 | delete / bulkdelete / bulkupdate 等 |
| フォルダ配下:管理操作 | 権限・設定・API管理 |
| 新規作成 | create / copy |
| 編集 | update / edit |
| 削除 | delete |
| 一括処理 | bulkupdate |
| 照会 | index / show / get |
| 入出力 | export / import |
| ログイン・認証 | login / authenticate |
| その他 | 上記以外 |
5. 集計仕様(Excel)
5.1 Sheet1:監視用ログ集計(基礎)
キー単位
- 日付 × 時間帯 × ユーザー × 端末 × SiteId × ReferenceId × 操作カテゴリ × API
集計指標
| 指標 | 内容 |
|---|---|
| アクセス数 | 操作回数 |
| 平均時間 | Avg(Elapsed) |
| 最大時間 | Max(Elapsed) |
| エラー数 | Status >= 400 |
| 削除数 | delete 系操作回数 |
| 深夜更新数 | 深夜 × 更新・削除 |
| 失敗ログイン数 | 認証失敗 |
5.2 Sheet2〜Sheet6:傾向把握用集計
| シート | 観点 | 目的 |
|---|---|---|
| Sheet2 | 日付×ユーザー×テーブル | 日次異常行動の洗い出し |
| Sheet3 | ユーザー×テーブル | 特定ユーザーの集中操作検知 |
| Sheet4 | テーブル別 | 重要テーブル集中アクセス検知 |
| Sheet5 | ユーザー×操作カテゴリ | 利用傾向の逸脱検知 |
| Sheet6 | テーブル×操作×性能 | 性能劣化・ボトルネック検知 |
6. 異常判定ロジック(設計)
6.1 ランサムウェア兆候(最重要)
判定条件
- 時間帯 = 深夜
- ApiFlag = 1(自動処理)
- 操作カテゴリ = 危険操作
→ 深夜にAPI経由で一括削除・更新が走るのは強い異常兆候
6.2 システム異常検知
| 種別 | 判定条件 |
|---|---|
| API障害 | API実行 + エラー数 > 0 |
| 性能劣化 | 平均 or 最大時間 > 閾値(Sheet0指定) |
| 認証異常 | ログイン失敗数 > 0 |
6.3 なりすまし疑い
判定条件
- 同一ユーザー名
- 異なる UserHostName が複数存在
- ユーザー名が「(不明)」は除外
→ アカウント共有・侵害の可能性
