Re: Network variables are not preserved when using LightSPD rules

Dheeraj Gupta via Snort-users <[email protected]> Thu, 26 Sep 2024 17:02:03 +0530
Newsgroups gmane.comp.security.ids.snort.general
Message-ID <CAOsL98P2XtWxZoQW1pS5xhD3xmd6hzerfMn8G_Q46LsJQhCZ-w__12390.1869914093$1727360177$gmane$org@mail.gmail.com>
On Thu, 26 Sept 2024 at 16:43, Oleksii Shumeiko -X (oshumeik - SOFTSERVE
INC at Cisco) <[email protected]> wrote:

> I think, you can combine approaches.
>
> Set Lua variables before the script (it should pick them up and configure
> default values for all related IPS variables), then override targeted
> variables after the script:
>
> HOME_NET = 'x.x.x.x/z'
> EXTERNAL_NET = 'any'
>
> include(policy.lua)
>

This does not work because include(policy.lua) contains
include(snort_variables.lua) which resets HOME_NET and EXTERNAL_NET to any

E.g. suppose we create snort3.lua

HOME_NET = '10.0.0.0/24'
DNS_SERVERS = '10.0.0.2'

include('/etc/snort_lightspd/lightspd/policies/3.1.0.0-0/balanced-security-and-connectivity.lua')



Running snort with -T and --dump-config

(/usr/sbin/snort --pedantic -y -c /etc/snort_lightspd/snort3.lua -i ens10
--plugin-path /etc/snort_lightspd/sorules/ -s 65535 -l /snort/ -u snort -g
snort --id-zero --id-subdir --run-prefix 'snort_' -T --dump-config all | jq
-Mr ".[0].config.ips.variables.nets")
{
  "DNS_SERVERS": "any",
  "EXTERNAL_NET": "any",
  "FTP_SERVERS": "any",
  "HOME_NET": "any",
  "HTTP_SERVERS": "any",
  "SIP_SERVERS": "any",
  "SMTP_SERVERS": "any",
  "SQL_SERVERS": "any",
  "SSH_SERVERS": "any",
  "TELNET_SERVERS": "any"
}

Thanks,
Dheeraj

>
> On 26 Sep 2024, at 14:06, Dheeraj Gupta <[email protected]> wrote:
>
> Hi Oleksii,
>
> That is a good idea!
>
> The only downside is that to change HOME_NET would mean changing all
> connected variables (like you have shown in your example). Also if new
> FOO_SERVERS variable gets introduced, it won't be set correctly until I
> change the stub and account for it.
>
> What I had in mind is setting HOME_NET='x.x.x.x/y' at top of snort.lua
> file and then when include('whatever-policy.lua') happens, the
> `snort_variables.lua` preserves any variables that might already be defined
> while setting others.
>
> Thanks,
> Dheeraj
>
> On Thu, 26 Sept 2024 at 16:18, Oleksii Shumeiko -X (oshumeik - SOFTSERVE
> INC at Cisco) <[email protected]> wrote:
>
>> Hi,
>>
>> > over-ride them before the script is called
>>
>> You can override variables *after* the script is called.
>> Just put the following lines at the end of the main config file
>> (snort.lua):
>>
>> ips.variables.net.HOME_NET = 'x.x.x.x/z'
>> ips.variables.net.DNS_SERVERS = 'y.y.y.y'
>> ips.variables.net.EXTERNAL_NET = 'any'
>> ips.variables.net.FTP_SERVERS = HOME_NET
>> ips.variables.net.HTTP_SERVERS = HOME_NET
>> ips.variables.net.SIP_SERVERS = HOME_NET
>> ips.variables.net.SMTP_SERVERS = HOME_NET
>> ips.variables.net.SQL_SERVERS = HOME_NET
>> ips.variables.net.SSH_SERVERS = HOME_NET
>> ips.variables.net.TELNET_SERVERS = HOME_NET
>>
>> Port variables can be overridden the same way:
>> ips.variables.ports.NN = 12345
>>
>>
>> Regards,
>> Alexey
>>
>> On 26 Sep 2024, at 13:11, Dheeraj Gupta via Snort-users <
>> [email protected]> wrote:
>>
>> over-ride them before the script is called
>>
>>
>>
>

_______________________________________________
Snort-users mailing list
[email protected]
Go to this URL to change user options or unsubscribe:
https://lists.snort.org/mailman/listinfo/snort-users

	To unsubscribe, send an email to:
	[email protected]

Please visit http://blog.snort.org to stay current on all the latest Snort news!

Please follow these rules: https://snort.org/faq/what-is-the-mailing-list-etiquette