DISARMframeworks/CODE/compare_disarm_versions.ipynb
Sara-Jayne Terp 1bc8d88b63 moved to datasets as CSVs
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.
2022-08-25 09:50:52 -04:00

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
}