mirror of
https://github.com/DISARMFoundation/DISARMframeworks.git
synced 2025-07-12 01:29:22 -04:00

Changed from data held in excelfiles to data held in CSV files. This gives us a better view of what's changed in the datasets when we push them to git.
814 lines
34 KiB
Text
814 lines
34 KiB
Text
{
|
|
"cells": [
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"# Compare disarm versions"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 3,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"Current keys: dict_keys(['FRAMEWORK_ADMIN_README', 'FRAMEWORK_ADMIN CODES', 'phases', 'tactics', 'techniques', 'subtechniques', 'frameworks', 'tasks', 'detections', 'countermeasures', 'playbooks', 'responsetypes', 'metatechniques', 'actortypes', 'sectors', 'resources', 'MOE', 'MOP'])\n",
|
|
"Old keys: dict_keys(['ADMIN_README', 'ADMIN CODES', 'phases', 'tactics', 'techniques', 'frameworks', 'tasks', 'detections', 'countermeasures', 'playbooks', 'responsetypes', 'metatechniques', 'actortypes', 'sectors', 'resources', 'MOE', 'MOP'])\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"import pandas as pd\n",
|
|
"\n",
|
|
"MASTERDATA_DIR = '../DISARM_MASTER_DATA/'\n",
|
|
"frameworkfile = MASTERDATA_DIR + 'DISARM_FRAMEWORKS_MASTER.xlsx'\n",
|
|
"oldframefile = MASTERDATA_DIR + '2022-06-30_DISARM_0_1/DISARM_FRAMEWORKS_MASTER_0_1.xlsx'\n",
|
|
"oldframefile = 'AMITT_FRAMEWORKS_MASTER.xlsx'\n",
|
|
"\n",
|
|
"def create_excel_metadata(frameworkfile):\n",
|
|
" metadata = {}\n",
|
|
" xlsx = pd.ExcelFile(frameworkfile)\n",
|
|
" for sheetname in xlsx.sheet_names:\n",
|
|
" metadata[sheetname] = xlsx.parse(sheetname)\n",
|
|
" metadata[sheetname].fillna('', inplace=True)\n",
|
|
" metadata[sheetname].rename(columns={'amitt_id': 'disarm_id'}, inplace=True)\n",
|
|
" return metadata\n",
|
|
"\n",
|
|
"def check_version_descriptions(df1, df2):\n",
|
|
" merge = df1.merge(df2, on='disarm_id')\n",
|
|
" merge['name_changed'] = merge['name_x'] != merge['name_y']\n",
|
|
" merge['summary_changed'] = merge['summary_x'] != merge['summary_y']\n",
|
|
" return merge[(merge['name_changed']) | (merge['summary_changed'])][['disarm_id', 'name_changed', 'summary_changed', 'name_x', \n",
|
|
" 'name_y', 'summary_x', 'summary_y']]\n",
|
|
"\n",
|
|
"metadata = create_excel_metadata(frameworkfile)\n",
|
|
"oldmeta = create_excel_metadata(oldframefile)\n",
|
|
"print('Current keys: {}'.format(metadata.keys()))\n",
|
|
"print('Old keys: {}'.format(oldmeta.keys()))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 7,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/html": [
|
|
"<div>\n",
|
|
"<style scoped>\n",
|
|
" .dataframe tbody tr th:only-of-type {\n",
|
|
" vertical-align: middle;\n",
|
|
" }\n",
|
|
"\n",
|
|
" .dataframe tbody tr th {\n",
|
|
" vertical-align: top;\n",
|
|
" }\n",
|
|
"\n",
|
|
" .dataframe thead th {\n",
|
|
" text-align: right;\n",
|
|
" }\n",
|
|
"</style>\n",
|
|
"<table border=\"1\" class=\"dataframe\">\n",
|
|
" <thead>\n",
|
|
" <tr style=\"text-align: right;\">\n",
|
|
" <th></th>\n",
|
|
" <th>disarm_id</th>\n",
|
|
" <th>name_changed</th>\n",
|
|
" <th>summary_changed</th>\n",
|
|
" <th>name_x</th>\n",
|
|
" <th>name_y</th>\n",
|
|
" <th>summary_x</th>\n",
|
|
" <th>summary_y</th>\n",
|
|
" <th>type</th>\n",
|
|
" </tr>\n",
|
|
" </thead>\n",
|
|
" <tbody>\n",
|
|
" <tr>\n",
|
|
" <th>3</th>\n",
|
|
" <td>P04</td>\n",
|
|
" <td>False</td>\n",
|
|
" <td>True</td>\n",
|
|
" <td>Assess</td>\n",
|
|
" <td>Assess</td>\n",
|
|
" <td>Evaluate effectiveness of action, for use in f...</td>\n",
|
|
" <td>Evaluate effectiveness of action, for use in f...</td>\n",
|
|
" <td>phase</td>\n",
|
|
" </tr>\n",
|
|
" </tbody>\n",
|
|
"</table>\n",
|
|
"</div>"
|
|
],
|
|
"text/plain": [
|
|
" disarm_id name_changed summary_changed name_x name_y \\\n",
|
|
"3 P04 False True Assess Assess \n",
|
|
"\n",
|
|
" summary_x \\\n",
|
|
"3 Evaluate effectiveness of action, for use in f... \n",
|
|
"\n",
|
|
" summary_y type \n",
|
|
"3 Evaluate effectiveness of action, for use in f... phase "
|
|
]
|
|
},
|
|
"execution_count": 7,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"dfchanges = pd.DataFrame([])\n",
|
|
"changes = check_version_descriptions(metadata['phases'], oldmeta['phases'])\n",
|
|
"changes['type'] = 'phase'\n",
|
|
"dfchanges = changes\n",
|
|
"changes"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 9,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/html": [
|
|
"<div>\n",
|
|
"<style scoped>\n",
|
|
" .dataframe tbody tr th:only-of-type {\n",
|
|
" vertical-align: middle;\n",
|
|
" }\n",
|
|
"\n",
|
|
" .dataframe tbody tr th {\n",
|
|
" vertical-align: top;\n",
|
|
" }\n",
|
|
"\n",
|
|
" .dataframe thead th {\n",
|
|
" text-align: right;\n",
|
|
" }\n",
|
|
"</style>\n",
|
|
"<table border=\"1\" class=\"dataframe\">\n",
|
|
" <thead>\n",
|
|
" <tr style=\"text-align: right;\">\n",
|
|
" <th></th>\n",
|
|
" <th>disarm_id</th>\n",
|
|
" <th>name_changed</th>\n",
|
|
" <th>summary_changed</th>\n",
|
|
" <th>name_x</th>\n",
|
|
" <th>name_y</th>\n",
|
|
" <th>summary_x</th>\n",
|
|
" <th>summary_y</th>\n",
|
|
" <th>type</th>\n",
|
|
" </tr>\n",
|
|
" </thead>\n",
|
|
" <tbody>\n",
|
|
" <tr>\n",
|
|
" <th>0</th>\n",
|
|
" <td>TA01</td>\n",
|
|
" <td>True</td>\n",
|
|
" <td>False</td>\n",
|
|
" <td>Plan Strategy</td>\n",
|
|
" <td>Strategic Planning</td>\n",
|
|
" <td>Define the desired end state, i.e. the set of ...</td>\n",
|
|
" <td>Define the desired end state, i.e. the set of ...</td>\n",
|
|
" <td>tactic</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>1</th>\n",
|
|
" <td>TA02</td>\n",
|
|
" <td>True</td>\n",
|
|
" <td>True</td>\n",
|
|
" <td>Plan Objectives</td>\n",
|
|
" <td>Objective Planning</td>\n",
|
|
" <td>Set clearly defined, measurable, and achievabl...</td>\n",
|
|
" <td>Set clearly defined, measurable, and achievabl...</td>\n",
|
|
" <td>tactic</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>2</th>\n",
|
|
" <td>TA05</td>\n",
|
|
" <td>True</td>\n",
|
|
" <td>False</td>\n",
|
|
" <td>Microtarget</td>\n",
|
|
" <td>Microtargeting</td>\n",
|
|
" <td>Target very specific populations of people</td>\n",
|
|
" <td>Target very specific populations of people</td>\n",
|
|
" <td>tactic</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>3</th>\n",
|
|
" <td>TA06</td>\n",
|
|
" <td>False</td>\n",
|
|
" <td>True</td>\n",
|
|
" <td>Develop Content</td>\n",
|
|
" <td>Develop Content</td>\n",
|
|
" <td>Create or acquire text, images, and other content</td>\n",
|
|
" <td>Create and acquire content used in incident</td>\n",
|
|
" <td>tactic</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>4</th>\n",
|
|
" <td>TA07</td>\n",
|
|
" <td>True</td>\n",
|
|
" <td>True</td>\n",
|
|
" <td>Select Channels and Affordances</td>\n",
|
|
" <td>Channel Selection</td>\n",
|
|
" <td>Selecting platforms and affordances assesses w...</td>\n",
|
|
" <td>Set up specific delivery, amplification and ma...</td>\n",
|
|
" <td>tactic</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>5</th>\n",
|
|
" <td>TA08</td>\n",
|
|
" <td>True</td>\n",
|
|
" <td>True</td>\n",
|
|
" <td>Conduct Pump Priming</td>\n",
|
|
" <td>Pump Priming</td>\n",
|
|
" <td>Release content on a targetted small scale, pr...</td>\n",
|
|
" <td>Release content on a targetted small scale, pr...</td>\n",
|
|
" <td>tactic</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>6</th>\n",
|
|
" <td>TA09</td>\n",
|
|
" <td>True</td>\n",
|
|
" <td>True</td>\n",
|
|
" <td>Deliver Content</td>\n",
|
|
" <td>Exposure</td>\n",
|
|
" <td>Release content to general public or larger po...</td>\n",
|
|
" <td>Release content to general public or push to l...</td>\n",
|
|
" <td>tactic</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>7</th>\n",
|
|
" <td>TA10</td>\n",
|
|
" <td>True</td>\n",
|
|
" <td>True</td>\n",
|
|
" <td>Drive Offline Activity</td>\n",
|
|
" <td>Go Physical</td>\n",
|
|
" <td>Move incident/campaign from online to offline....</td>\n",
|
|
" <td>Move incident into offline world</td>\n",
|
|
" <td>tactic</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>8</th>\n",
|
|
" <td>TA11</td>\n",
|
|
" <td>True</td>\n",
|
|
" <td>True</td>\n",
|
|
" <td>Persist in the Information Environment</td>\n",
|
|
" <td>Persistence</td>\n",
|
|
" <td>Persist in the Information Space refers to tak...</td>\n",
|
|
" <td>Keep incident 'alive', beyond the incident cre...</td>\n",
|
|
" <td>tactic</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>9</th>\n",
|
|
" <td>TA12</td>\n",
|
|
" <td>True</td>\n",
|
|
" <td>True</td>\n",
|
|
" <td>Assess Effectiveness</td>\n",
|
|
" <td>Measure Effectiveness</td>\n",
|
|
" <td>Assess effectiveness of action, for use in fut...</td>\n",
|
|
" <td>Measure effectiveness of incident, for use in ...</td>\n",
|
|
" <td>tactic</td>\n",
|
|
" </tr>\n",
|
|
" </tbody>\n",
|
|
"</table>\n",
|
|
"</div>"
|
|
],
|
|
"text/plain": [
|
|
" disarm_id name_changed summary_changed \\\n",
|
|
"0 TA01 True False \n",
|
|
"1 TA02 True True \n",
|
|
"2 TA05 True False \n",
|
|
"3 TA06 False True \n",
|
|
"4 TA07 True True \n",
|
|
"5 TA08 True True \n",
|
|
"6 TA09 True True \n",
|
|
"7 TA10 True True \n",
|
|
"8 TA11 True True \n",
|
|
"9 TA12 True True \n",
|
|
"\n",
|
|
" name_x name_y \\\n",
|
|
"0 Plan Strategy Strategic Planning \n",
|
|
"1 Plan Objectives Objective Planning \n",
|
|
"2 Microtarget Microtargeting \n",
|
|
"3 Develop Content Develop Content \n",
|
|
"4 Select Channels and Affordances Channel Selection \n",
|
|
"5 Conduct Pump Priming Pump Priming \n",
|
|
"6 Deliver Content Exposure \n",
|
|
"7 Drive Offline Activity Go Physical \n",
|
|
"8 Persist in the Information Environment Persistence \n",
|
|
"9 Assess Effectiveness Measure Effectiveness \n",
|
|
"\n",
|
|
" summary_x \\\n",
|
|
"0 Define the desired end state, i.e. the set of ... \n",
|
|
"1 Set clearly defined, measurable, and achievabl... \n",
|
|
"2 Target very specific populations of people \n",
|
|
"3 Create or acquire text, images, and other content \n",
|
|
"4 Selecting platforms and affordances assesses w... \n",
|
|
"5 Release content on a targetted small scale, pr... \n",
|
|
"6 Release content to general public or larger po... \n",
|
|
"7 Move incident/campaign from online to offline.... \n",
|
|
"8 Persist in the Information Space refers to tak... \n",
|
|
"9 Assess effectiveness of action, for use in fut... \n",
|
|
"\n",
|
|
" summary_y type \n",
|
|
"0 Define the desired end state, i.e. the set of ... tactic \n",
|
|
"1 Set clearly defined, measurable, and achievabl... tactic \n",
|
|
"2 Target very specific populations of people tactic \n",
|
|
"3 Create and acquire content used in incident tactic \n",
|
|
"4 Set up specific delivery, amplification and ma... tactic \n",
|
|
"5 Release content on a targetted small scale, pr... tactic \n",
|
|
"6 Release content to general public or push to l... tactic \n",
|
|
"7 Move incident into offline world tactic \n",
|
|
"8 Keep incident 'alive', beyond the incident cre... tactic \n",
|
|
"9 Measure effectiveness of incident, for use in ... tactic "
|
|
]
|
|
},
|
|
"execution_count": 9,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"changes = check_version_descriptions(metadata['tactics'], oldmeta['tactics'])\n",
|
|
"changes['type'] = 'tactic'\n",
|
|
"dfchanges = pd.concat([dfchanges, changes])\n",
|
|
"changes"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 10,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/html": [
|
|
"<div>\n",
|
|
"<style scoped>\n",
|
|
" .dataframe tbody tr th:only-of-type {\n",
|
|
" vertical-align: middle;\n",
|
|
" }\n",
|
|
"\n",
|
|
" .dataframe tbody tr th {\n",
|
|
" vertical-align: top;\n",
|
|
" }\n",
|
|
"\n",
|
|
" .dataframe thead th {\n",
|
|
" text-align: right;\n",
|
|
" }\n",
|
|
"</style>\n",
|
|
"<table border=\"1\" class=\"dataframe\">\n",
|
|
" <thead>\n",
|
|
" <tr style=\"text-align: right;\">\n",
|
|
" <th></th>\n",
|
|
" <th>disarm_id</th>\n",
|
|
" <th>name_changed</th>\n",
|
|
" <th>summary_changed</th>\n",
|
|
" <th>name_x</th>\n",
|
|
" <th>name_y</th>\n",
|
|
" <th>summary_x</th>\n",
|
|
" <th>summary_y</th>\n",
|
|
" <th>type</th>\n",
|
|
" </tr>\n",
|
|
" </thead>\n",
|
|
" <tbody>\n",
|
|
" <tr>\n",
|
|
" <th>2</th>\n",
|
|
" <td>T0004</td>\n",
|
|
" <td>True</td>\n",
|
|
" <td>True</td>\n",
|
|
" <td>Develop Competing Narratives</td>\n",
|
|
" <td>Competing Narratives</td>\n",
|
|
" <td>Advance competing narratives connected to same...</td>\n",
|
|
" <td>Advance competing narratives connected to same...</td>\n",
|
|
" <td>technique</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>3</th>\n",
|
|
" <td>T0007</td>\n",
|
|
" <td>True</td>\n",
|
|
" <td>True</td>\n",
|
|
" <td>Create Inauthentic Social Media Pages and Groups</td>\n",
|
|
" <td>Create fake Social Media Profiles / Pages / Gr...</td>\n",
|
|
" <td>Create key social engineering assets needed to...</td>\n",
|
|
" <td>Create key social engineering assets needed to...</td>\n",
|
|
" <td>technique</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>6</th>\n",
|
|
" <td>T0011</td>\n",
|
|
" <td>True</td>\n",
|
|
" <td>True</td>\n",
|
|
" <td>Compromise legitimate accounts</td>\n",
|
|
" <td>Hijack legitimate account</td>\n",
|
|
" <td>Hack or take over legimate accounts to distrib...</td>\n",
|
|
" <td>Hack or take over legimate accounts to distrib...</td>\n",
|
|
" <td>technique</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>7</th>\n",
|
|
" <td>T0013</td>\n",
|
|
" <td>True</td>\n",
|
|
" <td>True</td>\n",
|
|
" <td>Create inauthentic websites</td>\n",
|
|
" <td>Create fake websites</td>\n",
|
|
" <td>Create media assets to support inauthentic org...</td>\n",
|
|
" <td>Create media assets to support fake organizati...</td>\n",
|
|
" <td>technique</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>8</th>\n",
|
|
" <td>T0014</td>\n",
|
|
" <td>True</td>\n",
|
|
" <td>True</td>\n",
|
|
" <td>Prepare fundraising campaigns</td>\n",
|
|
" <td>Create funding campaigns</td>\n",
|
|
" <td>Fundraising campaigns refer to an influence op...</td>\n",
|
|
" <td>Generate revenue through online funding campai...</td>\n",
|
|
" <td>technique</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>9</th>\n",
|
|
" <td>T0015</td>\n",
|
|
" <td>True</td>\n",
|
|
" <td>True</td>\n",
|
|
" <td>Create hashtags and search artifacts</td>\n",
|
|
" <td>Create hashtag</td>\n",
|
|
" <td>Create one or more hashtags and/or hashtag gro...</td>\n",
|
|
" <td>Many incident-based campaigns will create a ha...</td>\n",
|
|
" <td>technique</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>10</th>\n",
|
|
" <td>T0016</td>\n",
|
|
" <td>True</td>\n",
|
|
" <td>True</td>\n",
|
|
" <td>Create Clickbait</td>\n",
|
|
" <td>Clickbait</td>\n",
|
|
" <td>Create attention grabbing headlines (outrage, ...</td>\n",
|
|
" <td>Create attention grabbing headlines (outrage, ...</td>\n",
|
|
" <td>technique</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>11</th>\n",
|
|
" <td>T0017</td>\n",
|
|
" <td>True</td>\n",
|
|
" <td>True</td>\n",
|
|
" <td>Conduct fundraising</td>\n",
|
|
" <td>Promote online funding</td>\n",
|
|
" <td>Fundraising campaigns refer to an influence op...</td>\n",
|
|
" <td>Drive traffic/engagement to funding campaign s...</td>\n",
|
|
" <td>technique</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>12</th>\n",
|
|
" <td>T0018</td>\n",
|
|
" <td>True</td>\n",
|
|
" <td>False</td>\n",
|
|
" <td>Purchase Targeted Advertisements</td>\n",
|
|
" <td>Paid targeted ads</td>\n",
|
|
" <td>Create or fund advertisements targeted at spec...</td>\n",
|
|
" <td>Create or fund advertisements targeted at spec...</td>\n",
|
|
" <td>technique</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>15</th>\n",
|
|
" <td>T0022</td>\n",
|
|
" <td>True</td>\n",
|
|
" <td>True</td>\n",
|
|
" <td>Leverage Conspiracy Theory Narratives</td>\n",
|
|
" <td>Conspiracy narratives</td>\n",
|
|
" <td>\"Conspiracy narratives\" appeal to the human de...</td>\n",
|
|
" <td>\"Conspiracy narratives appeal to the human des...</td>\n",
|
|
" <td>technique</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>17</th>\n",
|
|
" <td>T0029</td>\n",
|
|
" <td>True</td>\n",
|
|
" <td>False</td>\n",
|
|
" <td>Online polls</td>\n",
|
|
" <td>Manipulate online polls</td>\n",
|
|
" <td>Create fake online polls, or manipulate existi...</td>\n",
|
|
" <td>Create fake online polls, or manipulate existi...</td>\n",
|
|
" <td>technique</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>18</th>\n",
|
|
" <td>T0040</td>\n",
|
|
" <td>True</td>\n",
|
|
" <td>False</td>\n",
|
|
" <td>Demand insurmountable proof</td>\n",
|
|
" <td>Demand unsurmountable proof</td>\n",
|
|
" <td>Campaigns often leverage tactical and informat...</td>\n",
|
|
" <td>Campaigns often leverage tactical and informat...</td>\n",
|
|
" <td>technique</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>19</th>\n",
|
|
" <td>T0042</td>\n",
|
|
" <td>True</td>\n",
|
|
" <td>True</td>\n",
|
|
" <td>Seed Kernel of truth</td>\n",
|
|
" <td>Kernel of Truth</td>\n",
|
|
" <td>Wrap lies or altered context/facts around trut...</td>\n",
|
|
" <td>Wrap lies or altered context/facts around trut...</td>\n",
|
|
" <td>technique</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>20</th>\n",
|
|
" <td>T0043</td>\n",
|
|
" <td>True</td>\n",
|
|
" <td>True</td>\n",
|
|
" <td>Chat apps</td>\n",
|
|
" <td>Use SMS/ WhatsApp/ Chat apps</td>\n",
|
|
" <td>Direct messaging via chat app is an increasing...</td>\n",
|
|
" <td>Direct messaging via encypted app is an increa...</td>\n",
|
|
" <td>technique</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>22</th>\n",
|
|
" <td>T0045</td>\n",
|
|
" <td>False</td>\n",
|
|
" <td>True</td>\n",
|
|
" <td>Use fake experts</td>\n",
|
|
" <td>Use fake experts</td>\n",
|
|
" <td>Use the fake experts that were set up during E...</td>\n",
|
|
" <td>Use the fake experts that were set up in T0009...</td>\n",
|
|
" <td>technique</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>23</th>\n",
|
|
" <td>T0046</td>\n",
|
|
" <td>True</td>\n",
|
|
" <td>False</td>\n",
|
|
" <td>Use Search Engine Optimization</td>\n",
|
|
" <td>Search Engine Optimization</td>\n",
|
|
" <td>Manipulate content engagement metrics (ie: Red...</td>\n",
|
|
" <td>Manipulate content engagement metrics (ie: Red...</td>\n",
|
|
" <td>technique</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>24</th>\n",
|
|
" <td>T0047</td>\n",
|
|
" <td>True</td>\n",
|
|
" <td>True</td>\n",
|
|
" <td>Censor social media as a political force</td>\n",
|
|
" <td>Muzzle social media as a political force</td>\n",
|
|
" <td>Use political influence or the power of state ...</td>\n",
|
|
" <td>Use political influence or the power of state ...</td>\n",
|
|
" <td>technique</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>25</th>\n",
|
|
" <td>T0048</td>\n",
|
|
" <td>True</td>\n",
|
|
" <td>True</td>\n",
|
|
" <td>Harass</td>\n",
|
|
" <td>Cow online opinion leaders</td>\n",
|
|
" <td>Threatening or harassing believers of opposing...</td>\n",
|
|
" <td>Intimidate, coerce, threaten critics/dissident...</td>\n",
|
|
" <td>technique</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>26</th>\n",
|
|
" <td>T0049</td>\n",
|
|
" <td>True</td>\n",
|
|
" <td>True</td>\n",
|
|
" <td>Flooding the Information Space</td>\n",
|
|
" <td>Flooding</td>\n",
|
|
" <td>Flooding and/or mobbing social media channels ...</td>\n",
|
|
" <td>Flooding and/or mobbing social media channels ...</td>\n",
|
|
" <td>technique</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>27</th>\n",
|
|
" <td>T0057</td>\n",
|
|
" <td>True</td>\n",
|
|
" <td>True</td>\n",
|
|
" <td>Organize Events</td>\n",
|
|
" <td>Organise remote rallies and events</td>\n",
|
|
" <td>Coordinate and promote real-world events acros...</td>\n",
|
|
" <td>Coordinate and promote real-world events acros...</td>\n",
|
|
" <td>technique</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>28</th>\n",
|
|
" <td>T0059</td>\n",
|
|
" <td>False</td>\n",
|
|
" <td>True</td>\n",
|
|
" <td>Play the long game</td>\n",
|
|
" <td>Play the long game</td>\n",
|
|
" <td>Play the long game refers to two phenomena: 1....</td>\n",
|
|
" <td>Play the long game can mean a couple of things...</td>\n",
|
|
" <td>technique</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>29</th>\n",
|
|
" <td>T0060</td>\n",
|
|
" <td>True</td>\n",
|
|
" <td>False</td>\n",
|
|
" <td>Continue to Amplify</td>\n",
|
|
" <td>Continue to amplify</td>\n",
|
|
" <td>continue narrative or message amplification af...</td>\n",
|
|
" <td>continue narrative or message amplification af...</td>\n",
|
|
" <td>technique</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>30</th>\n",
|
|
" <td>T0061</td>\n",
|
|
" <td>True</td>\n",
|
|
" <td>True</td>\n",
|
|
" <td>Sell Merchandise</td>\n",
|
|
" <td>Sell merchandising</td>\n",
|
|
" <td>Sell mechandise refers to getting the message ...</td>\n",
|
|
" <td>Sell hats, t-shirts, flags and other branded c...</td>\n",
|
|
" <td>technique</td>\n",
|
|
" </tr>\n",
|
|
" </tbody>\n",
|
|
"</table>\n",
|
|
"</div>"
|
|
],
|
|
"text/plain": [
|
|
" disarm_id name_changed summary_changed \\\n",
|
|
"2 T0004 True True \n",
|
|
"3 T0007 True True \n",
|
|
"6 T0011 True True \n",
|
|
"7 T0013 True True \n",
|
|
"8 T0014 True True \n",
|
|
"9 T0015 True True \n",
|
|
"10 T0016 True True \n",
|
|
"11 T0017 True True \n",
|
|
"12 T0018 True False \n",
|
|
"15 T0022 True True \n",
|
|
"17 T0029 True False \n",
|
|
"18 T0040 True False \n",
|
|
"19 T0042 True True \n",
|
|
"20 T0043 True True \n",
|
|
"22 T0045 False True \n",
|
|
"23 T0046 True False \n",
|
|
"24 T0047 True True \n",
|
|
"25 T0048 True True \n",
|
|
"26 T0049 True True \n",
|
|
"27 T0057 True True \n",
|
|
"28 T0059 False True \n",
|
|
"29 T0060 True False \n",
|
|
"30 T0061 True True \n",
|
|
"\n",
|
|
" name_x \\\n",
|
|
"2 Develop Competing Narratives \n",
|
|
"3 Create Inauthentic Social Media Pages and Groups \n",
|
|
"6 Compromise legitimate accounts \n",
|
|
"7 Create inauthentic websites \n",
|
|
"8 Prepare fundraising campaigns \n",
|
|
"9 Create hashtags and search artifacts \n",
|
|
"10 Create Clickbait \n",
|
|
"11 Conduct fundraising \n",
|
|
"12 Purchase Targeted Advertisements \n",
|
|
"15 Leverage Conspiracy Theory Narratives \n",
|
|
"17 Online polls \n",
|
|
"18 Demand insurmountable proof \n",
|
|
"19 Seed Kernel of truth \n",
|
|
"20 Chat apps \n",
|
|
"22 Use fake experts \n",
|
|
"23 Use Search Engine Optimization \n",
|
|
"24 Censor social media as a political force \n",
|
|
"25 Harass \n",
|
|
"26 Flooding the Information Space \n",
|
|
"27 Organize Events \n",
|
|
"28 Play the long game \n",
|
|
"29 Continue to Amplify \n",
|
|
"30 Sell Merchandise \n",
|
|
"\n",
|
|
" name_y \\\n",
|
|
"2 Competing Narratives \n",
|
|
"3 Create fake Social Media Profiles / Pages / Gr... \n",
|
|
"6 Hijack legitimate account \n",
|
|
"7 Create fake websites \n",
|
|
"8 Create funding campaigns \n",
|
|
"9 Create hashtag \n",
|
|
"10 Clickbait \n",
|
|
"11 Promote online funding \n",
|
|
"12 Paid targeted ads \n",
|
|
"15 Conspiracy narratives \n",
|
|
"17 Manipulate online polls \n",
|
|
"18 Demand unsurmountable proof \n",
|
|
"19 Kernel of Truth \n",
|
|
"20 Use SMS/ WhatsApp/ Chat apps \n",
|
|
"22 Use fake experts \n",
|
|
"23 Search Engine Optimization \n",
|
|
"24 Muzzle social media as a political force \n",
|
|
"25 Cow online opinion leaders \n",
|
|
"26 Flooding \n",
|
|
"27 Organise remote rallies and events \n",
|
|
"28 Play the long game \n",
|
|
"29 Continue to amplify \n",
|
|
"30 Sell merchandising \n",
|
|
"\n",
|
|
" summary_x \\\n",
|
|
"2 Advance competing narratives connected to same... \n",
|
|
"3 Create key social engineering assets needed to... \n",
|
|
"6 Hack or take over legimate accounts to distrib... \n",
|
|
"7 Create media assets to support inauthentic org... \n",
|
|
"8 Fundraising campaigns refer to an influence op... \n",
|
|
"9 Create one or more hashtags and/or hashtag gro... \n",
|
|
"10 Create attention grabbing headlines (outrage, ... \n",
|
|
"11 Fundraising campaigns refer to an influence op... \n",
|
|
"12 Create or fund advertisements targeted at spec... \n",
|
|
"15 \"Conspiracy narratives\" appeal to the human de... \n",
|
|
"17 Create fake online polls, or manipulate existi... \n",
|
|
"18 Campaigns often leverage tactical and informat... \n",
|
|
"19 Wrap lies or altered context/facts around trut... \n",
|
|
"20 Direct messaging via chat app is an increasing... \n",
|
|
"22 Use the fake experts that were set up during E... \n",
|
|
"23 Manipulate content engagement metrics (ie: Red... \n",
|
|
"24 Use political influence or the power of state ... \n",
|
|
"25 Threatening or harassing believers of opposing... \n",
|
|
"26 Flooding and/or mobbing social media channels ... \n",
|
|
"27 Coordinate and promote real-world events acros... \n",
|
|
"28 Play the long game refers to two phenomena: 1.... \n",
|
|
"29 continue narrative or message amplification af... \n",
|
|
"30 Sell mechandise refers to getting the message ... \n",
|
|
"\n",
|
|
" summary_y type \n",
|
|
"2 Advance competing narratives connected to same... technique \n",
|
|
"3 Create key social engineering assets needed to... technique \n",
|
|
"6 Hack or take over legimate accounts to distrib... technique \n",
|
|
"7 Create media assets to support fake organizati... technique \n",
|
|
"8 Generate revenue through online funding campai... technique \n",
|
|
"9 Many incident-based campaigns will create a ha... technique \n",
|
|
"10 Create attention grabbing headlines (outrage, ... technique \n",
|
|
"11 Drive traffic/engagement to funding campaign s... technique \n",
|
|
"12 Create or fund advertisements targeted at spec... technique \n",
|
|
"15 \"Conspiracy narratives appeal to the human des... technique \n",
|
|
"17 Create fake online polls, or manipulate existi... technique \n",
|
|
"18 Campaigns often leverage tactical and informat... technique \n",
|
|
"19 Wrap lies or altered context/facts around trut... technique \n",
|
|
"20 Direct messaging via encypted app is an increa... technique \n",
|
|
"22 Use the fake experts that were set up in T0009... technique \n",
|
|
"23 Manipulate content engagement metrics (ie: Red... technique \n",
|
|
"24 Use political influence or the power of state ... technique \n",
|
|
"25 Intimidate, coerce, threaten critics/dissident... technique \n",
|
|
"26 Flooding and/or mobbing social media channels ... technique \n",
|
|
"27 Coordinate and promote real-world events acros... technique \n",
|
|
"28 Play the long game can mean a couple of things... technique \n",
|
|
"29 continue narrative or message amplification af... technique \n",
|
|
"30 Sell hats, t-shirts, flags and other branded c... technique "
|
|
]
|
|
},
|
|
"execution_count": 10,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"changes = check_version_descriptions(metadata['techniques'], oldmeta['techniques'])\n",
|
|
"changes['type'] = 'technique'\n",
|
|
"dfchanges = pd.concat([dfchanges, changes])\n",
|
|
"changes"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 11,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"dfchanges.to_csv('temp_versionchanges.csv', index=False)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": []
|
|
}
|
|
],
|
|
"metadata": {
|
|
"kernelspec": {
|
|
"display_name": "Python 3",
|
|
"language": "python",
|
|
"name": "python3"
|
|
},
|
|
"language_info": {
|
|
"codemirror_mode": {
|
|
"name": "ipython",
|
|
"version": 3
|
|
},
|
|
"file_extension": ".py",
|
|
"mimetype": "text/x-python",
|
|
"name": "python",
|
|
"nbconvert_exporter": "python",
|
|
"pygments_lexer": "ipython3",
|
|
"version": "3.8.3"
|
|
}
|
|
},
|
|
"nbformat": 4,
|
|
"nbformat_minor": 4
|
|
}
|