mirror of
https://github.com/DISARMFoundation/DISARMframeworks.git
synced 2024-12-24 23:09:45 -05:00
c11e9d06ad
Added framework objects: - Added technique T0066 "Degrade adversary" to TA02 - Added technique T0067 "Plan to discredit credible sources" to TA02 - Added technique T0068 "respond to breaking news event" to TA02 - Added technique T0069 "respond to active crisis" to TA02 - Added technique T0070 "Analyze existing communities" to TA02 - Added technique T0071 "Find echo chambers" to TA13 - Added technique T0072 "Segment audiences" to TA13 Added STIX generator from repo DISARM-stix2, and added code to generate github files, databases, and STIX from the same Jupyter notebook.
1382 lines
55 KiB
Plaintext
1382 lines
55 KiB
Plaintext
{
|
||
"cells": [
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"# Test area for DISARM code"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 2,
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"dict_keys(['df_phases', 'df_frameworks', 'df_techniques', 'df_tasks', 'df_incidents', 'df_externalgroups', 'df_tools', 'df_examples', 'df_counters', 'df_detections', 'df_actortypes', 'df_resources', 'df_responsetypes', 'df_metatechniques', 'it', 'df_tactics', 'df_playbooks', 'df_techniques_per_tactic', 'df_counters_per_tactic', 'phases', 'tactics', 'techniques', 'counters', 'metatechniques', 'actortypes', 'resources', 'num_tactics', 'cross_counterid_techniqueid', 'cross_counterid_resourceid', 'cross_counterid_actortypeid', 'cross_detectionid_techniqueid', 'cross_detectionid_resourceid', 'cross_detectionid_actortypeid'])\n"
|
||
]
|
||
},
|
||
{
|
||
"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>technique_id</th>\n",
|
||
" </tr>\n",
|
||
" </thead>\n",
|
||
" <tbody>\n",
|
||
" <tr>\n",
|
||
" <th>0</th>\n",
|
||
" <td>C00006</td>\n",
|
||
" <td>T0007</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>0</th>\n",
|
||
" <td>C00006</td>\n",
|
||
" <td>T0015</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>0</th>\n",
|
||
" <td>C00006</td>\n",
|
||
" <td>T0018</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>0</th>\n",
|
||
" <td>C00006</td>\n",
|
||
" <td>T0043</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>0</th>\n",
|
||
" <td>C00006</td>\n",
|
||
" <td>T0053</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>...</th>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>135</th>\n",
|
||
" <td>C00219</td>\n",
|
||
" <td>T0025</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>136</th>\n",
|
||
" <td>C00220</td>\n",
|
||
" <td></td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>137</th>\n",
|
||
" <td>C00221</td>\n",
|
||
" <td></td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>138</th>\n",
|
||
" <td>C00222</td>\n",
|
||
" <td></td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>139</th>\n",
|
||
" <td>C00223</td>\n",
|
||
" <td></td>\n",
|
||
" </tr>\n",
|
||
" </tbody>\n",
|
||
"</table>\n",
|
||
"<p>909 rows × 2 columns</p>\n",
|
||
"</div>"
|
||
],
|
||
"text/plain": [
|
||
" disarm_id technique_id\n",
|
||
"0 C00006 T0007\n",
|
||
"0 C00006 T0015\n",
|
||
"0 C00006 T0018\n",
|
||
"0 C00006 T0043\n",
|
||
"0 C00006 T0053\n",
|
||
".. ... ...\n",
|
||
"135 C00219 T0025\n",
|
||
"136 C00220 \n",
|
||
"137 C00221 \n",
|
||
"138 C00222 \n",
|
||
"139 C00223 \n",
|
||
"\n",
|
||
"[909 rows x 2 columns]"
|
||
]
|
||
},
|
||
"execution_count": 2,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
}
|
||
],
|
||
"source": [
|
||
"import pandas as pd\n",
|
||
"import sqlite3 as sql\n",
|
||
"from generate_DISARM_pages import Disarm\n",
|
||
"\n",
|
||
"\n",
|
||
"# Generate DISARM datasets\n",
|
||
"disarm = Disarm()\n",
|
||
"\n",
|
||
"# Check which disarm variables we can see from here\n",
|
||
"print('{}'.format(vars(disarm).keys()))\n",
|
||
"vars(disarm)['cross_counterid_techniqueid']"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 3,
|
||
"metadata": {
|
||
"scrolled": true
|
||
},
|
||
"outputs": [
|
||
{
|
||
"ename": "AttributeError",
|
||
"evalue": "'Disarm' object has no attribute 'cross_counterid_actorid'",
|
||
"output_type": "error",
|
||
"traceback": [
|
||
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
|
||
"\u001b[0;31mAttributeError\u001b[0m Traceback (most recent call last)",
|
||
"\u001b[0;32m<ipython-input-3-a759352bb03c>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mdisarm\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcross_counterid_actorid\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
|
||
"\u001b[0;31mAttributeError\u001b[0m: 'Disarm' object has no attribute 'cross_counterid_actorid'"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"disarm.cross_counterid_actorid"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 4,
|
||
"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>technique_id</th>\n",
|
||
" <th>Weight</th>\n",
|
||
" </tr>\n",
|
||
" </thead>\n",
|
||
" <tbody>\n",
|
||
" <tr>\n",
|
||
" <th>0</th>\n",
|
||
" <td>C00006</td>\n",
|
||
" <td>T0007</td>\n",
|
||
" <td>1</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>0</th>\n",
|
||
" <td>C00006</td>\n",
|
||
" <td>T0015</td>\n",
|
||
" <td>1</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>0</th>\n",
|
||
" <td>C00006</td>\n",
|
||
" <td>T0018</td>\n",
|
||
" <td>1</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>0</th>\n",
|
||
" <td>C00006</td>\n",
|
||
" <td>T0043</td>\n",
|
||
" <td>1</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>0</th>\n",
|
||
" <td>C00006</td>\n",
|
||
" <td>T0053</td>\n",
|
||
" <td>1</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>...</th>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>134</th>\n",
|
||
" <td>C00216</td>\n",
|
||
" <td>T0018</td>\n",
|
||
" <td>1</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>134</th>\n",
|
||
" <td>C00216</td>\n",
|
||
" <td>T0057</td>\n",
|
||
" <td>1</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>135</th>\n",
|
||
" <td>C00219</td>\n",
|
||
" <td>T0024</td>\n",
|
||
" <td>1</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>135</th>\n",
|
||
" <td>C00219</td>\n",
|
||
" <td>T0026</td>\n",
|
||
" <td>1</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>135</th>\n",
|
||
" <td>C00219</td>\n",
|
||
" <td>T0025</td>\n",
|
||
" <td>1</td>\n",
|
||
" </tr>\n",
|
||
" </tbody>\n",
|
||
"</table>\n",
|
||
"<p>881 rows × 3 columns</p>\n",
|
||
"</div>"
|
||
],
|
||
"text/plain": [
|
||
" disarm_id technique_id Weight\n",
|
||
"0 C00006 T0007 1\n",
|
||
"0 C00006 T0015 1\n",
|
||
"0 C00006 T0018 1\n",
|
||
"0 C00006 T0043 1\n",
|
||
"0 C00006 T0053 1\n",
|
||
".. ... ... ...\n",
|
||
"134 C00216 T0018 1\n",
|
||
"134 C00216 T0057 1\n",
|
||
"135 C00219 T0024 1\n",
|
||
"135 C00219 T0026 1\n",
|
||
"135 C00219 T0025 1\n",
|
||
"\n",
|
||
"[881 rows x 3 columns]"
|
||
]
|
||
},
|
||
"execution_count": 4,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
}
|
||
],
|
||
"source": [
|
||
"ct = disarm.cross_counterid_techniqueid\n",
|
||
"ct['Weight'] = 1\n",
|
||
"ct = ct[ct['technique_id'].str.len() > 0]\n",
|
||
"ct.to_csv('../visualisations/cross_counterid_techniqueid.csv', index=False, header=['Source','Target', 'Weight'])\n",
|
||
"ct"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 5,
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"dict_keys(['df_phases', 'df_frameworks', 'df_techniques', 'df_tasks', 'df_incidents', 'df_externalgroups', 'df_tools', 'df_examples', 'df_counters', 'df_detections', 'df_actortypes', 'df_resources', 'df_responsetypes', 'df_metatechniques', 'it', 'df_tactics', 'df_playbooks', 'df_techniques_per_tactic', 'df_counters_per_tactic', 'phases', 'tactics', 'techniques', 'counters', 'metatechniques', 'actortypes', 'resources', 'num_tactics', 'cross_counterid_techniqueid', 'cross_counterid_resourceid', 'cross_counterid_actortypeid', 'cross_detectionid_techniqueid', 'cross_detectionid_resourceid', 'cross_detectionid_actortypeid'])\n",
|
||
"\n",
|
||
"it columns: Index(['disarm_id', 'name', 'summary', 'disarm_id_incident', 'name_incident',\n",
|
||
" 'disarm_id_technique', 'name_technique'],\n",
|
||
" dtype='object')\n"
|
||
]
|
||
},
|
||
{
|
||
"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</th>\n",
|
||
" <th>summary</th>\n",
|
||
" <th>disarm_id_incident</th>\n",
|
||
" <th>name_incident</th>\n",
|
||
" <th>disarm_id_technique</th>\n",
|
||
" <th>name_technique</th>\n",
|
||
" </tr>\n",
|
||
" </thead>\n",
|
||
" <tbody>\n",
|
||
" <tr>\n",
|
||
" <th>0</th>\n",
|
||
" <td>IT00000001</td>\n",
|
||
" <td>buy FB targeted ads</td>\n",
|
||
" <td></td>\n",
|
||
" <td>I00002</td>\n",
|
||
" <td>#VaccinateUS</td>\n",
|
||
" <td>T0018</td>\n",
|
||
" <td>Purchase advertisements</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>1</th>\n",
|
||
" <td>IT00000010</td>\n",
|
||
" <td>Targeted FB paid ads</td>\n",
|
||
" <td></td>\n",
|
||
" <td>I00005</td>\n",
|
||
" <td>Brexit vote</td>\n",
|
||
" <td>T0018</td>\n",
|
||
" <td>Purchase advertisements</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>2</th>\n",
|
||
" <td>IT00000057</td>\n",
|
||
" <td>Targeted FB paid ads</td>\n",
|
||
" <td></td>\n",
|
||
" <td>I00017</td>\n",
|
||
" <td>US presidential elections</td>\n",
|
||
" <td>T0018</td>\n",
|
||
" <td>Purchase advertisements</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>3</th>\n",
|
||
" <td>IT00000002</td>\n",
|
||
" <td>Promote \"funding\" campaign</td>\n",
|
||
" <td></td>\n",
|
||
" <td>I00002</td>\n",
|
||
" <td>#VaccinateUS</td>\n",
|
||
" <td>T0017</td>\n",
|
||
" <td>Conduct Fundraising Campaigns</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>4</th>\n",
|
||
" <td>IT00000003</td>\n",
|
||
" <td>create web-site - information pollution</td>\n",
|
||
" <td></td>\n",
|
||
" <td>I00002</td>\n",
|
||
" <td>#VaccinateUS</td>\n",
|
||
" <td>T0019</td>\n",
|
||
" <td>Generate information pollution</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>...</th>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>181</th>\n",
|
||
" <td>IT00000127</td>\n",
|
||
" <td>Promote fake “experts” with impressive (and sc...</td>\n",
|
||
" <td></td>\n",
|
||
" <td>I00044</td>\n",
|
||
" <td>JadeHelm exercise</td>\n",
|
||
" <td>T0009</td>\n",
|
||
" <td>Create fake experts</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>182</th>\n",
|
||
" <td>IT00000130</td>\n",
|
||
" <td>(Distort) Kremlin-controlled RT cited Russian ...</td>\n",
|
||
" <td></td>\n",
|
||
" <td>I00047</td>\n",
|
||
" <td>Sea of Azov</td>\n",
|
||
" <td>T0023</td>\n",
|
||
" <td>Distort facts</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>183</th>\n",
|
||
" <td>IT00000163</td>\n",
|
||
" <td>Distorted, saccharine “news” about the Chinese...</td>\n",
|
||
" <td></td>\n",
|
||
" <td>I00053</td>\n",
|
||
" <td>China Huawei CFO Arrest</td>\n",
|
||
" <td>T0023</td>\n",
|
||
" <td>Distort facts</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>184</th>\n",
|
||
" <td>IT00000174</td>\n",
|
||
" <td>Memes... anti-Isreal/USA/West, conspiracy narr...</td>\n",
|
||
" <td></td>\n",
|
||
" <td>I00056</td>\n",
|
||
" <td>Iran Influence Operations</td>\n",
|
||
" <td>T0022</td>\n",
|
||
" <td>Conspiracy narratives</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>185</th>\n",
|
||
" <td>IT00000175</td>\n",
|
||
" <td>Fake news/synthetic web-sites</td>\n",
|
||
" <td></td>\n",
|
||
" <td>I00056</td>\n",
|
||
" <td>Iran Influence Operations</td>\n",
|
||
" <td>T0008</td>\n",
|
||
" <td>Create fake or imposter news sites</td>\n",
|
||
" </tr>\n",
|
||
" </tbody>\n",
|
||
"</table>\n",
|
||
"<p>186 rows × 7 columns</p>\n",
|
||
"</div>"
|
||
],
|
||
"text/plain": [
|
||
" disarm_id name summary \\\n",
|
||
"0 IT00000001 buy FB targeted ads \n",
|
||
"1 IT00000010 Targeted FB paid ads \n",
|
||
"2 IT00000057 Targeted FB paid ads \n",
|
||
"3 IT00000002 Promote \"funding\" campaign \n",
|
||
"4 IT00000003 create web-site - information pollution \n",
|
||
".. ... ... ... \n",
|
||
"181 IT00000127 Promote fake “experts” with impressive (and sc... \n",
|
||
"182 IT00000130 (Distort) Kremlin-controlled RT cited Russian ... \n",
|
||
"183 IT00000163 Distorted, saccharine “news” about the Chinese... \n",
|
||
"184 IT00000174 Memes... anti-Isreal/USA/West, conspiracy narr... \n",
|
||
"185 IT00000175 Fake news/synthetic web-sites \n",
|
||
"\n",
|
||
" disarm_id_incident name_incident disarm_id_technique \\\n",
|
||
"0 I00002 #VaccinateUS T0018 \n",
|
||
"1 I00005 Brexit vote T0018 \n",
|
||
"2 I00017 US presidential elections T0018 \n",
|
||
"3 I00002 #VaccinateUS T0017 \n",
|
||
"4 I00002 #VaccinateUS T0019 \n",
|
||
".. ... ... ... \n",
|
||
"181 I00044 JadeHelm exercise T0009 \n",
|
||
"182 I00047 Sea of Azov T0023 \n",
|
||
"183 I00053 China Huawei CFO Arrest T0023 \n",
|
||
"184 I00056 Iran Influence Operations T0022 \n",
|
||
"185 I00056 Iran Influence Operations T0008 \n",
|
||
"\n",
|
||
" name_technique \n",
|
||
"0 Purchase advertisements \n",
|
||
"1 Purchase advertisements \n",
|
||
"2 Purchase advertisements \n",
|
||
"3 Conduct Fundraising Campaigns \n",
|
||
"4 Generate information pollution \n",
|
||
".. ... \n",
|
||
"181 Create fake experts \n",
|
||
"182 Distort facts \n",
|
||
"183 Distort facts \n",
|
||
"184 Conspiracy narratives \n",
|
||
"185 Create fake or imposter news sites \n",
|
||
"\n",
|
||
"[186 rows x 7 columns]"
|
||
]
|
||
},
|
||
"execution_count": 5,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
}
|
||
],
|
||
"source": [
|
||
"# Check which disarm variables we can see from here\n",
|
||
"print('{}\\n'.format(vars(disarm).keys()))\n",
|
||
"testdfname = 'it'\n",
|
||
"testdf = vars(disarm)[testdfname]\n",
|
||
"print('{} columns: {}'.format(testdfname, testdf.columns))\n",
|
||
"testdf"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 6,
|
||
"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</th>\n",
|
||
" <th>summary</th>\n",
|
||
" <th>incident_id</th>\n",
|
||
" <th>technique_id</th>\n",
|
||
" </tr>\n",
|
||
" </thead>\n",
|
||
" <tbody>\n",
|
||
" <tr>\n",
|
||
" <th>0</th>\n",
|
||
" <td>IT00000001</td>\n",
|
||
" <td>buy FB targeted ads</td>\n",
|
||
" <td></td>\n",
|
||
" <td>I00002</td>\n",
|
||
" <td>T0018</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>1</th>\n",
|
||
" <td>IT00000010</td>\n",
|
||
" <td>Targeted FB paid ads</td>\n",
|
||
" <td></td>\n",
|
||
" <td>I00005</td>\n",
|
||
" <td>T0018</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>2</th>\n",
|
||
" <td>IT00000057</td>\n",
|
||
" <td>Targeted FB paid ads</td>\n",
|
||
" <td></td>\n",
|
||
" <td>I00017</td>\n",
|
||
" <td>T0018</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>3</th>\n",
|
||
" <td>IT00000002</td>\n",
|
||
" <td>Promote \"funding\" campaign</td>\n",
|
||
" <td></td>\n",
|
||
" <td>I00002</td>\n",
|
||
" <td>T0017</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>4</th>\n",
|
||
" <td>IT00000003</td>\n",
|
||
" <td>create web-site - information pollution</td>\n",
|
||
" <td></td>\n",
|
||
" <td>I00002</td>\n",
|
||
" <td>T0019</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>...</th>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>181</th>\n",
|
||
" <td>IT00000127</td>\n",
|
||
" <td>Promote fake “experts” with impressive (and sc...</td>\n",
|
||
" <td></td>\n",
|
||
" <td>I00044</td>\n",
|
||
" <td>T0009</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>182</th>\n",
|
||
" <td>IT00000130</td>\n",
|
||
" <td>(Distort) Kremlin-controlled RT cited Russian ...</td>\n",
|
||
" <td></td>\n",
|
||
" <td>I00047</td>\n",
|
||
" <td>T0023</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>183</th>\n",
|
||
" <td>IT00000163</td>\n",
|
||
" <td>Distorted, saccharine “news” about the Chinese...</td>\n",
|
||
" <td></td>\n",
|
||
" <td>I00053</td>\n",
|
||
" <td>T0023</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>184</th>\n",
|
||
" <td>IT00000174</td>\n",
|
||
" <td>Memes... anti-Isreal/USA/West, conspiracy narr...</td>\n",
|
||
" <td></td>\n",
|
||
" <td>I00056</td>\n",
|
||
" <td>T0022</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>185</th>\n",
|
||
" <td>IT00000175</td>\n",
|
||
" <td>Fake news/synthetic web-sites</td>\n",
|
||
" <td></td>\n",
|
||
" <td>I00056</td>\n",
|
||
" <td>T0008</td>\n",
|
||
" </tr>\n",
|
||
" </tbody>\n",
|
||
"</table>\n",
|
||
"<p>186 rows × 5 columns</p>\n",
|
||
"</div>"
|
||
],
|
||
"text/plain": [
|
||
" disarm_id name summary \\\n",
|
||
"0 IT00000001 buy FB targeted ads \n",
|
||
"1 IT00000010 Targeted FB paid ads \n",
|
||
"2 IT00000057 Targeted FB paid ads \n",
|
||
"3 IT00000002 Promote \"funding\" campaign \n",
|
||
"4 IT00000003 create web-site - information pollution \n",
|
||
".. ... ... ... \n",
|
||
"181 IT00000127 Promote fake “experts” with impressive (and sc... \n",
|
||
"182 IT00000130 (Distort) Kremlin-controlled RT cited Russian ... \n",
|
||
"183 IT00000163 Distorted, saccharine “news” about the Chinese... \n",
|
||
"184 IT00000174 Memes... anti-Isreal/USA/West, conspiracy narr... \n",
|
||
"185 IT00000175 Fake news/synthetic web-sites \n",
|
||
"\n",
|
||
" incident_id technique_id \n",
|
||
"0 I00002 T0018 \n",
|
||
"1 I00005 T0018 \n",
|
||
"2 I00017 T0018 \n",
|
||
"3 I00002 T0017 \n",
|
||
"4 I00002 T0019 \n",
|
||
".. ... ... \n",
|
||
"181 I00044 T0009 \n",
|
||
"182 I00047 T0023 \n",
|
||
"183 I00053 T0023 \n",
|
||
"184 I00056 T0022 \n",
|
||
"185 I00056 T0008 \n",
|
||
"\n",
|
||
"[186 rows x 5 columns]"
|
||
]
|
||
},
|
||
"execution_count": 6,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
}
|
||
],
|
||
"source": [
|
||
"it = vars(disarm)['it'][['disarm_id', 'name', 'summary', 'disarm_id_incident', 'disarm_id_technique']].copy()\n",
|
||
"it.rename(columns={'disarm_id_incident':'incident_id', \n",
|
||
" 'disarm_id_technique': 'technique_id'}, inplace=True)\n",
|
||
"it"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 7,
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"text/plain": [
|
||
"incident 44\n",
|
||
"campaign 16\n",
|
||
"apt 2\n",
|
||
"tactic 1\n",
|
||
"Name: objecttype, dtype: int64"
|
||
]
|
||
},
|
||
"execution_count": 7,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
}
|
||
],
|
||
"source": [
|
||
"dii = vars(disarm)['df_incidents']\n",
|
||
"dii['objecttype'].value_counts()"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 8,
|
||
"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</th>\n",
|
||
" <th>objecttype</th>\n",
|
||
" <th>summary</th>\n",
|
||
" <th>year_started</th>\n",
|
||
" <th>attributions_seen</th>\n",
|
||
" <th>found_in_country</th>\n",
|
||
" <th>urls</th>\n",
|
||
" <th>notes</th>\n",
|
||
" <th>when_added</th>\n",
|
||
" <th>found_via</th>\n",
|
||
" <th>longname</th>\n",
|
||
" </tr>\n",
|
||
" </thead>\n",
|
||
" <tbody>\n",
|
||
" <tr>\n",
|
||
" <th>30</th>\n",
|
||
" <td>I00031</td>\n",
|
||
" <td>antivax</td>\n",
|
||
" <td>apt</td>\n",
|
||
" <td></td>\n",
|
||
" <td>2018</td>\n",
|
||
" <td>Russia</td>\n",
|
||
" <td>World</td>\n",
|
||
" <td>https://ajph.aphapublications.org/doi/pdf/10.2...</td>\n",
|
||
" <td></td>\n",
|
||
" <td>2019-02-24</td>\n",
|
||
" <td>OII</td>\n",
|
||
" <td>I00031 - antivax</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>32</th>\n",
|
||
" <td>I00033</td>\n",
|
||
" <td>China 50cent Army</td>\n",
|
||
" <td>apt</td>\n",
|
||
" <td>50cent Army is a CCP “tool” - “massive secret ...</td>\n",
|
||
" <td>2014</td>\n",
|
||
" <td>China</td>\n",
|
||
" <td>China</td>\n",
|
||
" <td>https://gking.harvard.edu/files/gking/files/ho...</td>\n",
|
||
" <td>campaign (multiple incidents, e.g. Shanshan ri...</td>\n",
|
||
" <td>2019-02-24</td>\n",
|
||
" <td>OII</td>\n",
|
||
" <td>I00033 - China 50cent Army</td>\n",
|
||
" </tr>\n",
|
||
" </tbody>\n",
|
||
"</table>\n",
|
||
"</div>"
|
||
],
|
||
"text/plain": [
|
||
" disarm_id name objecttype \\\n",
|
||
"30 I00031 antivax apt \n",
|
||
"32 I00033 China 50cent Army apt \n",
|
||
"\n",
|
||
" summary year_started \\\n",
|
||
"30 2018 \n",
|
||
"32 50cent Army is a CCP “tool” - “massive secret ... 2014 \n",
|
||
"\n",
|
||
" attributions_seen found_in_country \\\n",
|
||
"30 Russia World \n",
|
||
"32 China China \n",
|
||
"\n",
|
||
" urls \\\n",
|
||
"30 https://ajph.aphapublications.org/doi/pdf/10.2... \n",
|
||
"32 https://gking.harvard.edu/files/gking/files/ho... \n",
|
||
"\n",
|
||
" notes when_added found_via \\\n",
|
||
"30 2019-02-24 OII \n",
|
||
"32 campaign (multiple incidents, e.g. Shanshan ri... 2019-02-24 OII \n",
|
||
"\n",
|
||
" longname \n",
|
||
"30 I00031 - antivax \n",
|
||
"32 I00033 - China 50cent Army "
|
||
]
|
||
},
|
||
"execution_count": 8,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
}
|
||
],
|
||
"source": [
|
||
"dii[dii['objecttype'] == 'apt']"
|
||
]
|
||
},
|
||
{
|
||
"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</th>\n",
|
||
" <th>name_DE</th>\n",
|
||
" <th>tactic_id</th>\n",
|
||
" <th>summary</th>\n",
|
||
" <th>summary_DE</th>\n",
|
||
" <th>longname</th>\n",
|
||
" </tr>\n",
|
||
" </thead>\n",
|
||
" <tbody>\n",
|
||
" <tr>\n",
|
||
" <th>0</th>\n",
|
||
" <td>T0001</td>\n",
|
||
" <td>5Ds (dismiss, distort, distract, dismay, divide)</td>\n",
|
||
" <td></td>\n",
|
||
" <td>TA01</td>\n",
|
||
" <td>Nimmo's \"4Ds of propaganda\": dismiss, distort,...</td>\n",
|
||
" <td></td>\n",
|
||
" <td>T0001 - 5Ds (dismiss, distort, distract, disma...</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>1</th>\n",
|
||
" <td>T0002</td>\n",
|
||
" <td>Facilitate State Propaganda</td>\n",
|
||
" <td></td>\n",
|
||
" <td>TA01</td>\n",
|
||
" <td>Organize citizens around pro-state messaging. ...</td>\n",
|
||
" <td></td>\n",
|
||
" <td>T0002 - Facilitate State Propaganda</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>2</th>\n",
|
||
" <td>T0003</td>\n",
|
||
" <td>Leverage Existing Narratives</td>\n",
|
||
" <td></td>\n",
|
||
" <td>TA01</td>\n",
|
||
" <td>Use or adapt existing narrative themes, where ...</td>\n",
|
||
" <td></td>\n",
|
||
" <td>T0003 - Leverage Existing Narratives</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>3</th>\n",
|
||
" <td>T0004</td>\n",
|
||
" <td>Devise Competing Narratives</td>\n",
|
||
" <td></td>\n",
|
||
" <td>TA01</td>\n",
|
||
" <td>Advance competing narratives connected to same...</td>\n",
|
||
" <td></td>\n",
|
||
" <td>T0004 - Devise Competing Narratives</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>4</th>\n",
|
||
" <td>T0006</td>\n",
|
||
" <td>Develop Narrative Concepts</td>\n",
|
||
" <td></td>\n",
|
||
" <td>TA02</td>\n",
|
||
" <td>The promotion of beneficial master narratives ...</td>\n",
|
||
" <td></td>\n",
|
||
" <td>T0006 - Develop Narrative Concepts</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>...</th>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>66</th>\n",
|
||
" <td>T0068</td>\n",
|
||
" <td>Respond to breaking news event</td>\n",
|
||
" <td></td>\n",
|
||
" <td>TA02</td>\n",
|
||
" <td>Media attention on a story or event is heighte...</td>\n",
|
||
" <td></td>\n",
|
||
" <td>T0068 - Respond to breaking news event</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>67</th>\n",
|
||
" <td>T0069</td>\n",
|
||
" <td>Respond to active crisis</td>\n",
|
||
" <td></td>\n",
|
||
" <td>TA02</td>\n",
|
||
" <td>Panic, rumors, and speculation are heightened ...</td>\n",
|
||
" <td></td>\n",
|
||
" <td>T0069 - Respond to active crisis</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>68</th>\n",
|
||
" <td>T0070</td>\n",
|
||
" <td>Analyze existing communities</td>\n",
|
||
" <td></td>\n",
|
||
" <td>TA02</td>\n",
|
||
" <td>Assess influence operation potential of existi...</td>\n",
|
||
" <td></td>\n",
|
||
" <td>T0070 - Analyze existing communities</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>69</th>\n",
|
||
" <td>T0071</td>\n",
|
||
" <td>Find echo chambers</td>\n",
|
||
" <td></td>\n",
|
||
" <td>TA13</td>\n",
|
||
" <td>Find or plan to create areas (social media gro...</td>\n",
|
||
" <td></td>\n",
|
||
" <td>T0071 - Find echo chambers</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>70</th>\n",
|
||
" <td>T0072</td>\n",
|
||
" <td>Segment audiences</td>\n",
|
||
" <td></td>\n",
|
||
" <td>TA13</td>\n",
|
||
" <td>Create audience segmentations by features of i...</td>\n",
|
||
" <td></td>\n",
|
||
" <td>T0072 - Segment audiences</td>\n",
|
||
" </tr>\n",
|
||
" </tbody>\n",
|
||
"</table>\n",
|
||
"<p>71 rows × 7 columns</p>\n",
|
||
"</div>"
|
||
],
|
||
"text/plain": [
|
||
" disarm_id name name_DE \\\n",
|
||
"0 T0001 5Ds (dismiss, distort, distract, dismay, divide) \n",
|
||
"1 T0002 Facilitate State Propaganda \n",
|
||
"2 T0003 Leverage Existing Narratives \n",
|
||
"3 T0004 Devise Competing Narratives \n",
|
||
"4 T0006 Develop Narrative Concepts \n",
|
||
".. ... ... ... \n",
|
||
"66 T0068 Respond to breaking news event \n",
|
||
"67 T0069 Respond to active crisis \n",
|
||
"68 T0070 Analyze existing communities \n",
|
||
"69 T0071 Find echo chambers \n",
|
||
"70 T0072 Segment audiences \n",
|
||
"\n",
|
||
" tactic_id summary summary_DE \\\n",
|
||
"0 TA01 Nimmo's \"4Ds of propaganda\": dismiss, distort,... \n",
|
||
"1 TA01 Organize citizens around pro-state messaging. ... \n",
|
||
"2 TA01 Use or adapt existing narrative themes, where ... \n",
|
||
"3 TA01 Advance competing narratives connected to same... \n",
|
||
"4 TA02 The promotion of beneficial master narratives ... \n",
|
||
".. ... ... ... \n",
|
||
"66 TA02 Media attention on a story or event is heighte... \n",
|
||
"67 TA02 Panic, rumors, and speculation are heightened ... \n",
|
||
"68 TA02 Assess influence operation potential of existi... \n",
|
||
"69 TA13 Find or plan to create areas (social media gro... \n",
|
||
"70 TA13 Create audience segmentations by features of i... \n",
|
||
"\n",
|
||
" longname \n",
|
||
"0 T0001 - 5Ds (dismiss, distort, distract, disma... \n",
|
||
"1 T0002 - Facilitate State Propaganda \n",
|
||
"2 T0003 - Leverage Existing Narratives \n",
|
||
"3 T0004 - Devise Competing Narratives \n",
|
||
"4 T0006 - Develop Narrative Concepts \n",
|
||
".. ... \n",
|
||
"66 T0068 - Respond to breaking news event \n",
|
||
"67 T0069 - Respond to active crisis \n",
|
||
"68 T0070 - Analyze existing communities \n",
|
||
"69 T0071 - Find echo chambers \n",
|
||
"70 T0072 - Segment audiences \n",
|
||
"\n",
|
||
"[71 rows x 7 columns]"
|
||
]
|
||
},
|
||
"execution_count": 9,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
}
|
||
],
|
||
"source": [
|
||
"dii = vars(disarm)['df_techniques']\n",
|
||
"dii"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 10,
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"text/plain": [
|
||
"[['TA01',\n",
|
||
" 'TA02',\n",
|
||
" 'TA03',\n",
|
||
" 'TA04',\n",
|
||
" 'TA05',\n",
|
||
" 'TA06',\n",
|
||
" 'TA07',\n",
|
||
" 'TA08',\n",
|
||
" 'TA09',\n",
|
||
" 'TA10',\n",
|
||
" 'TA11',\n",
|
||
" 'TA12',\n",
|
||
" 'TA13'],\n",
|
||
" ['T0001',\n",
|
||
" 'T0006',\n",
|
||
" 'T0007',\n",
|
||
" 'T0010',\n",
|
||
" 'T0016',\n",
|
||
" 'T0019',\n",
|
||
" 'T0029',\n",
|
||
" 'T0039',\n",
|
||
" 'T0047',\n",
|
||
" 'T0057',\n",
|
||
" 'T0058',\n",
|
||
" 'T0062',\n",
|
||
" 'T0071'],\n",
|
||
" ['T0002',\n",
|
||
" 'T0066',\n",
|
||
" 'T0008',\n",
|
||
" 'T0011',\n",
|
||
" 'T0017',\n",
|
||
" 'T0020',\n",
|
||
" 'T0030',\n",
|
||
" 'T0040',\n",
|
||
" 'T0048',\n",
|
||
" 'T0061',\n",
|
||
" 'T0059',\n",
|
||
" 'T0063',\n",
|
||
" 'T0072'],\n",
|
||
" ['T0003',\n",
|
||
" 'T0067',\n",
|
||
" 'T0009',\n",
|
||
" 'T0012',\n",
|
||
" 'T0018',\n",
|
||
" 'T0021',\n",
|
||
" 'T0031',\n",
|
||
" 'T0041',\n",
|
||
" 'T0049',\n",
|
||
" '',\n",
|
||
" 'T0060',\n",
|
||
" 'T0064',\n",
|
||
" ''],\n",
|
||
" ['T0004',\n",
|
||
" 'T0068',\n",
|
||
" '',\n",
|
||
" 'T0013',\n",
|
||
" '',\n",
|
||
" 'T0022',\n",
|
||
" 'T0032',\n",
|
||
" 'T0042',\n",
|
||
" 'T0050',\n",
|
||
" '',\n",
|
||
" '',\n",
|
||
" '',\n",
|
||
" ''],\n",
|
||
" ['',\n",
|
||
" 'T0069',\n",
|
||
" '',\n",
|
||
" 'T0014',\n",
|
||
" '',\n",
|
||
" 'T0023',\n",
|
||
" 'T0033',\n",
|
||
" 'T0043',\n",
|
||
" 'T0051',\n",
|
||
" '',\n",
|
||
" '',\n",
|
||
" '',\n",
|
||
" ''],\n",
|
||
" ['',\n",
|
||
" 'T0070',\n",
|
||
" '',\n",
|
||
" 'T0015',\n",
|
||
" '',\n",
|
||
" 'T0024',\n",
|
||
" 'T0034',\n",
|
||
" 'T0044',\n",
|
||
" 'T0052',\n",
|
||
" '',\n",
|
||
" '',\n",
|
||
" '',\n",
|
||
" ''],\n",
|
||
" ['', '', '', 'T0065', '', 'T0025', 'T0035', 'T0045', 'T0053', '', '', '', ''],\n",
|
||
" ['', '', '', '', '', 'T0026', 'T0036', 'T0046', 'T0054', '', '', '', ''],\n",
|
||
" ['', '', '', '', '', 'T0027', 'T0037', '', 'T0055', '', '', '', ''],\n",
|
||
" ['', '', '', '', '', 'T0028', 'T0038', '', 'T0056', '', '', '', '']]"
|
||
]
|
||
},
|
||
"execution_count": 10,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
}
|
||
],
|
||
"source": [
|
||
"# Generate arrays used to create D3 grids\n",
|
||
"dflists = dii.groupby('tactic_id')['disarm_id'].apply(list).reset_index()\n",
|
||
"dfidgrid = pd.DataFrame(dflists['disarm_id'].to_list())\n",
|
||
"dfgrid = pd.concat([dflists[['tactic_id']], dfidgrid], axis=1).fillna('')\n",
|
||
"gridarray = [dfgrid[col].to_list() for col in dfgrid.columns]\n",
|
||
"gridarray"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 11,
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"text/plain": [
|
||
"{'IT00000001': 'buy FB targeted ads',\n",
|
||
" 'IT00000010': 'Targeted FB paid ads',\n",
|
||
" 'IT00000057': 'Targeted FB paid ads',\n",
|
||
" 'IT00000002': 'Promote \"funding\" campaign',\n",
|
||
" 'IT00000003': 'create web-site - information pollution',\n",
|
||
" 'IT00000014': 'RT & Sputnik generate information pollution',\n",
|
||
" 'IT00000031': 'RT & Sputnik generate information pollution (report an unreported false story/event)',\n",
|
||
" 'IT00000037': 'RT & Sputnik generate information pollution ',\n",
|
||
" 'IT00000061': 'RT & Sputnik generate information pollution',\n",
|
||
" 'IT00000082': 'RT & Sputnik generate information pollution (synthetic media)',\n",
|
||
" 'IT00000094': 'RT & Sputnik generate information pollution',\n",
|
||
" 'IT00000120': 'RT & Sputnik generate information pollution',\n",
|
||
" 'IT00000137': 'RT & Sputnik generate information pollution (synthetic media)',\n",
|
||
" 'IT00000146': 'RT & Sputnik generate information pollution (synthetic media)',\n",
|
||
" 'IT00000156': 'RT & Sputnik generate information pollution',\n",
|
||
" 'IT00000180': 'RT & Sputnik generate information pollution (synthetic media)',\n",
|
||
" 'IT00000004': 'create web-site - information pollution',\n",
|
||
" 'IT00000015': 'RT & Sputnik generate information pollution',\n",
|
||
" 'IT00000032': 'RT & Sputnik generate information pollution (report an unreported false story/event)',\n",
|
||
" 'IT00000038': 'RT & Sputnik generate information pollution ',\n",
|
||
" 'IT00000062': 'RT & Sputnik generate information pollution',\n",
|
||
" 'IT00000083': 'RT & Sputnik generate information pollution (synthetic media)',\n",
|
||
" 'IT00000095': 'RT & Sputnik generate information pollution',\n",
|
||
" 'IT00000121': 'RT & Sputnik generate information pollution',\n",
|
||
" 'IT00000138': 'RT & Sputnik generate information pollution (synthetic media)',\n",
|
||
" 'IT00000147': 'RT & Sputnik generate information pollution (synthetic media)',\n",
|
||
" 'IT00000157': 'RT & Sputnik generate information pollution',\n",
|
||
" 'IT00000162': 'State-run media seeds foreign influence environment',\n",
|
||
" 'IT00000181': 'RT & Sputnik generate information pollution (synthetic media)',\n",
|
||
" 'IT00000005': 'SEO optimisation/manipulation (\"key words\")',\n",
|
||
" 'IT00000022': 'SEO optimisation/manipulation (\"key words\")',\n",
|
||
" 'IT00000043': 'SEO optimisation/manipulation (\"key words\")',\n",
|
||
" 'IT00000071': 'SEO optimisation/manipulation (\"key words\")',\n",
|
||
" 'IT00000085': 'SEO optimisation/manipulation (\"key words\")',\n",
|
||
" 'IT00000103': 'SEO optimisation/manipulation (\"key words\")',\n",
|
||
" 'IT00000125': 'SEO optimisation/manipulation (\"key words\")',\n",
|
||
" 'IT00000140': 'SEO optimisation/manipulation (\"key words\")',\n",
|
||
" 'IT00000149': 'SEO optimisation/manipulation (\"key words\")',\n",
|
||
" 'IT00000161': 'SEO optimisation/manipulation (\"key words\")',\n",
|
||
" 'IT00000172': 'SEO optimisation/manipulation (\"key words\")',\n",
|
||
" 'IT00000183': 'SEO optimisation/manipulation (\"key words\")',\n",
|
||
" 'IT00000006': 'legacy web content',\n",
|
||
" 'IT00000007': 'hard to remove content and/or campaign/exploit TOS',\n",
|
||
" 'IT00000176': 'legacy web content',\n",
|
||
" 'IT00000008': 'Twitter bots amplify & manipulate',\n",
|
||
" 'IT00000034': 'Twitter bots amplify & manipulate',\n",
|
||
" 'IT00000041': 'Twitter bots amplify & manipulate',\n",
|
||
" 'IT00000055': 'Twitter bots amplify & manipulate',\n",
|
||
" 'IT00000076': 'Twitter bots amplify & manipulate',\n",
|
||
" 'IT00000079': 'Twitter bots amplify & manipulate',\n",
|
||
" 'IT00000090': 'Twitter bots amplify & manipulate',\n",
|
||
" 'IT00000115': 'Twitter bots amplify & manipulate',\n",
|
||
" 'IT00000118': 'Twitter bots amplify & manipulate',\n",
|
||
" 'IT00000131': 'Twitter bots amplify & manipulate',\n",
|
||
" 'IT00000134': 'Twitter bots amplify & manipulate',\n",
|
||
" 'IT00000144': 'Twitter bots amplify & manipulate',\n",
|
||
" 'IT00000154': 'Twitter bots amplify & manipulate',\n",
|
||
" 'IT00000169': 'Twitter bots amplify & manipulate',\n",
|
||
" 'IT00000177': 'Twitter bots amplify & manipulate',\n",
|
||
" 'IT00000009': 'Twitter trolls amplify & manipulate',\n",
|
||
" 'IT00000035': 'Twitter trolls amplify & manipulate',\n",
|
||
" 'IT00000042': 'Twitter trolls amplify & manipulate',\n",
|
||
" 'IT00000056': 'Twitter trolls amplify & manipulate',\n",
|
||
" 'IT00000077': 'Twitter trolls amplify & manipulate',\n",
|
||
" 'IT00000080': 'Twitter trolls amplify & manipulate',\n",
|
||
" 'IT00000091': 'Twitter trolls amplify & manipulate',\n",
|
||
" 'IT00000119': 'Twitter trolls amplify & manipulate',\n",
|
||
" 'IT00000132': 'Twitter trolls amplify & manipulate',\n",
|
||
" 'IT00000135': 'Twitter trolls amplify & manipulate',\n",
|
||
" 'IT00000145': 'Twitter trolls amplify & manipulate',\n",
|
||
" 'IT00000155': 'Twitter trolls amplify & manipulate',\n",
|
||
" 'IT00000170': 'Twitter trolls amplify & manipulate',\n",
|
||
" 'IT00000178': 'Twitter trolls amplify & manipulate',\n",
|
||
" 'IT00000011': 'Fake FB groups + dark content',\n",
|
||
" 'IT00000029': 'Fake twitter profiles to amplify',\n",
|
||
" 'IT00000039': 'FB pages',\n",
|
||
" 'IT00000045': 'FB pages/groups/profiles',\n",
|
||
" 'IT00000058': 'Fake FB groups + dark content',\n",
|
||
" 'IT00000078': 'Fake FB groups/pages/profiles + dark content',\n",
|
||
" 'IT00000092': 'Fake FB groups/pages/profiles ',\n",
|
||
" 'IT00000171': 'Fake FB groups/pages/profiles + dark content (non-paid advertising)',\n",
|
||
" 'IT00000012': 'Digital to physical \"organize+promote\" rallies & events?',\n",
|
||
" 'IT00000059': 'Digital to physical \"organize+promote\" rallies & events',\n",
|
||
" 'IT00000093': 'Digital to physical \"organize+promote\" rallies & events?',\n",
|
||
" 'IT00000164': 'Events coordinated and promoted across media platforms',\n",
|
||
" 'IT00000166': 'Extend digital the physical space… gatherings ie: support for Meng outside courthouse',\n",
|
||
" 'IT00000013': 'manipulate social media \"online polls\"? ',\n",
|
||
" 'IT00000060': 'manipulate social media \"online polls\"? ',\n",
|
||
" 'IT00000016': 'cultivate, manipulate, exploit useful idiots',\n",
|
||
" 'IT00000033': 'cultivate, manipulate, exploit useful idiots (in the case Paul Manafort)',\n",
|
||
" 'IT00000044': 'cultivate, manipulate, exploit useful idiots (Alex Jones... drives conspiracy theories; false flags, crisis actors)',\n",
|
||
" 'IT00000063': 'cultivate, manipulate, exploit useful idiots',\n",
|
||
" 'IT00000084': 'cultivate, manipulate, exploit useful idiots',\n",
|
||
" 'IT00000104': 'cultivate, manipulate, exploit useful idiots (Alex Jones... drives conspiracy theories)',\n",
|
||
" 'IT00000126': 'cultivate, manipulate, exploit useful idiots (Alex Jones... drives conspiracy theories)',\n",
|
||
" 'IT00000139': 'cultivate, manipulate, exploit useful idiots (Roger Waters; Venessa Beeley...)',\n",
|
||
" 'IT00000148': 'cultivate, manipulate, exploit useful idiots (Roger Waters)',\n",
|
||
" 'IT00000158': 'cultivate, manipulate, exploit useful idiots',\n",
|
||
" 'IT00000182': 'cultivate, manipulate, exploit useful idiots ',\n",
|
||
" 'IT00000017': 'YouTube; Reddit; LinkedIn; Pinterest; WhatsApp?',\n",
|
||
" 'IT00000046': 'YouTube; Reddit',\n",
|
||
" 'IT00000064': 'YouTube; Reddit; (Instagram, LinkedIn; Pinterest; WhatsApp?)',\n",
|
||
" 'IT00000087': 'YouTube; Reddit; ',\n",
|
||
" 'IT00000096': 'YouTube; Reddit; (Instagram, LinkedIn; Pinterest; WhatsApp?)',\n",
|
||
" 'IT00000122': 'YouTube; Reddit',\n",
|
||
" 'IT00000142': 'YouTube; Reddit; ',\n",
|
||
" 'IT00000151': 'YouTube; Reddit; ',\n",
|
||
" 'IT00000159': 'YouTube; Reddit',\n",
|
||
" 'IT00000185': 'YouTube; Reddit; ',\n",
|
||
" 'IT00000018': 'YouTube; Reddit; LinkedIn; Pinterest; WhatsApp?',\n",
|
||
" 'IT00000047': 'YouTube; Reddit',\n",
|
||
" 'IT00000065': 'YouTube; Reddit; (Instagram, LinkedIn; Pinterest; WhatsApp?)',\n",
|
||
" 'IT00000088': 'YouTube; Reddit; ',\n",
|
||
" 'IT00000097': 'YouTube; Reddit; (Instagram, LinkedIn; Pinterest; WhatsApp?)',\n",
|
||
" 'IT00000123': 'YouTube; Reddit',\n",
|
||
" 'IT00000143': 'YouTube; Reddit; ',\n",
|
||
" 'IT00000152': 'YouTube; Reddit; ',\n",
|
||
" 'IT00000160': 'YouTube; Reddit',\n",
|
||
" 'IT00000186': 'YouTube; Reddit; ',\n",
|
||
" 'IT00000019': 'YouTube; Reddit; LinkedIn; Pinterest; WhatsApp?',\n",
|
||
" 'IT00000067': 'YouTube; Reddit; (Instagram, LinkedIn; Pinterest; WhatsApp?)',\n",
|
||
" 'IT00000099': 'YouTube; Reddit; (Instagram, LinkedIn; Pinterest; WhatsApp?)',\n",
|
||
" 'IT00000020': 'YouTube; Reddit; LinkedIn; Pinterest; WhatsApp?',\n",
|
||
" 'IT00000068': 'YouTube; Reddit; (Instagram, LinkedIn; Pinterest; WhatsApp?)',\n",
|
||
" 'IT00000100': 'YouTube; Reddit; (Instagram, LinkedIn; Pinterest; WhatsApp?)',\n",
|
||
" 'IT00000021': 'YouTube; Reddit; LinkedIn; Pinterest; WhatsApp?',\n",
|
||
" 'IT00000069': 'YouTube; Reddit; (Instagram, LinkedIn; Pinterest; WhatsApp?)',\n",
|
||
" 'IT00000101': 'YouTube; Reddit; (Instagram, LinkedIn; Pinterest; WhatsApp?)',\n",
|
||
" 'IT00000023': 'Memes... anti-immigration; euroskepticism; fear, outrage, conspiracy narratives',\n",
|
||
" 'IT00000072': 'Memes... anti-immigration; euroskepticism; fear, outrage, conspiracy narratives',\n",
|
||
" 'IT00000117': 'memes',\n",
|
||
" 'IT00000173': 'Memes... anti-Isreal/USA/West, conspiracy narratives',\n",
|
||
" 'IT00000024': 'Backstop personas',\n",
|
||
" 'IT00000074': 'Backstop personas',\n",
|
||
" 'IT00000025': 'Use SMS/text messages',\n",
|
||
" 'IT00000026': 'Fake video/images',\n",
|
||
" 'IT00000116': 'photoshopped/fake images',\n",
|
||
" 'IT00000027': 'Create and use hashtag',\n",
|
||
" 'IT00000028': 'Create and use hashtag',\n",
|
||
" 'IT00000030': 'bait journalists/media/politicians',\n",
|
||
" 'IT00000049': 'journalist/media baiting',\n",
|
||
" 'IT00000053': 'journalist/media baiting',\n",
|
||
" 'IT00000036': 'Using \"expert\"',\n",
|
||
" 'IT00000040': 'News circulated/amplifed by tertiary sites (Russia Insider, The Duran, Geopolitica.ru, Mint Press News, Oriental Review, globalresearch.ca)',\n",
|
||
" 'IT00000086': 'News circulated/amplifed by tertiary sites (Russia Insider, The Duran, Geopolitica.ru, Mint Press News, Oriental Review, globalresearch.ca)',\n",
|
||
" 'IT00000141': 'News circulated/amplifed by tertiary sites (Russia Insider, The Duran, Geopolitica.ru, Mint Press News, Oriental Review, globalresearch.ca)',\n",
|
||
" 'IT00000150': 'News circulated/amplifed by tertiary sites (Mint Press News, globalresearch.ca)',\n",
|
||
" 'IT00000184': 'News circulated/amplifed by tertiary sites (Russia Insider, The Duran, Geopolitica.ru, Mint Press News, Oriental Review, globalresearch.ca)',\n",
|
||
" 'IT00000048': '4Chan/8Chan - trial content',\n",
|
||
" 'IT00000070': '4Chan/8Chan - trial content',\n",
|
||
" 'IT00000102': '4Chan/8Chan - trial content',\n",
|
||
" 'IT00000124': '4Chan/8Chan - trial content',\n",
|
||
" 'IT00000050': \"Forge ('release' altered hacked documents)\",\n",
|
||
" 'IT00000051': 'hack/leak/manipulate/distort',\n",
|
||
" 'IT00000054': 'hack/leak/manipulate/distort',\n",
|
||
" 'IT00000075': 'hack/leak/manipulate/distort',\n",
|
||
" 'IT00000153': 'hack/leak/manipulate/distort',\n",
|
||
" 'IT00000052': 'Circulate to media via DM, then release publicly',\n",
|
||
" 'IT00000066': 'YouTube; Reddit; (Instagram, LinkedIn; Pinterest; WhatsApp?)',\n",
|
||
" 'IT00000098': 'YouTube; Reddit; (Instagram, LinkedIn; Pinterest; WhatsApp?)',\n",
|
||
" 'IT00000073': 'Click-bait (economic actors) fake news sites (ie: Denver Guardian; Macedonian teens)',\n",
|
||
" 'IT00000081': \"4 D's (dismiss, distort, distract, dismay...Official channels ie: Embassies & Defence Ministry; TASS\",\n",
|
||
" 'IT00000128': \"4 D's (dismiss, distort, distract, dismay...Official channels ie: Embassies & Defence Ministry; TASS\",\n",
|
||
" 'IT00000129': 'Russian FSB security service blamed Ukraine for sparking the clashes, saying their \"irrefutable\" evidence would \"soon be made public',\n",
|
||
" 'IT00000136': \"4 D's (dismiss, distort, distract, dismay...Official channels ie: Embassies & Defence Ministry; TASS\",\n",
|
||
" 'IT00000167': 'China also plays victim, innocence, plays by rules, misunderstood narrative',\n",
|
||
" 'IT00000168': 'Chinese ambassador Lu Shaye accused Canada of applying a double standard, and has decried what he sees as “Western egotism and white supremacy” in the treatment of detained Huawei executive Meng Wanzhou.” ',\n",
|
||
" 'IT00000179': \"4 D's (dismiss, distort, distract, dismay...Official channels ie: Putin himself; Embassies & Sports Ministry; TASS\",\n",
|
||
" 'IT00000089': 'Demand insurmountable proof',\n",
|
||
" 'IT00000133': 'Demand insurmountable proof',\n",
|
||
" 'IT00000105': '2,000,000 people (est.) part of state run/sponsored astroturfing',\n",
|
||
" 'IT00000112': 'flood the Facebook pages of Taiwanese politicians and news agencies with a pro-PRC message',\n",
|
||
" 'IT00000113': 'Democratic Progressive Party (DPP), attracted nearly 40,000 Facebook comments in just eight hours.',\n",
|
||
" 'IT00000106': 'fabricated social media comment',\n",
|
||
" 'IT00000107': 'domestic social media influence operations focus primarily on “cheerleading” or presenting or furthering a positive narrative about the Chinese state',\n",
|
||
" 'IT00000165': 'Extend digital the physical space… gatherings ie: support for Meng outside courthouse',\n",
|
||
" 'IT00000108': 'cow online opinion leaders into submission, muzzling social media as a political force',\n",
|
||
" 'IT00000109': 'cow online opinion leaders into submission, muzzling social media as a political force',\n",
|
||
" 'IT00000110': 'facilitate state propaganda and defuse crises',\n",
|
||
" 'IT00000111': 'Netizens from one of the largest discussion forums in China, known as Diba, coordinated to overcome China’s Great Firewall',\n",
|
||
" 'IT00000114': '“hack” of Qatar’s official news agency',\n",
|
||
" 'IT00000127': 'Promote fake “experts” with impressive (and scary) titles',\n",
|
||
" 'IT00000130': '(Distort) Kremlin-controlled RT cited Russian Minister of Foreign Affairs Sergei Lavrov suggesting that Ukraine deliberately provoked Russia in hopes of gaining additional support from the United States and Europe.',\n",
|
||
" 'IT00000163': 'Distorted, saccharine “news” about the Chinese State and Party',\n",
|
||
" 'IT00000174': 'Memes... anti-Isreal/USA/West, conspiracy narratives',\n",
|
||
" 'IT00000175': 'Fake news/synthetic web-sites'}"
|
||
]
|
||
},
|
||
"execution_count": 11,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
}
|
||
],
|
||
"source": [
|
||
"it.index = it.disarm_id\n",
|
||
"it[['name']].transpose().to_dict('records')[0]"
|
||
]
|
||
},
|
||
{
|
||
"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
|
||
}
|