/opt/imunify360/venv/lib/python3.11/site-packages/restore_infected
import json import os from subprocess import check_output from restore_infected import helpers AGENT_BIN = '/usr/bin/imunify360-agent' def agent_malware_cmd(*args): cmd = [AGENT_BIN, 'malware'] + list(args) + ['--json'] out = check_output(cmd) out = out.decode('utf-8', 'ignore') try: return json.loads(out) except (json.JSONDecodeError, TypeError): return None def agent_start_scan(file_name): agent_malware_cmd('on-demand', 'start', '--path', file_name) def agent_scan_running(file_name): status_json = agent_malware_cmd('on-demand', 'status') status_json = status_json.get('items', status_json) status = status_json.get('status', 'stopped') if status == 'running' and status_json.get('path', '') == file_name: return True return False def agent_is_suspicious(file_name): scan_result = agent_malware_cmd('suspicious', 'list', '--search', file_name) if scan_result is not None: for item in scan_result['items']: if item['file'] == file_name: return True return False def await_scan_result(file_name): while agent_scan_running(file_name): pass def scan(files): """ Scan files for malware :param files: list of files to scan :return: list of malware detected files """ if not os.path.exists(AGENT_BIN): helpers.warning("Can't find imunify360-agent binary, " "malware scanning disabled", once=True) return [] infected = [] for file_name in files: agent_start_scan(file_name) await_scan_result(file_name) if agent_is_suspicious(file_name): infected.append(file_name) return infected
.
Edit
..
Edit
__init__.py
Edit
__pycache__
Edit
backup_backends
Edit
backup_backends_lib.py
Edit
cli.py
Edit
config.py
Edit
helpers.py
Edit
log.py
Edit
package_manager.py
Edit
restore.py
Edit
safe_fileops.py
Edit
scan.py
Edit