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.levelwinlog.event_idwinlog.taskfiltered_message
stri64strstr
"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=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 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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

}S}dD{;XDzEvNItzP@Omzhszr@libhfo2PgSv|D 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 V@PEAv`umXp0tBS|2>ku*{{eb(W~BfC literal 0 HcmV?d00001