DISARMframeworks/CODE/DISARM_code_testbed.ipynb
Sara-Jayne Terp c11e9d06ad Added EEAS framework objects and STIX generator
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.
2022-02-20 15:40:34 -05:00

1382 lines
55 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{
"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 Chinas Great Firewall',\n",
" 'IT00000114': '“hack” of Qatars 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
}