WEB問題集
YARA-L 2.0 ルールで、特定の親プロセスから生成された PowerShell プロセスを検知したい場合、必須となる構造はどれですか。
正解:C
正解の根拠
YARA-L 2.0 では meta、events、condition の三つのセクションは必須です。events セクションでイベント条件と変数 (placeholder) の関連付けを記述します。
| セクション | 必須/任意 |
|---|---|
| meta | 必須 |
| events | 必須 |
| condition | 必須 |
| match / outcome / options | 任意 |
不正解の理由
- B は condition セクションが必須のため誤りです。条件記述なくしてルールは成立しません。
- C は events セクションを書かないと検知ロジックが定義されず、ルールが動作しません。
- D は match セクションが任意であり、24 時間固定という制約も存在しません。
単一イベントルール (single-event rule) と複数イベントルール (multi-event rule) を区別する最も明確な要素は何ですか。
正解:D
正解の根拠
events セクション内で event variable を一つだけ宣言する場合は single-event rule、複数宣言する場合は multi-event rule になります。複数の場合はジョイン条件で関連付けが必要です。
| 種別 | event variable 数 |
|---|---|
| single-event | 1 個 |
| multi-event | 2 個以上 |
不正解の理由
- A の author 数はメタ情報であり、検知種別の判定とは無関係です。
- C の outcome は両方の種別で任意であり、種別判定要素になりません。
- D のプレフィックスは命名規約にすぎず、エンジンの判定条件ではありません。
match セクションを使用して 10 分間に複数回発生するブルートフォースを検知する場合、正しい記述に該当するものを 2 つ選んでください。
(2つ選択)
正解:A, B
正解の根拠
match セクションは集約のキーと時間ウィンドウを宣言する場所であり、condition セクションで $event#count などの集計値に対する閾値判定を行います。
| セクション | 役割 |
|---|---|
| match | キーと時間ウィンドウ |
| condition | 閾値判定 |
不正解の理由
- C の outcome は付加情報の算出には使えますが、検知の必須要素ではありません。
- D は events セクションに match キーワードは存在せず、構文として誤りです。
YARA-L 2.0 の match セクションで使用できる時間ウィンドウの上限はどれですか。
正解:C
正解の根拠
match セクションの時間ウィンドウは最小 1 分から最大 48 時間まで指定できます。それ以上長い相関分析が必要な場合は別の手段を検討します。
| 項目 | 値 |
|---|---|
| 最小 | 1 分 |
| 最大 | 48 時間 |
不正解の理由
- A の 7 日はストア検索などの保持期間と混同したものでルール上の上限ではありません。
- B の 30 日は本機能の上限を大きく超えており、サポート対象外です。
- D の 90 日は UDM ログの保持期間目安であり、match の上限とは異なります。
YARA-L 2.0 で reference list を参照して既知のホワイトリスト IP を除外する記述として正しいものはどれですか。
正解:A
正解の根拠
reference list は %list_name 形式で events セクション内の述語として参照します。in 演算子で包含判定、否定する場合は not in を使用します。
| 用途 | 構文 |
|---|---|
| 包含 | field in %list |
| 除外 | not field in %list |
不正解の理由
- A の list() という関数は YARA-L に存在せず、構文エラーになります。
- B の reference 宣言を meta に記述する仕様はなく、参照は events セクションで行います。
- C の not match は文字列比較演算であり reference list の照合用途とは異なります。
