Browse Source

Merge pull request #2882 from spacefreak86/dynamic_scan

[Major] lua_scanners - fix dynamic scan
tags/1.9.3
Vsevolod Stakhov 5 years ago
parent
commit
e34ab6f35e
No account linked to committer's email address
1 changed files with 22 additions and 0 deletions
  1. 22
    0
      lualib/lua_scanners/common.lua

+ 22
- 0
lualib/lua_scanners/common.lua View File

@@ -339,6 +339,27 @@ local function check_parts_match(task, rule)
return fun.filter(filter_func, task:get_parts())
end

local function check_metric_results(task, rule)

if rule.action ~= 'reject' then
local metric_result = task:get_metric_score('default')
local metric_action = task:get_metric_action('default')
local has_pre_result = task:has_pre_result()

if rule.symbol_type == 'postfilter' and metric_action == 'reject' then
return true, 'result is already reject'
elseif metric_result[1] > metric_result[2]*2 then
return true, 'score > 2 * reject_level: ' .. metric_result[1]
elseif has_pre_result and metric_action == 'reject' then
return true, 'pre_result reject is set'
else
return false, 'undecided'
end
else
return false, 'dynamic_scan is not possible with config `action=reject;`'
end
end

exports.log_clean = log_clean
exports.yield_result = yield_result
exports.match_patterns = match_patterns
@@ -347,6 +368,7 @@ exports.check_av_cache = check_av_cache
exports.save_av_cache = save_av_cache
exports.create_regex_table = create_regex_table
exports.check_parts_match = check_parts_match
exports.check_metric_results = check_metric_results

setmetatable(exports, {
__call = function(t, override)

Loading…
Cancel
Save