From 2a0ad000ae11740074b15e83ad43822ce09ff92a Mon Sep 17 00:00:00 2001
From: marius <11855163+norandom@users.noreply.github.com>
Date: Sun, 23 Jun 2024 20:05:15 +0200
Subject: [PATCH] automl with tpot example, not commented yet
---
.../TPOT_Foundations.ipynb | 3604 +++++++++++++++++
.../corpus_foundations_thesis.zip | Bin 0 -> 129281 bytes
2 files changed, 3604 insertions(+)
create mode 100644 2-5-automated-machine-learning-with-gp/TPOT_Foundations.ipynb
create mode 100644 2-5-automated-machine-learning-with-gp/corpus_foundations_thesis.zip
diff --git a/2-5-automated-machine-learning-with-gp/TPOT_Foundations.ipynb b/2-5-automated-machine-learning-with-gp/TPOT_Foundations.ipynb
new file mode 100644
index 0000000..d7e5d25
--- /dev/null
+++ b/2-5-automated-machine-learning-with-gp/TPOT_Foundations.ipynb
@@ -0,0 +1,3604 @@
+{
+ "cells": [
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "initial_id",
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+ "source": [
+ "import requests\n",
+ "import pandas as pd\n",
+ "import json\n",
+ "\n",
+ "# Function to recursively normalize nested columns in a DataFrame\n",
+ "def recursively_normalize(data):\n",
+ " df = pd.json_normalize(data)\n",
+ " while True:\n",
+ " nested_cols = [col for col in df.columns if isinstance(df[col].iloc[0], (dict, list))]\n",
+ " if not nested_cols:\n",
+ " break\n",
+ " for col in nested_cols:\n",
+ " if isinstance(df[col].iloc[0], dict):\n",
+ " normalized = pd.json_normalize(df[col])\n",
+ " df = df.drop(columns=[col]).join(normalized)\n",
+ " elif isinstance(df[col].iloc[0], list):\n",
+ " df = df.explode(col)\n",
+ " normalized = pd.json_normalize(df[col])\n",
+ " df = df.drop(columns=[col]).join(normalized)\n",
+ " return df\n",
+ "\n",
+ "# Function to fetch the next batch using the cursor\n",
+ "def fetch_next_batch(cursor):\n",
+ " response = requests.post(\n",
+ " f\"{base_url}/_sql?format=json\",\n",
+ " headers={\"Content-Type\": \"application/json\"},\n",
+ " json={\"cursor\": cursor}\n",
+ " ).json()\n",
+ " return response\n",
+ "\n",
+ "# Elasticsearch base URL\n",
+ "base_url = \"http://192.168.20.106:9200\"\n",
+ "# Index name\n",
+ "index = \"winlogbeat-*\"\n",
+ "\n",
+ "from datetime import datetime, timedelta\n",
+ "\n",
+ "# Calculate the current time and the time one hour ago\n",
+ "current_time = datetime.utcnow()\n",
+ "one_hour_ago = current_time - timedelta(hours=1)\n",
+ "\n",
+ "# Format times in ISO8601 format as expected by Elasticsearch\n",
+ "current_time_iso = current_time.strftime('%Y-%m-%dT%H:%M:%SZ')\n",
+ "one_hour_ago_iso = one_hour_ago.strftime('%Y-%m-%dT%H:%M:%SZ')\n",
+ "\n",
+ "# SQL query with time filter\n",
+ "sql_query = f\"\"\"\n",
+ "SELECT \"@timestamp\", host.hostname, host.ip, log.level, winlog.event_id, winlog.task, message\n",
+ "FROM \"winlogbeat-7.10.0-2024.06.23-*\"\n",
+ "WHERE host.hostname = 'win10'\n",
+ "AND winlog.provider_name = 'Microsoft-Windows-Sysmon'\n",
+ "AND \"@timestamp\" >= '{one_hour_ago_iso}'\n",
+ "AND \"@timestamp\" <= '{current_time_iso}'\n",
+ "\"\"\"\n",
+ "\n",
+ "# Initial search request to start scrolling\n",
+ "initial_response = requests.post(\n",
+ " f\"{base_url}/_sql?format=json\",\n",
+ " headers={\"Content-Type\": \"application/json\"},\n",
+ " json={\n",
+ " \"query\": sql_query,\n",
+ " \"field_multi_value_leniency\": True\n",
+ " }\n",
+ ").json()\n",
+ "\n",
+ "# Extract the cursor for scrolling\n",
+ "cursor = initial_response.get('cursor')\n",
+ "rows = initial_response.get('rows')\n",
+ "columns = [col['name'] for col in initial_response['columns']]\n",
+ "\n",
+ "# Initialize CSV file (assumes the first batch is not empty)\n",
+ "if rows:\n",
+ " df = pd.DataFrame(rows, columns=columns)\n",
+ " df = recursively_normalize(df.to_dict(orient='records'))\n",
+ " df.to_csv(\"lab_logs_blindtest_activity.csv\", mode='w', index=False, header=True)\n",
+ "\n",
+ "# Track total documents retrieved\n",
+ "total_documents_retrieved = len(rows)\n",
+ "print(f\"Retrieved {total_documents_retrieved} documents.\")\n",
+ "\n",
+ "# Loop to fetch subsequent batches of documents until no more documents are left\n",
+ "while cursor:\n",
+ " # Fetch next batch of documents using cursor\n",
+ " response = fetch_next_batch(cursor)\n",
+ " \n",
+ " # Update cursor for the next batch\n",
+ " cursor = response.get('cursor')\n",
+ " rows = response.get('rows')\n",
+ " \n",
+ " # If no rows, break out of the loop\n",
+ " if not rows:\n",
+ " break\n",
+ " \n",
+ " # Normalize data and append to CSV\n",
+ " df = pd.DataFrame(rows, columns=columns)\n",
+ " df = recursively_normalize(df.to_dict(orient='records'))\n",
+ " \n",
+ " # Append to CSV file without headers\n",
+ " df.to_csv(\"lab_logs_blindtest_activity.csv\", mode='a', index=False, header=False)\n",
+ " \n",
+ " # Convert DataFrame to JSON, line by line\n",
+ " json_lines = df.to_json(orient='records', lines=True).splitlines()\n",
+ " # Append each line to an existing JSON file\n",
+ " with open(\"lab_logs_blindtest_activity.json\", 'a') as file:\n",
+ " for line in json_lines:\n",
+ " file.write(line + '\\n') # Append each line and add a newline\n",
+ " \n",
+ " # Update total documents retrieved\n",
+ " total_documents_retrieved += len(rows)\n",
+ " \n",
+ " print(f\"Retrieved {total_documents_retrieved} documents.\")\n",
+ "\n",
+ "print(\"Files have been written.\")\n"
+ ]
+ },
+ {
+ "metadata": {
+ "ExecuteTime": {
+ "end_time": "2024-06-23T14:27:10.324996Z",
+ "start_time": "2024-06-23T14:27:10.066377Z"
+ }
+ },
+ "cell_type": "code",
+ "source": [
+ "import polars as pl\n",
+ "\n",
+ "# Define the path to your CSV file\n",
+ "csv_file_path = 'lab_logs_blindtest_activity.csv'\n",
+ "\n",
+ "# Load the CSV file into a DataFrame\n",
+ "df = pl.read_csv(csv_file_path)\n",
+ "\n",
+ "# Show the DataFrame to confirm it's loaded correctly\n",
+ "print(df)\n"
+ ],
+ "id": "847862813f6a8c74",
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "shape: (1_027, 7)\n",
+ "┌──────────────┬─────────────┬─────────────┬─────────────┬─────────────┬─────────────┬─────────────┐\n",
+ "│ @timestamp ┆ host.hostna ┆ host.ip ┆ log.level ┆ winlog.even ┆ winlog.task ┆ message │\n",
+ "│ --- ┆ me ┆ --- ┆ --- ┆ t_id ┆ --- ┆ --- │\n",
+ "│ str ┆ --- ┆ str ┆ str ┆ --- ┆ str ┆ str │\n",
+ "│ ┆ str ┆ ┆ ┆ i64 ┆ ┆ │\n",
+ "╞══════════════╪═════════════╪═════════════╪═════════════╪═════════════╪═════════════╪═════════════╡\n",
+ "│ 2024-06-23T0 ┆ win10 ┆ fe80::965b: ┆ information ┆ 10 ┆ Process ┆ Process │\n",
+ "│ 7:42:03.814Z ┆ ┆ 5bf2:7f22:d ┆ ┆ ┆ accessed ┆ accessed: │\n",
+ "│ ┆ ┆ 30 ┆ ┆ ┆ (rule: ┆ RuleName: - │\n",
+ "│ ┆ ┆ ┆ ┆ ┆ Proces… ┆ … │\n",
+ "│ 2024-06-23T0 ┆ win10 ┆ fe80::965b: ┆ information ┆ 10 ┆ Process ┆ Process │\n",
+ "│ 7:42:03.814Z ┆ ┆ 5bf2:7f22:d ┆ ┆ ┆ accessed ┆ accessed: │\n",
+ "│ ┆ ┆ 30 ┆ ┆ ┆ (rule: ┆ RuleName: - │\n",
+ "│ ┆ ┆ ┆ ┆ ┆ Proces… ┆ … │\n",
+ "│ 2024-06-23T0 ┆ win10 ┆ fe80::965b: ┆ information ┆ 1 ┆ Process ┆ Process │\n",
+ "│ 7:42:03.820Z ┆ ┆ 5bf2:7f22:d ┆ ┆ ┆ Create ┆ Create: │\n",
+ "│ ┆ ┆ 30 ┆ ┆ ┆ (rule: ┆ RuleName: - │\n",
+ "│ ┆ ┆ ┆ ┆ ┆ ProcessC… ┆ Ut… │\n",
+ "│ 2024-06-23T0 ┆ win10 ┆ fe80::965b: ┆ information ┆ 13 ┆ Registry ┆ Registry │\n",
+ "│ 7:42:03.846Z ┆ ┆ 5bf2:7f22:d ┆ ┆ ┆ value set ┆ value set: │\n",
+ "│ ┆ ┆ 30 ┆ ┆ ┆ (rule: ┆ RuleName: … │\n",
+ "│ ┆ ┆ ┆ ┆ ┆ Regi… ┆ │\n",
+ "│ 2024-06-23T0 ┆ win10 ┆ fe80::965b: ┆ information ┆ 1 ┆ Process ┆ Process │\n",
+ "│ 7:42:03.864Z ┆ ┆ 5bf2:7f22:d ┆ ┆ ┆ Create ┆ Create: │\n",
+ "│ ┆ ┆ 30 ┆ ┆ ┆ (rule: ┆ RuleName: - │\n",
+ "│ ┆ ┆ ┆ ┆ ┆ ProcessC… ┆ Ut… │\n",
+ "│ … ┆ … ┆ … ┆ … ┆ … ┆ … ┆ … │\n",
+ "│ 2024-06-23T0 ┆ win10 ┆ fe80::965b: ┆ information ┆ 1 ┆ Process ┆ Process │\n",
+ "│ 8:35:53.050Z ┆ ┆ 5bf2:7f22:d ┆ ┆ ┆ Create ┆ Create: │\n",
+ "│ ┆ ┆ 30 ┆ ┆ ┆ (rule: ┆ RuleName: - │\n",
+ "│ ┆ ┆ ┆ ┆ ┆ ProcessC… ┆ Ut… │\n",
+ "│ 2024-06-23T0 ┆ win10 ┆ fe80::965b: ┆ information ┆ 10 ┆ Process ┆ Process │\n",
+ "│ 8:35:53.125Z ┆ ┆ 5bf2:7f22:d ┆ ┆ ┆ accessed ┆ accessed: │\n",
+ "│ ┆ ┆ 30 ┆ ┆ ┆ (rule: ┆ RuleName: - │\n",
+ "│ ┆ ┆ ┆ ┆ ┆ Proces… ┆ … │\n",
+ "│ 2024-06-23T0 ┆ win10 ┆ fe80::965b: ┆ information ┆ 1 ┆ Process ┆ Process │\n",
+ "│ 8:35:56.448Z ┆ ┆ 5bf2:7f22:d ┆ ┆ ┆ Create ┆ Create: │\n",
+ "│ ┆ ┆ 30 ┆ ┆ ┆ (rule: ┆ RuleName: - │\n",
+ "│ ┆ ┆ ┆ ┆ ┆ ProcessC… ┆ Ut… │\n",
+ "│ 2024-06-23T0 ┆ win10 ┆ fe80::965b: ┆ information ┆ 22 ┆ Dns query ┆ Dns query: │\n",
+ "│ 8:37:46.518Z ┆ ┆ 5bf2:7f22:d ┆ ┆ ┆ (rule: ┆ RuleName: - │\n",
+ "│ ┆ ┆ 30 ┆ ┆ ┆ DnsQuery) ┆ UtcTime… │\n",
+ "│ 2024-06-23T0 ┆ win10 ┆ fe80::965b: ┆ information ┆ 1 ┆ Process ┆ Process │\n",
+ "│ 8:37:54.182Z ┆ ┆ 5bf2:7f22:d ┆ ┆ ┆ Create ┆ Create: │\n",
+ "│ ┆ ┆ 30 ┆ ┆ ┆ (rule: ┆ RuleName: - │\n",
+ "│ ┆ ┆ ┆ ┆ ┆ ProcessC… ┆ Ut… │\n",
+ "└──────────────┴─────────────┴─────────────┴─────────────┴─────────────┴─────────────┴─────────────┘\n"
+ ]
+ }
+ ],
+ "execution_count": 2
+ },
+ {
+ "metadata": {
+ "ExecuteTime": {
+ "end_time": "2024-06-23T14:27:15.761561Z",
+ "start_time": "2024-06-23T14:27:15.718703Z"
+ }
+ },
+ "cell_type": "code",
+ "source": [
+ "import polars as pl\n",
+ "\n",
+ "def remove_keyword_lines(batch, keywords):\n",
+ " def modify_line(line):\n",
+ " # Check each keyword; filter the line if the keyword is at the start followed by a colon\n",
+ " for keyword in keywords:\n",
+ " if line.startswith(f\"{keyword}:\"):\n",
+ " # Special handling for 'User' keyword\n",
+ " if keyword == 'User':\n",
+ " parts = line.split('\\\\')\n",
+ " if len(parts) > 1:\n",
+ " return f\"User: {parts[1]}\" # Only keep the part after the backslash\n",
+ " elif keyword == 'SourceHostname':\n",
+ " parts = line.split('.')\n",
+ " if len(parts) > 0:\n",
+ " return f\"{keyword}: {parts[0].split(': ')[1]}\" # Only keep the part before the first dot, remove keyword duplication\n",
+ " return None # For other keywords, remove the line altogether\n",
+ " return line # Return the line unchanged if no keyword conditions are met\n",
+ "\n",
+ " # Use map_elements to apply a function to each message in the batch\n",
+ " return batch.map_elements(lambda message: '\\n'.join(\n",
+ " filter(None, (modify_line(line) for line in message.split('\\n')))), \n",
+ " return_dtype=pl.Utf8)\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "# Define a list of keywords to filter out\n",
+ "keywords_to_filter = [\"UtcTime\", \"SourceProcessGUID\",\"ProcessGuid\", \"TargetProcessGUID\", \"TargetObject\", \"FileVersion\", \"Hashes\", \"LogonGuid\", \"LogonId\", \"CreationUtcTime\", \"User\", \"ParentProcessGuid\", \"SourceHostname\"]\n",
+ "\n",
+ "\n",
+ "# Load your DataFrame (assuming 'df' is already loaded)\n",
+ "# Apply the transformation to the 'message' column using map_batches\n",
+ "df_f = df.with_columns(\n",
+ " pl.col(\"message\").map_batches(lambda batch: remove_keyword_lines(batch, keywords_to_filter), return_dtype=pl.Utf8).alias(\"filtered_message\")\n",
+ ")\n",
+ "\n",
+ "# Assuming df_f is your DataFrame with the 'filtered_message' column\n",
+ "# Fetch the first three rows from the 'filtered_message' column\n",
+ "first_messages = df_f[\"filtered_message\"].head(200)\n",
+ "\n",
+ "# Print each message completely\n",
+ "for i, message in enumerate(first_messages):\n",
+ " print(f\"Message {i+1}:\")\n",
+ " print(message)\n",
+ " print(\"-\" * 50) # Separator for readability\n"
+ ],
+ "id": "fc93fe038bcb00c5",
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Message 1:\n",
+ "Process accessed:\n",
+ "RuleName: -\n",
+ "SourceProcessId: 1072\n",
+ "SourceThreadId: 1132\n",
+ "SourceImage: C:\\Windows\\system32\\svchost.exe\n",
+ "TargetProcessId: 872\n",
+ "TargetImage: C:\\Windows\\system32\\lsass.exe\n",
+ "GrantedAccess: 0x1000\n",
+ "CallTrace: C:\\Windows\\SYSTEM32\\ntdll.dll+9d584|C:\\Windows\\System32\\KERNELBASE.dll+69f06|c:\\windows\\system32\\lsm.dll+e7f8|c:\\windows\\system32\\lsm.dll+11918|C:\\Windows\\System32\\RPCRT4.dll+799e3|C:\\Windows\\System32\\RPCRT4.dll+dd77b|C:\\Windows\\System32\\RPCRT4.dll+5ce8c|C:\\Windows\\System32\\RPCRT4.dll+59ee8|C:\\Windows\\System32\\RPCRT4.dll+39fa6|C:\\Windows\\System32\\RPCRT4.dll+398f8|C:\\Windows\\System32\\RPCRT4.dll+4766f|C:\\Windows\\System32\\RPCRT4.dll+46a78|C:\\Windows\\System32\\RPCRT4.dll+46061|C:\\Windows\\System32\\RPCRT4.dll+45ace|C:\\Windows\\System32\\RPCRT4.dll+4a1a2|C:\\Windows\\SYSTEM32\\ntdll.dll+20330|C:\\Windows\\SYSTEM32\\ntdll.dll+52f76|C:\\Windows\\System32\\KERNEL32.DLL+17614|C:\\Windows\\SYSTEM32\\ntdll.dll+526a1\n",
+ "--------------------------------------------------\n",
+ "Message 2:\n",
+ "Process accessed:\n",
+ "RuleName: -\n",
+ "SourceProcessId: 1072\n",
+ "SourceThreadId: 1132\n",
+ "SourceImage: C:\\Windows\\system32\\svchost.exe\n",
+ "TargetProcessId: 872\n",
+ "TargetImage: C:\\Windows\\system32\\lsass.exe\n",
+ "GrantedAccess: 0x1000\n",
+ "CallTrace: C:\\Windows\\SYSTEM32\\ntdll.dll+9d584|C:\\Windows\\System32\\KERNELBASE.dll+69f06|c:\\windows\\system32\\lsm.dll+e7f8|c:\\windows\\system32\\lsm.dll+dc6b|c:\\windows\\system32\\lsm.dll+11a1e|C:\\Windows\\System32\\RPCRT4.dll+799e3|C:\\Windows\\System32\\RPCRT4.dll+dd77b|C:\\Windows\\System32\\RPCRT4.dll+5ce8c|C:\\Windows\\System32\\RPCRT4.dll+59ee8|C:\\Windows\\System32\\RPCRT4.dll+39fa6|C:\\Windows\\System32\\RPCRT4.dll+398f8|C:\\Windows\\System32\\RPCRT4.dll+4766f|C:\\Windows\\System32\\RPCRT4.dll+46a78|C:\\Windows\\System32\\RPCRT4.dll+46061|C:\\Windows\\System32\\RPCRT4.dll+45ace|C:\\Windows\\System32\\RPCRT4.dll+4a1a2|C:\\Windows\\SYSTEM32\\ntdll.dll+20330|C:\\Windows\\SYSTEM32\\ntdll.dll+52f76|C:\\Windows\\System32\\KERNEL32.DLL+17614|C:\\Windows\\SYSTEM32\\ntdll.dll+526a1\n",
+ "--------------------------------------------------\n",
+ "Message 3:\n",
+ "Process Create:\n",
+ "RuleName: -\n",
+ "ProcessId: 5196\n",
+ "Image: C:\\Windows\\servicing\\TrustedInstaller.exe\n",
+ "Description: Windows Modules Installer\n",
+ "Product: Microsoft® Windows® Operating System\n",
+ "Company: Microsoft Corporation\n",
+ "OriginalFileName: TrustedInstaller.exe\n",
+ "CommandLine: C:\\Windows\\servicing\\TrustedInstaller.exe\n",
+ "CurrentDirectory: C:\\Windows\\system32\\\n",
+ "User: SYSTEM\n",
+ "TerminalSessionId: 0\n",
+ "IntegrityLevel: System\n",
+ "ParentProcessId: 824\n",
+ "ParentImage: C:\\Windows\\System32\\services.exe\n",
+ "ParentCommandLine: C:\\Windows\\system32\\services.exe\n",
+ "--------------------------------------------------\n",
+ "Message 4:\n",
+ "Registry value set:\n",
+ "RuleName: Tamper-Winlogon\n",
+ "EventType: SetValue\n",
+ "ProcessId: 5196\n",
+ "Image: C:\\Windows\\servicing\\TrustedInstaller.exe\n",
+ "Details: CreateSession\n",
+ "--------------------------------------------------\n",
+ "Message 5:\n",
+ "Process Create:\n",
+ "RuleName: -\n",
+ "ProcessId: 6140\n",
+ "Image: C:\\Windows\\WinSxS\\amd64_microsoft-windows-servicingstack_31bf3856ad364e35_10.0.19041.2664_none_7dfa24947c9c0a36\\TiWorker.exe\n",
+ "Description: Windows Modules Installer Worker\n",
+ "Product: Microsoft® Windows® Operating System\n",
+ "Company: Microsoft Corporation\n",
+ "OriginalFileName: TiWorker.exe\n",
+ "CommandLine: C:\\Windows\\winsxs\\amd64_microsoft-windows-servicingstack_31bf3856ad364e35_10.0.19041.2664_none_7dfa24947c9c0a36\\TiWorker.exe -Embedding\n",
+ "CurrentDirectory: C:\\Windows\\system32\\\n",
+ "User: SYSTEM\n",
+ "TerminalSessionId: 0\n",
+ "IntegrityLevel: System\n",
+ "ParentProcessId: 1000\n",
+ "ParentImage: C:\\Windows\\System32\\svchost.exe\n",
+ "ParentCommandLine: C:\\Windows\\system32\\svchost.exe -k DcomLaunch -p\n",
+ "--------------------------------------------------\n",
+ "Message 6:\n",
+ "Process Create:\n",
+ "RuleName: -\n",
+ "ProcessId: 2036\n",
+ "Image: C:\\Program Files (x86)\\Microsoft\\EdgeUpdate\\MicrosoftEdgeUpdate.exe\n",
+ "Description: Microsoft Edge Update\n",
+ "Product: Microsoft Edge Update\n",
+ "Company: Microsoft Corporation\n",
+ "OriginalFileName: msedgeupdate.dll\n",
+ "CommandLine: \"C:\\Program Files (x86)\\Microsoft\\EdgeUpdate\\MicrosoftEdgeUpdate.exe\" /c\n",
+ "CurrentDirectory: C:\\Windows\\system32\\\n",
+ "User: SYSTEM\n",
+ "TerminalSessionId: 0\n",
+ "IntegrityLevel: System\n",
+ "ParentProcessId: 2024\n",
+ "ParentImage: C:\\Windows\\System32\\svchost.exe\n",
+ "ParentCommandLine: C:\\Windows\\system32\\svchost.exe -k netsvcs -p -s Schedule\n",
+ "--------------------------------------------------\n",
+ "Message 7:\n",
+ "Dns query:\n",
+ "RuleName: -\n",
+ "ProcessId: 3508\n",
+ "QueryName: ncc.avast.com\n",
+ "QueryStatus: 0\n",
+ "QueryResults: type: 5 ncc.avast.com.edgesuite.net;type: 5 a1488.dscd.akamai.net;::ffff:23.72.36.187;::ffff:23.72.36.112;\n",
+ "Image: C:\\Program Files\\Avast Software\\Avast\\aswToolsSvc.exe\n",
+ "--------------------------------------------------\n",
+ "Message 8:\n",
+ "Dns query:\n",
+ "RuleName: -\n",
+ "ProcessId: 4592\n",
+ "QueryName: ecs.office.com\n",
+ "QueryStatus: 0\n",
+ "QueryResults: type: 5 ecs.office.trafficmanager.net;type: 5 s-0005-office.config.skype.com;type: 5 ecs-office.s-0005.s-msedge.net;type: 5 s-0005.s-msedge.net;::ffff:52.113.194.132;\n",
+ "Image: C:\\Program Files\\Common Files\\microsoft shared\\ClickToRun\\OfficeC2RClient.exe\n",
+ "--------------------------------------------------\n",
+ "Message 9:\n",
+ "Process Create:\n",
+ "RuleName: -\n",
+ "ProcessId: 4492\n",
+ "Image: C:\\Windows\\System32\\taskhostw.exe\n",
+ "Description: Host Process for Windows Tasks\n",
+ "Product: Microsoft® Windows® Operating System\n",
+ "Company: Microsoft Corporation\n",
+ "OriginalFileName: taskhostw.exe\n",
+ "CommandLine: taskhostw.exe\n",
+ "CurrentDirectory: C:\\Windows\\system32\\\n",
+ "User: SYSTEM\n",
+ "TerminalSessionId: 0\n",
+ "IntegrityLevel: System\n",
+ "ParentProcessId: 2024\n",
+ "ParentImage: C:\\Windows\\System32\\svchost.exe\n",
+ "ParentCommandLine: C:\\Windows\\system32\\svchost.exe -k netsvcs -p -s Schedule\n",
+ "--------------------------------------------------\n",
+ "Message 10:\n",
+ "Process Create:\n",
+ "RuleName: -\n",
+ "ProcessId: 2788\n",
+ "Image: C:\\Windows\\System32\\WinBioPlugIns\\FaceFodUninstaller.exe\n",
+ "Description: -\n",
+ "Product: -\n",
+ "Company: -\n",
+ "OriginalFileName: -\n",
+ "CommandLine: \"C:\\Windows\\System32\\WinBioPlugIns\\FaceFodUninstaller.exe\"\n",
+ "CurrentDirectory: C:\\Windows\\system32\\\n",
+ "User: SYSTEM\n",
+ "TerminalSessionId: 0\n",
+ "IntegrityLevel: System\n",
+ "ParentProcessId: 2024\n",
+ "ParentImage: C:\\Windows\\System32\\svchost.exe\n",
+ "ParentCommandLine: C:\\Windows\\system32\\svchost.exe -k netsvcs -p -s Schedule\n",
+ "--------------------------------------------------\n",
+ "Message 11:\n",
+ "Process Create:\n",
+ "RuleName: -\n",
+ "ProcessId: 6472\n",
+ "Image: C:\\Windows\\System32\\lpremove.exe\n",
+ "Description: MUI Language pack cleanup\n",
+ "Product: Microsoft® Windows® Operating System\n",
+ "Company: Microsoft Corporation\n",
+ "OriginalFileName: lpremove.exe\n",
+ "CommandLine: \"C:\\Windows\\system32\\lpremove.exe\"\n",
+ "CurrentDirectory: C:\\Windows\\system32\\\n",
+ "User: SYSTEM\n",
+ "TerminalSessionId: 0\n",
+ "IntegrityLevel: System\n",
+ "ParentProcessId: 2024\n",
+ "ParentImage: C:\\Windows\\System32\\svchost.exe\n",
+ "ParentCommandLine: C:\\Windows\\system32\\svchost.exe -k netsvcs -p -s Schedule\n",
+ "--------------------------------------------------\n",
+ "Message 12:\n",
+ "Process Create:\n",
+ "RuleName: -\n",
+ "ProcessId: 6104\n",
+ "Image: C:\\Windows\\System32\\UsoClient.exe\n",
+ "Description: UsoClient\n",
+ "Product: Microsoft® Windows® Operating System\n",
+ "Company: Microsoft Corporation\n",
+ "OriginalFileName: UsoClient\n",
+ "CommandLine: \"C:\\Windows\\system32\\usoclient.exe\" ReportPolicies\n",
+ "CurrentDirectory: C:\\Windows\\system32\\\n",
+ "User: SYSTEM\n",
+ "TerminalSessionId: 0\n",
+ "IntegrityLevel: System\n",
+ "ParentProcessId: 2024\n",
+ "ParentImage: C:\\Windows\\System32\\svchost.exe\n",
+ "ParentCommandLine: C:\\Windows\\system32\\svchost.exe -k netsvcs -p -s Schedule\n",
+ "--------------------------------------------------\n",
+ "Message 13:\n",
+ "Process accessed:\n",
+ "RuleName: -\n",
+ "SourceProcessId: 1072\n",
+ "SourceThreadId: 1132\n",
+ "SourceImage: C:\\Windows\\system32\\svchost.exe\n",
+ "TargetProcessId: 872\n",
+ "TargetImage: C:\\Windows\\system32\\lsass.exe\n",
+ "GrantedAccess: 0x1000\n",
+ "CallTrace: C:\\Windows\\SYSTEM32\\ntdll.dll+9d584|C:\\Windows\\System32\\KERNELBASE.dll+69f06|c:\\windows\\system32\\lsm.dll+e7f8|c:\\windows\\system32\\lsm.dll+11918|C:\\Windows\\System32\\RPCRT4.dll+799e3|C:\\Windows\\System32\\RPCRT4.dll+dd77b|C:\\Windows\\System32\\RPCRT4.dll+5ce8c|C:\\Windows\\System32\\RPCRT4.dll+59ee8|C:\\Windows\\System32\\RPCRT4.dll+39fa6|C:\\Windows\\System32\\RPCRT4.dll+398f8|C:\\Windows\\System32\\RPCRT4.dll+4766f|C:\\Windows\\System32\\RPCRT4.dll+46a78|C:\\Windows\\System32\\RPCRT4.dll+46061|C:\\Windows\\System32\\RPCRT4.dll+45ace|C:\\Windows\\System32\\RPCRT4.dll+4a1a2|C:\\Windows\\SYSTEM32\\ntdll.dll+20330|C:\\Windows\\SYSTEM32\\ntdll.dll+52f76|C:\\Windows\\System32\\KERNEL32.DLL+17614|C:\\Windows\\SYSTEM32\\ntdll.dll+526a1\n",
+ "--------------------------------------------------\n",
+ "Message 14:\n",
+ "Process accessed:\n",
+ "RuleName: -\n",
+ "SourceProcessId: 1072\n",
+ "SourceThreadId: 1132\n",
+ "SourceImage: C:\\Windows\\system32\\svchost.exe\n",
+ "TargetProcessId: 872\n",
+ "TargetImage: C:\\Windows\\system32\\lsass.exe\n",
+ "GrantedAccess: 0x1000\n",
+ "CallTrace: C:\\Windows\\SYSTEM32\\ntdll.dll+9d584|C:\\Windows\\System32\\KERNELBASE.dll+69f06|c:\\windows\\system32\\lsm.dll+e7f8|c:\\windows\\system32\\lsm.dll+dc6b|c:\\windows\\system32\\lsm.dll+11a1e|C:\\Windows\\System32\\RPCRT4.dll+799e3|C:\\Windows\\System32\\RPCRT4.dll+dd77b|C:\\Windows\\System32\\RPCRT4.dll+5ce8c|C:\\Windows\\System32\\RPCRT4.dll+59ee8|C:\\Windows\\System32\\RPCRT4.dll+39fa6|C:\\Windows\\System32\\RPCRT4.dll+398f8|C:\\Windows\\System32\\RPCRT4.dll+4766f|C:\\Windows\\System32\\RPCRT4.dll+46a78|C:\\Windows\\System32\\RPCRT4.dll+46061|C:\\Windows\\System32\\RPCRT4.dll+45ace|C:\\Windows\\System32\\RPCRT4.dll+4a1a2|C:\\Windows\\SYSTEM32\\ntdll.dll+20330|C:\\Windows\\SYSTEM32\\ntdll.dll+52f76|C:\\Windows\\System32\\KERNEL32.DLL+17614|C:\\Windows\\SYSTEM32\\ntdll.dll+526a1\n",
+ "--------------------------------------------------\n",
+ "Message 15:\n",
+ "Process accessed:\n",
+ "RuleName: -\n",
+ "SourceProcessId: 1072\n",
+ "SourceThreadId: 1096\n",
+ "SourceImage: C:\\Windows\\system32\\svchost.exe\n",
+ "TargetProcessId: 872\n",
+ "TargetImage: C:\\Windows\\system32\\lsass.exe\n",
+ "GrantedAccess: 0x1000\n",
+ "CallTrace: C:\\Windows\\SYSTEM32\\ntdll.dll+9d584|C:\\Windows\\System32\\KERNELBASE.dll+69f06|c:\\windows\\system32\\lsm.dll+e7f8|c:\\windows\\system32\\lsm.dll+11918|C:\\Windows\\System32\\RPCRT4.dll+799e3|C:\\Windows\\System32\\RPCRT4.dll+dd77b|C:\\Windows\\System32\\RPCRT4.dll+5ce8c|C:\\Windows\\System32\\RPCRT4.dll+59ee8|C:\\Windows\\System32\\RPCRT4.dll+39fa6|C:\\Windows\\System32\\RPCRT4.dll+398f8|C:\\Windows\\System32\\RPCRT4.dll+4766f|C:\\Windows\\System32\\RPCRT4.dll+46a78|C:\\Windows\\System32\\RPCRT4.dll+46061|C:\\Windows\\System32\\RPCRT4.dll+45ace|C:\\Windows\\System32\\RPCRT4.dll+4a1a2|C:\\Windows\\SYSTEM32\\ntdll.dll+20330|C:\\Windows\\SYSTEM32\\ntdll.dll+52f76|C:\\Windows\\System32\\KERNEL32.DLL+17614|C:\\Windows\\SYSTEM32\\ntdll.dll+526a1\n",
+ "--------------------------------------------------\n",
+ "Message 16:\n",
+ "Process accessed:\n",
+ "RuleName: -\n",
+ "SourceProcessId: 1072\n",
+ "SourceThreadId: 1096\n",
+ "SourceImage: C:\\Windows\\system32\\svchost.exe\n",
+ "TargetProcessId: 872\n",
+ "TargetImage: C:\\Windows\\system32\\lsass.exe\n",
+ "GrantedAccess: 0x1000\n",
+ "CallTrace: C:\\Windows\\SYSTEM32\\ntdll.dll+9d584|C:\\Windows\\System32\\KERNELBASE.dll+69f06|c:\\windows\\system32\\lsm.dll+e7f8|c:\\windows\\system32\\lsm.dll+dc6b|c:\\windows\\system32\\lsm.dll+11a1e|C:\\Windows\\System32\\RPCRT4.dll+799e3|C:\\Windows\\System32\\RPCRT4.dll+dd77b|C:\\Windows\\System32\\RPCRT4.dll+5ce8c|C:\\Windows\\System32\\RPCRT4.dll+59ee8|C:\\Windows\\System32\\RPCRT4.dll+39fa6|C:\\Windows\\System32\\RPCRT4.dll+398f8|C:\\Windows\\System32\\RPCRT4.dll+4766f|C:\\Windows\\System32\\RPCRT4.dll+46a78|C:\\Windows\\System32\\RPCRT4.dll+46061|C:\\Windows\\System32\\RPCRT4.dll+45ace|C:\\Windows\\System32\\RPCRT4.dll+4a1a2|C:\\Windows\\SYSTEM32\\ntdll.dll+20330|C:\\Windows\\SYSTEM32\\ntdll.dll+52f76|C:\\Windows\\System32\\KERNEL32.DLL+17614|C:\\Windows\\SYSTEM32\\ntdll.dll+526a1\n",
+ "--------------------------------------------------\n",
+ "Message 17:\n",
+ "Process Create:\n",
+ "RuleName: -\n",
+ "ProcessId: 4324\n",
+ "Image: C:\\Windows\\System32\\sc.exe\n",
+ "Description: Service Control Manager Configuration Tool\n",
+ "Product: Microsoft® Windows® Operating System\n",
+ "Company: Microsoft Corporation\n",
+ "OriginalFileName: sc.exe\n",
+ "CommandLine: \"C:\\Windows\\system32\\sc.exe\" start w32time task_started\n",
+ "CurrentDirectory: C:\\Windows\\system32\\\n",
+ "User: LOCAL SERVICE\n",
+ "TerminalSessionId: 0\n",
+ "IntegrityLevel: System\n",
+ "ParentProcessId: 2024\n",
+ "ParentImage: C:\\Windows\\System32\\svchost.exe\n",
+ "ParentCommandLine: C:\\Windows\\system32\\svchost.exe -k netsvcs -p -s Schedule\n",
+ "--------------------------------------------------\n",
+ "Message 18:\n",
+ "Process accessed:\n",
+ "RuleName: -\n",
+ "SourceProcessId: 1072\n",
+ "SourceThreadId: 1132\n",
+ "SourceImage: C:\\Windows\\system32\\svchost.exe\n",
+ "TargetProcessId: 872\n",
+ "TargetImage: C:\\Windows\\system32\\lsass.exe\n",
+ "GrantedAccess: 0x1000\n",
+ "CallTrace: C:\\Windows\\SYSTEM32\\ntdll.dll+9d584|C:\\Windows\\System32\\KERNELBASE.dll+69f06|c:\\windows\\system32\\lsm.dll+e7f8|c:\\windows\\system32\\lsm.dll+11918|C:\\Windows\\System32\\RPCRT4.dll+799e3|C:\\Windows\\System32\\RPCRT4.dll+dd77b|C:\\Windows\\System32\\RPCRT4.dll+5ce8c|C:\\Windows\\System32\\RPCRT4.dll+59ee8|C:\\Windows\\System32\\RPCRT4.dll+39fa6|C:\\Windows\\System32\\RPCRT4.dll+398f8|C:\\Windows\\System32\\RPCRT4.dll+4766f|C:\\Windows\\System32\\RPCRT4.dll+46a78|C:\\Windows\\System32\\RPCRT4.dll+46061|C:\\Windows\\System32\\RPCRT4.dll+45ace|C:\\Windows\\System32\\RPCRT4.dll+4a1a2|C:\\Windows\\SYSTEM32\\ntdll.dll+20330|C:\\Windows\\SYSTEM32\\ntdll.dll+52f76|C:\\Windows\\System32\\KERNEL32.DLL+17614|C:\\Windows\\SYSTEM32\\ntdll.dll+526a1\n",
+ "--------------------------------------------------\n",
+ "Message 19:\n",
+ "Process accessed:\n",
+ "RuleName: -\n",
+ "SourceProcessId: 1072\n",
+ "SourceThreadId: 1132\n",
+ "SourceImage: C:\\Windows\\system32\\svchost.exe\n",
+ "TargetProcessId: 872\n",
+ "TargetImage: C:\\Windows\\system32\\lsass.exe\n",
+ "GrantedAccess: 0x1000\n",
+ "CallTrace: C:\\Windows\\SYSTEM32\\ntdll.dll+9d584|C:\\Windows\\System32\\KERNELBASE.dll+69f06|c:\\windows\\system32\\lsm.dll+e7f8|c:\\windows\\system32\\lsm.dll+dc6b|c:\\windows\\system32\\lsm.dll+11a1e|C:\\Windows\\System32\\RPCRT4.dll+799e3|C:\\Windows\\System32\\RPCRT4.dll+dd77b|C:\\Windows\\System32\\RPCRT4.dll+5ce8c|C:\\Windows\\System32\\RPCRT4.dll+59ee8|C:\\Windows\\System32\\RPCRT4.dll+39fa6|C:\\Windows\\System32\\RPCRT4.dll+398f8|C:\\Windows\\System32\\RPCRT4.dll+4766f|C:\\Windows\\System32\\RPCRT4.dll+46a78|C:\\Windows\\System32\\RPCRT4.dll+46061|C:\\Windows\\System32\\RPCRT4.dll+45ace|C:\\Windows\\System32\\RPCRT4.dll+4a1a2|C:\\Windows\\SYSTEM32\\ntdll.dll+20330|C:\\Windows\\SYSTEM32\\ntdll.dll+52f76|C:\\Windows\\System32\\KERNEL32.DLL+17614|C:\\Windows\\SYSTEM32\\ntdll.dll+526a1\n",
+ "--------------------------------------------------\n",
+ "Message 20:\n",
+ "Process accessed:\n",
+ "RuleName: -\n",
+ "SourceProcessId: 1072\n",
+ "SourceThreadId: 1096\n",
+ "SourceImage: C:\\Windows\\system32\\svchost.exe\n",
+ "TargetProcessId: 872\n",
+ "TargetImage: C:\\Windows\\system32\\lsass.exe\n",
+ "GrantedAccess: 0x1000\n",
+ "CallTrace: C:\\Windows\\SYSTEM32\\ntdll.dll+9d584|C:\\Windows\\System32\\KERNELBASE.dll+69f06|c:\\windows\\system32\\lsm.dll+e7f8|c:\\windows\\system32\\lsm.dll+11918|C:\\Windows\\System32\\RPCRT4.dll+799e3|C:\\Windows\\System32\\RPCRT4.dll+dd77b|C:\\Windows\\System32\\RPCRT4.dll+5ce8c|C:\\Windows\\System32\\RPCRT4.dll+59ee8|C:\\Windows\\System32\\RPCRT4.dll+39fa6|C:\\Windows\\System32\\RPCRT4.dll+398f8|C:\\Windows\\System32\\RPCRT4.dll+4766f|C:\\Windows\\System32\\RPCRT4.dll+46a78|C:\\Windows\\System32\\RPCRT4.dll+46061|C:\\Windows\\System32\\RPCRT4.dll+45ace|C:\\Windows\\System32\\RPCRT4.dll+4a1a2|C:\\Windows\\SYSTEM32\\ntdll.dll+20330|C:\\Windows\\SYSTEM32\\ntdll.dll+52f76|C:\\Windows\\System32\\KERNEL32.DLL+17614|C:\\Windows\\SYSTEM32\\ntdll.dll+526a1\n",
+ "--------------------------------------------------\n",
+ "Message 21:\n",
+ "Process accessed:\n",
+ "RuleName: -\n",
+ "SourceProcessId: 1072\n",
+ "SourceThreadId: 1096\n",
+ "SourceImage: C:\\Windows\\system32\\svchost.exe\n",
+ "TargetProcessId: 872\n",
+ "TargetImage: C:\\Windows\\system32\\lsass.exe\n",
+ "GrantedAccess: 0x1000\n",
+ "CallTrace: C:\\Windows\\SYSTEM32\\ntdll.dll+9d584|C:\\Windows\\System32\\KERNELBASE.dll+69f06|c:\\windows\\system32\\lsm.dll+e7f8|c:\\windows\\system32\\lsm.dll+dc6b|c:\\windows\\system32\\lsm.dll+11a1e|C:\\Windows\\System32\\RPCRT4.dll+799e3|C:\\Windows\\System32\\RPCRT4.dll+dd77b|C:\\Windows\\System32\\RPCRT4.dll+5ce8c|C:\\Windows\\System32\\RPCRT4.dll+59ee8|C:\\Windows\\System32\\RPCRT4.dll+39fa6|C:\\Windows\\System32\\RPCRT4.dll+398f8|C:\\Windows\\System32\\RPCRT4.dll+4766f|C:\\Windows\\System32\\RPCRT4.dll+46a78|C:\\Windows\\System32\\RPCRT4.dll+46061|C:\\Windows\\System32\\RPCRT4.dll+45ace|C:\\Windows\\System32\\RPCRT4.dll+4a1a2|C:\\Windows\\SYSTEM32\\ntdll.dll+20330|C:\\Windows\\SYSTEM32\\ntdll.dll+52f76|C:\\Windows\\System32\\KERNEL32.DLL+17614|C:\\Windows\\SYSTEM32\\ntdll.dll+526a1\n",
+ "--------------------------------------------------\n",
+ "Message 22:\n",
+ "Process Create:\n",
+ "RuleName: -\n",
+ "ProcessId: 5828\n",
+ "Image: C:\\Windows\\System32\\taskhostw.exe\n",
+ "Description: Host Process for Windows Tasks\n",
+ "Product: Microsoft® Windows® Operating System\n",
+ "Company: Microsoft Corporation\n",
+ "OriginalFileName: taskhostw.exe\n",
+ "CommandLine: taskhostw.exe\n",
+ "CurrentDirectory: C:\\Windows\\system32\\\n",
+ "User: LOCAL SERVICE\n",
+ "TerminalSessionId: 0\n",
+ "IntegrityLevel: System\n",
+ "ParentProcessId: 2024\n",
+ "ParentImage: C:\\Windows\\System32\\svchost.exe\n",
+ "ParentCommandLine: C:\\Windows\\system32\\svchost.exe -k netsvcs -p -s Schedule\n",
+ "--------------------------------------------------\n",
+ "Message 23:\n",
+ "Process Create:\n",
+ "RuleName: -\n",
+ "ProcessId: 4996\n",
+ "Image: C:\\Windows\\System32\\rundll32.exe\n",
+ "Description: Windows host process (Rundll32)\n",
+ "Product: Microsoft® Windows® Operating System\n",
+ "Company: Microsoft Corporation\n",
+ "OriginalFileName: RUNDLL32.EXE\n",
+ "CommandLine: \"C:\\Windows\\system32\\rundll32.exe\" C:\\Windows\\system32\\Windows.StateRepositoryClient.dll,StateRepositoryDoMaintenanceTasks\n",
+ "CurrentDirectory: C:\\Windows\\system32\\\n",
+ "User: SYSTEM\n",
+ "TerminalSessionId: 0\n",
+ "IntegrityLevel: System\n",
+ "ParentProcessId: 2024\n",
+ "ParentImage: C:\\Windows\\System32\\svchost.exe\n",
+ "ParentCommandLine: C:\\Windows\\system32\\svchost.exe -k netsvcs -p -s Schedule\n",
+ "--------------------------------------------------\n",
+ "Message 24:\n",
+ "Process Create:\n",
+ "RuleName: -\n",
+ "ProcessId: 5376\n",
+ "Image: C:\\Windows\\System32\\Defrag.exe\n",
+ "Description: Disk Defragmenter Module\n",
+ "Product: Windows Drive Optimizer\n",
+ "Company: Microsoft Corp.\n",
+ "OriginalFileName: Defrag.EXE\n",
+ "CommandLine: \"C:\\Windows\\system32\\defrag.exe\" -c -h -o -$\n",
+ "CurrentDirectory: C:\\Windows\\system32\\\n",
+ "User: SYSTEM\n",
+ "TerminalSessionId: 0\n",
+ "IntegrityLevel: System\n",
+ "ParentProcessId: 2024\n",
+ "ParentImage: C:\\Windows\\System32\\svchost.exe\n",
+ "ParentCommandLine: C:\\Windows\\system32\\svchost.exe -k netsvcs -p -s Schedule\n",
+ "--------------------------------------------------\n",
+ "Message 25:\n",
+ "Process Create:\n",
+ "RuleName: -\n",
+ "ProcessId: 4240\n",
+ "Image: C:\\Windows\\System32\\dmclient.exe\n",
+ "Description: Microsoft Feedback SIUF Deployment Manager Client\n",
+ "Product: Microsoft® Windows® Operating System\n",
+ "Company: Microsoft Corporation\n",
+ "OriginalFileName: dmclient.exe\n",
+ "CommandLine: \"C:\\Windows\\system32\\dmclient.exe\"\n",
+ "CurrentDirectory: C:\\Windows\\system32\\\n",
+ "User: SYSTEM\n",
+ "TerminalSessionId: 0\n",
+ "IntegrityLevel: System\n",
+ "ParentProcessId: 2024\n",
+ "ParentImage: C:\\Windows\\System32\\svchost.exe\n",
+ "ParentCommandLine: C:\\Windows\\system32\\svchost.exe -k netsvcs -p -s Schedule\n",
+ "--------------------------------------------------\n",
+ "Message 26:\n",
+ "Process accessed:\n",
+ "RuleName: -\n",
+ "SourceProcessId: 1072\n",
+ "SourceThreadId: 1096\n",
+ "SourceImage: C:\\Windows\\system32\\svchost.exe\n",
+ "TargetProcessId: 872\n",
+ "TargetImage: C:\\Windows\\system32\\lsass.exe\n",
+ "GrantedAccess: 0x1000\n",
+ "CallTrace: C:\\Windows\\SYSTEM32\\ntdll.dll+9d584|C:\\Windows\\System32\\KERNELBASE.dll+69f06|c:\\windows\\system32\\lsm.dll+e7f8|c:\\windows\\system32\\lsm.dll+11918|C:\\Windows\\System32\\RPCRT4.dll+799e3|C:\\Windows\\System32\\RPCRT4.dll+dd77b|C:\\Windows\\System32\\RPCRT4.dll+5ce8c|C:\\Windows\\System32\\RPCRT4.dll+59ee8|C:\\Windows\\System32\\RPCRT4.dll+39fa6|C:\\Windows\\System32\\RPCRT4.dll+398f8|C:\\Windows\\System32\\RPCRT4.dll+4766f|C:\\Windows\\System32\\RPCRT4.dll+46a78|C:\\Windows\\System32\\RPCRT4.dll+46061|C:\\Windows\\System32\\RPCRT4.dll+45ace|C:\\Windows\\System32\\RPCRT4.dll+4a1a2|C:\\Windows\\SYSTEM32\\ntdll.dll+20330|C:\\Windows\\SYSTEM32\\ntdll.dll+52f76|C:\\Windows\\System32\\KERNEL32.DLL+17614|C:\\Windows\\SYSTEM32\\ntdll.dll+526a1\n",
+ "--------------------------------------------------\n",
+ "Message 27:\n",
+ "Process accessed:\n",
+ "RuleName: -\n",
+ "SourceProcessId: 1072\n",
+ "SourceThreadId: 1096\n",
+ "SourceImage: C:\\Windows\\system32\\svchost.exe\n",
+ "TargetProcessId: 872\n",
+ "TargetImage: C:\\Windows\\system32\\lsass.exe\n",
+ "GrantedAccess: 0x1000\n",
+ "CallTrace: C:\\Windows\\SYSTEM32\\ntdll.dll+9d584|C:\\Windows\\System32\\KERNELBASE.dll+69f06|c:\\windows\\system32\\lsm.dll+e7f8|c:\\windows\\system32\\lsm.dll+dc6b|c:\\windows\\system32\\lsm.dll+11a1e|C:\\Windows\\System32\\RPCRT4.dll+799e3|C:\\Windows\\System32\\RPCRT4.dll+dd77b|C:\\Windows\\System32\\RPCRT4.dll+5ce8c|C:\\Windows\\System32\\RPCRT4.dll+59ee8|C:\\Windows\\System32\\RPCRT4.dll+39fa6|C:\\Windows\\System32\\RPCRT4.dll+398f8|C:\\Windows\\System32\\RPCRT4.dll+4766f|C:\\Windows\\System32\\RPCRT4.dll+46a78|C:\\Windows\\System32\\RPCRT4.dll+46061|C:\\Windows\\System32\\RPCRT4.dll+45ace|C:\\Windows\\System32\\RPCRT4.dll+4a1a2|C:\\Windows\\SYSTEM32\\ntdll.dll+20330|C:\\Windows\\SYSTEM32\\ntdll.dll+52f76|C:\\Windows\\System32\\KERNEL32.DLL+17614|C:\\Windows\\SYSTEM32\\ntdll.dll+526a1\n",
+ "--------------------------------------------------\n",
+ "Message 28:\n",
+ "Process Create:\n",
+ "RuleName: -\n",
+ "ProcessId: 4980\n",
+ "Image: C:\\Windows\\System32\\tzsync.exe\n",
+ "Description: TimeZone Sync Task\n",
+ "Product: Microsoft® Windows® Operating System\n",
+ "Company: Microsoft Corporation\n",
+ "OriginalFileName: tzsync.exe\n",
+ "CommandLine: \"C:\\Windows\\system32\\tzsync.exe\"\n",
+ "CurrentDirectory: C:\\Windows\\system32\\\n",
+ "User: SYSTEM\n",
+ "TerminalSessionId: 0\n",
+ "IntegrityLevel: System\n",
+ "ParentProcessId: 2024\n",
+ "ParentImage: C:\\Windows\\System32\\svchost.exe\n",
+ "ParentCommandLine: C:\\Windows\\system32\\svchost.exe -k netsvcs -p -s Schedule\n",
+ "--------------------------------------------------\n",
+ "Message 29:\n",
+ "Process Create:\n",
+ "RuleName: -\n",
+ "ProcessId: 1528\n",
+ "Image: C:\\Windows\\System32\\DiskSnapshot.exe\n",
+ "Description: DiskSnapshot.exe\n",
+ "Product: Microsoft® Windows® Operating System\n",
+ "Company: Microsoft Corporation\n",
+ "OriginalFileName: DiskSnapshot.exe\n",
+ "CommandLine: \"C:\\Windows\\system32\\disksnapshot.exe\" -z\n",
+ "CurrentDirectory: C:\\Windows\\system32\\\n",
+ "User: SYSTEM\n",
+ "TerminalSessionId: 0\n",
+ "IntegrityLevel: System\n",
+ "ParentProcessId: 2024\n",
+ "ParentImage: C:\\Windows\\System32\\svchost.exe\n",
+ "ParentCommandLine: C:\\Windows\\system32\\svchost.exe -k netsvcs -p -s Schedule\n",
+ "--------------------------------------------------\n",
+ "Message 30:\n",
+ "Process Create:\n",
+ "RuleName: -\n",
+ "ProcessId: 2384\n",
+ "Image: C:\\Windows\\System32\\rundll32.exe\n",
+ "Description: Windows host process (Rundll32)\n",
+ "Product: Microsoft® Windows® Operating System\n",
+ "Company: Microsoft Corporation\n",
+ "OriginalFileName: RUNDLL32.EXE\n",
+ "CommandLine: \"C:\\Windows\\system32\\rundll32.exe\" Windows.Storage.ApplicationData.dll,CleanupTemporaryState\n",
+ "CurrentDirectory: C:\\Windows\\system32\\\n",
+ "User: SYSTEM\n",
+ "TerminalSessionId: 0\n",
+ "IntegrityLevel: System\n",
+ "ParentProcessId: 2024\n",
+ "ParentImage: C:\\Windows\\System32\\svchost.exe\n",
+ "ParentCommandLine: C:\\Windows\\system32\\svchost.exe -k netsvcs -p -s Schedule\n",
+ "--------------------------------------------------\n",
+ "Message 31:\n",
+ "Process Create:\n",
+ "RuleName: -\n",
+ "ProcessId: 5156\n",
+ "Image: C:\\Windows\\System32\\dstokenclean.exe\n",
+ "Description: Data Sharing Service Maintenance Driver\n",
+ "Product: Microsoft® Windows® Operating System\n",
+ "Company: Microsoft Corporation\n",
+ "OriginalFileName: dstokenclean.exe\n",
+ "CommandLine: \"C:\\Windows\\system32\\dstokenclean.exe\"\n",
+ "CurrentDirectory: C:\\Windows\\system32\\\n",
+ "User: SYSTEM\n",
+ "TerminalSessionId: 0\n",
+ "IntegrityLevel: System\n",
+ "ParentProcessId: 2024\n",
+ "ParentImage: C:\\Windows\\System32\\svchost.exe\n",
+ "ParentCommandLine: C:\\Windows\\system32\\svchost.exe -k netsvcs -p -s Schedule\n",
+ "--------------------------------------------------\n",
+ "Message 32:\n",
+ "Process accessed:\n",
+ "RuleName: -\n",
+ "SourceProcessId: 1072\n",
+ "SourceThreadId: 1132\n",
+ "SourceImage: C:\\Windows\\system32\\svchost.exe\n",
+ "TargetProcessId: 872\n",
+ "TargetImage: C:\\Windows\\system32\\lsass.exe\n",
+ "GrantedAccess: 0x1000\n",
+ "CallTrace: C:\\Windows\\SYSTEM32\\ntdll.dll+9d584|C:\\Windows\\System32\\KERNELBASE.dll+69f06|c:\\windows\\system32\\lsm.dll+e7f8|c:\\windows\\system32\\lsm.dll+11918|C:\\Windows\\System32\\RPCRT4.dll+799e3|C:\\Windows\\System32\\RPCRT4.dll+dd77b|C:\\Windows\\System32\\RPCRT4.dll+5ce8c|C:\\Windows\\System32\\RPCRT4.dll+59ee8|C:\\Windows\\System32\\RPCRT4.dll+39fa6|C:\\Windows\\System32\\RPCRT4.dll+398f8|C:\\Windows\\System32\\RPCRT4.dll+4766f|C:\\Windows\\System32\\RPCRT4.dll+46a78|C:\\Windows\\System32\\RPCRT4.dll+46061|C:\\Windows\\System32\\RPCRT4.dll+45ace|C:\\Windows\\System32\\RPCRT4.dll+4a1a2|C:\\Windows\\SYSTEM32\\ntdll.dll+20330|C:\\Windows\\SYSTEM32\\ntdll.dll+52f76|C:\\Windows\\System32\\KERNEL32.DLL+17614|C:\\Windows\\SYSTEM32\\ntdll.dll+526a1\n",
+ "--------------------------------------------------\n",
+ "Message 33:\n",
+ "Process accessed:\n",
+ "RuleName: -\n",
+ "SourceProcessId: 1072\n",
+ "SourceThreadId: 1132\n",
+ "SourceImage: C:\\Windows\\system32\\svchost.exe\n",
+ "TargetProcessId: 872\n",
+ "TargetImage: C:\\Windows\\system32\\lsass.exe\n",
+ "GrantedAccess: 0x1000\n",
+ "CallTrace: C:\\Windows\\SYSTEM32\\ntdll.dll+9d584|C:\\Windows\\System32\\KERNELBASE.dll+69f06|c:\\windows\\system32\\lsm.dll+e7f8|c:\\windows\\system32\\lsm.dll+dc6b|c:\\windows\\system32\\lsm.dll+11a1e|C:\\Windows\\System32\\RPCRT4.dll+799e3|C:\\Windows\\System32\\RPCRT4.dll+dd77b|C:\\Windows\\System32\\RPCRT4.dll+5ce8c|C:\\Windows\\System32\\RPCRT4.dll+59ee8|C:\\Windows\\System32\\RPCRT4.dll+39fa6|C:\\Windows\\System32\\RPCRT4.dll+398f8|C:\\Windows\\System32\\RPCRT4.dll+4766f|C:\\Windows\\System32\\RPCRT4.dll+46a78|C:\\Windows\\System32\\RPCRT4.dll+46061|C:\\Windows\\System32\\RPCRT4.dll+45ace|C:\\Windows\\System32\\RPCRT4.dll+4a1a2|C:\\Windows\\SYSTEM32\\ntdll.dll+20330|C:\\Windows\\SYSTEM32\\ntdll.dll+52f76|C:\\Windows\\System32\\KERNEL32.DLL+17614|C:\\Windows\\SYSTEM32\\ntdll.dll+526a1\n",
+ "--------------------------------------------------\n",
+ "Message 34:\n",
+ "Process Create:\n",
+ "RuleName: -\n",
+ "ProcessId: 5632\n",
+ "Image: C:\\Windows\\System32\\svchost.exe\n",
+ "Description: Host Process for Windows Services\n",
+ "Product: Microsoft® Windows® Operating System\n",
+ "Company: Microsoft Corporation\n",
+ "OriginalFileName: svchost.exe\n",
+ "CommandLine: C:\\Windows\\system32\\svchost.exe -k netsvcs -p -s wisvc\n",
+ "CurrentDirectory: C:\\Windows\\system32\\\n",
+ "User: SYSTEM\n",
+ "TerminalSessionId: 0\n",
+ "IntegrityLevel: System\n",
+ "ParentProcessId: 824\n",
+ "ParentImage: C:\\Windows\\System32\\services.exe\n",
+ "ParentCommandLine: C:\\Windows\\system32\\services.exe\n",
+ "--------------------------------------------------\n",
+ "Message 35:\n",
+ "Process Create:\n",
+ "RuleName: -\n",
+ "ProcessId: 2388\n",
+ "Image: C:\\Windows\\Microsoft.NET\\Framework64\\v4.0.30319\\ngentask.exe\n",
+ "Description: Microsoft .NET Framework optimization service\n",
+ "Product: Microsoft® .NET Framework\n",
+ "Company: Microsoft Corporation\n",
+ "OriginalFileName: NGenTask.exe\n",
+ "CommandLine: \"C:\\Windows\\Microsoft.NET\\Framework64\\v4.0.30319\\NGenTask.exe\" /RuntimeWide /StopEvent:480\n",
+ "CurrentDirectory: C:\\Windows\\system32\\\n",
+ "User: SYSTEM\n",
+ "TerminalSessionId: 0\n",
+ "IntegrityLevel: System\n",
+ "ParentProcessId: 4492\n",
+ "ParentImage: C:\\Windows\\System32\\taskhostw.exe\n",
+ "ParentCommandLine: taskhostw.exe\n",
+ "--------------------------------------------------\n",
+ "Message 36:\n",
+ "Process Create:\n",
+ "RuleName: -\n",
+ "ProcessId: 6460\n",
+ "Image: C:\\Windows\\Microsoft.NET\\Framework\\v4.0.30319\\ngentask.exe\n",
+ "Description: Microsoft .NET Framework optimization service\n",
+ "Product: Microsoft® .NET Framework\n",
+ "Company: Microsoft Corporation\n",
+ "OriginalFileName: NGenTask.exe\n",
+ "CommandLine: \"C:\\Windows\\Microsoft.NET\\Framework\\v4.0.30319\\NGenTask.exe\" /RuntimeWide /StopEvent:1132\n",
+ "CurrentDirectory: C:\\Windows\\system32\\\n",
+ "User: SYSTEM\n",
+ "TerminalSessionId: 0\n",
+ "IntegrityLevel: System\n",
+ "ParentProcessId: 4492\n",
+ "ParentImage: C:\\Windows\\System32\\taskhostw.exe\n",
+ "ParentCommandLine: taskhostw.exe\n",
+ "--------------------------------------------------\n",
+ "Message 37:\n",
+ "Process accessed:\n",
+ "RuleName: -\n",
+ "SourceProcessId: 1072\n",
+ "SourceThreadId: 1096\n",
+ "SourceImage: C:\\Windows\\system32\\svchost.exe\n",
+ "TargetProcessId: 872\n",
+ "TargetImage: C:\\Windows\\system32\\lsass.exe\n",
+ "GrantedAccess: 0x1000\n",
+ "CallTrace: C:\\Windows\\SYSTEM32\\ntdll.dll+9d584|C:\\Windows\\System32\\KERNELBASE.dll+69f06|c:\\windows\\system32\\lsm.dll+e7f8|c:\\windows\\system32\\lsm.dll+11918|C:\\Windows\\System32\\RPCRT4.dll+799e3|C:\\Windows\\System32\\RPCRT4.dll+dd77b|C:\\Windows\\System32\\RPCRT4.dll+5ce8c|C:\\Windows\\System32\\RPCRT4.dll+59ee8|C:\\Windows\\System32\\RPCRT4.dll+39fa6|C:\\Windows\\System32\\RPCRT4.dll+398f8|C:\\Windows\\System32\\RPCRT4.dll+4766f|C:\\Windows\\System32\\RPCRT4.dll+46a78|C:\\Windows\\System32\\RPCRT4.dll+46061|C:\\Windows\\System32\\RPCRT4.dll+45ace|C:\\Windows\\System32\\RPCRT4.dll+4a1a2|C:\\Windows\\SYSTEM32\\ntdll.dll+20330|C:\\Windows\\SYSTEM32\\ntdll.dll+52f76|C:\\Windows\\System32\\KERNEL32.DLL+17614|C:\\Windows\\SYSTEM32\\ntdll.dll+526a1\n",
+ "--------------------------------------------------\n",
+ "Message 38:\n",
+ "Process accessed:\n",
+ "RuleName: -\n",
+ "SourceProcessId: 1072\n",
+ "SourceThreadId: 1096\n",
+ "SourceImage: C:\\Windows\\system32\\svchost.exe\n",
+ "TargetProcessId: 872\n",
+ "TargetImage: C:\\Windows\\system32\\lsass.exe\n",
+ "GrantedAccess: 0x1000\n",
+ "CallTrace: C:\\Windows\\SYSTEM32\\ntdll.dll+9d584|C:\\Windows\\System32\\KERNELBASE.dll+69f06|c:\\windows\\system32\\lsm.dll+e7f8|c:\\windows\\system32\\lsm.dll+dc6b|c:\\windows\\system32\\lsm.dll+11a1e|C:\\Windows\\System32\\RPCRT4.dll+799e3|C:\\Windows\\System32\\RPCRT4.dll+dd77b|C:\\Windows\\System32\\RPCRT4.dll+5ce8c|C:\\Windows\\System32\\RPCRT4.dll+59ee8|C:\\Windows\\System32\\RPCRT4.dll+39fa6|C:\\Windows\\System32\\RPCRT4.dll+398f8|C:\\Windows\\System32\\RPCRT4.dll+4766f|C:\\Windows\\System32\\RPCRT4.dll+46a78|C:\\Windows\\System32\\RPCRT4.dll+46061|C:\\Windows\\System32\\RPCRT4.dll+45ace|C:\\Windows\\System32\\RPCRT4.dll+4a1a2|C:\\Windows\\SYSTEM32\\ntdll.dll+20330|C:\\Windows\\SYSTEM32\\ntdll.dll+52f76|C:\\Windows\\System32\\KERNEL32.DLL+17614|C:\\Windows\\SYSTEM32\\ntdll.dll+526a1\n",
+ "--------------------------------------------------\n",
+ "Message 39:\n",
+ "Process Create:\n",
+ "RuleName: -\n",
+ "ProcessId: 4292\n",
+ "Image: C:\\Windows\\System32\\svchost.exe\n",
+ "Description: Host Process for Windows Services\n",
+ "Product: Microsoft® Windows® Operating System\n",
+ "Company: Microsoft Corporation\n",
+ "OriginalFileName: svchost.exe\n",
+ "CommandLine: C:\\Windows\\System32\\svchost.exe -k LocalSystemNetworkRestricted -p -s DsSvc\n",
+ "CurrentDirectory: C:\\Windows\\system32\\\n",
+ "User: SYSTEM\n",
+ "TerminalSessionId: 0\n",
+ "IntegrityLevel: System\n",
+ "ParentProcessId: 824\n",
+ "ParentImage: C:\\Windows\\System32\\services.exe\n",
+ "ParentCommandLine: C:\\Windows\\system32\\services.exe\n",
+ "--------------------------------------------------\n",
+ "Message 40:\n",
+ "Process accessed:\n",
+ "RuleName: -\n",
+ "SourceProcessId: 1072\n",
+ "SourceThreadId: 1096\n",
+ "SourceImage: C:\\Windows\\system32\\svchost.exe\n",
+ "TargetProcessId: 872\n",
+ "TargetImage: C:\\Windows\\system32\\lsass.exe\n",
+ "GrantedAccess: 0x1000\n",
+ "CallTrace: C:\\Windows\\SYSTEM32\\ntdll.dll+9d584|C:\\Windows\\System32\\KERNELBASE.dll+69f06|c:\\windows\\system32\\lsm.dll+e7f8|c:\\windows\\system32\\lsm.dll+11918|C:\\Windows\\System32\\RPCRT4.dll+799e3|C:\\Windows\\System32\\RPCRT4.dll+dd77b|C:\\Windows\\System32\\RPCRT4.dll+5ce8c|C:\\Windows\\System32\\RPCRT4.dll+59ee8|C:\\Windows\\System32\\RPCRT4.dll+39fa6|C:\\Windows\\System32\\RPCRT4.dll+398f8|C:\\Windows\\System32\\RPCRT4.dll+4766f|C:\\Windows\\System32\\RPCRT4.dll+46a78|C:\\Windows\\System32\\RPCRT4.dll+46061|C:\\Windows\\System32\\RPCRT4.dll+45ace|C:\\Windows\\System32\\RPCRT4.dll+4a1a2|C:\\Windows\\SYSTEM32\\ntdll.dll+20330|C:\\Windows\\SYSTEM32\\ntdll.dll+52f76|C:\\Windows\\System32\\KERNEL32.DLL+17614|C:\\Windows\\SYSTEM32\\ntdll.dll+526a1\n",
+ "--------------------------------------------------\n",
+ "Message 41:\n",
+ "Process accessed:\n",
+ "RuleName: -\n",
+ "SourceProcessId: 1072\n",
+ "SourceThreadId: 1096\n",
+ "SourceImage: C:\\Windows\\system32\\svchost.exe\n",
+ "TargetProcessId: 872\n",
+ "TargetImage: C:\\Windows\\system32\\lsass.exe\n",
+ "GrantedAccess: 0x1000\n",
+ "CallTrace: C:\\Windows\\SYSTEM32\\ntdll.dll+9d584|C:\\Windows\\System32\\KERNELBASE.dll+69f06|c:\\windows\\system32\\lsm.dll+e7f8|c:\\windows\\system32\\lsm.dll+dc6b|c:\\windows\\system32\\lsm.dll+11a1e|C:\\Windows\\System32\\RPCRT4.dll+799e3|C:\\Windows\\System32\\RPCRT4.dll+dd77b|C:\\Windows\\System32\\RPCRT4.dll+5ce8c|C:\\Windows\\System32\\RPCRT4.dll+59ee8|C:\\Windows\\System32\\RPCRT4.dll+39fa6|C:\\Windows\\System32\\RPCRT4.dll+398f8|C:\\Windows\\System32\\RPCRT4.dll+4766f|C:\\Windows\\System32\\RPCRT4.dll+46a78|C:\\Windows\\System32\\RPCRT4.dll+46061|C:\\Windows\\System32\\RPCRT4.dll+45ace|C:\\Windows\\System32\\RPCRT4.dll+4a1a2|C:\\Windows\\SYSTEM32\\ntdll.dll+20330|C:\\Windows\\SYSTEM32\\ntdll.dll+52f76|C:\\Windows\\System32\\KERNEL32.DLL+17614|C:\\Windows\\SYSTEM32\\ntdll.dll+526a1\n",
+ "--------------------------------------------------\n",
+ "Message 42:\n",
+ "Process accessed:\n",
+ "RuleName: -\n",
+ "SourceProcessId: 1072\n",
+ "SourceThreadId: 1096\n",
+ "SourceImage: C:\\Windows\\system32\\svchost.exe\n",
+ "TargetProcessId: 872\n",
+ "TargetImage: C:\\Windows\\system32\\lsass.exe\n",
+ "GrantedAccess: 0x1000\n",
+ "CallTrace: C:\\Windows\\SYSTEM32\\ntdll.dll+9d584|C:\\Windows\\System32\\KERNELBASE.dll+69f06|c:\\windows\\system32\\lsm.dll+e7f8|c:\\windows\\system32\\lsm.dll+11918|C:\\Windows\\System32\\RPCRT4.dll+799e3|C:\\Windows\\System32\\RPCRT4.dll+dd77b|C:\\Windows\\System32\\RPCRT4.dll+5ce8c|C:\\Windows\\System32\\RPCRT4.dll+59ee8|C:\\Windows\\System32\\RPCRT4.dll+39fa6|C:\\Windows\\System32\\RPCRT4.dll+398f8|C:\\Windows\\System32\\RPCRT4.dll+4766f|C:\\Windows\\System32\\RPCRT4.dll+46a78|C:\\Windows\\System32\\RPCRT4.dll+46061|C:\\Windows\\System32\\RPCRT4.dll+45ace|C:\\Windows\\System32\\RPCRT4.dll+4a1a2|C:\\Windows\\SYSTEM32\\ntdll.dll+20330|C:\\Windows\\SYSTEM32\\ntdll.dll+52f76|C:\\Windows\\System32\\KERNEL32.DLL+17614|C:\\Windows\\SYSTEM32\\ntdll.dll+526a1\n",
+ "--------------------------------------------------\n",
+ "Message 43:\n",
+ "Process accessed:\n",
+ "RuleName: -\n",
+ "SourceProcessId: 1072\n",
+ "SourceThreadId: 1096\n",
+ "SourceImage: C:\\Windows\\system32\\svchost.exe\n",
+ "TargetProcessId: 872\n",
+ "TargetImage: C:\\Windows\\system32\\lsass.exe\n",
+ "GrantedAccess: 0x1000\n",
+ "CallTrace: C:\\Windows\\SYSTEM32\\ntdll.dll+9d584|C:\\Windows\\System32\\KERNELBASE.dll+69f06|c:\\windows\\system32\\lsm.dll+e7f8|c:\\windows\\system32\\lsm.dll+dc6b|c:\\windows\\system32\\lsm.dll+11a1e|C:\\Windows\\System32\\RPCRT4.dll+799e3|C:\\Windows\\System32\\RPCRT4.dll+dd77b|C:\\Windows\\System32\\RPCRT4.dll+5ce8c|C:\\Windows\\System32\\RPCRT4.dll+59ee8|C:\\Windows\\System32\\RPCRT4.dll+39fa6|C:\\Windows\\System32\\RPCRT4.dll+398f8|C:\\Windows\\System32\\RPCRT4.dll+4766f|C:\\Windows\\System32\\RPCRT4.dll+46a78|C:\\Windows\\System32\\RPCRT4.dll+46061|C:\\Windows\\System32\\RPCRT4.dll+45ace|C:\\Windows\\System32\\RPCRT4.dll+4a1a2|C:\\Windows\\SYSTEM32\\ntdll.dll+20330|C:\\Windows\\SYSTEM32\\ntdll.dll+52f76|C:\\Windows\\System32\\KERNEL32.DLL+17614|C:\\Windows\\SYSTEM32\\ntdll.dll+526a1\n",
+ "--------------------------------------------------\n",
+ "Message 44:\n",
+ "Process accessed:\n",
+ "RuleName: -\n",
+ "SourceProcessId: 1072\n",
+ "SourceThreadId: 1096\n",
+ "SourceImage: C:\\Windows\\system32\\svchost.exe\n",
+ "TargetProcessId: 872\n",
+ "TargetImage: C:\\Windows\\system32\\lsass.exe\n",
+ "GrantedAccess: 0x1000\n",
+ "CallTrace: C:\\Windows\\SYSTEM32\\ntdll.dll+9d584|C:\\Windows\\System32\\KERNELBASE.dll+69f06|c:\\windows\\system32\\lsm.dll+e7f8|c:\\windows\\system32\\lsm.dll+11918|C:\\Windows\\System32\\RPCRT4.dll+799e3|C:\\Windows\\System32\\RPCRT4.dll+dd77b|C:\\Windows\\System32\\RPCRT4.dll+5ce8c|C:\\Windows\\System32\\RPCRT4.dll+59ee8|C:\\Windows\\System32\\RPCRT4.dll+39fa6|C:\\Windows\\System32\\RPCRT4.dll+398f8|C:\\Windows\\System32\\RPCRT4.dll+4766f|C:\\Windows\\System32\\RPCRT4.dll+46a78|C:\\Windows\\System32\\RPCRT4.dll+46061|C:\\Windows\\System32\\RPCRT4.dll+45ace|C:\\Windows\\System32\\RPCRT4.dll+4a1a2|C:\\Windows\\SYSTEM32\\ntdll.dll+20330|C:\\Windows\\SYSTEM32\\ntdll.dll+52f76|C:\\Windows\\System32\\KERNEL32.DLL+17614|C:\\Windows\\SYSTEM32\\ntdll.dll+526a1\n",
+ "--------------------------------------------------\n",
+ "Message 45:\n",
+ "Process accessed:\n",
+ "RuleName: -\n",
+ "SourceProcessId: 1072\n",
+ "SourceThreadId: 1096\n",
+ "SourceImage: C:\\Windows\\system32\\svchost.exe\n",
+ "TargetProcessId: 872\n",
+ "TargetImage: C:\\Windows\\system32\\lsass.exe\n",
+ "GrantedAccess: 0x1000\n",
+ "CallTrace: C:\\Windows\\SYSTEM32\\ntdll.dll+9d584|C:\\Windows\\System32\\KERNELBASE.dll+69f06|c:\\windows\\system32\\lsm.dll+e7f8|c:\\windows\\system32\\lsm.dll+dc6b|c:\\windows\\system32\\lsm.dll+11a1e|C:\\Windows\\System32\\RPCRT4.dll+799e3|C:\\Windows\\System32\\RPCRT4.dll+dd77b|C:\\Windows\\System32\\RPCRT4.dll+5ce8c|C:\\Windows\\System32\\RPCRT4.dll+59ee8|C:\\Windows\\System32\\RPCRT4.dll+39fa6|C:\\Windows\\System32\\RPCRT4.dll+398f8|C:\\Windows\\System32\\RPCRT4.dll+4766f|C:\\Windows\\System32\\RPCRT4.dll+46a78|C:\\Windows\\System32\\RPCRT4.dll+46061|C:\\Windows\\System32\\RPCRT4.dll+45ace|C:\\Windows\\System32\\RPCRT4.dll+4a1a2|C:\\Windows\\SYSTEM32\\ntdll.dll+20330|C:\\Windows\\SYSTEM32\\ntdll.dll+52f76|C:\\Windows\\System32\\KERNEL32.DLL+17614|C:\\Windows\\SYSTEM32\\ntdll.dll+526a1\n",
+ "--------------------------------------------------\n",
+ "Message 46:\n",
+ "Process accessed:\n",
+ "RuleName: -\n",
+ "SourceProcessId: 1072\n",
+ "SourceThreadId: 1096\n",
+ "SourceImage: C:\\Windows\\system32\\svchost.exe\n",
+ "TargetProcessId: 872\n",
+ "TargetImage: C:\\Windows\\system32\\lsass.exe\n",
+ "GrantedAccess: 0x1000\n",
+ "CallTrace: C:\\Windows\\SYSTEM32\\ntdll.dll+9d584|C:\\Windows\\System32\\KERNELBASE.dll+69f06|c:\\windows\\system32\\lsm.dll+e7f8|c:\\windows\\system32\\lsm.dll+11918|C:\\Windows\\System32\\RPCRT4.dll+799e3|C:\\Windows\\System32\\RPCRT4.dll+dd77b|C:\\Windows\\System32\\RPCRT4.dll+5ce8c|C:\\Windows\\System32\\RPCRT4.dll+59ee8|C:\\Windows\\System32\\RPCRT4.dll+39fa6|C:\\Windows\\System32\\RPCRT4.dll+398f8|C:\\Windows\\System32\\RPCRT4.dll+4766f|C:\\Windows\\System32\\RPCRT4.dll+46a78|C:\\Windows\\System32\\RPCRT4.dll+46061|C:\\Windows\\System32\\RPCRT4.dll+45ace|C:\\Windows\\System32\\RPCRT4.dll+4a1a2|C:\\Windows\\SYSTEM32\\ntdll.dll+20330|C:\\Windows\\SYSTEM32\\ntdll.dll+52f76|C:\\Windows\\System32\\KERNEL32.DLL+17614|C:\\Windows\\SYSTEM32\\ntdll.dll+526a1\n",
+ "--------------------------------------------------\n",
+ "Message 47:\n",
+ "Process accessed:\n",
+ "RuleName: -\n",
+ "SourceProcessId: 1072\n",
+ "SourceThreadId: 1096\n",
+ "SourceImage: C:\\Windows\\system32\\svchost.exe\n",
+ "TargetProcessId: 872\n",
+ "TargetImage: C:\\Windows\\system32\\lsass.exe\n",
+ "GrantedAccess: 0x1000\n",
+ "CallTrace: C:\\Windows\\SYSTEM32\\ntdll.dll+9d584|C:\\Windows\\System32\\KERNELBASE.dll+69f06|c:\\windows\\system32\\lsm.dll+e7f8|c:\\windows\\system32\\lsm.dll+dc6b|c:\\windows\\system32\\lsm.dll+11a1e|C:\\Windows\\System32\\RPCRT4.dll+799e3|C:\\Windows\\System32\\RPCRT4.dll+dd77b|C:\\Windows\\System32\\RPCRT4.dll+5ce8c|C:\\Windows\\System32\\RPCRT4.dll+59ee8|C:\\Windows\\System32\\RPCRT4.dll+39fa6|C:\\Windows\\System32\\RPCRT4.dll+398f8|C:\\Windows\\System32\\RPCRT4.dll+4766f|C:\\Windows\\System32\\RPCRT4.dll+46a78|C:\\Windows\\System32\\RPCRT4.dll+46061|C:\\Windows\\System32\\RPCRT4.dll+45ace|C:\\Windows\\System32\\RPCRT4.dll+4a1a2|C:\\Windows\\SYSTEM32\\ntdll.dll+20330|C:\\Windows\\SYSTEM32\\ntdll.dll+52f76|C:\\Windows\\System32\\KERNEL32.DLL+17614|C:\\Windows\\SYSTEM32\\ntdll.dll+526a1\n",
+ "--------------------------------------------------\n",
+ "Message 48:\n",
+ "Process Create:\n",
+ "RuleName: -\n",
+ "ProcessId: 4196\n",
+ "Image: C:\\Windows\\System32\\Speech_OneCore\\common\\SpeechModelDownload.exe\n",
+ "Description: Speech Model Download Executable\n",
+ "Product: Microsoft® Windows® Operating System\n",
+ "Company: Microsoft Corporation\n",
+ "OriginalFileName: SpeechModelDownload.exe\n",
+ "CommandLine: \"C:\\Windows\\system32\\speech_onecore\\common\\SpeechModelDownload.exe\"\n",
+ "CurrentDirectory: C:\\Windows\\system32\\\n",
+ "User: NETWORK SERVICE\n",
+ "TerminalSessionId: 0\n",
+ "IntegrityLevel: System\n",
+ "ParentProcessId: 2024\n",
+ "ParentImage: C:\\Windows\\System32\\svchost.exe\n",
+ "ParentCommandLine: C:\\Windows\\system32\\svchost.exe -k netsvcs -p -s Schedule\n",
+ "--------------------------------------------------\n",
+ "Message 49:\n",
+ "Process Create:\n",
+ "RuleName: -\n",
+ "ProcessId: 5472\n",
+ "Image: C:\\Windows\\System32\\taskhostw.exe\n",
+ "Description: Host Process for Windows Tasks\n",
+ "Product: Microsoft® Windows® Operating System\n",
+ "Company: Microsoft Corporation\n",
+ "OriginalFileName: taskhostw.exe\n",
+ "CommandLine: taskhostw.exe -IntegrityCheck\n",
+ "CurrentDirectory: C:\\Windows\\system32\\\n",
+ "User: SYSTEM\n",
+ "TerminalSessionId: 0\n",
+ "IntegrityLevel: System\n",
+ "ParentProcessId: 2024\n",
+ "ParentImage: C:\\Windows\\System32\\svchost.exe\n",
+ "ParentCommandLine: C:\\Windows\\system32\\svchost.exe -k netsvcs -p -s Schedule\n",
+ "--------------------------------------------------\n",
+ "Message 50:\n",
+ "Process Create:\n",
+ "RuleName: -\n",
+ "ProcessId: 3320\n",
+ "Image: C:\\Windows\\System32\\rundll32.exe\n",
+ "Description: Windows host process (Rundll32)\n",
+ "Product: Microsoft® Windows® Operating System\n",
+ "Company: Microsoft Corporation\n",
+ "OriginalFileName: RUNDLL32.EXE\n",
+ "CommandLine: \"C:\\Windows\\system32\\rundll32.exe\" sysmain.dll,PfSvWsSwapAssessmentTask\n",
+ "CurrentDirectory: C:\\Windows\\system32\\\n",
+ "User: SYSTEM\n",
+ "TerminalSessionId: 0\n",
+ "IntegrityLevel: System\n",
+ "ParentProcessId: 2024\n",
+ "ParentImage: C:\\Windows\\System32\\svchost.exe\n",
+ "ParentCommandLine: C:\\Windows\\system32\\svchost.exe -k netsvcs -p -s Schedule\n",
+ "--------------------------------------------------\n",
+ "Message 51:\n",
+ "Process accessed:\n",
+ "RuleName: -\n",
+ "SourceProcessId: 1072\n",
+ "SourceThreadId: 1132\n",
+ "SourceImage: C:\\Windows\\system32\\svchost.exe\n",
+ "TargetProcessId: 872\n",
+ "TargetImage: C:\\Windows\\system32\\lsass.exe\n",
+ "GrantedAccess: 0x1000\n",
+ "CallTrace: C:\\Windows\\SYSTEM32\\ntdll.dll+9d584|C:\\Windows\\System32\\KERNELBASE.dll+69f06|c:\\windows\\system32\\lsm.dll+e7f8|c:\\windows\\system32\\lsm.dll+11918|C:\\Windows\\System32\\RPCRT4.dll+799e3|C:\\Windows\\System32\\RPCRT4.dll+dd77b|C:\\Windows\\System32\\RPCRT4.dll+5ce8c|C:\\Windows\\System32\\RPCRT4.dll+59ee8|C:\\Windows\\System32\\RPCRT4.dll+39fa6|C:\\Windows\\System32\\RPCRT4.dll+398f8|C:\\Windows\\System32\\RPCRT4.dll+4766f|C:\\Windows\\System32\\RPCRT4.dll+46a78|C:\\Windows\\System32\\RPCRT4.dll+46061|C:\\Windows\\System32\\RPCRT4.dll+45ace|C:\\Windows\\System32\\RPCRT4.dll+4a1a2|C:\\Windows\\SYSTEM32\\ntdll.dll+20330|C:\\Windows\\SYSTEM32\\ntdll.dll+52f76|C:\\Windows\\System32\\KERNEL32.DLL+17614|C:\\Windows\\SYSTEM32\\ntdll.dll+526a1\n",
+ "--------------------------------------------------\n",
+ "Message 52:\n",
+ "Process accessed:\n",
+ "RuleName: -\n",
+ "SourceProcessId: 1072\n",
+ "SourceThreadId: 1132\n",
+ "SourceImage: C:\\Windows\\system32\\svchost.exe\n",
+ "TargetProcessId: 872\n",
+ "TargetImage: C:\\Windows\\system32\\lsass.exe\n",
+ "GrantedAccess: 0x1000\n",
+ "CallTrace: C:\\Windows\\SYSTEM32\\ntdll.dll+9d584|C:\\Windows\\System32\\KERNELBASE.dll+69f06|c:\\windows\\system32\\lsm.dll+e7f8|c:\\windows\\system32\\lsm.dll+dc6b|c:\\windows\\system32\\lsm.dll+11a1e|C:\\Windows\\System32\\RPCRT4.dll+799e3|C:\\Windows\\System32\\RPCRT4.dll+dd77b|C:\\Windows\\System32\\RPCRT4.dll+5ce8c|C:\\Windows\\System32\\RPCRT4.dll+59ee8|C:\\Windows\\System32\\RPCRT4.dll+39fa6|C:\\Windows\\System32\\RPCRT4.dll+398f8|C:\\Windows\\System32\\RPCRT4.dll+4766f|C:\\Windows\\System32\\RPCRT4.dll+46a78|C:\\Windows\\System32\\RPCRT4.dll+46061|C:\\Windows\\System32\\RPCRT4.dll+45ace|C:\\Windows\\System32\\RPCRT4.dll+4a1a2|C:\\Windows\\SYSTEM32\\ntdll.dll+20330|C:\\Windows\\SYSTEM32\\ntdll.dll+52f76|C:\\Windows\\System32\\KERNEL32.DLL+17614|C:\\Windows\\SYSTEM32\\ntdll.dll+526a1\n",
+ "--------------------------------------------------\n",
+ "Message 53:\n",
+ "Process accessed:\n",
+ "RuleName: -\n",
+ "SourceProcessId: 1072\n",
+ "SourceThreadId: 1132\n",
+ "SourceImage: C:\\Windows\\system32\\svchost.exe\n",
+ "TargetProcessId: 872\n",
+ "TargetImage: C:\\Windows\\system32\\lsass.exe\n",
+ "GrantedAccess: 0x1000\n",
+ "CallTrace: C:\\Windows\\SYSTEM32\\ntdll.dll+9d584|C:\\Windows\\System32\\KERNELBASE.dll+69f06|c:\\windows\\system32\\lsm.dll+e7f8|c:\\windows\\system32\\lsm.dll+11918|C:\\Windows\\System32\\RPCRT4.dll+799e3|C:\\Windows\\System32\\RPCRT4.dll+dd77b|C:\\Windows\\System32\\RPCRT4.dll+5ce8c|C:\\Windows\\System32\\RPCRT4.dll+59ee8|C:\\Windows\\System32\\RPCRT4.dll+39fa6|C:\\Windows\\System32\\RPCRT4.dll+398f8|C:\\Windows\\System32\\RPCRT4.dll+4766f|C:\\Windows\\System32\\RPCRT4.dll+46a78|C:\\Windows\\System32\\RPCRT4.dll+46061|C:\\Windows\\System32\\RPCRT4.dll+45ace|C:\\Windows\\System32\\RPCRT4.dll+4a1a2|C:\\Windows\\SYSTEM32\\ntdll.dll+20330|C:\\Windows\\SYSTEM32\\ntdll.dll+52f76|C:\\Windows\\System32\\KERNEL32.DLL+17614|C:\\Windows\\SYSTEM32\\ntdll.dll+526a1\n",
+ "--------------------------------------------------\n",
+ "Message 54:\n",
+ "Process accessed:\n",
+ "RuleName: -\n",
+ "SourceProcessId: 1072\n",
+ "SourceThreadId: 1132\n",
+ "SourceImage: C:\\Windows\\system32\\svchost.exe\n",
+ "TargetProcessId: 872\n",
+ "TargetImage: C:\\Windows\\system32\\lsass.exe\n",
+ "GrantedAccess: 0x1000\n",
+ "CallTrace: C:\\Windows\\SYSTEM32\\ntdll.dll+9d584|C:\\Windows\\System32\\KERNELBASE.dll+69f06|c:\\windows\\system32\\lsm.dll+e7f8|c:\\windows\\system32\\lsm.dll+dc6b|c:\\windows\\system32\\lsm.dll+11a1e|C:\\Windows\\System32\\RPCRT4.dll+799e3|C:\\Windows\\System32\\RPCRT4.dll+dd77b|C:\\Windows\\System32\\RPCRT4.dll+5ce8c|C:\\Windows\\System32\\RPCRT4.dll+59ee8|C:\\Windows\\System32\\RPCRT4.dll+39fa6|C:\\Windows\\System32\\RPCRT4.dll+398f8|C:\\Windows\\System32\\RPCRT4.dll+4766f|C:\\Windows\\System32\\RPCRT4.dll+46a78|C:\\Windows\\System32\\RPCRT4.dll+46061|C:\\Windows\\System32\\RPCRT4.dll+45ace|C:\\Windows\\System32\\RPCRT4.dll+4a1a2|C:\\Windows\\SYSTEM32\\ntdll.dll+20330|C:\\Windows\\SYSTEM32\\ntdll.dll+52f76|C:\\Windows\\System32\\KERNEL32.DLL+17614|C:\\Windows\\SYSTEM32\\ntdll.dll+526a1\n",
+ "--------------------------------------------------\n",
+ "Message 55:\n",
+ "Process accessed:\n",
+ "RuleName: -\n",
+ "SourceProcessId: 1072\n",
+ "SourceThreadId: 1132\n",
+ "SourceImage: C:\\Windows\\system32\\svchost.exe\n",
+ "TargetProcessId: 872\n",
+ "TargetImage: C:\\Windows\\system32\\lsass.exe\n",
+ "GrantedAccess: 0x1000\n",
+ "CallTrace: C:\\Windows\\SYSTEM32\\ntdll.dll+9d584|C:\\Windows\\System32\\KERNELBASE.dll+69f06|c:\\windows\\system32\\lsm.dll+e7f8|c:\\windows\\system32\\lsm.dll+11918|C:\\Windows\\System32\\RPCRT4.dll+799e3|C:\\Windows\\System32\\RPCRT4.dll+dd77b|C:\\Windows\\System32\\RPCRT4.dll+5ce8c|C:\\Windows\\System32\\RPCRT4.dll+59ee8|C:\\Windows\\System32\\RPCRT4.dll+39fa6|C:\\Windows\\System32\\RPCRT4.dll+398f8|C:\\Windows\\System32\\RPCRT4.dll+4766f|C:\\Windows\\System32\\RPCRT4.dll+46a78|C:\\Windows\\System32\\RPCRT4.dll+46061|C:\\Windows\\System32\\RPCRT4.dll+45ace|C:\\Windows\\System32\\RPCRT4.dll+4a1a2|C:\\Windows\\SYSTEM32\\ntdll.dll+20330|C:\\Windows\\SYSTEM32\\ntdll.dll+52f76|C:\\Windows\\System32\\KERNEL32.DLL+17614|C:\\Windows\\SYSTEM32\\ntdll.dll+526a1\n",
+ "--------------------------------------------------\n",
+ "Message 56:\n",
+ "Process accessed:\n",
+ "RuleName: -\n",
+ "SourceProcessId: 1072\n",
+ "SourceThreadId: 1132\n",
+ "SourceImage: C:\\Windows\\system32\\svchost.exe\n",
+ "TargetProcessId: 872\n",
+ "TargetImage: C:\\Windows\\system32\\lsass.exe\n",
+ "GrantedAccess: 0x1000\n",
+ "CallTrace: C:\\Windows\\SYSTEM32\\ntdll.dll+9d584|C:\\Windows\\System32\\KERNELBASE.dll+69f06|c:\\windows\\system32\\lsm.dll+e7f8|c:\\windows\\system32\\lsm.dll+dc6b|c:\\windows\\system32\\lsm.dll+11a1e|C:\\Windows\\System32\\RPCRT4.dll+799e3|C:\\Windows\\System32\\RPCRT4.dll+dd77b|C:\\Windows\\System32\\RPCRT4.dll+5ce8c|C:\\Windows\\System32\\RPCRT4.dll+59ee8|C:\\Windows\\System32\\RPCRT4.dll+39fa6|C:\\Windows\\System32\\RPCRT4.dll+398f8|C:\\Windows\\System32\\RPCRT4.dll+4766f|C:\\Windows\\System32\\RPCRT4.dll+46a78|C:\\Windows\\System32\\RPCRT4.dll+46061|C:\\Windows\\System32\\RPCRT4.dll+45ace|C:\\Windows\\System32\\RPCRT4.dll+4a1a2|C:\\Windows\\SYSTEM32\\ntdll.dll+20330|C:\\Windows\\SYSTEM32\\ntdll.dll+52f76|C:\\Windows\\System32\\KERNEL32.DLL+17614|C:\\Windows\\SYSTEM32\\ntdll.dll+526a1\n",
+ "--------------------------------------------------\n",
+ "Message 57:\n",
+ "Process Create:\n",
+ "RuleName: -\n",
+ "ProcessId: 1184\n",
+ "Image: C:\\Windows\\System32\\WinSAT.exe\n",
+ "Description: Windows System Assessment Tool\n",
+ "Product: Microsoft® Windows® Operating System\n",
+ "Company: Microsoft Corporation\n",
+ "OriginalFileName: WinSAT.exe\n",
+ "CommandLine: \"C:\\Windows\\system32\\winsat.exe\" disk -wsswap\n",
+ "CurrentDirectory: C:\\Windows\\system32\\\n",
+ "User: SYSTEM\n",
+ "TerminalSessionId: 0\n",
+ "IntegrityLevel: System\n",
+ "ParentProcessId: 3320\n",
+ "ParentImage: C:\\Windows\\System32\\rundll32.exe\n",
+ "ParentCommandLine: \"C:\\Windows\\system32\\rundll32.exe\" sysmain.dll,PfSvWsSwapAssessmentTask\n",
+ "--------------------------------------------------\n",
+ "Message 58:\n",
+ "Process Create:\n",
+ "RuleName: -\n",
+ "ProcessId: 3720\n",
+ "Image: C:\\Windows\\System32\\Defrag.exe\n",
+ "Description: Disk Defragmenter Module\n",
+ "Product: Windows Drive Optimizer\n",
+ "Company: Microsoft Corp.\n",
+ "OriginalFileName: Defrag.EXE\n",
+ "CommandLine: \"C:\\Windows\\system32\\defrag.exe\" -p 8a4 -s 0000000000000160 -b -OnlyPreferred C:\n",
+ "CurrentDirectory: C:\\Windows\\system32\\\n",
+ "User: SYSTEM\n",
+ "TerminalSessionId: 0\n",
+ "IntegrityLevel: System\n",
+ "ParentProcessId: 2212\n",
+ "ParentImage: C:\\Windows\\System32\\svchost.exe\n",
+ "ParentCommandLine: C:\\Windows\\system32\\svchost.exe -k LocalSystemNetworkRestricted -p -s SysMain\n",
+ "--------------------------------------------------\n",
+ "Message 59:\n",
+ "Process accessed:\n",
+ "RuleName: -\n",
+ "SourceProcessId: 1072\n",
+ "SourceThreadId: 1132\n",
+ "SourceImage: C:\\Windows\\system32\\svchost.exe\n",
+ "TargetProcessId: 872\n",
+ "TargetImage: C:\\Windows\\system32\\lsass.exe\n",
+ "GrantedAccess: 0x1000\n",
+ "CallTrace: C:\\Windows\\SYSTEM32\\ntdll.dll+9d584|C:\\Windows\\System32\\KERNELBASE.dll+69f06|c:\\windows\\system32\\lsm.dll+e7f8|c:\\windows\\system32\\lsm.dll+11918|C:\\Windows\\System32\\RPCRT4.dll+799e3|C:\\Windows\\System32\\RPCRT4.dll+dd77b|C:\\Windows\\System32\\RPCRT4.dll+5ce8c|C:\\Windows\\System32\\RPCRT4.dll+59ee8|C:\\Windows\\System32\\RPCRT4.dll+39fa6|C:\\Windows\\System32\\RPCRT4.dll+398f8|C:\\Windows\\System32\\RPCRT4.dll+4766f|C:\\Windows\\System32\\RPCRT4.dll+46a78|C:\\Windows\\System32\\RPCRT4.dll+46061|C:\\Windows\\System32\\RPCRT4.dll+45ace|C:\\Windows\\System32\\RPCRT4.dll+4a1a2|C:\\Windows\\SYSTEM32\\ntdll.dll+20330|C:\\Windows\\SYSTEM32\\ntdll.dll+52f76|C:\\Windows\\System32\\KERNEL32.DLL+17614|C:\\Windows\\SYSTEM32\\ntdll.dll+526a1\n",
+ "--------------------------------------------------\n",
+ "Message 60:\n",
+ "Process accessed:\n",
+ "RuleName: -\n",
+ "SourceProcessId: 1072\n",
+ "SourceThreadId: 1132\n",
+ "SourceImage: C:\\Windows\\system32\\svchost.exe\n",
+ "TargetProcessId: 872\n",
+ "TargetImage: C:\\Windows\\system32\\lsass.exe\n",
+ "GrantedAccess: 0x1000\n",
+ "CallTrace: C:\\Windows\\SYSTEM32\\ntdll.dll+9d584|C:\\Windows\\System32\\KERNELBASE.dll+69f06|c:\\windows\\system32\\lsm.dll+e7f8|c:\\windows\\system32\\lsm.dll+dc6b|c:\\windows\\system32\\lsm.dll+11a1e|C:\\Windows\\System32\\RPCRT4.dll+799e3|C:\\Windows\\System32\\RPCRT4.dll+dd77b|C:\\Windows\\System32\\RPCRT4.dll+5ce8c|C:\\Windows\\System32\\RPCRT4.dll+59ee8|C:\\Windows\\System32\\RPCRT4.dll+39fa6|C:\\Windows\\System32\\RPCRT4.dll+398f8|C:\\Windows\\System32\\RPCRT4.dll+4766f|C:\\Windows\\System32\\RPCRT4.dll+46a78|C:\\Windows\\System32\\RPCRT4.dll+46061|C:\\Windows\\System32\\RPCRT4.dll+45ace|C:\\Windows\\System32\\RPCRT4.dll+4a1a2|C:\\Windows\\SYSTEM32\\ntdll.dll+20330|C:\\Windows\\SYSTEM32\\ntdll.dll+52f76|C:\\Windows\\System32\\KERNEL32.DLL+17614|C:\\Windows\\SYSTEM32\\ntdll.dll+526a1\n",
+ "--------------------------------------------------\n",
+ "Message 61:\n",
+ "Registry value set:\n",
+ "RuleName: InvDB-Path\n",
+ "EventType: SetValue\n",
+ "ProcessId: 2156\n",
+ "Image: C:\\Windows\\system32\\CompatTelRunner.exe\n",
+ "Details: c:\\users\\student_ladm\\appdata\\local\\microsoft\\teams\\previous\\squirrel.exe\n",
+ "--------------------------------------------------\n",
+ "Message 62:\n",
+ "Registry value set:\n",
+ "RuleName: InvDB-Pub\n",
+ "EventType: SetValue\n",
+ "ProcessId: 2156\n",
+ "Image: C:\\Windows\\system32\\CompatTelRunner.exe\n",
+ "Details: microsoft corporation\n",
+ "--------------------------------------------------\n",
+ "Message 63:\n",
+ "Registry value set:\n",
+ "RuleName: InvDB-CompileTimeClaim\n",
+ "EventType: SetValue\n",
+ "ProcessId: 2156\n",
+ "Image: C:\\Windows\\system32\\CompatTelRunner.exe\n",
+ "Details: 08/28/2020 18:31:14\n",
+ "--------------------------------------------------\n",
+ "Message 64:\n",
+ "Registry value set:\n",
+ "RuleName: InvDB-Ver\n",
+ "EventType: SetValue\n",
+ "ProcessId: 2156\n",
+ "Image: C:\\Windows\\system32\\CompatTelRunner.exe\n",
+ "Details: 1.10.54.0\n",
+ "--------------------------------------------------\n",
+ "Message 65:\n",
+ "Registry value set:\n",
+ "RuleName: InvDB-Path\n",
+ "EventType: SetValue\n",
+ "ProcessId: 2156\n",
+ "Image: C:\\Windows\\system32\\CompatTelRunner.exe\n",
+ "Details: c:\\users\\student_ladm\\appdata\\local\\microsoft\\teams\\stage\\squirrel.exe\n",
+ "--------------------------------------------------\n",
+ "Message 66:\n",
+ "Registry value set:\n",
+ "RuleName: InvDB-Pub\n",
+ "EventType: SetValue\n",
+ "ProcessId: 2156\n",
+ "Image: C:\\Windows\\system32\\CompatTelRunner.exe\n",
+ "Details: microsoft corporation\n",
+ "--------------------------------------------------\n",
+ "Message 67:\n",
+ "Registry value set:\n",
+ "RuleName: InvDB-CompileTimeClaim\n",
+ "EventType: SetValue\n",
+ "ProcessId: 2156\n",
+ "Image: C:\\Windows\\system32\\CompatTelRunner.exe\n",
+ "Details: 08/15/2022 18:11:47\n",
+ "--------------------------------------------------\n",
+ "Message 68:\n",
+ "Registry value set:\n",
+ "RuleName: InvDB-Ver\n",
+ "EventType: SetValue\n",
+ "ProcessId: 2156\n",
+ "Image: C:\\Windows\\system32\\CompatTelRunner.exe\n",
+ "Details: 3.3.0.0\n",
+ "--------------------------------------------------\n",
+ "Message 69:\n",
+ "Registry value set:\n",
+ "RuleName: InvDB-Path\n",
+ "EventType: SetValue\n",
+ "ProcessId: 2156\n",
+ "Image: C:\\Windows\\system32\\CompatTelRunner.exe\n",
+ "Details: c:\\users\\student_ladm\\appdata\\local\\microsoft\\teams\\current\\squirrel.exe\n",
+ "--------------------------------------------------\n",
+ "Message 70:\n",
+ "Registry value set:\n",
+ "RuleName: InvDB-Pub\n",
+ "EventType: SetValue\n",
+ "ProcessId: 2156\n",
+ "Image: C:\\Windows\\system32\\CompatTelRunner.exe\n",
+ "Details: microsoft corporation\n",
+ "--------------------------------------------------\n",
+ "Message 71:\n",
+ "Registry value set:\n",
+ "RuleName: InvDB-CompileTimeClaim\n",
+ "EventType: SetValue\n",
+ "ProcessId: 2156\n",
+ "Image: C:\\Windows\\system32\\CompatTelRunner.exe\n",
+ "Details: 02/03/2022 01:00:13\n",
+ "--------------------------------------------------\n",
+ "Message 72:\n",
+ "Registry value set:\n",
+ "RuleName: InvDB-Ver\n",
+ "EventType: SetValue\n",
+ "ProcessId: 2156\n",
+ "Image: C:\\Windows\\system32\\CompatTelRunner.exe\n",
+ "Details: 3.0.1.0\n",
+ "--------------------------------------------------\n",
+ "Message 73:\n",
+ "Registry value set:\n",
+ "RuleName: InvDB-Path\n",
+ "EventType: SetValue\n",
+ "ProcessId: 2156\n",
+ "Image: C:\\Windows\\system32\\CompatTelRunner.exe\n",
+ "Details: c:\\users\\ansible\\appdata\\local\\microsoft\\teams\\current\\teams.exe\n",
+ "--------------------------------------------------\n",
+ "Message 74:\n",
+ "Registry value set:\n",
+ "RuleName: InvDB-Pub\n",
+ "EventType: SetValue\n",
+ "ProcessId: 2156\n",
+ "Image: C:\\Windows\\system32\\CompatTelRunner.exe\n",
+ "Details: microsoft corporation\n",
+ "--------------------------------------------------\n",
+ "Message 75:\n",
+ "Registry value set:\n",
+ "RuleName: InvDB-CompileTimeClaim\n",
+ "EventType: SetValue\n",
+ "ProcessId: 2156\n",
+ "Image: C:\\Windows\\system32\\CompatTelRunner.exe\n",
+ "Details: 04/21/2020 14:21:06\n",
+ "--------------------------------------------------\n",
+ "Message 76:\n",
+ "Registry value set:\n",
+ "RuleName: InvDB-Ver\n",
+ "EventType: SetValue\n",
+ "ProcessId: 2156\n",
+ "Image: C:\\Windows\\system32\\CompatTelRunner.exe\n",
+ "Details: 1.3.0.28779\n",
+ "--------------------------------------------------\n",
+ "Message 77:\n",
+ "Registry value set:\n",
+ "RuleName: InvDB-Path\n",
+ "EventType: SetValue\n",
+ "ProcessId: 2156\n",
+ "Image: C:\\Windows\\system32\\CompatTelRunner.exe\n",
+ "Details: c:\\users\\ansible\\appdata\\local\\microsoft\\teams\\update.exe\n",
+ "--------------------------------------------------\n",
+ "Message 78:\n",
+ "Registry value set:\n",
+ "RuleName: InvDB-Pub\n",
+ "EventType: SetValue\n",
+ "ProcessId: 2156\n",
+ "Image: C:\\Windows\\system32\\CompatTelRunner.exe\n",
+ "Details: microsoft corporation\n",
+ "--------------------------------------------------\n",
+ "Message 79:\n",
+ "Registry value set:\n",
+ "RuleName: InvDB-CompileTimeClaim\n",
+ "EventType: SetValue\n",
+ "ProcessId: 2156\n",
+ "Image: C:\\Windows\\system32\\CompatTelRunner.exe\n",
+ "Details: 08/28/2020 18:31:14\n",
+ "--------------------------------------------------\n",
+ "Message 80:\n",
+ "Registry value set:\n",
+ "RuleName: InvDB-Ver\n",
+ "EventType: SetValue\n",
+ "ProcessId: 2156\n",
+ "Image: C:\\Windows\\system32\\CompatTelRunner.exe\n",
+ "Details: 1.10.54.0\n",
+ "--------------------------------------------------\n",
+ "Message 81:\n",
+ "Registry value set:\n",
+ "RuleName: InvDB-Pub\n",
+ "EventType: SetValue\n",
+ "ProcessId: 2156\n",
+ "Image: C:\\Windows\\system32\\CompatTelRunner.exe\n",
+ "Details: Microsoft Corporation\n",
+ "--------------------------------------------------\n",
+ "Message 82:\n",
+ "Registry value set:\n",
+ "RuleName: InvDB-Path\n",
+ "EventType: SetValue\n",
+ "ProcessId: 2156\n",
+ "Image: C:\\Windows\\system32\\CompatTelRunner.exe\n",
+ "Details: c:\\program files (x86)\\microsoft\\edgewebview\\application\\126.0.2592.68\\cookie_exporter.exe\n",
+ "--------------------------------------------------\n",
+ "Message 83:\n",
+ "Registry value set:\n",
+ "RuleName: InvDB-Pub\n",
+ "EventType: SetValue\n",
+ "ProcessId: 2156\n",
+ "Image: C:\\Windows\\system32\\CompatTelRunner.exe\n",
+ "Details: microsoft corporation\n",
+ "--------------------------------------------------\n",
+ "Message 84:\n",
+ "Registry value set:\n",
+ "RuleName: InvDB-CompileTimeClaim\n",
+ "EventType: SetValue\n",
+ "ProcessId: 2156\n",
+ "Image: C:\\Windows\\system32\\CompatTelRunner.exe\n",
+ "Details: 06/19/2024 23:34:22\n",
+ "--------------------------------------------------\n",
+ "Message 85:\n",
+ "Registry value set:\n",
+ "RuleName: InvDB-Ver\n",
+ "EventType: SetValue\n",
+ "ProcessId: 2156\n",
+ "Image: C:\\Windows\\system32\\CompatTelRunner.exe\n",
+ "Details: 126.0.2592.68\n",
+ "--------------------------------------------------\n",
+ "Message 86:\n",
+ "Registry value set:\n",
+ "RuleName: InvDB-Path\n",
+ "EventType: SetValue\n",
+ "ProcessId: 2156\n",
+ "Image: C:\\Windows\\system32\\CompatTelRunner.exe\n",
+ "Details: c:\\program files (x86)\\microsoft\\edgewebview\\application\\126.0.2592.68\\elevation_service.exe\n",
+ "--------------------------------------------------\n",
+ "Message 87:\n",
+ "Registry value set:\n",
+ "RuleName: InvDB-Pub\n",
+ "EventType: SetValue\n",
+ "ProcessId: 2156\n",
+ "Image: C:\\Windows\\system32\\CompatTelRunner.exe\n",
+ "Details: microsoft corporation\n",
+ "--------------------------------------------------\n",
+ "Message 88:\n",
+ "Registry value set:\n",
+ "RuleName: InvDB-CompileTimeClaim\n",
+ "EventType: SetValue\n",
+ "ProcessId: 2156\n",
+ "Image: C:\\Windows\\system32\\CompatTelRunner.exe\n",
+ "Details: 06/19/2024 23:34:22\n",
+ "--------------------------------------------------\n",
+ "Message 89:\n",
+ "Registry value set:\n",
+ "RuleName: InvDB-Ver\n",
+ "EventType: SetValue\n",
+ "ProcessId: 2156\n",
+ "Image: C:\\Windows\\system32\\CompatTelRunner.exe\n",
+ "Details: 126.0.2592.68\n",
+ "--------------------------------------------------\n",
+ "Message 90:\n",
+ "Registry value set:\n",
+ "RuleName: InvDB-Path\n",
+ "EventType: SetValue\n",
+ "ProcessId: 2156\n",
+ "Image: C:\\Windows\\system32\\CompatTelRunner.exe\n",
+ "Details: c:\\program files (x86)\\microsoft\\edgewebview\\application\\126.0.2592.68\\identity_helper.exe\n",
+ "--------------------------------------------------\n",
+ "Message 91:\n",
+ "Registry value set:\n",
+ "RuleName: InvDB-Pub\n",
+ "EventType: SetValue\n",
+ "ProcessId: 2156\n",
+ "Image: C:\\Windows\\system32\\CompatTelRunner.exe\n",
+ "Details: microsoft corporation\n",
+ "--------------------------------------------------\n",
+ "Message 92:\n",
+ "Registry value set:\n",
+ "RuleName: InvDB-CompileTimeClaim\n",
+ "EventType: SetValue\n",
+ "ProcessId: 2156\n",
+ "Image: C:\\Windows\\system32\\CompatTelRunner.exe\n",
+ "Details: 06/19/2024 23:34:22\n",
+ "--------------------------------------------------\n",
+ "Message 93:\n",
+ "Registry value set:\n",
+ "RuleName: InvDB-Ver\n",
+ "EventType: SetValue\n",
+ "ProcessId: 2156\n",
+ "Image: C:\\Windows\\system32\\CompatTelRunner.exe\n",
+ "Details: 126.0.2592.68\n",
+ "--------------------------------------------------\n",
+ "Message 94:\n",
+ "Registry value set:\n",
+ "RuleName: InvDB-Path\n",
+ "EventType: SetValue\n",
+ "ProcessId: 2156\n",
+ "Image: C:\\Windows\\system32\\CompatTelRunner.exe\n",
+ "Details: c:\\program files (x86)\\microsoft\\edgewebview\\application\\126.0.2592.68\\bho\\ie_to_edge_stub.exe\n",
+ "--------------------------------------------------\n",
+ "Message 95:\n",
+ "Registry value set:\n",
+ "RuleName: InvDB-Pub\n",
+ "EventType: SetValue\n",
+ "ProcessId: 2156\n",
+ "Image: C:\\Windows\\system32\\CompatTelRunner.exe\n",
+ "Details: microsoft corporation\n",
+ "--------------------------------------------------\n",
+ "Message 96:\n",
+ "Registry value set:\n",
+ "RuleName: InvDB-CompileTimeClaim\n",
+ "EventType: SetValue\n",
+ "ProcessId: 2156\n",
+ "Image: C:\\Windows\\system32\\CompatTelRunner.exe\n",
+ "Details: 06/19/2024 23:34:22\n",
+ "--------------------------------------------------\n",
+ "Message 97:\n",
+ "Registry value set:\n",
+ "RuleName: InvDB-Ver\n",
+ "EventType: SetValue\n",
+ "ProcessId: 2156\n",
+ "Image: C:\\Windows\\system32\\CompatTelRunner.exe\n",
+ "Details: 126.0.2592.68\n",
+ "--------------------------------------------------\n",
+ "Message 98:\n",
+ "Registry value set:\n",
+ "RuleName: InvDB-Path\n",
+ "EventType: SetValue\n",
+ "ProcessId: 2156\n",
+ "Image: C:\\Windows\\system32\\CompatTelRunner.exe\n",
+ "Details: c:\\program files (x86)\\microsoft\\edgewebview\\application\\126.0.2592.68\\msedge.exe\n",
+ "--------------------------------------------------\n",
+ "Message 99:\n",
+ "Registry value set:\n",
+ "RuleName: InvDB-Pub\n",
+ "EventType: SetValue\n",
+ "ProcessId: 2156\n",
+ "Image: C:\\Windows\\system32\\CompatTelRunner.exe\n",
+ "Details: microsoft corporation\n",
+ "--------------------------------------------------\n",
+ "Message 100:\n",
+ "Registry value set:\n",
+ "RuleName: InvDB-CompileTimeClaim\n",
+ "EventType: SetValue\n",
+ "ProcessId: 2156\n",
+ "Image: C:\\Windows\\system32\\CompatTelRunner.exe\n",
+ "Details: 06/19/2024 23:34:22\n",
+ "--------------------------------------------------\n",
+ "Message 101:\n",
+ "Registry value set:\n",
+ "RuleName: InvDB-Ver\n",
+ "EventType: SetValue\n",
+ "ProcessId: 2156\n",
+ "Image: C:\\Windows\\system32\\CompatTelRunner.exe\n",
+ "Details: 126.0.2592.68\n",
+ "--------------------------------------------------\n",
+ "Message 102:\n",
+ "Registry value set:\n",
+ "RuleName: InvDB-Path\n",
+ "EventType: SetValue\n",
+ "ProcessId: 2156\n",
+ "Image: C:\\Windows\\system32\\CompatTelRunner.exe\n",
+ "Details: c:\\program files (x86)\\microsoft\\edgewebview\\application\\126.0.2592.68\\msedgewebview2.exe\n",
+ "--------------------------------------------------\n",
+ "Message 103:\n",
+ "Registry value set:\n",
+ "RuleName: InvDB-Pub\n",
+ "EventType: SetValue\n",
+ "ProcessId: 2156\n",
+ "Image: C:\\Windows\\system32\\CompatTelRunner.exe\n",
+ "Details: microsoft corporation\n",
+ "--------------------------------------------------\n",
+ "Message 104:\n",
+ "Registry value set:\n",
+ "RuleName: InvDB-CompileTimeClaim\n",
+ "EventType: SetValue\n",
+ "ProcessId: 2156\n",
+ "Image: C:\\Windows\\system32\\CompatTelRunner.exe\n",
+ "Details: 06/19/2024 23:34:22\n",
+ "--------------------------------------------------\n",
+ "Message 105:\n",
+ "Registry value set:\n",
+ "RuleName: InvDB-Ver\n",
+ "EventType: SetValue\n",
+ "ProcessId: 2156\n",
+ "Image: C:\\Windows\\system32\\CompatTelRunner.exe\n",
+ "Details: 126.0.2592.68\n",
+ "--------------------------------------------------\n",
+ "Message 106:\n",
+ "Registry value set:\n",
+ "RuleName: InvDB-Path\n",
+ "EventType: SetValue\n",
+ "ProcessId: 2156\n",
+ "Image: C:\\Windows\\system32\\CompatTelRunner.exe\n",
+ "Details: c:\\program files (x86)\\microsoft\\edgewebview\\application\\126.0.2592.68\\msedge_proxy.exe\n",
+ "--------------------------------------------------\n",
+ "Message 107:\n",
+ "Registry value set:\n",
+ "RuleName: InvDB-Pub\n",
+ "EventType: SetValue\n",
+ "ProcessId: 2156\n",
+ "Image: C:\\Windows\\system32\\CompatTelRunner.exe\n",
+ "Details: microsoft corporation\n",
+ "--------------------------------------------------\n",
+ "Message 108:\n",
+ "Registry value set:\n",
+ "RuleName: InvDB-CompileTimeClaim\n",
+ "EventType: SetValue\n",
+ "ProcessId: 2156\n",
+ "Image: C:\\Windows\\system32\\CompatTelRunner.exe\n",
+ "Details: 06/19/2024 23:34:22\n",
+ "--------------------------------------------------\n",
+ "Message 109:\n",
+ "Registry value set:\n",
+ "RuleName: InvDB-Ver\n",
+ "EventType: SetValue\n",
+ "ProcessId: 2156\n",
+ "Image: C:\\Windows\\system32\\CompatTelRunner.exe\n",
+ "Details: 126.0.2592.68\n",
+ "--------------------------------------------------\n",
+ "Message 110:\n",
+ "Registry value set:\n",
+ "RuleName: InvDB-Path\n",
+ "EventType: SetValue\n",
+ "ProcessId: 2156\n",
+ "Image: C:\\Windows\\system32\\CompatTelRunner.exe\n",
+ "Details: c:\\program files (x86)\\microsoft\\edgewebview\\application\\126.0.2592.68\\msedge_pwa_launcher.exe\n",
+ "--------------------------------------------------\n",
+ "Message 111:\n",
+ "Registry value set:\n",
+ "RuleName: InvDB-Pub\n",
+ "EventType: SetValue\n",
+ "ProcessId: 2156\n",
+ "Image: C:\\Windows\\system32\\CompatTelRunner.exe\n",
+ "Details: microsoft corporation\n",
+ "--------------------------------------------------\n",
+ "Message 112:\n",
+ "Registry value set:\n",
+ "RuleName: InvDB-CompileTimeClaim\n",
+ "EventType: SetValue\n",
+ "ProcessId: 2156\n",
+ "Image: C:\\Windows\\system32\\CompatTelRunner.exe\n",
+ "Details: 06/19/2024 23:34:22\n",
+ "--------------------------------------------------\n",
+ "Message 113:\n",
+ "Registry value set:\n",
+ "RuleName: InvDB-Ver\n",
+ "EventType: SetValue\n",
+ "ProcessId: 2156\n",
+ "Image: C:\\Windows\\system32\\CompatTelRunner.exe\n",
+ "Details: 126.0.2592.68\n",
+ "--------------------------------------------------\n",
+ "Message 114:\n",
+ "Registry value set:\n",
+ "RuleName: InvDB-Path\n",
+ "EventType: SetValue\n",
+ "ProcessId: 2156\n",
+ "Image: C:\\Windows\\system32\\CompatTelRunner.exe\n",
+ "Details: c:\\program files (x86)\\microsoft\\edgewebview\\application\\126.0.2592.68\\notification_helper.exe\n",
+ "--------------------------------------------------\n",
+ "Message 115:\n",
+ "Registry value set:\n",
+ "RuleName: InvDB-Pub\n",
+ "EventType: SetValue\n",
+ "ProcessId: 2156\n",
+ "Image: C:\\Windows\\system32\\CompatTelRunner.exe\n",
+ "Details: microsoft corporation\n",
+ "--------------------------------------------------\n",
+ "Message 116:\n",
+ "Registry value set:\n",
+ "RuleName: InvDB-CompileTimeClaim\n",
+ "EventType: SetValue\n",
+ "ProcessId: 2156\n",
+ "Image: C:\\Windows\\system32\\CompatTelRunner.exe\n",
+ "Details: 06/19/2024 23:34:22\n",
+ "--------------------------------------------------\n",
+ "Message 117:\n",
+ "Registry value set:\n",
+ "RuleName: InvDB-Ver\n",
+ "EventType: SetValue\n",
+ "ProcessId: 2156\n",
+ "Image: C:\\Windows\\system32\\CompatTelRunner.exe\n",
+ "Details: 126.0.2592.68\n",
+ "--------------------------------------------------\n",
+ "Message 118:\n",
+ "Registry value set:\n",
+ "RuleName: InvDB-Path\n",
+ "EventType: SetValue\n",
+ "ProcessId: 2156\n",
+ "Image: C:\\Windows\\system32\\CompatTelRunner.exe\n",
+ "Details: c:\\program files (x86)\\microsoft\\edgewebview\\application\\126.0.2592.68\\pwahelper.exe\n",
+ "--------------------------------------------------\n",
+ "Message 119:\n",
+ "Registry value set:\n",
+ "RuleName: InvDB-Pub\n",
+ "EventType: SetValue\n",
+ "ProcessId: 2156\n",
+ "Image: C:\\Windows\\system32\\CompatTelRunner.exe\n",
+ "Details: microsoft corporation\n",
+ "--------------------------------------------------\n",
+ "Message 120:\n",
+ "Registry value set:\n",
+ "RuleName: InvDB-CompileTimeClaim\n",
+ "EventType: SetValue\n",
+ "ProcessId: 2156\n",
+ "Image: C:\\Windows\\system32\\CompatTelRunner.exe\n",
+ "Details: 06/19/2024 23:34:22\n",
+ "--------------------------------------------------\n",
+ "Message 121:\n",
+ "Registry value set:\n",
+ "RuleName: InvDB-Ver\n",
+ "EventType: SetValue\n",
+ "ProcessId: 2156\n",
+ "Image: C:\\Windows\\system32\\CompatTelRunner.exe\n",
+ "Details: 126.0.2592.68\n",
+ "--------------------------------------------------\n",
+ "Message 122:\n",
+ "Registry value set:\n",
+ "RuleName: InvDB-Path\n",
+ "EventType: SetValue\n",
+ "ProcessId: 2156\n",
+ "Image: C:\\Windows\\system32\\CompatTelRunner.exe\n",
+ "Details: c:\\program files (x86)\\microsoft\\edgewebview\\application\\126.0.2592.68\\installer\\setup.exe\n",
+ "--------------------------------------------------\n",
+ "Message 123:\n",
+ "Registry value set:\n",
+ "RuleName: InvDB-Pub\n",
+ "EventType: SetValue\n",
+ "ProcessId: 2156\n",
+ "Image: C:\\Windows\\system32\\CompatTelRunner.exe\n",
+ "Details: microsoft corporation\n",
+ "--------------------------------------------------\n",
+ "Message 124:\n",
+ "Registry value set:\n",
+ "RuleName: InvDB-CompileTimeClaim\n",
+ "EventType: SetValue\n",
+ "ProcessId: 2156\n",
+ "Image: C:\\Windows\\system32\\CompatTelRunner.exe\n",
+ "Details: 06/19/2024 23:34:22\n",
+ "--------------------------------------------------\n",
+ "Message 125:\n",
+ "Registry value set:\n",
+ "RuleName: InvDB-Ver\n",
+ "EventType: SetValue\n",
+ "ProcessId: 2156\n",
+ "Image: C:\\Windows\\system32\\CompatTelRunner.exe\n",
+ "Details: 126.0.2592.68\n",
+ "--------------------------------------------------\n",
+ "Message 126:\n",
+ "Registry value set:\n",
+ "RuleName: InvDB-Pub\n",
+ "EventType: SetValue\n",
+ "ProcessId: 2156\n",
+ "Image: C:\\Windows\\system32\\CompatTelRunner.exe\n",
+ "Details: Microsoft Corporation\n",
+ "--------------------------------------------------\n",
+ "Message 127:\n",
+ "Registry value set:\n",
+ "RuleName: InvDB-Path\n",
+ "EventType: SetValue\n",
+ "ProcessId: 2156\n",
+ "Image: C:\\Windows\\system32\\CompatTelRunner.exe\n",
+ "Details: c:\\users\\ansible\\appdata\\local\\microsoft\\teams\\current\\squirrel.exe\n",
+ "--------------------------------------------------\n",
+ "Message 128:\n",
+ "Registry value set:\n",
+ "RuleName: InvDB-Pub\n",
+ "EventType: SetValue\n",
+ "ProcessId: 2156\n",
+ "Image: C:\\Windows\\system32\\CompatTelRunner.exe\n",
+ "Details: microsoft corporation\n",
+ "--------------------------------------------------\n",
+ "Message 129:\n",
+ "Registry value set:\n",
+ "RuleName: InvDB-CompileTimeClaim\n",
+ "EventType: SetValue\n",
+ "ProcessId: 2156\n",
+ "Image: C:\\Windows\\system32\\CompatTelRunner.exe\n",
+ "Details: 08/28/2020 18:31:14\n",
+ "--------------------------------------------------\n",
+ "Message 130:\n",
+ "Registry value set:\n",
+ "RuleName: InvDB-Ver\n",
+ "EventType: SetValue\n",
+ "ProcessId: 2156\n",
+ "Image: C:\\Windows\\system32\\CompatTelRunner.exe\n",
+ "Details: 1.10.54.0\n",
+ "--------------------------------------------------\n",
+ "Message 131:\n",
+ "Registry value set:\n",
+ "RuleName: InvDB-Path\n",
+ "EventType: SetValue\n",
+ "ProcessId: 2156\n",
+ "Image: C:\\Windows\\system32\\CompatTelRunner.exe\n",
+ "Details: c:\\program files (x86)\\microsoft\\edge\\application\\126.0.2592.68\\cookie_exporter.exe\n",
+ "--------------------------------------------------\n",
+ "Message 132:\n",
+ "Registry value set:\n",
+ "RuleName: InvDB-Pub\n",
+ "EventType: SetValue\n",
+ "ProcessId: 2156\n",
+ "Image: C:\\Windows\\system32\\CompatTelRunner.exe\n",
+ "Details: microsoft corporation\n",
+ "--------------------------------------------------\n",
+ "Message 133:\n",
+ "Registry value set:\n",
+ "RuleName: InvDB-CompileTimeClaim\n",
+ "EventType: SetValue\n",
+ "ProcessId: 2156\n",
+ "Image: C:\\Windows\\system32\\CompatTelRunner.exe\n",
+ "Details: 06/19/2024 23:34:22\n",
+ "--------------------------------------------------\n",
+ "Message 134:\n",
+ "Registry value set:\n",
+ "RuleName: InvDB-Ver\n",
+ "EventType: SetValue\n",
+ "ProcessId: 2156\n",
+ "Image: C:\\Windows\\system32\\CompatTelRunner.exe\n",
+ "Details: 126.0.2592.68\n",
+ "--------------------------------------------------\n",
+ "Message 135:\n",
+ "Registry value set:\n",
+ "RuleName: InvDB-Path\n",
+ "EventType: SetValue\n",
+ "ProcessId: 2156\n",
+ "Image: C:\\Windows\\system32\\CompatTelRunner.exe\n",
+ "Details: c:\\program files (x86)\\microsoft\\edge\\application\\126.0.2592.68\\elevation_service.exe\n",
+ "--------------------------------------------------\n",
+ "Message 136:\n",
+ "Registry value set:\n",
+ "RuleName: InvDB-Pub\n",
+ "EventType: SetValue\n",
+ "ProcessId: 2156\n",
+ "Image: C:\\Windows\\system32\\CompatTelRunner.exe\n",
+ "Details: microsoft corporation\n",
+ "--------------------------------------------------\n",
+ "Message 137:\n",
+ "Registry value set:\n",
+ "RuleName: InvDB-CompileTimeClaim\n",
+ "EventType: SetValue\n",
+ "ProcessId: 2156\n",
+ "Image: C:\\Windows\\system32\\CompatTelRunner.exe\n",
+ "Details: 06/19/2024 23:34:22\n",
+ "--------------------------------------------------\n",
+ "Message 138:\n",
+ "Registry value set:\n",
+ "RuleName: InvDB-Ver\n",
+ "EventType: SetValue\n",
+ "ProcessId: 2156\n",
+ "Image: C:\\Windows\\system32\\CompatTelRunner.exe\n",
+ "Details: 126.0.2592.68\n",
+ "--------------------------------------------------\n",
+ "Message 139:\n",
+ "Registry value set:\n",
+ "RuleName: InvDB-Path\n",
+ "EventType: SetValue\n",
+ "ProcessId: 2156\n",
+ "Image: C:\\Windows\\system32\\CompatTelRunner.exe\n",
+ "Details: c:\\program files (x86)\\microsoft\\edge\\application\\126.0.2592.68\\identity_helper.exe\n",
+ "--------------------------------------------------\n",
+ "Message 140:\n",
+ "Registry value set:\n",
+ "RuleName: InvDB-Pub\n",
+ "EventType: SetValue\n",
+ "ProcessId: 2156\n",
+ "Image: C:\\Windows\\system32\\CompatTelRunner.exe\n",
+ "Details: microsoft corporation\n",
+ "--------------------------------------------------\n",
+ "Message 141:\n",
+ "Registry value set:\n",
+ "RuleName: InvDB-CompileTimeClaim\n",
+ "EventType: SetValue\n",
+ "ProcessId: 2156\n",
+ "Image: C:\\Windows\\system32\\CompatTelRunner.exe\n",
+ "Details: 06/19/2024 23:34:22\n",
+ "--------------------------------------------------\n",
+ "Message 142:\n",
+ "Registry value set:\n",
+ "RuleName: InvDB-Ver\n",
+ "EventType: SetValue\n",
+ "ProcessId: 2156\n",
+ "Image: C:\\Windows\\system32\\CompatTelRunner.exe\n",
+ "Details: 126.0.2592.68\n",
+ "--------------------------------------------------\n",
+ "Message 143:\n",
+ "Registry value set:\n",
+ "RuleName: InvDB-Path\n",
+ "EventType: SetValue\n",
+ "ProcessId: 2156\n",
+ "Image: C:\\Windows\\system32\\CompatTelRunner.exe\n",
+ "Details: c:\\program files (x86)\\microsoft\\edge\\application\\126.0.2592.68\\bho\\ie_to_edge_stub.exe\n",
+ "--------------------------------------------------\n",
+ "Message 144:\n",
+ "Registry value set:\n",
+ "RuleName: InvDB-Pub\n",
+ "EventType: SetValue\n",
+ "ProcessId: 2156\n",
+ "Image: C:\\Windows\\system32\\CompatTelRunner.exe\n",
+ "Details: microsoft corporation\n",
+ "--------------------------------------------------\n",
+ "Message 145:\n",
+ "Registry value set:\n",
+ "RuleName: InvDB-CompileTimeClaim\n",
+ "EventType: SetValue\n",
+ "ProcessId: 2156\n",
+ "Image: C:\\Windows\\system32\\CompatTelRunner.exe\n",
+ "Details: 06/19/2024 23:34:22\n",
+ "--------------------------------------------------\n",
+ "Message 146:\n",
+ "Registry value set:\n",
+ "RuleName: InvDB-Ver\n",
+ "EventType: SetValue\n",
+ "ProcessId: 2156\n",
+ "Image: C:\\Windows\\system32\\CompatTelRunner.exe\n",
+ "Details: 126.0.2592.68\n",
+ "--------------------------------------------------\n",
+ "Message 147:\n",
+ "Registry value set:\n",
+ "RuleName: InvDB-Path\n",
+ "EventType: SetValue\n",
+ "ProcessId: 2156\n",
+ "Image: C:\\Windows\\system32\\CompatTelRunner.exe\n",
+ "Details: c:\\program files (x86)\\microsoft\\edge\\application\\126.0.2592.68\\msedge.exe\n",
+ "--------------------------------------------------\n",
+ "Message 148:\n",
+ "Registry value set:\n",
+ "RuleName: InvDB-Pub\n",
+ "EventType: SetValue\n",
+ "ProcessId: 2156\n",
+ "Image: C:\\Windows\\system32\\CompatTelRunner.exe\n",
+ "Details: microsoft corporation\n",
+ "--------------------------------------------------\n",
+ "Message 149:\n",
+ "Registry value set:\n",
+ "RuleName: InvDB-CompileTimeClaim\n",
+ "EventType: SetValue\n",
+ "ProcessId: 2156\n",
+ "Image: C:\\Windows\\system32\\CompatTelRunner.exe\n",
+ "Details: 06/19/2024 23:34:22\n",
+ "--------------------------------------------------\n",
+ "Message 150:\n",
+ "Registry value set:\n",
+ "RuleName: InvDB-Ver\n",
+ "EventType: SetValue\n",
+ "ProcessId: 2156\n",
+ "Image: C:\\Windows\\system32\\CompatTelRunner.exe\n",
+ "Details: 126.0.2592.68\n",
+ "--------------------------------------------------\n",
+ "Message 151:\n",
+ "Registry value set:\n",
+ "RuleName: InvDB-Path\n",
+ "EventType: SetValue\n",
+ "ProcessId: 2156\n",
+ "Image: C:\\Windows\\system32\\CompatTelRunner.exe\n",
+ "Details: c:\\program files (x86)\\microsoft\\edge\\application\\126.0.2592.68\\msedgewebview2.exe\n",
+ "--------------------------------------------------\n",
+ "Message 152:\n",
+ "Registry value set:\n",
+ "RuleName: InvDB-Pub\n",
+ "EventType: SetValue\n",
+ "ProcessId: 2156\n",
+ "Image: C:\\Windows\\system32\\CompatTelRunner.exe\n",
+ "Details: microsoft corporation\n",
+ "--------------------------------------------------\n",
+ "Message 153:\n",
+ "Registry value set:\n",
+ "RuleName: InvDB-CompileTimeClaim\n",
+ "EventType: SetValue\n",
+ "ProcessId: 2156\n",
+ "Image: C:\\Windows\\system32\\CompatTelRunner.exe\n",
+ "Details: 06/19/2024 23:34:22\n",
+ "--------------------------------------------------\n",
+ "Message 154:\n",
+ "Registry value set:\n",
+ "RuleName: InvDB-Ver\n",
+ "EventType: SetValue\n",
+ "ProcessId: 2156\n",
+ "Image: C:\\Windows\\system32\\CompatTelRunner.exe\n",
+ "Details: 126.0.2592.68\n",
+ "--------------------------------------------------\n",
+ "Message 155:\n",
+ "Registry value set:\n",
+ "RuleName: InvDB-Path\n",
+ "EventType: SetValue\n",
+ "ProcessId: 2156\n",
+ "Image: C:\\Windows\\system32\\CompatTelRunner.exe\n",
+ "Details: c:\\program files (x86)\\microsoft\\edge\\application\\126.0.2592.68\\msedge_proxy.exe\n",
+ "--------------------------------------------------\n",
+ "Message 156:\n",
+ "Registry value set:\n",
+ "RuleName: InvDB-Pub\n",
+ "EventType: SetValue\n",
+ "ProcessId: 2156\n",
+ "Image: C:\\Windows\\system32\\CompatTelRunner.exe\n",
+ "Details: microsoft corporation\n",
+ "--------------------------------------------------\n",
+ "Message 157:\n",
+ "Registry value set:\n",
+ "RuleName: InvDB-CompileTimeClaim\n",
+ "EventType: SetValue\n",
+ "ProcessId: 2156\n",
+ "Image: C:\\Windows\\system32\\CompatTelRunner.exe\n",
+ "Details: 06/19/2024 23:34:22\n",
+ "--------------------------------------------------\n",
+ "Message 158:\n",
+ "Registry value set:\n",
+ "RuleName: InvDB-Ver\n",
+ "EventType: SetValue\n",
+ "ProcessId: 2156\n",
+ "Image: C:\\Windows\\system32\\CompatTelRunner.exe\n",
+ "Details: 126.0.2592.68\n",
+ "--------------------------------------------------\n",
+ "Message 159:\n",
+ "Registry value set:\n",
+ "RuleName: InvDB-Path\n",
+ "EventType: SetValue\n",
+ "ProcessId: 2156\n",
+ "Image: C:\\Windows\\system32\\CompatTelRunner.exe\n",
+ "Details: c:\\program files (x86)\\microsoft\\edge\\application\\126.0.2592.68\\msedge_pwa_launcher.exe\n",
+ "--------------------------------------------------\n",
+ "Message 160:\n",
+ "Registry value set:\n",
+ "RuleName: InvDB-Pub\n",
+ "EventType: SetValue\n",
+ "ProcessId: 2156\n",
+ "Image: C:\\Windows\\system32\\CompatTelRunner.exe\n",
+ "Details: microsoft corporation\n",
+ "--------------------------------------------------\n",
+ "Message 161:\n",
+ "Registry value set:\n",
+ "RuleName: InvDB-CompileTimeClaim\n",
+ "EventType: SetValue\n",
+ "ProcessId: 2156\n",
+ "Image: C:\\Windows\\system32\\CompatTelRunner.exe\n",
+ "Details: 06/19/2024 23:34:22\n",
+ "--------------------------------------------------\n",
+ "Message 162:\n",
+ "Registry value set:\n",
+ "RuleName: InvDB-Ver\n",
+ "EventType: SetValue\n",
+ "ProcessId: 2156\n",
+ "Image: C:\\Windows\\system32\\CompatTelRunner.exe\n",
+ "Details: 126.0.2592.68\n",
+ "--------------------------------------------------\n",
+ "Message 163:\n",
+ "Registry value set:\n",
+ "RuleName: InvDB-Path\n",
+ "EventType: SetValue\n",
+ "ProcessId: 2156\n",
+ "Image: C:\\Windows\\system32\\CompatTelRunner.exe\n",
+ "Details: c:\\program files (x86)\\microsoft\\edge\\application\\126.0.2592.68\\notification_click_helper.exe\n",
+ "--------------------------------------------------\n",
+ "Message 164:\n",
+ "Registry value set:\n",
+ "RuleName: InvDB-Pub\n",
+ "EventType: SetValue\n",
+ "ProcessId: 2156\n",
+ "Image: C:\\Windows\\system32\\CompatTelRunner.exe\n",
+ "Details: microsoft corporation\n",
+ "--------------------------------------------------\n",
+ "Message 165:\n",
+ "Registry value set:\n",
+ "RuleName: InvDB-CompileTimeClaim\n",
+ "EventType: SetValue\n",
+ "ProcessId: 2156\n",
+ "Image: C:\\Windows\\system32\\CompatTelRunner.exe\n",
+ "Details: 06/19/2024 23:34:22\n",
+ "--------------------------------------------------\n",
+ "Message 166:\n",
+ "Registry value set:\n",
+ "RuleName: InvDB-Ver\n",
+ "EventType: SetValue\n",
+ "ProcessId: 2156\n",
+ "Image: C:\\Windows\\system32\\CompatTelRunner.exe\n",
+ "Details: 126.0.2592.68\n",
+ "--------------------------------------------------\n",
+ "Message 167:\n",
+ "Registry value set:\n",
+ "RuleName: InvDB-Path\n",
+ "EventType: SetValue\n",
+ "ProcessId: 2156\n",
+ "Image: C:\\Windows\\system32\\CompatTelRunner.exe\n",
+ "Details: c:\\program files (x86)\\microsoft\\edge\\application\\126.0.2592.68\\notification_helper.exe\n",
+ "--------------------------------------------------\n",
+ "Message 168:\n",
+ "Registry value set:\n",
+ "RuleName: InvDB-Pub\n",
+ "EventType: SetValue\n",
+ "ProcessId: 2156\n",
+ "Image: C:\\Windows\\system32\\CompatTelRunner.exe\n",
+ "Details: microsoft corporation\n",
+ "--------------------------------------------------\n",
+ "Message 169:\n",
+ "Registry value set:\n",
+ "RuleName: InvDB-CompileTimeClaim\n",
+ "EventType: SetValue\n",
+ "ProcessId: 2156\n",
+ "Image: C:\\Windows\\system32\\CompatTelRunner.exe\n",
+ "Details: 06/19/2024 23:34:22\n",
+ "--------------------------------------------------\n",
+ "Message 170:\n",
+ "Registry value set:\n",
+ "RuleName: InvDB-Ver\n",
+ "EventType: SetValue\n",
+ "ProcessId: 2156\n",
+ "Image: C:\\Windows\\system32\\CompatTelRunner.exe\n",
+ "Details: 126.0.2592.68\n",
+ "--------------------------------------------------\n",
+ "Message 171:\n",
+ "Registry value set:\n",
+ "RuleName: InvDB-Path\n",
+ "EventType: SetValue\n",
+ "ProcessId: 2156\n",
+ "Image: C:\\Windows\\system32\\CompatTelRunner.exe\n",
+ "Details: c:\\program files (x86)\\microsoft\\edge\\application\\126.0.2592.68\\pwahelper.exe\n",
+ "--------------------------------------------------\n",
+ "Message 172:\n",
+ "Registry value set:\n",
+ "RuleName: InvDB-Pub\n",
+ "EventType: SetValue\n",
+ "ProcessId: 2156\n",
+ "Image: C:\\Windows\\system32\\CompatTelRunner.exe\n",
+ "Details: microsoft corporation\n",
+ "--------------------------------------------------\n",
+ "Message 173:\n",
+ "Registry value set:\n",
+ "RuleName: InvDB-CompileTimeClaim\n",
+ "EventType: SetValue\n",
+ "ProcessId: 2156\n",
+ "Image: C:\\Windows\\system32\\CompatTelRunner.exe\n",
+ "Details: 06/19/2024 23:34:22\n",
+ "--------------------------------------------------\n",
+ "Message 174:\n",
+ "Registry value set:\n",
+ "RuleName: InvDB-Ver\n",
+ "EventType: SetValue\n",
+ "ProcessId: 2156\n",
+ "Image: C:\\Windows\\system32\\CompatTelRunner.exe\n",
+ "Details: 126.0.2592.68\n",
+ "--------------------------------------------------\n",
+ "Message 175:\n",
+ "Registry value set:\n",
+ "RuleName: InvDB-Path\n",
+ "EventType: SetValue\n",
+ "ProcessId: 2156\n",
+ "Image: C:\\Windows\\system32\\CompatTelRunner.exe\n",
+ "Details: c:\\program files (x86)\\microsoft\\edge\\application\\126.0.2592.68\\installer\\setup.exe\n",
+ "--------------------------------------------------\n",
+ "Message 176:\n",
+ "Registry value set:\n",
+ "RuleName: InvDB-Pub\n",
+ "EventType: SetValue\n",
+ "ProcessId: 2156\n",
+ "Image: C:\\Windows\\system32\\CompatTelRunner.exe\n",
+ "Details: microsoft corporation\n",
+ "--------------------------------------------------\n",
+ "Message 177:\n",
+ "Registry value set:\n",
+ "RuleName: InvDB-CompileTimeClaim\n",
+ "EventType: SetValue\n",
+ "ProcessId: 2156\n",
+ "Image: C:\\Windows\\system32\\CompatTelRunner.exe\n",
+ "Details: 06/19/2024 23:34:22\n",
+ "--------------------------------------------------\n",
+ "Message 178:\n",
+ "Registry value set:\n",
+ "RuleName: InvDB-Ver\n",
+ "EventType: SetValue\n",
+ "ProcessId: 2156\n",
+ "Image: C:\\Windows\\system32\\CompatTelRunner.exe\n",
+ "Details: 126.0.2592.68\n",
+ "--------------------------------------------------\n",
+ "Message 179:\n",
+ "Registry value set:\n",
+ "RuleName: InvDB-Pub\n",
+ "EventType: SetValue\n",
+ "ProcessId: 2156\n",
+ "Image: C:\\Windows\\system32\\CompatTelRunner.exe\n",
+ "Details: Microsoft Corporation\n",
+ "--------------------------------------------------\n",
+ "Message 180:\n",
+ "Registry value set:\n",
+ "RuleName: InvDB-Path\n",
+ "EventType: SetValue\n",
+ "ProcessId: 2156\n",
+ "Image: C:\\Windows\\system32\\CompatTelRunner.exe\n",
+ "Details: c:\\users\\ansible\\appdata\\local\\microsoft\\onedrive\\21.220.1024.0005\\onedrivesetup.exe\n",
+ "--------------------------------------------------\n",
+ "Message 181:\n",
+ "Registry value set:\n",
+ "RuleName: InvDB-Pub\n",
+ "EventType: SetValue\n",
+ "ProcessId: 2156\n",
+ "Image: C:\\Windows\\system32\\CompatTelRunner.exe\n",
+ "Details: microsoft corporation\n",
+ "--------------------------------------------------\n",
+ "Message 182:\n",
+ "Registry value set:\n",
+ "RuleName: InvDB-CompileTimeClaim\n",
+ "EventType: SetValue\n",
+ "ProcessId: 2156\n",
+ "Image: C:\\Windows\\system32\\CompatTelRunner.exe\n",
+ "Details: 04/29/2042 07:55:35\n",
+ "--------------------------------------------------\n",
+ "Message 183:\n",
+ "Registry value set:\n",
+ "RuleName: InvDB-Ver\n",
+ "EventType: SetValue\n",
+ "ProcessId: 2156\n",
+ "Image: C:\\Windows\\system32\\CompatTelRunner.exe\n",
+ "Details: 21.220.1024.5\n",
+ "--------------------------------------------------\n",
+ "Message 184:\n",
+ "Registry value set:\n",
+ "RuleName: InvDB-Path\n",
+ "EventType: SetValue\n",
+ "ProcessId: 2156\n",
+ "Image: C:\\Windows\\system32\\CompatTelRunner.exe\n",
+ "Details: c:\\users\\ansible\\appdata\\local\\microsoft\\onedrive\\21.220.1024.0005\\onedriveupdaterservice.exe\n",
+ "--------------------------------------------------\n",
+ "Message 185:\n",
+ "Registry value set:\n",
+ "RuleName: InvDB-Pub\n",
+ "EventType: SetValue\n",
+ "ProcessId: 2156\n",
+ "Image: C:\\Windows\\system32\\CompatTelRunner.exe\n",
+ "Details: microsoft corporation\n",
+ "--------------------------------------------------\n",
+ "Message 186:\n",
+ "Registry value set:\n",
+ "RuleName: InvDB-CompileTimeClaim\n",
+ "EventType: SetValue\n",
+ "ProcessId: 2156\n",
+ "Image: C:\\Windows\\system32\\CompatTelRunner.exe\n",
+ "Details: 01/30/2009 20:46:00\n",
+ "--------------------------------------------------\n",
+ "Message 187:\n",
+ "Registry value set:\n",
+ "RuleName: InvDB-Ver\n",
+ "EventType: SetValue\n",
+ "ProcessId: 2156\n",
+ "Image: C:\\Windows\\system32\\CompatTelRunner.exe\n",
+ "Details: 21.220.1024.5\n",
+ "--------------------------------------------------\n",
+ "Message 188:\n",
+ "Registry value set:\n",
+ "RuleName: InvDB-Pub\n",
+ "EventType: SetValue\n",
+ "ProcessId: 2156\n",
+ "Image: C:\\Windows\\system32\\CompatTelRunner.exe\n",
+ "Details: Microsoft Corporation\n",
+ "--------------------------------------------------\n",
+ "Message 189:\n",
+ "Process Create:\n",
+ "RuleName: -\n",
+ "ProcessId: 5488\n",
+ "Image: C:\\Windows\\System32\\taskhostw.exe\n",
+ "Description: Host Process for Windows Tasks\n",
+ "Product: Microsoft® Windows® Operating System\n",
+ "Company: Microsoft Corporation\n",
+ "OriginalFileName: taskhostw.exe\n",
+ "CommandLine: taskhostw.exe\n",
+ "CurrentDirectory: C:\\Windows\\system32\\\n",
+ "User: SYSTEM\n",
+ "TerminalSessionId: 0\n",
+ "IntegrityLevel: System\n",
+ "ParentProcessId: 2024\n",
+ "ParentImage: C:\\Windows\\System32\\svchost.exe\n",
+ "ParentCommandLine: C:\\Windows\\system32\\svchost.exe -k netsvcs -p -s Schedule\n",
+ "--------------------------------------------------\n",
+ "Message 190:\n",
+ "Process Create:\n",
+ "RuleName: -\n",
+ "ProcessId: 4728\n",
+ "Image: C:\\Windows\\System32\\SrTasks.exe\n",
+ "Description: Microsoft® Windows System Protection background tasks.\n",
+ "Product: Microsoft® Windows® Operating System\n",
+ "Company: Microsoft Corporation\n",
+ "OriginalFileName: srtasks.exe\n",
+ "CommandLine: \"C:\\Windows\\system32\\srtasks.exe\" ExecuteScheduledSPPCreation\n",
+ "CurrentDirectory: C:\\Windows\\system32\\\n",
+ "User: SYSTEM\n",
+ "TerminalSessionId: 0\n",
+ "IntegrityLevel: System\n",
+ "ParentProcessId: 2024\n",
+ "ParentImage: C:\\Windows\\System32\\svchost.exe\n",
+ "ParentCommandLine: C:\\Windows\\system32\\svchost.exe -k netsvcs -p -s Schedule\n",
+ "--------------------------------------------------\n",
+ "Message 191:\n",
+ "Registry value set:\n",
+ "RuleName: InvDB-Path\n",
+ "EventType: SetValue\n",
+ "ProcessId: 2156\n",
+ "Image: C:\\Windows\\system32\\CompatTelRunner.exe\n",
+ "Details: c:\\users\\ansible\\appdata\\local\\microsoft\\onedrive\\21.220.1024.0005\\filecoauth.exe\n",
+ "--------------------------------------------------\n",
+ "Message 192:\n",
+ "Registry value set:\n",
+ "RuleName: InvDB-Pub\n",
+ "EventType: SetValue\n",
+ "ProcessId: 2156\n",
+ "Image: C:\\Windows\\system32\\CompatTelRunner.exe\n",
+ "Details: microsoft corporation\n",
+ "--------------------------------------------------\n",
+ "Message 193:\n",
+ "Registry value set:\n",
+ "RuleName: InvDB-CompileTimeClaim\n",
+ "EventType: SetValue\n",
+ "ProcessId: 2156\n",
+ "Image: C:\\Windows\\system32\\CompatTelRunner.exe\n",
+ "Details: 09/04/1976 00:39:52\n",
+ "--------------------------------------------------\n",
+ "Message 194:\n",
+ "Registry value set:\n",
+ "RuleName: InvDB-Ver\n",
+ "EventType: SetValue\n",
+ "ProcessId: 2156\n",
+ "Image: C:\\Windows\\system32\\CompatTelRunner.exe\n",
+ "Details: 21.220.1024.5\n",
+ "--------------------------------------------------\n",
+ "Message 195:\n",
+ "Registry value set:\n",
+ "RuleName: InvDB-Path\n",
+ "EventType: SetValue\n",
+ "ProcessId: 2156\n",
+ "Image: C:\\Windows\\system32\\CompatTelRunner.exe\n",
+ "Details: c:\\users\\ansible\\appdata\\local\\microsoft\\onedrive\\21.220.1024.0005\\filesyncconfig.exe\n",
+ "--------------------------------------------------\n",
+ "Message 196:\n",
+ "Registry value set:\n",
+ "RuleName: InvDB-Pub\n",
+ "EventType: SetValue\n",
+ "ProcessId: 2156\n",
+ "Image: C:\\Windows\\system32\\CompatTelRunner.exe\n",
+ "Details: microsoft corporation\n",
+ "--------------------------------------------------\n",
+ "Message 197:\n",
+ "Registry value set:\n",
+ "RuleName: InvDB-CompileTimeClaim\n",
+ "EventType: SetValue\n",
+ "ProcessId: 2156\n",
+ "Image: C:\\Windows\\system32\\CompatTelRunner.exe\n",
+ "Details: 02/11/2005 13:45:08\n",
+ "--------------------------------------------------\n",
+ "Message 198:\n",
+ "Registry value set:\n",
+ "RuleName: InvDB-Ver\n",
+ "EventType: SetValue\n",
+ "ProcessId: 2156\n",
+ "Image: C:\\Windows\\system32\\CompatTelRunner.exe\n",
+ "Details: 21.220.1024.5\n",
+ "--------------------------------------------------\n",
+ "Message 199:\n",
+ "Registry value set:\n",
+ "RuleName: InvDB-Path\n",
+ "EventType: SetValue\n",
+ "ProcessId: 2156\n",
+ "Image: C:\\Windows\\system32\\CompatTelRunner.exe\n",
+ "Details: c:\\users\\ansible\\appdata\\local\\microsoft\\onedrive\\21.220.1024.0005\\filesynchelper.exe\n",
+ "--------------------------------------------------\n",
+ "Message 200:\n",
+ "Registry value set:\n",
+ "RuleName: InvDB-Pub\n",
+ "EventType: SetValue\n",
+ "ProcessId: 2156\n",
+ "Image: C:\\Windows\\system32\\CompatTelRunner.exe\n",
+ "Details: microsoft corporation\n",
+ "--------------------------------------------------\n"
+ ]
+ }
+ ],
+ "execution_count": 3
+ },
+ {
+ "metadata": {
+ "ExecuteTime": {
+ "end_time": "2024-06-23T14:27:52.793229Z",
+ "start_time": "2024-06-23T14:27:52.788792Z"
+ }
+ },
+ "cell_type": "code",
+ "source": [
+ "# Assuming df_f is your modified DataFrame with all necessary columns including 'filtered_message'\n",
+ "# Select specific columns from the DataFrame\n",
+ "selected_columns_df = df_f.select([\"log.level\", \"winlog.event_id\", \"winlog.task\",\"filtered_message\"])\n",
+ "\n",
+ "# Write the selected columns to a CSV file\n",
+ "selected_columns_df.write_csv('lab_logs_blindtest_activity_filtered.csv')\n"
+ ],
+ "id": "ff54936e81a933fd",
+ "outputs": [],
+ "execution_count": 5
+ },
+ {
+ "metadata": {
+ "ExecuteTime": {
+ "end_time": "2024-06-23T14:27:53.905616Z",
+ "start_time": "2024-06-23T14:27:53.898061Z"
+ }
+ },
+ "cell_type": "code",
+ "source": "selected_columns_df.head(5)",
+ "id": "da3c38ca8c474ba",
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "shape: (5, 4)\n",
+ "┌─────────────┬─────────────────┬─────────────────────────────────┬─────────────────────┐\n",
+ "│ log.level ┆ winlog.event_id ┆ winlog.task ┆ filtered_message │\n",
+ "│ --- ┆ --- ┆ --- ┆ --- │\n",
+ "│ str ┆ i64 ┆ str ┆ str │\n",
+ "╞═════════════╪═════════════════╪═════════════════════════════════╪═════════════════════╡\n",
+ "│ information ┆ 10 ┆ Process accessed (rule: Proces… ┆ Process accessed: │\n",
+ "│ ┆ ┆ ┆ RuleName: - │\n",
+ "│ ┆ ┆ ┆ … │\n",
+ "│ information ┆ 10 ┆ Process accessed (rule: Proces… ┆ Process accessed: │\n",
+ "│ ┆ ┆ ┆ RuleName: - │\n",
+ "│ ┆ ┆ ┆ … │\n",
+ "│ information ┆ 1 ┆ Process Create (rule: ProcessC… ┆ Process Create: │\n",
+ "│ ┆ ┆ ┆ RuleName: - │\n",
+ "│ ┆ ┆ ┆ Pr… │\n",
+ "│ information ┆ 13 ┆ Registry value set (rule: Regi… ┆ Registry value set: │\n",
+ "│ ┆ ┆ ┆ RuleName: … │\n",
+ "│ information ┆ 1 ┆ Process Create (rule: ProcessC… ┆ Process Create: │\n",
+ "│ ┆ ┆ ┆ RuleName: - │\n",
+ "│ ┆ ┆ ┆ Pr… │\n",
+ "└─────────────┴─────────────────┴─────────────────────────────────┴─────────────────────┘"
+ ],
+ "text/html": [
+ "
\n",
+ "
shape: (5, 4)log.level | winlog.event_id | winlog.task | filtered_message |
---|
str | i64 | str | str |
"information" | 10 | "Process accessed (rule: Proces… | "Process accessed:\n",
+ "RuleName: -\n",
+ "… |
"information" | 10 | "Process accessed (rule: Proces… | "Process accessed:\n",
+ "RuleName: -\n",
+ "… |
"information" | 1 | "Process Create (rule: ProcessC… | "Process Create:\n",
+ "RuleName: -\n",
+ "Pr… |
"information" | 13 | "Registry value set (rule: Regi… | "Registry value set:\n",
+ "RuleName: … |
"information" | 1 | "Process Create (rule: ProcessC… | "Process Create:\n",
+ "RuleName: -\n",
+ "Pr… |
"
+ ]
+ },
+ "execution_count": 6,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "execution_count": 6
+ },
+ {
+ "metadata": {
+ "ExecuteTime": {
+ "end_time": "2024-06-23T14:28:18.658902Z",
+ "start_time": "2024-06-23T14:28:18.654894Z"
+ }
+ },
+ "cell_type": "code",
+ "source": [
+ "# Assuming 'selected_columns_df' is your existing DataFrame\n",
+ "# Create an index series directly\n",
+ "index_series = pl.Series(\"index\", range(selected_columns_df.height))\n",
+ "\n",
+ "# Insert the index series as the first column using the recommended method\n",
+ "selected_columns_df = selected_columns_df.insert_column(0, index_series)\n",
+ "\n",
+ "# Write the DataFrame to a CSV file, including the new index column\n",
+ "selected_columns_df.write_csv('lab_logs_blindtest_activity_filtered.csv')\n"
+ ],
+ "id": "35cd4cc645761608",
+ "outputs": [],
+ "execution_count": 7
+ },
+ {
+ "metadata": {
+ "ExecuteTime": {
+ "end_time": "2024-06-23T13:45:49.429720Z",
+ "start_time": "2024-06-23T13:43:42.591856Z"
+ }
+ },
+ "cell_type": "code",
+ "source": "%conda install numpy scipy scikit-learn pandas joblib pytorch",
+ "id": "b3f6a7f89fb1f92e",
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Retrieving notices: ...working... done\r\n",
+ "Channels:\r\n",
+ " - defaults\r\n",
+ " - conda-forge\r\n",
+ "Platform: osx-64\r\n",
+ "Collecting package metadata (repodata.json): done\r\n",
+ "Solving environment: done\r\n",
+ "\r\n",
+ "## Package Plan ##\r\n",
+ "\r\n",
+ " environment location: /Users/mc/anaconda3\r\n",
+ "\r\n",
+ " added / updated specs:\r\n",
+ " - joblib\r\n",
+ " - numpy\r\n",
+ " - pandas\r\n",
+ " - pytorch\r\n",
+ " - scikit-learn\r\n",
+ " - scipy\r\n",
+ "\r\n",
+ "\r\n",
+ "The following packages will be downloaded:\r\n",
+ "\r\n",
+ " package | build\r\n",
+ " ---------------------------|-----------------\r\n",
+ " joblib-1.4.2 | py311hecd8cb5_0 532 KB\r\n",
+ " openpyxl-3.1.2 | py311h6c40b1e_0 644 KB\r\n",
+ " pandas-2.2.2 | py311he327ffe_0 14.9 MB\r\n",
+ " pytorch-2.3.0 |cpu_py311hfffa08c_0 61.7 MB\r\n",
+ " ------------------------------------------------------------\r\n",
+ " Total: 77.7 MB\r\n",
+ "\r\n",
+ "The following NEW packages will be INSTALLED:\r\n",
+ "\r\n",
+ " gmp pkgs/main/osx-64::gmp-6.2.1-he9d5cce_3 \r\n",
+ " gmpy2 pkgs/main/osx-64::gmpy2-2.1.2-py311h1c2e9e1_0 \r\n",
+ " mpc pkgs/main/osx-64::mpc-1.1.0-h6ef4df4_1 \r\n",
+ " mpfr pkgs/main/osx-64::mpfr-4.0.2-h9066e36_1 \r\n",
+ " mpmath pkgs/main/osx-64::mpmath-1.3.0-py311hecd8cb5_0 \r\n",
+ " numexpr pkgs/main/osx-64::numexpr-2.8.7-py311h91b6869_0 \r\n",
+ " pandas pkgs/main/osx-64::pandas-2.2.2-py311he327ffe_0 \r\n",
+ " pytorch pkgs/main/osx-64::pytorch-2.3.0-cpu_py311hfffa08c_0 \r\n",
+ " sympy pkgs/main/osx-64::sympy-1.12-py311hecd8cb5_0 \r\n",
+ "\r\n",
+ "The following packages will be UPDATED:\r\n",
+ "\r\n",
+ " joblib 1.2.0-py311hecd8cb5_0 --> 1.4.2-py311hecd8cb5_0 \r\n",
+ " openpyxl 3.0.10-py311h6c40b1e_0 --> 3.1.2-py311h6c40b1e_0 \r\n",
+ "\r\n",
+ "\r\n",
+ "\r\n",
+ "Downloading and Extracting Packages:\r\n",
+ "pytorch-2.3.0 | 61.7 MB | | 0% \r\n",
+ "pandas-2.2.2 | 14.9 MB | | 0% \u001B[A\r\n",
+ "\r\n",
+ "openpyxl-3.1.2 | 644 KB | | 0% \u001B[A\u001B[A\r\n",
+ "\r\n",
+ "\r\n",
+ "joblib-1.4.2 | 532 KB | | 0% \u001B[A\u001B[A\u001B[A\r\n",
+ "\r\n",
+ "openpyxl-3.1.2 | 644 KB | 9 | 2% \u001B[A\u001B[A\r\n",
+ "pandas-2.2.2 | 14.9 MB | | 0% \u001B[A\r\n",
+ "\r\n",
+ "\r\n",
+ "pytorch-2.3.0 | 61.7 MB | | 0% \u001B[A\u001B[A\u001B[A\r\n",
+ "\r\n",
+ "openpyxl-3.1.2 | 644 KB | ########2 | 22% \u001B[A\u001B[A\r\n",
+ "pandas-2.2.2 | 14.9 MB | 3 | 1% \u001B[A\r\n",
+ "\r\n",
+ "\r\n",
+ "pytorch-2.3.0 | 61.7 MB | | 0% \u001B[A\u001B[A\u001B[A\r\n",
+ "\r\n",
+ "openpyxl-3.1.2 | 644 KB | #####################1 | 57% \u001B[A\u001B[A\r\n",
+ "pandas-2.2.2 | 14.9 MB | 7 | 2% \u001B[A\r\n",
+ "\r\n",
+ "\r\n",
+ "pytorch-2.3.0 | 61.7 MB | 1 | 0% \u001B[A\u001B[A\u001B[A\r\n",
+ "pandas-2.2.2 | 14.9 MB | #1 | 3% \u001B[A\r\n",
+ "\r\n",
+ "openpyxl-3.1.2 | 644 KB | ################################1 | 87% \u001B[A\u001B[A\r\n",
+ "\r\n",
+ "\r\n",
+ "pytorch-2.3.0 | 61.7 MB | 2 | 1% \u001B[A\u001B[A\u001B[A\r\n",
+ "pytorch-2.3.0 | 61.7 MB | 4 | 1% \u001B[A\r\n",
+ "pandas-2.2.2 | 14.9 MB | ###4 | 9% \u001B[A\r\n",
+ "pytorch-2.3.0 | 61.7 MB | 6 | 2% \u001B[A\r\n",
+ "\r\n",
+ "\r\n",
+ "joblib-1.4.2 | 532 KB | ##################################### | 100% \u001B[A\u001B[A\u001B[A\r\n",
+ "\r\n",
+ "\r\n",
+ "joblib-1.4.2 | 532 KB | ##################################### | 100% \u001B[A\u001B[A\u001B[A\r\n",
+ "\r\n",
+ "pytorch-2.3.0 | 61.7 MB | 7 | 2% \u001B[A\u001B[A\r\n",
+ "pytorch-2.3.0 | 61.7 MB | 8 | 2% \u001B[A\r\n",
+ "pytorch-2.3.0 | 61.7 MB | #1 | 3% \u001B[A\r\n",
+ "pytorch-2.3.0 | 61.7 MB | #3 | 4% \u001B[A\r\n",
+ "pytorch-2.3.0 | 61.7 MB | #4 | 4% \u001B[A\r\n",
+ "pytorch-2.3.0 | 61.7 MB | #9 | 5% \u001B[A\r\n",
+ "pytorch-2.3.0 | 61.7 MB | ##1 | 6% \u001B[A\r\n",
+ "pytorch-2.3.0 | 61.7 MB | ##4 | 7% \u001B[A\r\n",
+ "pytorch-2.3.0 | 61.7 MB | ##8 | 8% \u001B[A\r\n",
+ "pytorch-2.3.0 | 61.7 MB | ### | 8% \u001B[A\r\n",
+ "pytorch-2.3.0 | 61.7 MB | ###4 | 9% \u001B[A\r\n",
+ "pandas-2.2.2 | 14.9 MB | ######################## | 65% \u001B[A\r\n",
+ "pytorch-2.3.0 | 61.7 MB | #### | 11% \u001B[A\r\n",
+ "pandas-2.2.2 | 14.9 MB | ############################# | 78% \u001B[A\r\n",
+ "pytorch-2.3.0 | 61.7 MB | ####5 | 12% \u001B[A\r\n",
+ "pytorch-2.3.0 | 61.7 MB | #####1 | 14% \u001B[A\r\n",
+ "pytorch-2.3.0 | 61.7 MB | #####3 | 15% \u001B[A\r\n",
+ "pytorch-2.3.0 | 61.7 MB | ############1 | 33% \u001B[A\r\n",
+ "pandas-2.2.2 | 14.9 MB | ##################################### | 100% \u001B[A\r\n",
+ " \u001B[A\r\n",
+ " \u001B[A\r\n",
+ "\r\n",
+ " \u001B[A\u001B[A\r\n",
+ "\r\n",
+ "\r\n",
+ " \u001B[A\u001B[A\u001B[A\r\n",
+ "Preparing transaction: done\r\n",
+ "Verifying transaction: done\r\n",
+ "Executing transaction: done\r\n",
+ "\n",
+ "Note: you may need to restart the kernel to use updated packages.\n"
+ ]
+ }
+ ],
+ "execution_count": 62
+ },
+ {
+ "metadata": {
+ "ExecuteTime": {
+ "end_time": "2024-06-23T13:56:10.774237Z",
+ "start_time": "2024-06-23T13:55:53.417184Z"
+ }
+ },
+ "cell_type": "code",
+ "source": "%pip install deap update_checker tqdm stopit xgboost",
+ "id": "47de32d351fad54f",
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Collecting deap\r\n",
+ " Downloading deap-1.4.1.tar.gz (1.1 MB)\r\n",
+ "\u001B[2K \u001B[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001B[0m \u001B[32m1.1/1.1 MB\u001B[0m \u001B[31m3.3 MB/s\u001B[0m eta \u001B[36m0:00:00\u001B[0m00:01\u001B[0m00:01\u001B[0m0m\r\n",
+ "\u001B[?25h Preparing metadata (setup.py) ... \u001B[?25ldone\r\n",
+ "\u001B[?25hCollecting update_checker\r\n",
+ " Downloading update_checker-0.18.0-py3-none-any.whl.metadata (2.3 kB)\r\n",
+ "Requirement already satisfied: tqdm in /Users/mc/anaconda3/lib/python3.11/site-packages (4.65.0)\r\n",
+ "Collecting stopit\r\n",
+ " Downloading stopit-1.1.2.tar.gz (18 kB)\r\n",
+ " Preparing metadata (setup.py) ... \u001B[?25ldone\r\n",
+ "\u001B[?25hRequirement already satisfied: xgboost in /Users/mc/anaconda3/lib/python3.11/site-packages (2.0.3)\r\n",
+ "Requirement already satisfied: numpy in /Users/mc/anaconda3/lib/python3.11/site-packages (from deap) (1.26.4)\r\n",
+ "Requirement already satisfied: requests>=2.3.0 in /Users/mc/anaconda3/lib/python3.11/site-packages (from update_checker) (2.31.0)\r\n",
+ "Requirement already satisfied: scipy in /Users/mc/anaconda3/lib/python3.11/site-packages (from xgboost) (1.10.0)\r\n",
+ "Requirement already satisfied: charset-normalizer<4,>=2 in /Users/mc/anaconda3/lib/python3.11/site-packages (from requests>=2.3.0->update_checker) (2.0.4)\r\n",
+ "Requirement already satisfied: idna<4,>=2.5 in /Users/mc/anaconda3/lib/python3.11/site-packages (from requests>=2.3.0->update_checker) (3.4)\r\n",
+ "Requirement already satisfied: urllib3<3,>=1.21.1 in /Users/mc/anaconda3/lib/python3.11/site-packages (from requests>=2.3.0->update_checker) (2.0.7)\r\n",
+ "Requirement already satisfied: certifi>=2017.4.17 in /Users/mc/anaconda3/lib/python3.11/site-packages (from requests>=2.3.0->update_checker) (2024.6.2)\r\n",
+ "Downloading update_checker-0.18.0-py3-none-any.whl (7.0 kB)\r\n",
+ "Building wheels for collected packages: deap, stopit\r\n",
+ " Building wheel for deap (setup.py) ... \u001B[?25ldone\r\n",
+ "\u001B[?25h Created wheel for deap: filename=deap-1.4.1-cp311-cp311-macosx_10_9_x86_64.whl size=104125 sha256=f96288a3d78b5805d248bd7b3b208fde1cc034141a602688c3fda474dd70351f\r\n",
+ " Stored in directory: /Users/mc/Library/Caches/pip/wheels/f8/64/b8/65eacfbff3024ae2e2beb22e691d5c8abb89fbd863b8049b5f\r\n",
+ " Building wheel for stopit (setup.py) ... \u001B[?25ldone\r\n",
+ "\u001B[?25h Created wheel for stopit: filename=stopit-1.1.2-py3-none-any.whl size=11939 sha256=97f0cca9a0cd37dfe9b6f44dd8ab496a305c15a23e1b1f61fb45480eb31d7968\r\n",
+ " Stored in directory: /Users/mc/Library/Caches/pip/wheels/da/77/2d/adbc56bc4db95ad80c6d4e71cd69e2d9d122174904342e3f7f\r\n",
+ "Successfully built deap stopit\r\n",
+ "Installing collected packages: stopit, deap, update_checker\r\n",
+ "Successfully installed deap-1.4.1 stopit-1.1.2 update_checker-0.18.0\r\n",
+ "Note: you may need to restart the kernel to use updated packages.\n"
+ ]
+ }
+ ],
+ "execution_count": 63
+ },
+ {
+ "metadata": {
+ "ExecuteTime": {
+ "end_time": "2024-06-23T14:01:04.898242Z",
+ "start_time": "2024-06-23T14:00:53.155446Z"
+ }
+ },
+ "cell_type": "code",
+ "source": "%pip install tpot",
+ "id": "737d462c559936e2",
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Collecting tpot\r\n",
+ " Downloading TPOT-0.12.2-py3-none-any.whl.metadata (2.0 kB)\r\n",
+ "Requirement already satisfied: numpy>=1.16.3 in /Users/mc/anaconda3/lib/python3.11/site-packages (from tpot) (1.26.4)\r\n",
+ "Requirement already satisfied: scipy>=1.3.1 in /Users/mc/anaconda3/lib/python3.11/site-packages (from tpot) (1.10.0)\r\n",
+ "Collecting scikit-learn>=1.4.1 (from tpot)\r\n",
+ " Downloading scikit_learn-1.5.0-cp311-cp311-macosx_10_9_x86_64.whl.metadata (11 kB)\r\n",
+ "Requirement already satisfied: deap>=1.2 in /Users/mc/anaconda3/lib/python3.11/site-packages (from tpot) (1.4.1)\r\n",
+ "Requirement already satisfied: update-checker>=0.16 in /Users/mc/anaconda3/lib/python3.11/site-packages (from tpot) (0.18.0)\r\n",
+ "Requirement already satisfied: tqdm>=4.36.1 in /Users/mc/anaconda3/lib/python3.11/site-packages (from tpot) (4.65.0)\r\n",
+ "Requirement already satisfied: stopit>=1.1.1 in /Users/mc/anaconda3/lib/python3.11/site-packages (from tpot) (1.1.2)\r\n",
+ "Requirement already satisfied: pandas>=0.24.2 in /Users/mc/anaconda3/lib/python3.11/site-packages (from tpot) (2.2.2)\r\n",
+ "Requirement already satisfied: joblib>=0.13.2 in /Users/mc/anaconda3/lib/python3.11/site-packages (from tpot) (1.4.2)\r\n",
+ "Requirement already satisfied: xgboost>=1.1.0 in /Users/mc/anaconda3/lib/python3.11/site-packages (from tpot) (2.0.3)\r\n",
+ "Requirement already satisfied: python-dateutil>=2.8.2 in /Users/mc/anaconda3/lib/python3.11/site-packages (from pandas>=0.24.2->tpot) (2.8.2)\r\n",
+ "Requirement already satisfied: pytz>=2020.1 in /Users/mc/anaconda3/lib/python3.11/site-packages (from pandas>=0.24.2->tpot) (2023.3.post1)\r\n",
+ "Requirement already satisfied: tzdata>=2022.7 in /Users/mc/anaconda3/lib/python3.11/site-packages (from pandas>=0.24.2->tpot) (2023.3)\r\n",
+ "Collecting threadpoolctl>=3.1.0 (from scikit-learn>=1.4.1->tpot)\r\n",
+ " Downloading threadpoolctl-3.5.0-py3-none-any.whl.metadata (13 kB)\r\n",
+ "Requirement already satisfied: requests>=2.3.0 in /Users/mc/anaconda3/lib/python3.11/site-packages (from update-checker>=0.16->tpot) (2.31.0)\r\n",
+ "Requirement already satisfied: six>=1.5 in /Users/mc/anaconda3/lib/python3.11/site-packages (from python-dateutil>=2.8.2->pandas>=0.24.2->tpot) (1.16.0)\r\n",
+ "Requirement already satisfied: charset-normalizer<4,>=2 in /Users/mc/anaconda3/lib/python3.11/site-packages (from requests>=2.3.0->update-checker>=0.16->tpot) (2.0.4)\r\n",
+ "Requirement already satisfied: idna<4,>=2.5 in /Users/mc/anaconda3/lib/python3.11/site-packages (from requests>=2.3.0->update-checker>=0.16->tpot) (3.4)\r\n",
+ "Requirement already satisfied: urllib3<3,>=1.21.1 in /Users/mc/anaconda3/lib/python3.11/site-packages (from requests>=2.3.0->update-checker>=0.16->tpot) (2.0.7)\r\n",
+ "Requirement already satisfied: certifi>=2017.4.17 in /Users/mc/anaconda3/lib/python3.11/site-packages (from requests>=2.3.0->update-checker>=0.16->tpot) (2024.6.2)\r\n",
+ "Downloading TPOT-0.12.2-py3-none-any.whl (87 kB)\r\n",
+ "\u001B[2K \u001B[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001B[0m \u001B[32m87.4/87.4 kB\u001B[0m \u001B[31m800.0 kB/s\u001B[0m eta \u001B[36m0:00:00\u001B[0m\u001B[36m0:00:01\u001B[0m0m\r\n",
+ "\u001B[?25hDownloading scikit_learn-1.5.0-cp311-cp311-macosx_10_9_x86_64.whl (12.1 MB)\r\n",
+ "\u001B[2K \u001B[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001B[0m \u001B[32m12.1/12.1 MB\u001B[0m \u001B[31m6.9 MB/s\u001B[0m eta \u001B[36m0:00:00\u001B[0m00:01\u001B[0m00:01\u001B[0m\r\n",
+ "\u001B[?25hDownloading threadpoolctl-3.5.0-py3-none-any.whl (18 kB)\r\n",
+ "Installing collected packages: threadpoolctl, scikit-learn, tpot\r\n",
+ " Attempting uninstall: threadpoolctl\r\n",
+ " Found existing installation: threadpoolctl 2.2.0\r\n",
+ " Uninstalling threadpoolctl-2.2.0:\r\n",
+ " Successfully uninstalled threadpoolctl-2.2.0\r\n",
+ " Attempting uninstall: scikit-learn\r\n",
+ " Found existing installation: scikit-learn 1.1.3\r\n",
+ " Uninstalling scikit-learn-1.1.3:\r\n",
+ " Successfully uninstalled scikit-learn-1.1.3\r\n",
+ "\u001B[31mERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.\r\n",
+ "orange3 3.36.2 requires scikit-learn!=1.2.*,<1.4,>=1.1.0, but you have scikit-learn 1.5.0 which is incompatible.\u001B[0m\u001B[31m\r\n",
+ "\u001B[0mSuccessfully installed scikit-learn-1.5.0 threadpoolctl-3.5.0 tpot-0.12.2\r\n",
+ "Note: you may need to restart the kernel to use updated packages.\n"
+ ]
+ }
+ ],
+ "execution_count": 65
+ },
+ {
+ "metadata": {
+ "ExecuteTime": {
+ "end_time": "2024-06-23T14:28:38.433594Z",
+ "start_time": "2024-06-23T14:28:27.080547Z"
+ }
+ },
+ "cell_type": "code",
+ "source": [
+ "import os\n",
+ "os.environ[\"KMP_DUPLICATE_LIB_OK\"] = \"TRUE\"\n",
+ "\n",
+ "import polars as pl\n",
+ "import re\n",
+ "from transformers import BertTokenizer, BertModel\n",
+ "import torch\n",
+ "from tpot import TPOTClassifier\n",
+ "from sklearn.model_selection import train_test_split\n",
+ "from sklearn.preprocessing import LabelEncoder"
+ ],
+ "id": "ae96e41f08c7908b",
+ "outputs": [
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "/Users/mc/anaconda3/lib/python3.11/site-packages/transformers/utils/generic.py:260: UserWarning: torch.utils._pytree._register_pytree_node is deprecated. Please use torch.utils._pytree.register_pytree_node instead.\n",
+ " torch.utils._pytree._register_pytree_node(\n"
+ ]
+ }
+ ],
+ "execution_count": 8
+ },
+ {
+ "metadata": {
+ "ExecuteTime": {
+ "end_time": "2024-06-23T14:28:38.439369Z",
+ "start_time": "2024-06-23T14:28:38.435669Z"
+ }
+ },
+ "cell_type": "code",
+ "source": [
+ "# Extract relevant information using regular expressions\n",
+ "def extract_info(text):\n",
+ " image = re.search(r\"Image: (.*?\\.exe)\", text, re.IGNORECASE)\n",
+ " target_filename = re.search(r\"TargetFilename: (.*?\\.exe)\", text, re.IGNORECASE)\n",
+ " return {\n",
+ " \"image\": image.group(1) if image else \"\",\n",
+ " \"target_filename\": target_filename.group(1) if target_filename else \"\",\n",
+ " \"text\": text\n",
+ " }"
+ ],
+ "id": "5cecd995c579cd0f",
+ "outputs": [],
+ "execution_count": 9
+ },
+ {
+ "metadata": {
+ "ExecuteTime": {
+ "end_time": "2024-06-23T14:28:38.453982Z",
+ "start_time": "2024-06-23T14:28:38.440333Z"
+ }
+ },
+ "cell_type": "code",
+ "source": [
+ "# Apply extraction to the Polars DataFrame using map_elements\n",
+ "selected_columns_df = selected_columns_df.with_columns(\n",
+ " pl.col(\"filtered_message\").map_elements(lambda x: extract_info(x), return_dtype=pl.Object).alias(\"extracted_info\")\n",
+ ")"
+ ],
+ "id": "c2f84d1d644f9111",
+ "outputs": [],
+ "execution_count": 10
+ },
+ {
+ "metadata": {
+ "ExecuteTime": {
+ "end_time": "2024-06-23T14:28:38.462528Z",
+ "start_time": "2024-06-23T14:28:38.456183Z"
+ }
+ },
+ "cell_type": "code",
+ "source": [
+ "# Extract fields from the extracted_info column using map_elements with return_dtype\n",
+ "selected_columns_df = selected_columns_df.with_columns(\n",
+ " pl.col(\"extracted_info\").map_elements(lambda x: x['image'], return_dtype=pl.Utf8).alias(\"image\"),\n",
+ " pl.col(\"extracted_info\").map_elements(lambda x: x['target_filename'], return_dtype=pl.Utf8).alias(\"target_filename\"),\n",
+ " pl.col(\"extracted_info\").map_elements(lambda x: x['text'], return_dtype=pl.Utf8).alias(\"text\")\n",
+ ").drop(\"extracted_info\")"
+ ],
+ "id": "b4c8e805cdb9b634",
+ "outputs": [],
+ "execution_count": 11
+ },
+ {
+ "metadata": {
+ "ExecuteTime": {
+ "end_time": "2024-06-23T14:28:38.467734Z",
+ "start_time": "2024-06-23T14:28:38.463610Z"
+ }
+ },
+ "cell_type": "code",
+ "source": "print(selected_columns_df)",
+ "id": "c700056897cc8dd8",
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "shape: (1_027, 8)\n",
+ "┌───────┬────────────┬────────────┬────────────┬────────────┬────────────┬────────────┬────────────┐\n",
+ "│ index ┆ log.level ┆ winlog.eve ┆ winlog.tas ┆ filtered_m ┆ image ┆ target_fil ┆ text │\n",
+ "│ --- ┆ --- ┆ nt_id ┆ k ┆ essage ┆ --- ┆ ename ┆ --- │\n",
+ "│ i64 ┆ str ┆ --- ┆ --- ┆ --- ┆ str ┆ --- ┆ str │\n",
+ "│ ┆ ┆ i64 ┆ str ┆ str ┆ ┆ str ┆ │\n",
+ "╞═══════╪════════════╪════════════╪════════════╪════════════╪════════════╪════════════╪════════════╡\n",
+ "│ 0 ┆ informatio ┆ 10 ┆ Process ┆ Process ┆ C:\\Windows ┆ ┆ Process │\n",
+ "│ ┆ n ┆ ┆ accessed ┆ accessed: ┆ \\system32\\ ┆ ┆ accessed: │\n",
+ "│ ┆ ┆ ┆ (rule: ┆ RuleName: ┆ svchost.ex ┆ ┆ RuleName: │\n",
+ "│ ┆ ┆ ┆ Proces… ┆ - ┆ … ┆ ┆ - │\n",
+ "│ ┆ ┆ ┆ ┆ … ┆ ┆ ┆ … │\n",
+ "│ 1 ┆ informatio ┆ 10 ┆ Process ┆ Process ┆ C:\\Windows ┆ ┆ Process │\n",
+ "│ ┆ n ┆ ┆ accessed ┆ accessed: ┆ \\system32\\ ┆ ┆ accessed: │\n",
+ "│ ┆ ┆ ┆ (rule: ┆ RuleName: ┆ svchost.ex ┆ ┆ RuleName: │\n",
+ "│ ┆ ┆ ┆ Proces… ┆ - ┆ … ┆ ┆ - │\n",
+ "│ ┆ ┆ ┆ ┆ … ┆ ┆ ┆ … │\n",
+ "│ 2 ┆ informatio ┆ 1 ┆ Process ┆ Process ┆ C:\\Windows ┆ ┆ Process │\n",
+ "│ ┆ n ┆ ┆ Create ┆ Create: ┆ \\servicing ┆ ┆ Create: │\n",
+ "│ ┆ ┆ ┆ (rule: ┆ RuleName: ┆ \\TrustedIn ┆ ┆ RuleName: │\n",
+ "│ ┆ ┆ ┆ ProcessC… ┆ - ┆ … ┆ ┆ - │\n",
+ "│ ┆ ┆ ┆ ┆ Pr… ┆ ┆ ┆ Pr… │\n",
+ "│ 3 ┆ informatio ┆ 13 ┆ Registry ┆ Registry ┆ C:\\Windows ┆ ┆ Registry │\n",
+ "│ ┆ n ┆ ┆ value set ┆ value set: ┆ \\servicing ┆ ┆ value set: │\n",
+ "│ ┆ ┆ ┆ (rule: ┆ RuleName: ┆ \\TrustedIn ┆ ┆ RuleName: │\n",
+ "│ ┆ ┆ ┆ Regi… ┆ … ┆ … ┆ ┆ … │\n",
+ "│ 4 ┆ informatio ┆ 1 ┆ Process ┆ Process ┆ C:\\Windows ┆ ┆ Process │\n",
+ "│ ┆ n ┆ ┆ Create ┆ Create: ┆ \\WinSxS\\am ┆ ┆ Create: │\n",
+ "│ ┆ ┆ ┆ (rule: ┆ RuleName: ┆ d64_micros ┆ ┆ RuleName: │\n",
+ "│ ┆ ┆ ┆ ProcessC… ┆ - ┆ … ┆ ┆ - │\n",
+ "│ ┆ ┆ ┆ ┆ Pr… ┆ ┆ ┆ Pr… │\n",
+ "│ … ┆ … ┆ … ┆ … ┆ … ┆ … ┆ … ┆ … │\n",
+ "│ 1022 ┆ informatio ┆ 1 ┆ Process ┆ Process ┆ C:\\Program ┆ ┆ Process │\n",
+ "│ ┆ n ┆ ┆ Create ┆ Create: ┆ Files (x86 ┆ ┆ Create: │\n",
+ "│ ┆ ┆ ┆ (rule: ┆ RuleName: ┆ )\\Microso… ┆ ┆ RuleName: │\n",
+ "│ ┆ ┆ ┆ ProcessC… ┆ - ┆ ┆ ┆ - │\n",
+ "│ ┆ ┆ ┆ ┆ Pr… ┆ ┆ ┆ Pr… │\n",
+ "│ 1023 ┆ informatio ┆ 10 ┆ Process ┆ Process ┆ C:\\Program ┆ ┆ Process │\n",
+ "│ ┆ n ┆ ┆ accessed ┆ accessed: ┆ Files (x86 ┆ ┆ accessed: │\n",
+ "│ ┆ ┆ ┆ (rule: ┆ RuleName: ┆ )\\Microso… ┆ ┆ RuleName: │\n",
+ "│ ┆ ┆ ┆ Proces… ┆ - ┆ ┆ ┆ - │\n",
+ "│ ┆ ┆ ┆ ┆ … ┆ ┆ ┆ … │\n",
+ "│ 1024 ┆ informatio ┆ 1 ┆ Process ┆ Process ┆ C:\\Windows ┆ ┆ Process │\n",
+ "│ ┆ n ┆ ┆ Create ┆ Create: ┆ \\System32\\ ┆ ┆ Create: │\n",
+ "│ ┆ ┆ ┆ (rule: ┆ RuleName: ┆ taskhostw. ┆ ┆ RuleName: │\n",
+ "│ ┆ ┆ ┆ ProcessC… ┆ - ┆ … ┆ ┆ - │\n",
+ "│ ┆ ┆ ┆ ┆ Pr… ┆ ┆ ┆ Pr… │\n",
+ "│ 1025 ┆ informatio ┆ 22 ┆ Dns query ┆ Dns query: ┆ ┆ ┆ Dns query: │\n",
+ "│ ┆ n ┆ ┆ (rule: ┆ RuleName: ┆ ┆ ┆ RuleName: │\n",
+ "│ ┆ ┆ ┆ DnsQuery) ┆ - ┆ ┆ ┆ - │\n",
+ "│ ┆ ┆ ┆ ┆ Process… ┆ ┆ ┆ Process… │\n",
+ "│ 1026 ┆ informatio ┆ 1 ┆ Process ┆ Process ┆ C:\\Program ┆ ┆ Process │\n",
+ "│ ┆ n ┆ ┆ Create ┆ Create: ┆ Files\\RUXI ┆ ┆ Create: │\n",
+ "│ ┆ ┆ ┆ (rule: ┆ RuleName: ┆ M\\PLUGSch… ┆ ┆ RuleName: │\n",
+ "│ ┆ ┆ ┆ ProcessC… ┆ - ┆ ┆ ┆ - │\n",
+ "│ ┆ ┆ ┆ ┆ Pr… ┆ ┆ ┆ Pr… │\n",
+ "└───────┴────────────┴────────────┴────────────┴────────────┴────────────┴────────────┴────────────┘\n"
+ ]
+ }
+ ],
+ "execution_count": 12
+ },
+ {
+ "metadata": {
+ "ExecuteTime": {
+ "end_time": "2024-06-23T14:28:58.121865Z",
+ "start_time": "2024-06-23T14:28:58.118749Z"
+ }
+ },
+ "cell_type": "code",
+ "source": [
+ "def define_label(row):\n",
+ " conditions = {\n",
+ " (\"EXCEL.EXE\" in row['image'] and \".exe\" in row['target_filename']): \"bad\",\n",
+ " (row['index'] == 874): \"bad\",\n",
+ " # Add more conditions here if needed\n",
+ " }\n",
+ " return conditions.get(True, \"good\")"
+ ],
+ "id": "8d21ff3214accd7a",
+ "outputs": [],
+ "execution_count": 13
+ },
+ {
+ "metadata": {
+ "ExecuteTime": {
+ "end_time": "2024-06-23T14:29:01.928229Z",
+ "start_time": "2024-06-23T14:29:01.923231Z"
+ }
+ },
+ "cell_type": "code",
+ "source": [
+ "# Apply the define_label function\n",
+ "selected_columns_df = selected_columns_df.with_columns(\n",
+ " pl.struct([\"index\", \"image\", \"target_filename\"]).map_elements(define_label, return_dtype=pl.Utf8).alias(\"label\")\n",
+ ")"
+ ],
+ "id": "3017223325f75d03",
+ "outputs": [],
+ "execution_count": 14
+ },
+ {
+ "metadata": {
+ "ExecuteTime": {
+ "end_time": "2024-06-23T14:29:02.937309Z",
+ "start_time": "2024-06-23T14:29:02.933702Z"
+ }
+ },
+ "cell_type": "code",
+ "source": "print(selected_columns_df)",
+ "id": "feac611ac2db9fb",
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "shape: (1_027, 9)\n",
+ "┌───────┬─────────────┬────────────┬────────────┬───┬────────────┬────────────┬────────────┬───────┐\n",
+ "│ index ┆ log.level ┆ winlog.eve ┆ winlog.tas ┆ … ┆ image ┆ target_fil ┆ text ┆ label │\n",
+ "│ --- ┆ --- ┆ nt_id ┆ k ┆ ┆ --- ┆ ename ┆ --- ┆ --- │\n",
+ "│ i64 ┆ str ┆ --- ┆ --- ┆ ┆ str ┆ --- ┆ str ┆ str │\n",
+ "│ ┆ ┆ i64 ┆ str ┆ ┆ ┆ str ┆ ┆ │\n",
+ "╞═══════╪═════════════╪════════════╪════════════╪═══╪════════════╪════════════╪════════════╪═══════╡\n",
+ "│ 0 ┆ information ┆ 10 ┆ Process ┆ … ┆ C:\\Windows ┆ ┆ Process ┆ good │\n",
+ "│ ┆ ┆ ┆ accessed ┆ ┆ \\system32\\ ┆ ┆ accessed: ┆ │\n",
+ "│ ┆ ┆ ┆ (rule: ┆ ┆ svchost.ex ┆ ┆ RuleName: ┆ │\n",
+ "│ ┆ ┆ ┆ Proces… ┆ ┆ … ┆ ┆ - ┆ │\n",
+ "│ ┆ ┆ ┆ ┆ ┆ ┆ ┆ … ┆ │\n",
+ "│ 1 ┆ information ┆ 10 ┆ Process ┆ … ┆ C:\\Windows ┆ ┆ Process ┆ good │\n",
+ "│ ┆ ┆ ┆ accessed ┆ ┆ \\system32\\ ┆ ┆ accessed: ┆ │\n",
+ "│ ┆ ┆ ┆ (rule: ┆ ┆ svchost.ex ┆ ┆ RuleName: ┆ │\n",
+ "│ ┆ ┆ ┆ Proces… ┆ ┆ … ┆ ┆ - ┆ │\n",
+ "│ ┆ ┆ ┆ ┆ ┆ ┆ ┆ … ┆ │\n",
+ "│ 2 ┆ information ┆ 1 ┆ Process ┆ … ┆ C:\\Windows ┆ ┆ Process ┆ good │\n",
+ "│ ┆ ┆ ┆ Create ┆ ┆ \\servicing ┆ ┆ Create: ┆ │\n",
+ "│ ┆ ┆ ┆ (rule: ┆ ┆ \\TrustedIn ┆ ┆ RuleName: ┆ │\n",
+ "│ ┆ ┆ ┆ ProcessC… ┆ ┆ … ┆ ┆ - ┆ │\n",
+ "│ ┆ ┆ ┆ ┆ ┆ ┆ ┆ Pr… ┆ │\n",
+ "│ 3 ┆ information ┆ 13 ┆ Registry ┆ … ┆ C:\\Windows ┆ ┆ Registry ┆ good │\n",
+ "│ ┆ ┆ ┆ value set ┆ ┆ \\servicing ┆ ┆ value set: ┆ │\n",
+ "│ ┆ ┆ ┆ (rule: ┆ ┆ \\TrustedIn ┆ ┆ RuleName: ┆ │\n",
+ "│ ┆ ┆ ┆ Regi… ┆ ┆ … ┆ ┆ … ┆ │\n",
+ "│ 4 ┆ information ┆ 1 ┆ Process ┆ … ┆ C:\\Windows ┆ ┆ Process ┆ good │\n",
+ "│ ┆ ┆ ┆ Create ┆ ┆ \\WinSxS\\am ┆ ┆ Create: ┆ │\n",
+ "│ ┆ ┆ ┆ (rule: ┆ ┆ d64_micros ┆ ┆ RuleName: ┆ │\n",
+ "│ ┆ ┆ ┆ ProcessC… ┆ ┆ … ┆ ┆ - ┆ │\n",
+ "│ ┆ ┆ ┆ ┆ ┆ ┆ ┆ Pr… ┆ │\n",
+ "│ … ┆ … ┆ … ┆ … ┆ … ┆ … ┆ … ┆ … ┆ … │\n",
+ "│ 1022 ┆ information ┆ 1 ┆ Process ┆ … ┆ C:\\Program ┆ ┆ Process ┆ good │\n",
+ "│ ┆ ┆ ┆ Create ┆ ┆ Files (x86 ┆ ┆ Create: ┆ │\n",
+ "│ ┆ ┆ ┆ (rule: ┆ ┆ )\\Microso… ┆ ┆ RuleName: ┆ │\n",
+ "│ ┆ ┆ ┆ ProcessC… ┆ ┆ ┆ ┆ - ┆ │\n",
+ "│ ┆ ┆ ┆ ┆ ┆ ┆ ┆ Pr… ┆ │\n",
+ "│ 1023 ┆ information ┆ 10 ┆ Process ┆ … ┆ C:\\Program ┆ ┆ Process ┆ good │\n",
+ "│ ┆ ┆ ┆ accessed ┆ ┆ Files (x86 ┆ ┆ accessed: ┆ │\n",
+ "│ ┆ ┆ ┆ (rule: ┆ ┆ )\\Microso… ┆ ┆ RuleName: ┆ │\n",
+ "│ ┆ ┆ ┆ Proces… ┆ ┆ ┆ ┆ - ┆ │\n",
+ "│ ┆ ┆ ┆ ┆ ┆ ┆ ┆ … ┆ │\n",
+ "│ 1024 ┆ information ┆ 1 ┆ Process ┆ … ┆ C:\\Windows ┆ ┆ Process ┆ good │\n",
+ "│ ┆ ┆ ┆ Create ┆ ┆ \\System32\\ ┆ ┆ Create: ┆ │\n",
+ "│ ┆ ┆ ┆ (rule: ┆ ┆ taskhostw. ┆ ┆ RuleName: ┆ │\n",
+ "│ ┆ ┆ ┆ ProcessC… ┆ ┆ … ┆ ┆ - ┆ │\n",
+ "│ ┆ ┆ ┆ ┆ ┆ ┆ ┆ Pr… ┆ │\n",
+ "│ 1025 ┆ information ┆ 22 ┆ Dns query ┆ … ┆ ┆ ┆ Dns query: ┆ good │\n",
+ "│ ┆ ┆ ┆ (rule: ┆ ┆ ┆ ┆ RuleName: ┆ │\n",
+ "│ ┆ ┆ ┆ DnsQuery) ┆ ┆ ┆ ┆ - ┆ │\n",
+ "│ ┆ ┆ ┆ ┆ ┆ ┆ ┆ Process… ┆ │\n",
+ "│ 1026 ┆ information ┆ 1 ┆ Process ┆ … ┆ C:\\Program ┆ ┆ Process ┆ good │\n",
+ "│ ┆ ┆ ┆ Create ┆ ┆ Files\\RUXI ┆ ┆ Create: ┆ │\n",
+ "│ ┆ ┆ ┆ (rule: ┆ ┆ M\\PLUGSch… ┆ ┆ RuleName: ┆ │\n",
+ "│ ┆ ┆ ┆ ProcessC… ┆ ┆ ┆ ┆ - ┆ │\n",
+ "│ ┆ ┆ ┆ ┆ ┆ ┆ ┆ Pr… ┆ │\n",
+ "└───────┴─────────────┴────────────┴────────────┴───┴────────────┴────────────┴────────────┴───────┘\n"
+ ]
+ }
+ ],
+ "execution_count": 15
+ },
+ {
+ "metadata": {
+ "ExecuteTime": {
+ "end_time": "2024-06-23T14:30:07.444109Z",
+ "start_time": "2024-06-23T14:30:07.436034Z"
+ }
+ },
+ "cell_type": "code",
+ "source": [
+ "bad_rows = selected_columns_df.filter(pl.col(\"label\") == \"bad\")\n",
+ "print(bad_rows)"
+ ],
+ "id": "5d634a8db0b99c4",
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "shape: (2, 9)\n",
+ "┌───────┬─────────────┬────────────┬────────────┬───┬────────────┬────────────┬────────────┬───────┐\n",
+ "│ index ┆ log.level ┆ winlog.eve ┆ winlog.tas ┆ … ┆ image ┆ target_fil ┆ text ┆ label │\n",
+ "│ --- ┆ --- ┆ nt_id ┆ k ┆ ┆ --- ┆ ename ┆ --- ┆ --- │\n",
+ "│ i64 ┆ str ┆ --- ┆ --- ┆ ┆ str ┆ --- ┆ str ┆ str │\n",
+ "│ ┆ ┆ i64 ┆ str ┆ ┆ ┆ str ┆ ┆ │\n",
+ "╞═══════╪═════════════╪════════════╪════════════╪═══╪════════════╪════════════╪════════════╪═══════╡\n",
+ "│ 832 ┆ information ┆ 11 ┆ File ┆ … ┆ C:\\Program ┆ C:\\Users\\s ┆ File ┆ bad │\n",
+ "│ ┆ ┆ ┆ created ┆ ┆ Files\\Micr ┆ tudent\\App ┆ created: ┆ │\n",
+ "│ ┆ ┆ ┆ (rule: Fil ┆ ┆ osoft Off… ┆ Data\\Local ┆ RuleName: ┆ │\n",
+ "│ ┆ ┆ ┆ eCreate… ┆ ┆ ┆ … ┆ EXE ┆ │\n",
+ "│ ┆ ┆ ┆ ┆ ┆ ┆ ┆ Pr… ┆ │\n",
+ "│ 874 ┆ information ┆ 3 ┆ Network ┆ … ┆ C:\\Users\\s ┆ ┆ Network ┆ bad │\n",
+ "│ ┆ ┆ ┆ connection ┆ ┆ tudent\\App ┆ ┆ connection ┆ │\n",
+ "│ ┆ ┆ ┆ detected ┆ ┆ Data\\Local ┆ ┆ detected: ┆ │\n",
+ "│ ┆ ┆ ┆ (r… ┆ ┆ … ┆ ┆ R… ┆ │\n",
+ "└───────┴─────────────┴────────────┴────────────┴───┴────────────┴────────────┴────────────┴───────┘\n"
+ ]
+ }
+ ],
+ "execution_count": 16
+ },
+ {
+ "metadata": {
+ "ExecuteTime": {
+ "end_time": "2024-06-23T14:37:58.896397Z",
+ "start_time": "2024-06-23T14:30:20.524206Z"
+ }
+ },
+ "cell_type": "code",
+ "source": [
+ "tokenizer = BertTokenizer.from_pretrained('bert-base-uncased')\n",
+ "model = BertModel.from_pretrained('bert-base-uncased')\n",
+ "\n",
+ "def vectorize_text(text):\n",
+ " inputs = tokenizer(text, return_tensors='pt', truncation=True, padding=True)\n",
+ " outputs = model(**inputs)\n",
+ " return outputs.last_hidden_state.mean(dim=1).detach().numpy()\n",
+ "\n",
+ "# Apply vectorization to the Polars DataFrame using map_elements\n",
+ "selected_columns_df = selected_columns_df.with_columns(\n",
+ " pl.col(\"text\").map_elements(lambda x: vectorize_text(x).flatten(), return_dtype=pl.Object).alias(\"text_vector\")\n",
+ ")\n",
+ "\n",
+ "print(selected_columns_df)"
+ ],
+ "id": "9262f948e3361ee9",
+ "outputs": [
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "/Users/mc/anaconda3/lib/python3.11/site-packages/huggingface_hub/file_download.py:1132: FutureWarning: `resume_download` is deprecated and will be removed in version 1.0.0. Downloads always resume when possible. If you want to force a new download, use `force_download=True`.\n",
+ " warnings.warn(\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "shape: (1_027, 10)\n",
+ "┌───────┬─────────────┬────────────┬────────────┬───┬────────────┬────────────┬───────┬────────────┐\n",
+ "│ index ┆ log.level ┆ winlog.eve ┆ winlog.tas ┆ … ┆ target_fil ┆ text ┆ label ┆ text_vecto │\n",
+ "│ --- ┆ --- ┆ nt_id ┆ k ┆ ┆ ename ┆ --- ┆ --- ┆ r │\n",
+ "│ i64 ┆ str ┆ --- ┆ --- ┆ ┆ --- ┆ str ┆ str ┆ --- │\n",
+ "│ ┆ ┆ i64 ┆ str ┆ ┆ str ┆ ┆ ┆ object │\n",
+ "╞═══════╪═════════════╪════════════╪════════════╪═══╪════════════╪════════════╪═══════╪════════════╡\n",
+ "│ 0 ┆ information ┆ 10 ┆ Process ┆ … ┆ ┆ Process ┆ good ┆ [-3.212887 │\n",
+ "│ ┆ ┆ ┆ accessed ┆ ┆ ┆ accessed: ┆ ┆ 05e-01 -8. │\n",
+ "│ ┆ ┆ ┆ (rule: ┆ ┆ ┆ RuleName: ┆ ┆ 51057563e- │\n",
+ "│ ┆ ┆ ┆ Proces… ┆ ┆ ┆ - ┆ ┆ … │\n",
+ "│ ┆ ┆ ┆ ┆ ┆ ┆ … ┆ ┆ │\n",
+ "│ 1 ┆ information ┆ 10 ┆ Process ┆ … ┆ ┆ Process ┆ good ┆ [-3.122658 │\n",
+ "│ ┆ ┆ ┆ accessed ┆ ┆ ┆ accessed: ┆ ┆ 13e-01 -9. │\n",
+ "│ ┆ ┆ ┆ (rule: ┆ ┆ ┆ RuleName: ┆ ┆ 11662821e- │\n",
+ "│ ┆ ┆ ┆ Proces… ┆ ┆ ┆ - ┆ ┆ … │\n",
+ "│ ┆ ┆ ┆ ┆ ┆ ┆ … ┆ ┆ │\n",
+ "│ 2 ┆ information ┆ 1 ┆ Process ┆ … ┆ ┆ Process ┆ good ┆ [-3.229663 │\n",
+ "│ ┆ ┆ ┆ Create ┆ ┆ ┆ Create: ┆ ┆ 37e-01 -5. │\n",
+ "│ ┆ ┆ ┆ (rule: ┆ ┆ ┆ RuleName: ┆ ┆ 04846917e- │\n",
+ "│ ┆ ┆ ┆ ProcessC… ┆ ┆ ┆ - ┆ ┆ … │\n",
+ "│ ┆ ┆ ┆ ┆ ┆ ┆ Pr… ┆ ┆ │\n",
+ "│ 3 ┆ information ┆ 13 ┆ Registry ┆ … ┆ ┆ Registry ┆ good ┆ [-2.114389 │\n",
+ "│ ┆ ┆ ┆ value set ┆ ┆ ┆ value set: ┆ ┆ 69e-01 -1. │\n",
+ "│ ┆ ┆ ┆ (rule: ┆ ┆ ┆ RuleName: ┆ ┆ 26859054e- │\n",
+ "│ ┆ ┆ ┆ Regi… ┆ ┆ ┆ … ┆ ┆ … │\n",
+ "│ 4 ┆ information ┆ 1 ┆ Process ┆ … ┆ ┆ Process ┆ good ┆ [-3.781927 │\n",
+ "│ ┆ ┆ ┆ Create ┆ ┆ ┆ Create: ┆ ┆ 82e-01 │\n",
+ "│ ┆ ┆ ┆ (rule: ┆ ┆ ┆ RuleName: ┆ ┆ 1.29612401 │\n",
+ "│ ┆ ┆ ┆ ProcessC… ┆ ┆ ┆ - ┆ ┆ e-… │\n",
+ "│ ┆ ┆ ┆ ┆ ┆ ┆ Pr… ┆ ┆ │\n",
+ "│ … ┆ … ┆ … ┆ … ┆ … ┆ … ┆ … ┆ … ┆ … │\n",
+ "│ 1022 ┆ information ┆ 1 ┆ Process ┆ … ┆ ┆ Process ┆ good ┆ [-3.417365 │\n",
+ "│ ┆ ┆ ┆ Create ┆ ┆ ┆ Create: ┆ ┆ 55e-01 -7. │\n",
+ "│ ┆ ┆ ┆ (rule: ┆ ┆ ┆ RuleName: ┆ ┆ 53258318e- │\n",
+ "│ ┆ ┆ ┆ ProcessC… ┆ ┆ ┆ - ┆ ┆ … │\n",
+ "│ ┆ ┆ ┆ ┆ ┆ ┆ Pr… ┆ ┆ │\n",
+ "│ 1023 ┆ information ┆ 10 ┆ Process ┆ … ┆ ┆ Process ┆ good ┆ [-2.859322 │\n",
+ "│ ┆ ┆ ┆ accessed ┆ ┆ ┆ accessed: ┆ ┆ 73e-01 │\n",
+ "│ ┆ ┆ ┆ (rule: ┆ ┆ ┆ RuleName: ┆ ┆ 3.61725502 │\n",
+ "│ ┆ ┆ ┆ Proces… ┆ ┆ ┆ - ┆ ┆ e-… │\n",
+ "│ ┆ ┆ ┆ ┆ ┆ ┆ … ┆ ┆ │\n",
+ "│ 1024 ┆ information ┆ 1 ┆ Process ┆ … ┆ ┆ Process ┆ good ┆ [-3.556979 │\n",
+ "│ ┆ ┆ ┆ Create ┆ ┆ ┆ Create: ┆ ┆ 30e-01 -3. │\n",
+ "│ ┆ ┆ ┆ (rule: ┆ ┆ ┆ RuleName: ┆ ┆ 89229059e- │\n",
+ "│ ┆ ┆ ┆ ProcessC… ┆ ┆ ┆ - ┆ ┆ … │\n",
+ "│ ┆ ┆ ┆ ┆ ┆ ┆ Pr… ┆ ┆ │\n",
+ "│ 1025 ┆ information ┆ 22 ┆ Dns query ┆ … ┆ ┆ Dns query: ┆ good ┆ [-2.601829 │\n",
+ "│ ┆ ┆ ┆ (rule: ┆ ┆ ┆ RuleName: ┆ ┆ 47e-01 -1. │\n",
+ "│ ┆ ┆ ┆ DnsQuery) ┆ ┆ ┆ - ┆ ┆ 70182362e- │\n",
+ "│ ┆ ┆ ┆ ┆ ┆ ┆ Process… ┆ ┆ … │\n",
+ "│ 1026 ┆ information ┆ 1 ┆ Process ┆ … ┆ ┆ Process ┆ good ┆ [-3.442858 │\n",
+ "│ ┆ ┆ ┆ Create ┆ ┆ ┆ Create: ┆ ┆ 46e-01 -9. │\n",
+ "│ ┆ ┆ ┆ (rule: ┆ ┆ ┆ RuleName: ┆ ┆ 36851799e- │\n",
+ "│ ┆ ┆ ┆ ProcessC… ┆ ┆ ┆ - ┆ ┆ … │\n",
+ "│ ┆ ┆ ┆ ┆ ┆ ┆ Pr… ┆ ┆ │\n",
+ "└───────┴─────────────┴────────────┴────────────┴───┴────────────┴────────────┴───────┴────────────┘\n"
+ ]
+ }
+ ],
+ "execution_count": 17
+ },
+ {
+ "metadata": {
+ "ExecuteTime": {
+ "end_time": "2024-06-23T14:42:20.663602Z",
+ "start_time": "2024-06-23T14:42:20.350354Z"
+ }
+ },
+ "cell_type": "code",
+ "source": [
+ "df = selected_columns_df.to_pandas()\n",
+ "\n",
+ "# Save the Pandas DataFrame to a Parquet file\n",
+ "df.to_parquet(\"vectorized_texts.parquet\")"
+ ],
+ "id": "91e007e2b208dc7f",
+ "outputs": [],
+ "execution_count": 23
+ },
+ {
+ "metadata": {
+ "ExecuteTime": {
+ "end_time": "2024-06-23T14:42:43.948447Z",
+ "start_time": "2024-06-23T14:42:43.214997Z"
+ }
+ },
+ "cell_type": "code",
+ "source": [
+ "import pandas as pd\n",
+ "# Load the DataFrame from the Parquet file\n",
+ "loaded_df = pd.read_parquet(\"vectorized_texts.parquet\")\n",
+ "\n",
+ "# Verify the loaded DataFrame\n",
+ "print(loaded_df)"
+ ],
+ "id": "48a10b20636b4a2d",
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " index log.level winlog.event_id \\\n",
+ "0 0 information 10 \n",
+ "1 1 information 10 \n",
+ "2 2 information 1 \n",
+ "3 3 information 13 \n",
+ "4 4 information 1 \n",
+ "... ... ... ... \n",
+ "1022 1022 information 1 \n",
+ "1023 1023 information 10 \n",
+ "1024 1024 information 1 \n",
+ "1025 1025 information 22 \n",
+ "1026 1026 information 1 \n",
+ "\n",
+ " winlog.task \\\n",
+ "0 Process accessed (rule: ProcessAccess) \n",
+ "1 Process accessed (rule: ProcessAccess) \n",
+ "2 Process Create (rule: ProcessCreate) \n",
+ "3 Registry value set (rule: RegistryEvent) \n",
+ "4 Process Create (rule: ProcessCreate) \n",
+ "... ... \n",
+ "1022 Process Create (rule: ProcessCreate) \n",
+ "1023 Process accessed (rule: ProcessAccess) \n",
+ "1024 Process Create (rule: ProcessCreate) \n",
+ "1025 Dns query (rule: DnsQuery) \n",
+ "1026 Process Create (rule: ProcessCreate) \n",
+ "\n",
+ " filtered_message \\\n",
+ "0 Process accessed:\\nRuleName: -\\nSourceProcessI... \n",
+ "1 Process accessed:\\nRuleName: -\\nSourceProcessI... \n",
+ "2 Process Create:\\nRuleName: -\\nProcessId: 5196\\... \n",
+ "3 Registry value set:\\nRuleName: Tamper-Winlogon... \n",
+ "4 Process Create:\\nRuleName: -\\nProcessId: 6140\\... \n",
+ "... ... \n",
+ "1022 Process Create:\\nRuleName: -\\nProcessId: 5312\\... \n",
+ "1023 Process accessed:\\nRuleName: -\\nSourceProcessI... \n",
+ "1024 Process Create:\\nRuleName: -\\nProcessId: 5000\\... \n",
+ "1025 Dns query:\\nRuleName: -\\nProcessId: 9568\\nQuer... \n",
+ "1026 Process Create:\\nRuleName: -\\nProcessId: 8728\\... \n",
+ "\n",
+ " image target_filename \\\n",
+ "0 C:\\Windows\\system32\\svchost.exe \n",
+ "1 C:\\Windows\\system32\\svchost.exe \n",
+ "2 C:\\Windows\\servicing\\TrustedInstaller.exe \n",
+ "3 C:\\Windows\\servicing\\TrustedInstaller.exe \n",
+ "4 C:\\Windows\\WinSxS\\amd64_microsoft-windows-serv... \n",
+ "... ... ... \n",
+ "1022 C:\\Program Files (x86)\\Microsoft\\EdgeUpdate\\Mi... \n",
+ "1023 C:\\Program Files (x86)\\Microsoft\\EdgeUpdate\\Mi... \n",
+ "1024 C:\\Windows\\System32\\taskhostw.exe \n",
+ "1025 \n",
+ "1026 C:\\Program Files\\RUXIM\\PLUGScheduler.exe \n",
+ "\n",
+ " text label \\\n",
+ "0 Process accessed:\\nRuleName: -\\nSourceProcessI... good \n",
+ "1 Process accessed:\\nRuleName: -\\nSourceProcessI... good \n",
+ "2 Process Create:\\nRuleName: -\\nProcessId: 5196\\... good \n",
+ "3 Registry value set:\\nRuleName: Tamper-Winlogon... good \n",
+ "4 Process Create:\\nRuleName: -\\nProcessId: 6140\\... good \n",
+ "... ... ... \n",
+ "1022 Process Create:\\nRuleName: -\\nProcessId: 5312\\... good \n",
+ "1023 Process accessed:\\nRuleName: -\\nSourceProcessI... good \n",
+ "1024 Process Create:\\nRuleName: -\\nProcessId: 5000\\... good \n",
+ "1025 Dns query:\\nRuleName: -\\nProcessId: 9568\\nQuer... good \n",
+ "1026 Process Create:\\nRuleName: -\\nProcessId: 8728\\... good \n",
+ "\n",
+ " text_vector \n",
+ "0 [-0.32128870487213135, -0.008510575629770756, ... \n",
+ "1 [-0.3122658133506775, -0.00911662820726633, 0.... \n",
+ "2 [-0.3229663372039795, -0.0005048469174653292, ... \n",
+ "3 [-0.21143896877765656, -0.12685905396938324, 0... \n",
+ "4 [-0.3781927824020386, 0.12961240112781525, 0.4... \n",
+ "... ... \n",
+ "1022 [-0.3417365550994873, -0.07532583177089691, 0.... \n",
+ "1023 [-0.2859322726726532, 0.0036172550171613693, 0... \n",
+ "1024 [-0.3556979298591614, -0.038922905921936035, 0... \n",
+ "1025 [-0.2601829469203949, -0.17018236219882965, 0.... \n",
+ "1026 [-0.34428584575653076, -0.09368517994880676, 0... \n",
+ "\n",
+ "[1027 rows x 10 columns]\n"
+ ]
+ }
+ ],
+ "execution_count": 25
+ },
+ {
+ "metadata": {
+ "ExecuteTime": {
+ "end_time": "2024-06-23T15:40:20.568804Z",
+ "start_time": "2024-06-23T15:35:44.243587Z"
+ }
+ },
+ "cell_type": "code",
+ "source": [
+ "import os\n",
+ "import pandas as pd\n",
+ "import torch\n",
+ "from sklearn.model_selection import train_test_split\n",
+ "from sklearn.preprocessing import LabelEncoder\n",
+ "from tpot import TPOTClassifier\n",
+ "\n",
+ "# Load the DataFrame from the Parquet file\n",
+ "df = pd.read_parquet(\"vectorized_texts.parquet\")\n",
+ "\n",
+ "# Ensure to use only CPU for PyTorch\n",
+ "device = torch.device(\"cpu\")\n",
+ "\n",
+ "# Encode labels\n",
+ "le = LabelEncoder()\n",
+ "df['label_encoded'] = le.fit_transform(df['label'])\n",
+ "\n",
+ "# Split data\n",
+ "X_train, X_test, y_train, y_test = train_test_split(df['text_vector'].tolist(), df['label_encoded'], test_size=0.2, random_state=42)\n",
+ "\n",
+ "# Convert lists to numpy arrays\n",
+ "X_train = torch.tensor(X_train, device=device).numpy()\n",
+ "X_test = torch.tensor(X_test, device=device).numpy()\n",
+ "\n",
+ "# TPOT classifier with higher verbosity\n",
+ "tpot = TPOTClassifier(verbosity=3, generations=5, population_size=20)\n",
+ "tpot.fit(X_train, y_train)\n",
+ "\n",
+ "# Evaluate the model\n",
+ "print(\"TPOT Score:\", tpot.score(X_test, y_test))\n",
+ "\n",
+ "# Save the trained model\n",
+ "tpot.export('tpot_pipeline.py')\n",
+ "\n",
+ "# Print the exported pipeline\n",
+ "with open('tpot_pipeline.py') as f:\n",
+ " print(f.read())\n",
+ "\n",
+ "# Example of using the trained model\n",
+ "predictions = tpot.predict(X_test)\n",
+ "print(\"Predictions:\", predictions)\n"
+ ],
+ "id": "75d84e297b03eaf4",
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "32 operators have been imported by TPOT.\n"
+ ]
+ },
+ {
+ "data": {
+ "text/plain": [
+ "Optimization Progress: 0%| | 0/120 [00:00, ?pipeline/s]"
+ ],
+ "application/vnd.jupyter.widget-view+json": {
+ "version_major": 2,
+ "version_minor": 0,
+ "model_id": "cdd334c618a04e55a3f580c1d7e5239b"
+ }
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "_pre_test decorator: _random_mutation_operator: num_test=0 Solver lbfgs supports only dual=False, got dual=True.\n",
+ "_pre_test decorator: _random_mutation_operator: num_test=1 Unsupported set of arguments: The combination of penalty='l1' and loss='hinge' is not supported, Parameters: penalty='l1', loss='hinge', dual=True.\n",
+ "\n",
+ "Generation 1 - Current Pareto front scores:\n",
+ "\n",
+ "-1\t0.9975683665927569\tLogisticRegression(input_matrix, LogisticRegression__C=20.0, LogisticRegression__dual=False, LogisticRegression__penalty=l2)\n",
+ "_pre_test decorator: _random_mutation_operator: num_test=0 Solver lbfgs supports only dual=False, got dual=True.\n",
+ "_pre_test decorator: _random_mutation_operator: num_test=1 Unsupported set of arguments: The combination of penalty='l1' and loss='hinge' is not supported, Parameters: penalty='l1', loss='hinge', dual=False.\n",
+ "_pre_test decorator: _random_mutation_operator: num_test=0 Solver lbfgs supports only dual=False, got dual=True.\n",
+ "_pre_test decorator: _random_mutation_operator: num_test=1 Solver lbfgs supports only 'l2' or None penalties, got l1 penalty..\n",
+ "_pre_test decorator: _random_mutation_operator: num_test=0 Solver lbfgs supports only dual=False, got dual=True.\n",
+ "_pre_test decorator: _random_mutation_operator: num_test=1 Solver lbfgs supports only 'l2' or None penalties, got l1 penalty..\n",
+ "\n",
+ "Generation 2 - Current Pareto front scores:\n",
+ "\n",
+ "-1\t0.9975683665927569\tLogisticRegression(input_matrix, LogisticRegression__C=20.0, LogisticRegression__dual=False, LogisticRegression__penalty=l2)\n",
+ "_pre_test decorator: _random_mutation_operator: num_test=0 Solver lbfgs supports only dual=False, got dual=True.\n",
+ "_pre_test decorator: _random_mutation_operator: num_test=0 Solver lbfgs supports only 'l2' or None penalties, got l1 penalty..\n",
+ "_pre_test decorator: _random_mutation_operator: num_test=0 Unsupported set of arguments: The combination of penalty='l1' and loss='squared_hinge' are not supported when dual=True, Parameters: penalty='l1', loss='squared_hinge', dual=True.\n",
+ "_pre_test decorator: _random_mutation_operator: num_test=1 Solver lbfgs supports only 'l2' or None penalties, got l1 penalty..\n",
+ "\n",
+ "Generation 3 - Current Pareto front scores:\n",
+ "\n",
+ "-1\t0.9975683665927569\tLogisticRegression(input_matrix, LogisticRegression__C=20.0, LogisticRegression__dual=False, LogisticRegression__penalty=l2)\n",
+ "_pre_test decorator: _random_mutation_operator: num_test=0 Solver lbfgs supports only 'l2' or None penalties, got l1 penalty..\n",
+ "_pre_test decorator: _random_mutation_operator: num_test=0 Negative values in data passed to MultinomialNB (input X).\n",
+ "_pre_test decorator: _random_mutation_operator: num_test=0 Solver lbfgs supports only 'l2' or None penalties, got l1 penalty..\n",
+ "\n",
+ "Generation 4 - Current Pareto front scores:\n",
+ "\n",
+ "-1\t0.9975683665927569\tLogisticRegression(input_matrix, LogisticRegression__C=20.0, LogisticRegression__dual=False, LogisticRegression__penalty=l2)\n",
+ "_pre_test decorator: _random_mutation_operator: num_test=0 Solver lbfgs supports only dual=False, got dual=True.\n",
+ "_pre_test decorator: _random_mutation_operator: num_test=0 Solver lbfgs supports only dual=False, got dual=True.\n",
+ "_pre_test decorator: _random_mutation_operator: num_test=1 Solver lbfgs supports only 'l2' or None penalties, got l1 penalty..\n",
+ "_pre_test decorator: _random_mutation_operator: num_test=2 Unsupported set of arguments: The combination of penalty='l1' and loss='hinge' is not supported, Parameters: penalty='l1', loss='hinge', dual=False.\n",
+ "_pre_test decorator: _random_mutation_operator: num_test=3 Solver lbfgs supports only dual=False, got dual=True.\n",
+ "\n",
+ "Generation 5 - Current Pareto front scores:\n",
+ "\n",
+ "-1\t0.9975683665927569\tLogisticRegression(input_matrix, LogisticRegression__C=20.0, LogisticRegression__dual=False, LogisticRegression__penalty=l2)\n",
+ "TPOT Score: 1.0\n",
+ "import numpy as np\n",
+ "import pandas as pd\n",
+ "from sklearn.linear_model import LogisticRegression\n",
+ "from sklearn.model_selection import train_test_split\n",
+ "\n",
+ "# NOTE: Make sure that the outcome column is labeled 'target' in the data file\n",
+ "tpot_data = pd.read_csv('PATH/TO/DATA/FILE', sep='COLUMN_SEPARATOR', dtype=np.float64)\n",
+ "features = tpot_data.drop('target', axis=1)\n",
+ "training_features, testing_features, training_target, testing_target = \\\n",
+ " train_test_split(features, tpot_data['target'], random_state=None)\n",
+ "\n",
+ "# Average CV score on the training set was: 0.9975683665927569\n",
+ "exported_pipeline = LogisticRegression(C=20.0, dual=False, penalty=\"l2\")\n",
+ "\n",
+ "exported_pipeline.fit(training_features, training_target)\n",
+ "results = exported_pipeline.predict(testing_features)\n",
+ "\n",
+ "Predictions: [1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1\n",
+ " 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1\n",
+ " 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1\n",
+ " 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1\n",
+ " 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1\n",
+ " 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n"
+ ]
+ }
+ ],
+ "execution_count": 28
+ },
+ {
+ "metadata": {
+ "ExecuteTime": {
+ "end_time": "2024-06-23T15:40:32.639885Z",
+ "start_time": "2024-06-23T15:40:32.632855Z"
+ }
+ },
+ "cell_type": "code",
+ "source": "print(\"The accuracy of the best model is: \", tpot.score(X_test, y_test))\n",
+ "id": "6cf76b5736411710",
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The accuracy of the best model is: 1.0\n"
+ ]
+ }
+ ],
+ "execution_count": 29
+ },
+ {
+ "metadata": {
+ "ExecuteTime": {
+ "end_time": "2024-06-23T15:45:08.745744Z",
+ "start_time": "2024-06-23T15:45:04.326699Z"
+ }
+ },
+ "cell_type": "code",
+ "source": "%pip install matplotlib",
+ "id": "d99c8aa5529a72d1",
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Requirement already satisfied: matplotlib in /Users/mc/anaconda3/lib/python3.11/site-packages (3.8.0)\r\n",
+ "Requirement already satisfied: contourpy>=1.0.1 in /Users/mc/anaconda3/lib/python3.11/site-packages (from matplotlib) (1.2.0)\r\n",
+ "Requirement already satisfied: cycler>=0.10 in /Users/mc/anaconda3/lib/python3.11/site-packages (from matplotlib) (0.11.0)\r\n",
+ "Requirement already satisfied: fonttools>=4.22.0 in /Users/mc/anaconda3/lib/python3.11/site-packages (from matplotlib) (4.25.0)\r\n",
+ "Requirement already satisfied: kiwisolver>=1.0.1 in /Users/mc/anaconda3/lib/python3.11/site-packages (from matplotlib) (1.4.4)\r\n",
+ "Requirement already satisfied: numpy<2,>=1.21 in /Users/mc/anaconda3/lib/python3.11/site-packages (from matplotlib) (1.26.4)\r\n",
+ "Requirement already satisfied: packaging>=20.0 in /Users/mc/anaconda3/lib/python3.11/site-packages (from matplotlib) (23.1)\r\n",
+ "Requirement already satisfied: pillow>=6.2.0 in /Users/mc/anaconda3/lib/python3.11/site-packages (from matplotlib) (10.2.0)\r\n",
+ "Requirement already satisfied: pyparsing>=2.3.1 in /Users/mc/anaconda3/lib/python3.11/site-packages (from matplotlib) (3.0.9)\r\n",
+ "Requirement already satisfied: python-dateutil>=2.7 in /Users/mc/anaconda3/lib/python3.11/site-packages (from matplotlib) (2.8.2)\r\n",
+ "Requirement already satisfied: six>=1.5 in /Users/mc/anaconda3/lib/python3.11/site-packages (from python-dateutil>=2.7->matplotlib) (1.16.0)\r\n",
+ "Note: you may need to restart the kernel to use updated packages.\n"
+ ]
+ }
+ ],
+ "execution_count": 30
+ },
+ {
+ "metadata": {
+ "ExecuteTime": {
+ "end_time": "2024-06-23T16:14:34.361740Z",
+ "start_time": "2024-06-23T15:45:13.819963Z"
+ }
+ },
+ "cell_type": "code",
+ "source": [
+ "import os\n",
+ "import pandas as pd\n",
+ "import torch\n",
+ "from sklearn.model_selection import train_test_split\n",
+ "from sklearn.preprocessing import LabelEncoder\n",
+ "from tpot import TPOTClassifier\n",
+ "from collections import Counter\n",
+ "\n",
+ "# Load the DataFrame from the Parquet file\n",
+ "df = pd.read_parquet(\"vectorized_texts.parquet\")\n",
+ "\n",
+ "# Ensure to use only CPU for PyTorch\n",
+ "device = torch.device(\"cpu\")\n",
+ "\n",
+ "# Encode labels\n",
+ "le = LabelEncoder()\n",
+ "df['label_encoded'] = le.fit_transform(df['label'])\n",
+ "\n",
+ "# Split data\n",
+ "X_train, X_test, y_train, y_test = train_test_split(df['text_vector'].tolist(), df['label_encoded'], test_size=0.2, random_state=42)\n",
+ "\n",
+ "# Convert lists to numpy arrays\n",
+ "X_train = torch.tensor(X_train, device=device).numpy()\n",
+ "X_test = torch.tensor(X_test, device=device).numpy()\n",
+ "\n",
+ "# TPOT classifier with higher verbosity\n",
+ "tpot = TPOTClassifier(verbosity=3, generations=5, population_size=20)\n",
+ "tpot.fit(X_train, y_train)\n",
+ "\n",
+ "# Evaluate the model\n",
+ "print(\"TPOT Score:\", tpot.score(X_test, y_test))\n",
+ "\n",
+ "# Save the trained model\n",
+ "tpot.export('tpot_pipeline.py')\n",
+ "\n",
+ "# Print the exported pipeline\n",
+ "with open('tpot_pipeline.py') as f:\n",
+ " print(f.read())\n",
+ "\n",
+ "# Example of using the trained model\n",
+ "predictions = tpot.predict(X_test)\n",
+ "print(\"Predictions:\", predictions)\n",
+ "\n",
+ "# Extract information about models tested\n",
+ "evaluated_pipelines = tpot.evaluated_individuals_\n"
+ ],
+ "id": "705690ce71dfda4c",
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "32 operators have been imported by TPOT.\n"
+ ]
+ },
+ {
+ "data": {
+ "text/plain": [
+ "Optimization Progress: 0%| | 0/120 [00:00, ?pipeline/s]"
+ ],
+ "application/vnd.jupyter.widget-view+json": {
+ "version_major": 2,
+ "version_minor": 0,
+ "model_id": "f7e3f3bcb7f64b0eb87cc1a70a31169b"
+ }
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "_pre_test decorator: _random_mutation_operator: num_test=0 The 'loss' parameter of SGDClassifier must be a str among {'perceptron', 'squared_hinge', 'modified_huber', 'log_loss', 'huber', 'epsilon_insensitive', 'hinge', 'squared_error', 'squared_epsilon_insensitive'}. Got 'log' instead..\n",
+ "\n",
+ "Generation 1 - Current Pareto front scores:\n",
+ "\n",
+ "-1\t0.9975683665927569\tGradientBoostingClassifier(input_matrix, GradientBoostingClassifier__learning_rate=0.001, GradientBoostingClassifier__max_depth=9, GradientBoostingClassifier__max_features=0.5, GradientBoostingClassifier__min_samples_leaf=14, GradientBoostingClassifier__min_samples_split=17, GradientBoostingClassifier__n_estimators=100, GradientBoostingClassifier__subsample=0.55)\n",
+ "_pre_test decorator: _random_mutation_operator: num_test=0 Solver lbfgs supports only dual=False, got dual=True.\n",
+ "_pre_test decorator: _random_mutation_operator: num_test=0 Solver lbfgs supports only 'l2' or None penalties, got l1 penalty..\n",
+ "_pre_test decorator: _random_mutation_operator: num_test=0 Solver lbfgs supports only 'l2' or None penalties, got l1 penalty..\n",
+ "\n",
+ "Generation 2 - Current Pareto front scores:\n",
+ "\n",
+ "-1\t0.9975683665927569\tGradientBoostingClassifier(input_matrix, GradientBoostingClassifier__learning_rate=0.001, GradientBoostingClassifier__max_depth=9, GradientBoostingClassifier__max_features=0.5, GradientBoostingClassifier__min_samples_leaf=14, GradientBoostingClassifier__min_samples_split=17, GradientBoostingClassifier__n_estimators=100, GradientBoostingClassifier__subsample=0.55)\n",
+ "_pre_test decorator: _random_mutation_operator: num_test=0 Negative values in data passed to MultinomialNB (input X).\n",
+ "\n",
+ "Generation 3 - Current Pareto front scores:\n",
+ "\n",
+ "-1\t0.9975683665927569\tGradientBoostingClassifier(input_matrix, GradientBoostingClassifier__learning_rate=0.001, GradientBoostingClassifier__max_depth=9, GradientBoostingClassifier__max_features=0.5, GradientBoostingClassifier__min_samples_leaf=14, GradientBoostingClassifier__min_samples_split=17, GradientBoostingClassifier__n_estimators=100, GradientBoostingClassifier__subsample=0.55)\n",
+ "_pre_test decorator: _random_mutation_operator: num_test=0 Solver lbfgs supports only 'l2' or None penalties, got l1 penalty..\n",
+ "_pre_test decorator: _random_mutation_operator: num_test=0 Negative values in data passed to MultinomialNB (input X).\n",
+ "_pre_test decorator: _random_mutation_operator: num_test=0 Negative values in data passed to MultinomialNB (input X).\n",
+ "Pipeline encountered that has previously been evaluated during the optimization process. Using the score from the previous evaluation.\n",
+ "\n",
+ "Generation 4 - Current Pareto front scores:\n",
+ "\n",
+ "-1\t0.9975683665927569\tGradientBoostingClassifier(input_matrix, GradientBoostingClassifier__learning_rate=0.001, GradientBoostingClassifier__max_depth=9, GradientBoostingClassifier__max_features=0.5, GradientBoostingClassifier__min_samples_leaf=14, GradientBoostingClassifier__min_samples_split=17, GradientBoostingClassifier__n_estimators=100, GradientBoostingClassifier__subsample=0.55)\n",
+ "_pre_test decorator: _random_mutation_operator: num_test=0 Solver lbfgs supports only 'l2' or None penalties, got l1 penalty..\n",
+ "\n",
+ "Generation 5 - Current Pareto front scores:\n",
+ "\n",
+ "-1\t0.9975683665927569\tGradientBoostingClassifier(input_matrix, GradientBoostingClassifier__learning_rate=0.001, GradientBoostingClassifier__max_depth=9, GradientBoostingClassifier__max_features=0.5, GradientBoostingClassifier__min_samples_leaf=14, GradientBoostingClassifier__min_samples_split=17, GradientBoostingClassifier__n_estimators=100, GradientBoostingClassifier__subsample=0.55)\n",
+ "TPOT Score: 1.0\n",
+ "import numpy as np\n",
+ "import pandas as pd\n",
+ "from sklearn.ensemble import GradientBoostingClassifier\n",
+ "from sklearn.model_selection import train_test_split\n",
+ "\n",
+ "# NOTE: Make sure that the outcome column is labeled 'target' in the data file\n",
+ "tpot_data = pd.read_csv('PATH/TO/DATA/FILE', sep='COLUMN_SEPARATOR', dtype=np.float64)\n",
+ "features = tpot_data.drop('target', axis=1)\n",
+ "training_features, testing_features, training_target, testing_target = \\\n",
+ " train_test_split(features, tpot_data['target'], random_state=None)\n",
+ "\n",
+ "# Average CV score on the training set was: 0.9975683665927569\n",
+ "exported_pipeline = GradientBoostingClassifier(learning_rate=0.001, max_depth=9, max_features=0.5, min_samples_leaf=14, min_samples_split=17, n_estimators=100, subsample=0.55)\n",
+ "\n",
+ "exported_pipeline.fit(training_features, training_target)\n",
+ "results = exported_pipeline.predict(testing_features)\n",
+ "\n",
+ "Predictions: [1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1\n",
+ " 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1\n",
+ " 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1\n",
+ " 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1\n",
+ " 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1\n",
+ " 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n"
+ ]
+ },
+ {
+ "ename": "AttributeError",
+ "evalue": "'dict' object has no attribute '_final_estimator'",
+ "output_type": "error",
+ "traceback": [
+ "\u001B[0;31m---------------------------------------------------------------------------\u001B[0m",
+ "\u001B[0;31mAttributeError\u001B[0m Traceback (most recent call last)",
+ "Cell \u001B[0;32mIn[31], line 50\u001B[0m\n\u001B[1;32m 48\u001B[0m model_counter \u001B[38;5;241m=\u001B[39m Counter()\n\u001B[1;32m 49\u001B[0m \u001B[38;5;28;01mfor\u001B[39;00m pipeline \u001B[38;5;129;01min\u001B[39;00m evaluated_pipelines\u001B[38;5;241m.\u001B[39mvalues():\n\u001B[0;32m---> 50\u001B[0m \u001B[38;5;28;01mfor\u001B[39;00m step \u001B[38;5;129;01min\u001B[39;00m pipeline\u001B[38;5;241m.\u001B[39m_final_estimator\u001B[38;5;241m.\u001B[39msteps:\n\u001B[1;32m 51\u001B[0m model_counter[step[\u001B[38;5;241m0\u001B[39m]] \u001B[38;5;241m+\u001B[39m\u001B[38;5;241m=\u001B[39m \u001B[38;5;241m1\u001B[39m\n\u001B[1;32m 53\u001B[0m \u001B[38;5;28mprint\u001B[39m(\u001B[38;5;124m\"\u001B[39m\u001B[38;5;124mModels and their occurrences:\u001B[39m\u001B[38;5;124m\"\u001B[39m)\n",
+ "\u001B[0;31mAttributeError\u001B[0m: 'dict' object has no attribute '_final_estimator'"
+ ]
+ }
+ ],
+ "execution_count": 31
+ },
+ {
+ "metadata": {
+ "ExecuteTime": {
+ "end_time": "2024-06-23T16:17:12.274731Z",
+ "start_time": "2024-06-23T16:17:11.509163Z"
+ }
+ },
+ "cell_type": "code",
+ "source": [
+ "# Count occurrences of each model type\n",
+ "model_counter = Counter()\n",
+ "for pipeline_str in evaluated_pipelines.keys():\n",
+ " models = re.findall(r'\\w+\\(.*?\\)', pipeline_str)\n",
+ " for model in models:\n",
+ " model_name = model.split('(')[0]\n",
+ " model_counter[model_name] += 1\n",
+ "\n",
+ "print(\"Models and their occurrences:\")\n",
+ "for model, count in model_counter.items():\n",
+ " print(f\"{model}: {count}\")\n",
+ "\n",
+ "# Visualize the count of different models\n",
+ "import matplotlib.pyplot as plt\n",
+ "\n",
+ "model_names = list(model_counter.keys())\n",
+ "model_counts = list(model_counter.values())\n",
+ "\n",
+ "plt.figure(figsize=(12, 6))\n",
+ "plt.barh(model_names, model_counts, color='skyblue')\n",
+ "plt.xlabel('Number of Occurrences')\n",
+ "plt.ylabel('Model')\n",
+ "plt.title('Frequency of Models Tested by TPOT')\n",
+ "plt.show()"
+ ],
+ "id": "565066bf3b5f0820",
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Models and their occurrences:\n",
+ "GradientBoostingClassifier: 43\n",
+ "KNeighborsClassifier: 10\n",
+ "DecisionTreeClassifier: 10\n",
+ "BernoulliNB: 11\n",
+ "LogisticRegression: 4\n",
+ "MLPClassifier: 8\n",
+ "ExtraTreesClassifier: 8\n",
+ "XGBClassifier: 7\n",
+ "RandomForestClassifier: 11\n",
+ "LinearSVC: 1\n",
+ "GaussianNB: 1\n",
+ "SGDClassifier: 3\n"
+ ]
+ },
+ {
+ "data": {
+ "text/plain": [
+ ""
+ ],
+ "image/png": "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nwznvPHGG4bPJUqUkPR/02a2b9+upKQktW/f/p5vE2vXrp0kadq0adZ9X375pYoXL66KFSve9bzk5GTt3LlTb731lsxms3W/ra2t3nvvPf3222+ZTpF7EGazWW+//bZmzpyplJQUff3113r//fczvZ9NmzZJUoYFnMuWLasiRYpYR4jt2LFD165dU7NmzQztypcvLz8/P8O+VatWqVixYgoJCTF8J2FhYdY3a91N2bJltW/fPrVv317ff//9Y1mg+/vvv1dKSoqaN29uqMfR0VGVKlWy1pMzZ04VLFhQI0eO1JgxY7R3716lpaXd93Xu977Tn/mdz7Jp06YPdF9NmzY1fKd+fn4qX768tX/p4X+nD6Nnz57Kli2bHB0d9eKLLyo+Pl5TpkxR7dq177sPy/8fhfW43+QHAP91rCYJAACeuCJFitxzoWBvb2/D5z/++EOS9NZbb931nAsXLshkMiktLU1eXl4Zjme2736cP39eKSkp+uKLL/TFF19k2ub2KVWS5OHhYfjs4OAgSbp69aok6c8//5T0z2/UypMnjxo3bqwpU6aoV69eOnjwoLZu3aopU6bc87yLFy/KYrFkeI7S/72N7vz58/fs4360atVKr7zyij777DP9+eefd32jV/q17lZPepCW3u5+vr8//vhDx48fV7Zs2TK95p3fye169+4tZ2dnzZ07V5MnT5atra0qVqyo4cOHP/QC1um/0TJlymR6PP1tciaTSRs2bNDgwYM1YsQIdevWTTlz5lSzZs302WefycXF5R+vcz/3ff78ednZ2WX4LT7ofw/u9l3s27fP+vlhf6cP46OPPtK7774rGxsbubu7K3/+/Ibgx9fXV5J08uTJDG9iTBcXFydJ8vHxeez1AcB/GYERAADIcnf+P/+enp6SpC+++OKuby7KkyeP9Y1qmS1me+e+9BFI169fN+y/M0jJkSOHdWROhw4dMr12/vz573E3GaWvt3Lngs+Z+eijjzRnzhx9++23Wrt2rdzd3TOMGrlTjhw5ZGNjo4SEhAzH0hcgTn+mj6JChQoqVKiQBg8erOrVq9/1D/D00CIhISFDSHbmzBlrLent7vb93b7ws6enp5ycnDIsvH378buxs7NT165d1bVrV126dEnr169Xnz59FBYWptOnTyt79ux3v+m7SL/e4sWLM4yGupOfn59mzJghSTp69KgW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uXPnztDP9evXdf36devnpKSkuzxNAAAAAACyFoHRc8ZkMmnSpEkqUqSIihcvrl69elmPHT16VAUKFJCd3f/9LMaMGWMYCfT777/Lzc1N0q31j8xmsyTp6tWrypYtm3X6miQdO3ZMrq6u8vb2fqAaS5YsqZIlS1o/Dx06VMuWLdOKFSvUsWNHxcfHy9nZWXXq1JGLi4v8/PxUqlQpSbcCo5SUFDVo0EB+fn6SpOLFi2d6HTc3N7m4uMjW1lZeXl6ZtomNjdX8+fP122+/KW/evJKk7t27a+3atZo1a5aGDRsmSbp586YmTpxoqPtOERERGjRo0AM9CwAAAAAAsgJT0p5DM2fOVPbs2XXy5En99ttvhmN3jiJq2bKloqOjNWXKFCUnJxtG6ri4uCg6OlrR0dHau3evhg0bpg8//FArV66UdOsNZPcalXQ3ycnJ6tGjh4KDg+Xu7i6z2azDhw8rPj5eklS9enX5+fmpQIECeu+99zRv3jxduXJF0q2wqWrVqipevLjefvttTZs2TRcvXnzgGtL98ssvslgsCgoKktlstm6bN29WbGystZ29vb1KlChxz7569+6txMRE63b69OmHrgsAAAAAgCeJwOg5s2PHDo0dO1bffvutXn75ZbVq1coaAgUGBio2NlY3b960tnd3d1dAQIBeeOGFDH3Z2NgoICBAAQEBKlGihLp27aoqVapo+PDhkqSgoCAlJiYqISHhgWr85JNPtGTJEn322WfaunWroqOjVbx4cd24cUPSraDql19+0fz58+Xt7a3+/furZMmSunTpkmxtbfXDDz9ozZo1Cg4O1hdffKFChQrp5MmTD/W80tLSZGtrqz179ljDsejoaMXExGj8+PHWdk5OTv8Yjjk4OMjV1dWwAQAAAADwLCIweo5cvXpVLVq00Icffqhq1app+vTp2rVrl6ZMmSJJatKkiS5fvqyJEyc+9DVsbW119epVSdJbb70le3t7jRgxItO2ly5dynT/1q1bFR4erjfffFPFixeXl5eX4uLiDG3s7OxUrVo1jRgxQvv371dcXJw2btwo6dYoqQoVKmjQoEHau3ev7O3ttWzZsoe6n1KlSik1NVXnzp2zhmPp292msQEAAAAA8G/HGkbPkV69eiktLc06AsjX11ejR49W165dVbNmTb388svq1q2bunXrplOnTqlBgwby8fFRQkKCZsyYIZPJJBub/8sYLRaLzp49K+lWGPXDDz/o+++/t6555OPjo7Fjx6pjx45KSkpS8+bN5e/vr99++01ff/21zGazRo8enaHOgIAALV26VHXr1pXJZFK/fv0Mr6lftWqVTpw4oYoVKypHjhz67rvvlJaWpkKFCmnnzp3asGGDatSoody5c2vnzp36888/VaRIkYd6ZkFBQWrWrJmaN2+u0aNHq1SpUvrrr7+0ceNGFS9eXLVr136ofgEAAAAAeJYRGD0nNm/erK+++kpRUVFydna27m/durUWL16sVq1aaf369Ro1apTKli2rSZMmaebMmbpy5Yry5MmjihUraseOHYZpVElJSdYFrR0cHOTn56fBgwerZ8+e1jbt27dXUFCQRo0apTfffFNXr16Vv7+/6tSpo65du2Za69ixY9WyZUuVL19enp6e6tmzp+GNYu7u7lq6dKkGDhyoa9euKTAwUPPnz1fRokUVExOjLVu2aNy4cUpKSpKfn59Gjx6tWrVqPfSzmzVrloYOHapu3brp999/l4eHh15++WXCIgAAAADAf5bJktn7xgE8cUlJSXJzc9OALSfkaHbJ6nLwL9SrlGdWlwAAAADgXyT979DExMR/XFeXNYwAAAAAAABgQGAEAAAAAAAAAwIjAAAAAAAAGBAYAQAAAAAAwIDACAAAAAAAAAYERgAAAAAAADAgMAIAAAAAAIABgREAAAAAAAAM7LK6AOB517Wkh1xdXbO6DAAAAAAArBhhBAAAAAAAAAMCIwAAAAAAABgQGAEAAAAAAMCAwAgAAAAAAAAGBEYAAAAAAAAwIDACAAAAAACAgV1WFwA878bsOy9H842sLgOQJPUq5ZnVJQAAAAB4BjDCCAAAAAAAAAYERgAAAAAAADAgMAIAAAAAAIABgREAAAAAAAAMCIwAAAAAAABgQGAEAAAAAAAAAwIjAAAAAAAAGBAYAQAAAAAAwIDACFnO399f48aNe+LXiYuLk8lkUnR0tHXftm3bVLx4cWXLlk3169dXVFSUTCaTLl269MTrAQAAAADgWUVg9AjCw8NlMpkybDVr1ryv8ytXrqwuXbo8ch3pQci9toEDBz7ydR5GUlKSPv30UxUuXFiOjo7y8vJStWrVtHTpUlkslqdai4+PjxISElSsWDHrvq5duyokJEQnT55UZGSkypcvr4SEBLm5uT3V2gAAAAAAeJbYZXUB/3Y1a9bUrFmzDPscHBweW/8Wi0Wpqamys7v7V5UehKQbNWqU1q5dq/Xr11v3mc3mB+rzcbh06ZJeeeUVJSYmaujQoSpTpozs7Oy0efNm9ejRQ6+99prc3d2faA23s7W1lZeXl2FfbGys2rZtq3z58ln33dnmQd24cUP29vaP1AcAAAAAAFmJEUaPyMHBQV5eXoYtR44cioqKkr29vbZu3WptO3r0aHl6eiohIUHh4eHavHmzxo8fbx0FFBcXZ50S9f3336t06dJycHDQ1q1bFRsbq3r16ilPnjwym80qU6aMNRBKD0LSN7PZLDs7O+vnw4cPy8XFJUOfFotFI0aMUIECBeTk5KSSJUtq8eLFhvs7dOiQateuLbPZrDx58ui9997TX3/9ZT2+ePFiFS9eXE5OTvLw8FC1atWUnJwsSerTp4/i4uK0c+dOtWjRQsHBwQoKClLr1q0VHR1tCLFuN2bMGBUvXlzOzs7y8fFR+/btdfnyZevxU6dOqW7dusqRI4ecnZ1VtGhRfffdd5KkixcvqlmzZsqVK5ecnJwUGBhoDfRun5KW/u/z58+rZcuWMplMioyMzHRK2vbt21WxYkU5OTnJx8dHnTt3tt6jdGtK3dChQxUeHi43Nze1bt36YX5KAAAAAAA8MwiMnpD06WbvvfeeEhMTtW/fPn366aeaNm2avL29NX78eL388stq3bq1EhISlJCQIB8fH+v5PXr0UEREhGJiYlSiRAldvnxZtWvX1vr167V3716FhYWpbt26io+Pv++a7uyzb9++mjVrliZNmqSDBw/q448/1rvvvqvNmzdLkhISElSpUiWFhIRo9+7dWrt2rf744w81atTIerxJkyZq2bKlYmJiFBUVpQYNGshisSgtLU0LFixQs2bNlDdv3gy1pIdambGxsdGECRP066+/avbs2dq4caN69OhhPd6hQwddv35dW7Zs0YEDBzR8+HBr+NSvXz8dOnRIa9asUUxMjCZNmiRPT88M10gfleXq6qpx48YpISFBjRs3ztDuwIEDCgsLU4MGDbR//34tXLhQP/74ozp27GhoN3LkSBUrVkx79uxRv379Mr2v69evKykpybABAAAAAPAsYkraI1q1alWGkTI9e/ZUv379NHToUK1fv15t2rTRwYMH9d577+nNN9+UJLm5ucne3l7Zs2fPdArU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"
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "execution_count": 32
+ },
+ {
+ "metadata": {},
+ "cell_type": "code",
+ "outputs": [],
+ "execution_count": null,
+ "source": "",
+ "id": "f6faa6d6265c094e"
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 3",
+ "language": "python",
+ "name": "python3"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 2
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython2",
+ "version": "2.7.6"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 5
+}
diff --git a/2-5-automated-machine-learning-with-gp/corpus_foundations_thesis.zip b/2-5-automated-machine-learning-with-gp/corpus_foundations_thesis.zip
new file mode 100644
index 0000000000000000000000000000000000000000..43d39799e7f509d1a81808e56f413ce00fc5f77d
GIT binary patch
literal 129281
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∓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