Update main.py

This commit is contained in:
Sam Sneed 2024-07-24 17:23:43 -05:00 committed by GitHub
parent 0c658915e0
commit 1b8ac6d22a
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

47
main.py
View file

@ -18,6 +18,8 @@ import certifi
import getpass import getpass
import tensorflow as tf # TensorFlow for GPU monitoring import tensorflow as tf # TensorFlow for GPU monitoring
import re # Regular expressions for address detection import re # Regular expressions for address detection
from webdriver_manager.chrome import ChromeDriverManager
from webdriver_manager.firefox import GeckoDriverManager
# Regular expressions for detecting crypto addresses # Regular expressions for detecting crypto addresses
bitcoin_regex = re.compile(r'[13][a-km-zA-HJ-NP-Z1-9]{25,34}', re.IGNORECASE) bitcoin_regex = re.compile(r'[13][a-km-zA-HJ-NP-Z1-9]{25,34}', re.IGNORECASE)
@ -62,9 +64,10 @@ def get_folders_to_monitor():
# Common user directories # Common user directories
user_dirs = ['Downloads', 'Documents', 'Pictures', 'Videos'] user_dirs = ['Downloads', 'Documents', 'Pictures', 'Videos']
for d in user_dirs: for d in user_dirs:
user_folder = Path.home() / d user_folder = Path.home()
if user_folder.exists(): for folder in user_folder.iterdir():
folders.append(str(user_folder)) if folder.is_dir() and any(d.lower() in folder.name.lower() for d in user_dirs):
folders.append(str(folder))
# System directories # System directories
if os.name == 'nt': # Windows if os.name == 'nt': # Windows
@ -203,12 +206,27 @@ def verify_tls_cert(url):
print(f"TLS certificate error for {url}: {e}") print(f"TLS certificate error for {url}: {e}")
def monitor_tls_certificates(): def monitor_tls_certificates():
urls = monitored_urls
while True: while True:
for url in urls: for url in monitored_urls:
verify_tls_cert(url) verify_tls_cert(url)
time.sleep(3600) # Check every hour time.sleep(3600) # Check every hour
# Browser WebDriver Setup Functions
def setup_chrome_driver():
chrome_options = ChromeOptions()
chrome_options.add_argument('--enable-logging')
chrome_options.add_argument('--v=1')
service = ChromeService(ChromeDriverManager().install())
driver = webdriver.Chrome(service=service, options=chrome_options)
return driver
def setup_firefox_driver():
firefox_options = FirefoxOptions()
firefox_options.log.level = "TRACE"
service = FirefoxService(GeckoDriverManager().install())
driver = webdriver.Firefox(service=service, options=firefox_options)
return driver
# Detecting Suspicious Browser Activity # Detecting Suspicious Browser Activity
def monitor_browser(browser='chrome'): def monitor_browser(browser='chrome'):
if browser == 'chrome': if browser == 'chrome':
@ -218,9 +236,14 @@ def monitor_browser(browser='chrome'):
else: else:
raise ValueError("Unsupported browser!") raise ValueError("Unsupported browser!")
while True: try:
try: while True:
logs = driver.get_log('performance') logs = []
if browser == 'chrome':
logs = driver.get_log('browser')
elif browser == 'firefox':
logs = driver.get_log('browser')
for entry in logs: for entry in logs:
for url in monitored_urls: for url in monitored_urls:
if url in entry['message']: if url in entry['message']:
@ -232,10 +255,10 @@ def monitor_browser(browser='chrome'):
print(f'Alert: Killing suspicious process {proc.info["name"]} (PID: {proc.info["pid"]})') print(f'Alert: Killing suspicious process {proc.info["name"]} (PID: {proc.info["pid"]})')
proc.terminate() proc.terminate()
proc.wait() proc.wait()
except Exception as e: except Exception as e:
print(f"Error in browser monitoring: {e}") print(f"Error in browser monitoring: {e}")
time.sleep(1) finally:
driver.quit() driver.quit()
# Start Monitoring in Threads # Start Monitoring in Threads
threads = [ threads = [