|
|
@@ -22,16 +22,19 @@
|
|
22
|
22
|
|
|
23
|
23
|
Fix history:
|
|
24
|
24
|
2026-03-19: Changed if_group=fortigate → if_sid; adapted A3-05 for IPsec tunnel-up
|
|
|
25
|
+ 2026-03-22: 110331-110333 — replaced dual <match> (ORed) with single <regex> (both
|
|
|
26
|
+ conditions ANDed in one expression) to prevent false-positives when
|
|
|
27
|
+ SSL-VPN is enabled.
|
|
25
|
28
|
-->
|
|
26
|
29
|
<group name="soc_mvp,appendix_a,a3,vpn,fortigate,">
|
|
27
|
30
|
|
|
28
|
31
|
<!-- A3-01: VPN authentication success by guest account (SSL-VPN)
|
|
29
|
32
|
Requires SSL-VPN to be enabled on FortiGate.
|
|
30
|
|
- Parent: 81603 (generic base — ssl-login-success is in the raw log) -->
|
|
|
33
|
+ Parent: 81603 (generic base — ssl-login-success is in the raw log)
|
|
|
34
|
+ Single <regex> ANDs both conditions (dual <match> would be ORed). -->
|
|
31
|
35
|
<rule id="110331" level="12">
|
|
32
|
36
|
<if_sid>81603</if_sid>
|
|
33
|
|
- <match>ssl-login-success</match>
|
|
34
|
|
- <match>user="guest"|user=guest</match>
|
|
|
37
|
+ <regex type="pcre2">ssl-login-success.*user="?guest"?</regex>
|
|
35
|
38
|
<description>A3-01 [PROD] SSL-VPN: authentication success by guest account</description>
|
|
36
|
39
|
<group>soc_prod,a3,vpn_guest,</group>
|
|
37
|
40
|
<mitre><id>T1078.001</id></mitre>
|
|
|
@@ -41,8 +44,7 @@
|
|
41
|
44
|
Requires SSL-VPN and FortiGate geo-login tracking -->
|
|
42
|
45
|
<rule id="110332" level="12">
|
|
43
|
46
|
<if_sid>81603</if_sid>
|
|
44
|
|
- <match>ssl-login-success</match>
|
|
45
|
|
- <match>previous_country=</match>
|
|
|
47
|
+ <regex type="pcre2">ssl-login-success.*previous_country=</regex>
|
|
46
|
48
|
<description>A3-02 [PROD] SSL-VPN: success from different country than last login</description>
|
|
47
|
49
|
<group>soc_prod,a3,vpn_geo,</group>
|
|
48
|
50
|
<mitre><id>T1078</id></mitre>
|
|
|
@@ -52,8 +54,7 @@
|
|
52
|
54
|
Requires SSL-VPN -->
|
|
53
|
55
|
<rule id="110333" level="12">
|
|
54
|
56
|
<if_sid>81603</if_sid>
|
|
55
|
|
- <match>ssl-login-success</match>
|
|
56
|
|
- <match>failed_attempts_before_success=</match>
|
|
|
57
|
+ <regex type="pcre2">ssl-login-success.*failed_attempts_before_success=</regex>
|
|
57
|
58
|
<description>A3-03 [PROD] SSL-VPN: success after multiple prior failures (brute-force indicator)</description>
|
|
58
|
59
|
<group>soc_prod,a3,vpn_bruteforce,</group>
|
|
59
|
60
|
<mitre><id>T1110.001</id></mitre>
|