2020from macaron .malware_analyzer .pypi_heuristics .metadata .empty_project_link import EmptyProjectLinkAnalyzer
2121from macaron .malware_analyzer .pypi_heuristics .metadata .high_release_frequency import HighReleaseFrequencyAnalyzer
2222from macaron .malware_analyzer .pypi_heuristics .metadata .one_release import OneReleaseAnalyzer
23+ from macaron .malware_analyzer .pypi_heuristics .metadata .source_code_repo import SourceCodeRepoAnalyzer
2324from macaron .malware_analyzer .pypi_heuristics .metadata .unchanged_release import UnchangedReleaseAnalyzer
24- from macaron .malware_analyzer .pypi_heuristics .metadata .unreachable_project_links import UnreachableProjectLinksAnalyzer
2525from macaron .malware_analyzer .pypi_heuristics .metadata .wheel_absence import WheelAbsenceAnalyzer
2626from macaron .malware_analyzer .pypi_heuristics .pypi_sourcecode_analyzer import PyPISourcecodeAnalyzer
2727from macaron .malware_analyzer .pypi_heuristics .sourcecode .suspicious_setup import SuspiciousSetupAnalyzer
@@ -69,7 +69,7 @@ class MaliciousMetadataFacts(CheckFacts):
6969# When implementing new analyzer, appending the classes to this list
7070ANALYZERS : list = [
7171 EmptyProjectLinkAnalyzer ,
72- UnreachableProjectLinksAnalyzer ,
72+ SourceCodeRepoAnalyzer ,
7373 OneReleaseAnalyzer ,
7474 HighReleaseFrequencyAnalyzer ,
7575 UnchangedReleaseAnalyzer ,
@@ -97,7 +97,7 @@ class MaliciousMetadataFacts(CheckFacts):
9797] = {
9898 (
9999 HeuristicResult .FAIL , # Empty Project
100- HeuristicResult .SKIP , # Unreachable Project Links
100+ HeuristicResult .SKIP , # Source Code Repo
101101 HeuristicResult .FAIL , # One Release
102102 HeuristicResult .SKIP , # High Release Frequency
103103 HeuristicResult .SKIP , # Unchanged Release
@@ -112,7 +112,7 @@ class MaliciousMetadataFacts(CheckFacts):
112112 ): Confidence .HIGH ,
113113 (
114114 HeuristicResult .FAIL , # Empty Project
115- HeuristicResult .SKIP , # Unreachable Project Links
115+ HeuristicResult .SKIP , # Source Code Repo
116116 HeuristicResult .FAIL , # One Release
117117 HeuristicResult .SKIP , # High Release Frequency
118118 HeuristicResult .SKIP , # Unchanged Release
@@ -127,7 +127,7 @@ class MaliciousMetadataFacts(CheckFacts):
127127 ): Confidence .HIGH ,
128128 (
129129 HeuristicResult .FAIL , # Empty Project
130- HeuristicResult .SKIP , # Unreachable Project Links
130+ HeuristicResult .SKIP , # Source Code Repo
131131 HeuristicResult .PASS , # One Release
132132 HeuristicResult .FAIL , # High Release Frequency
133133 HeuristicResult .FAIL , # Unchanged Release
@@ -141,7 +141,7 @@ class MaliciousMetadataFacts(CheckFacts):
141141 ): Confidence .HIGH ,
142142 (
143143 HeuristicResult .FAIL , # Empty Project
144- HeuristicResult .SKIP , # Unreachable Project Links
144+ HeuristicResult .SKIP , # Source Code Repo
145145 HeuristicResult .PASS , # One Release
146146 HeuristicResult .FAIL , # High Release Frequency
147147 HeuristicResult .PASS , # Unchanged Release
@@ -155,7 +155,7 @@ class MaliciousMetadataFacts(CheckFacts):
155155 ): Confidence .HIGH ,
156156 (
157157 HeuristicResult .FAIL , # Empty Project
158- HeuristicResult .SKIP , # Unreachable Project Links
158+ HeuristicResult .SKIP , # Source Code Repo
159159 HeuristicResult .PASS , # One Release
160160 HeuristicResult .FAIL , # High Release Frequency
161161 HeuristicResult .FAIL , # Unchanged Release
@@ -169,7 +169,7 @@ class MaliciousMetadataFacts(CheckFacts):
169169 ): Confidence .MEDIUM ,
170170 (
171171 HeuristicResult .FAIL , # Empty Project
172- HeuristicResult .SKIP , # Unreachable Project Links
172+ HeuristicResult .SKIP , # Source Code Repo
173173 HeuristicResult .PASS , # One Release
174174 HeuristicResult .FAIL , # High Release Frequency
175175 HeuristicResult .FAIL , # Unchanged Release
@@ -183,21 +183,21 @@ class MaliciousMetadataFacts(CheckFacts):
183183 ): Confidence .MEDIUM ,
184184 (
185185 HeuristicResult .PASS , # Empty Project
186- HeuristicResult .FAIL , # Unreachable Project Links
186+ HeuristicResult .FAIL , # Source Code Repo
187187 HeuristicResult .PASS , # One Release
188188 HeuristicResult .FAIL , # High Release Frequency
189189 HeuristicResult .PASS , # Unchanged Release
190190 HeuristicResult .FAIL , # Closer Release Join Date
191191 HeuristicResult .FAIL , # Suspicious Setup
192192 HeuristicResult .FAIL , # Wheel Absence
193193 HeuristicResult .SKIP , # Anomalous Version
194- # All project links are unreachable , frequent releases of multiple versions,
194+ # No source code repo , frequent releases of multiple versions,
195195 # and the maintainer released it shortly after account registration.
196196 # The setup.py file contains suspicious imports and .whl file isn't present.
197197 ): Confidence .HIGH ,
198198 (
199199 HeuristicResult .FAIL , # Empty Project
200- HeuristicResult .SKIP , # Unreachable Project Links
200+ HeuristicResult .SKIP , # Source Code Repo
201201 HeuristicResult .FAIL , # One Release
202202 HeuristicResult .SKIP , # High Release Frequency
203203 HeuristicResult .SKIP , # Unchanged Release
@@ -212,7 +212,7 @@ class MaliciousMetadataFacts(CheckFacts):
212212 ): Confidence .MEDIUM ,
213213 (
214214 HeuristicResult .FAIL , # Empty Project
215- HeuristicResult .SKIP , # Unreachable Project Links
215+ HeuristicResult .SKIP , # Source Code Repo
216216 HeuristicResult .FAIL , # One Release
217217 HeuristicResult .SKIP , # High Release Frequency
218218 HeuristicResult .SKIP , # Unchanged Release
@@ -227,7 +227,7 @@ class MaliciousMetadataFacts(CheckFacts):
227227 ): Confidence .MEDIUM ,
228228 (
229229 HeuristicResult .FAIL , # Empty Project
230- HeuristicResult .SKIP , # Unreachable Project Links
230+ HeuristicResult .SKIP , # Source Code Repo
231231 HeuristicResult .FAIL , # One Release
232232 HeuristicResult .SKIP , # High Release Frequency
233233 HeuristicResult .SKIP , # Unchanged Release
0 commit comments