Skip to content

Commit de024fd

Browse files
authored
Merge pull request #614 from DataDog/s.obregoso/fix_to_release
Misc fixes
2 parents 4f5f840 + 44b9286 commit de024fd

File tree

7 files changed

+39
-35
lines changed

7 files changed

+39
-35
lines changed

guarddog/analyzer/sourcecode/extension_suspicious_passwd_access_linux.yar

Lines changed: 0 additions & 12 deletions
This file was deleted.

guarddog/analyzer/sourcecode/extension_powershell_policy_bypass.yar renamed to guarddog/analyzer/sourcecode/suspicious_passwd_access_linux.yar

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
rule DETECT_FILE_powershell_policy_bypass
1+
rule suspicious_passwd_access_linux
22
{
33
meta:
44
author = "T HAMDOUNI, Datadog"
@@ -9,4 +9,4 @@ rule DETECT_FILE_powershell_policy_bypass
99
$read = /(readFile|readFileSync)\(\s*['"]\/etc\/passwd/ nocase
1010
condition:
1111
$cli or $read
12-
}
12+
}

guarddog/scanners/pypi_project_scanner.py

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
import re
44
from typing import List
55

6-
import pkg_resources
6+
from packaging.requirements import Requirement
77
import requests
88
from packaging.specifiers import Specifier, Version
99

@@ -111,12 +111,11 @@ def safe_parse_requirements(req):
111111
"""
112112
This helper function yields one valid requirement line at a time
113113
"""
114-
parsed = pkg_resources.parse_requirements(req)
115-
while True:
114+
for req_line in req:
115+
if not req_line.strip():
116+
continue
116117
try:
117-
yield next(parsed)
118-
except StopIteration:
119-
break
118+
yield Requirement(req_line)
120119
except Exception as e:
121120
log.error(
122121
f"Error when parsing requirements, received error {str(e)}. This entry will be "
@@ -130,7 +129,7 @@ def safe_parse_requirements(req):
130129
continue
131130

132131
versions = get_matched_versions(
133-
find_all_versions(requirement.project_name),
132+
find_all_versions(requirement.name),
134133
(
135134
requirement.url
136135
if requirement.url
@@ -140,7 +139,7 @@ def safe_parse_requirements(req):
140139

141140
if len(versions) == 0:
142141
log.error(
143-
f"Package/Version {requirement.project_name} not on PyPI\n"
142+
f"Package/Version {requirement.name} not on PyPI\n"
144143
)
145144
continue
146145

@@ -165,13 +164,13 @@ def safe_parse_requirements(req):
165164
# find the dep with the same name or create a new one
166165
dep = next(
167166
filter(
168-
lambda d: d.name == requirement.project_name,
167+
lambda d: d.name == requirement.name,
169168
dependencies,
170169
),
171170
None,
172171
)
173172
if not dep:
174-
dep = Dependency(name=requirement.project_name, versions=set())
173+
dep = Dependency(name=requirement.name, versions=set())
175174
dependencies.append(dep)
176175

177176
dep.versions.update(dep_versions)

tests/analyzer/sourcecode/api-obfuscation.py

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,19 +15,45 @@ def send():
1515
open(filename, 'wb').write(rq.content)
1616

1717
# os.system('start '+filename)
18+
# ruleid: api-obfuscation
1819
os.__dict__['startfile']('start '+filename)
20+
21+
# ruleid: api-obfuscation
1922
os.__dict__['startfile'].__call__('start '+filename)
23+
# ruleid: api-obfuscation
2024
os.__getattribute__('startfile')('start '+filename)
25+
26+
# ruleid: api-obfuscation
2127
os.__getattribute__('startfile').__call__('start '+filename)
28+
29+
# ruleid: api-obfuscation
2230
getattr(os, 'startfile')('start '+filename)
31+
32+
# ruleid: api-obfuscation
2333
getattr(os, 'startfile').__call__('start '+filename)
34+
35+
# ruleid: api-obfuscation
2436
__import__('os').startfile('start '+filename)
37+
38+
# ruleid: api-obfuscation
2539
__import__('os').startfile.__call__('start '+filename)
40+
41+
# ruleid: api-obfuscation
2642
__import__('os').__dict__['startfile']('start '+filename)
43+
44+
# ruleid: api-obfuscation
2745
__import__('os').__dict__['startfile'].__call__('start '+filename)
46+
47+
# ruleid: api-obfuscation
2848
__import__('os').__getattribute__('startfile')('start '+filename)
49+
50+
# ruleid: api-obfuscation
2951
__import__('os').__getattribute__('startfile').__call__('start '+filename)
52+
53+
# ruleid: api-obfuscation
3054
getattr(__import__('os'), 'startfile')('start '+filename)
55+
56+
# ruleid: api-obfuscation
3157
getattr(__import__('os'), 'startfile').__call__('start '+filename)
3258
except:
3359
pass
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
cat /etc/passwd

tests/analyzer/sourcecode/test_eval_call.js

Lines changed: 0 additions & 10 deletions
This file was deleted.

tests/analyzer/sourcecode/test_sourcecode_yara.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,6 @@ def test_source_codde_analyzer_yara_exec(rule_name: str):
4949
if not f.startswith(f"{rule_name}."):
5050
continue
5151

52-
# testing file against against rule
52+
# testing file against rule
5353
print(f"Testing YARA rule: {rule_name}")
5454
assert test_scan_rule.match(os.path.join(root, f))

0 commit comments

Comments
 (0)