{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Create counters summaries\n", "Create summaries of disinfo countermeasures for use in dataset cleaning etc." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Writing ../tactics/ALcounters.md\n", "Writing ../tactics/TA01counters.md\n", "Writing ../tactics/TA02counters.md\n", "Writing ../tactics/TA03counters.md\n", "Writing ../tactics/TA04counters.md\n", "Writing ../tactics/TA05counters.md\n", "Writing ../tactics/TA06counters.md\n", "Writing ../tactics/TA07counters.md\n", "Writing ../tactics/TA08counters.md\n", "Writing ../tactics/TA09counters.md\n", "Writing ../tactics/TA09counters.md\n", "Writing ../tactics/TA10counters.md\n", "Writing ../tactics/TA11counters.md\n", "Writing ../tactics/TA12counters.md\n", "updated ../tactic_counts.md\n", "Writing ../metatag/cleaningcounters.md\n", "Writing ../metatag/countermessagingcounters.md\n", "Writing ../metatag/data pollutioncounters.md\n", "Writing ../metatag/daylightcounters.md\n", "Writing ../metatag/dilutioncounters.md\n", "Writing ../metatag/diversioncounters.md\n", "Writing ../metatag/frictioncounters.md\n", "Writing ../metatag/metatechniquecounters.md\n", "Writing ../metatag/reduce resourcescounters.md\n", "Writing ../metatag/removalcounters.md\n", "Writing ../metatag/resiliencecounters.md\n", "Writing ../metatag/scoringcounters.md\n", "Writing ../metatag/targetingcounters.md\n", "Writing ../metatag/verificationcounters.md\n", "updated ../metatag_counts.md\n" ] }, { "data": { "text/html": [ "
| \n", " | ID\n", " | metatechnique\n", " | Title\n", " | Details\n", " | Playbook(s)\n", " | Resources needed\n", " | How found\n", " | References\n", " | Incidents\n", " | Tactic\n", " | Response\n", " | Techniques\n", " | NOTES\n", " | 
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0\n", " | C00043\n", " | cleaning\n", " | Detect hijacked accounts and reallocate them\n", " | NaN\n", " | In all playbooks the platform must force user ...\n", " | platform_admin,activists,civil_society,money\n", " | 2019-11-workshop\n", " | NaN\n", " | NaN\n", " | TA03 Develop People\n", " | D3 Disrupt\n", " | T0011 - Hijack accounts\n", " | NaN\n", " | 
| 1\n", " | C00053\n", " | cleaning\n", " | Delete old accounts / Remove unused social med...\n", " | NaN\n", " | Social media companies remove inactive account...\n", " | platform_admin,platform_admin:socialmedia,publ...\n", " | 2019-11-workshop,2019-11-search\n", " | NaN\n", " | I00004\n", " | TA04 Develop Networks\n", " | D4 Degrade\n", " | T0011 - Hijack accounts\\nTA06 - Develop Conten...\n", " | NaN\n", " | 
| 2\n", " | C00074\n", " | cleaning\n", " | Identify identical content and mass deplatform\n", " | \\n\n", " | In all cases some checks need to prevent depla...\n", " | platform_admin,platform_admin:socialmedia\n", " | 2019-11-workshop\n", " | NaN\n", " | NaN\n", " | TA06 Develop Content\n", " | D2 Deny\n", " | T0022 - Conspiracy narratives\\nT0026 - Create ...\n", " | NaN\n", " | 
| 3\n", " | C00026\n", " | countermessaging\n", " | Shore up democracy based messages (peace, free...\n", " | Unsure\n", " | NaN\n", " | NaN\n", " | 2019-11-workshop\n", " | NaN\n", " | NaN\n", " | TA01 Strategic Planning\n", " | D4 Degrade\n", " | T0002 - Facilitate State Propaganda\n", " | NaN\n", " | 
| 4\n", " | C00082\n", " | countermessaging\n", " | Ground truthing as automated response to pollu...\n", " | NaN\n", " | NaN\n", " | NaN\n", " | 2019-11-workshop\n", " | NaN\n", " | NaN\n", " | TA06 Develop Content\n", " | D3 Disrupt\n", " | NaN\n", " | NaN\n", " | 
| 5\n", " | C00136\n", " | countermessaging\n", " | Microtarget most likely targets then send them...\n", " | NaN\n", " | Playbook 1: Work with platform to identify act...\n", " | NaN\n", " | 2019-11-workshop\n", " | NaN\n", " | NaN\n", " | TA11 Persistence\n", " | D3 Disrupt\n", " | TA08 - Pump Priming\\nTA09 - Exposure\\nTA10 - G...\n", " | NaN\n", " | 
| 6\n", " | C00169\n", " | countermessaging\n", " | develop a creative content hub\n", " | international donors will donate to a basket f...\n", " | NaN\n", " | NaN\n", " | 2019-11-search\n", " | Rand2237\n", " | NaN\n", " | TA09 - Exposure\n", " | D3 Disrupt\n", " | NaN\n", " | NaN\n", " | 
| 7\n", " | C00211\n", " | countermessaging\n", " | Use humorous counter-narratives\n", " | NaN\n", " | NaN\n", " | NaN\n", " | 2019-11-search\n", " | NaN\n", " | I00004\n", " | TA09 - Exposure\n", " | D3 Disrupt\n", " | NaN\n", " | NaN\n", " | 
| 8\n", " | C00137\n", " | data pollution\n", " | Pollute the AB-testing data feeds\n", " | Polluting A/B testing requires knowledge of MO...\n", " | Playbook 1: Promote damp squibs. Within a kno...\n", " | NaN\n", " | 2019-11-workshop\n", " | NaN\n", " | NaN\n", " | TA11 Persistence\n", " | D3 Disrupt\n", " | T0020 - Trial content\n", " | NaN\n", " | 
| 9\n", " | C00140\n", " | data pollution\n", " | \"Bomb\" link shorteners with lots of calls\n", " | Applies to most of the content used by exposur...\n", " | Playbook 1: DDoS adversary link shorteners by ...\n", " | NaN\n", " | 2019-11-workshop\n", " | NaN\n", " | NaN\n", " | TA11 Persistence\n", " | D4 Degrade\n", " | TA05 - Microtargeting\\nTA09 - Exposure*\\nTA10 ...\n", " | NaN\n", " | 
| 10\n", " | C00145\n", " | data pollution\n", " | Pollute the data voids with wholesome content ...\n", " | NaN\n", " | NaN\n", " | NaN\n", " | 2019-11-workshop\n", " | NaN\n", " | NaN\n", " | TA11 Persistence\n", " | D4 Degrade\n", " | T0015 - Create hashtag\\nT0046 - Search Engine ...\n", " | NaN\n", " | 
| 11\n", " | C00148\n", " | data pollution\n", " | Add random links to network graphs\n", " | If creators are using network analysis to dete...\n", " | Playbook 1: Degrade TA engagement using bots; ...\n", " | platform_algorithms\n", " | 2019-11-workshop\n", " | NaN\n", " | NaN\n", " | TA12 Measure Effectiveness\n", " | D4 Degrade\n", " | NaN\n", " | NaN\n", " | 
| 12\n", " | C00149\n", " | data pollution\n", " | Poison the monitoring & evaluation data\n", " | NaN\n", " | Playbook 1: Distort TA demographics by posting...\n", " | NaN\n", " | 2019-11-workshop\n", " | NaN\n", " | NaN\n", " | TA12 Measure Effectiveness\n", " | D4 Degrade\n", " | TA12 - Measure Effectiveness\\nT0020 - Trial co...\n", " | NaN\n", " | 
| 13\n", " | C00018\n", " | daylight\n", " | Promote constructive communication by shaming ...\n", " | Duplicate of \"Promote playbooks to call out di...\n", " | NaN\n", " | NaN\n", " | 2019-11-workshop\n", " | NaN\n", " | NaN\n", " | TA01 Strategic Planning\n", " | D3 Disrupt\n", " | TA08 - Pump Priming\\nTA09 - Exposure\\nTA10 - G...\n", " | NaN\n", " | 
| 14\n", " | C00019\n", " | daylight\n", " | Promote playbooks to call out division-enablers\n", " | Duplicate of \"Promote constructive communicati...\n", " | Spread Infographics & Training Material teachi...\n", " | NaN\n", " | 2019-11-workshop\n", " | NaN\n", " | NaN\n", " | TA01 Strategic Planning\n", " | D3 Disrupt\n", " | TA08 - Pump Priming\\nTA09 - Exposure\\nTA10 - G...\n", " | NaN\n", " | 
| 15\n", " | C00048\n", " | daylight\n", " | Name and Shame\n", " | NaN\n", " | Identify the accounts, the real person's name ...\n", " | NaN\n", " | 2019-11-workshop\n", " | NaN\n", " | NaN\n", " | TA03 Develop People\n", " | D7 Deter\n", " | TA08 - Pump Priming\\nT0048 - Cow online opinio...\n", " | NaN\n", " | 
| 16\n", " | C00068\n", " | daylight\n", " | Expose online funding as fake\n", " | NaN\n", " | NaN\n", " | NaN\n", " | 2019-11-workshop\n", " | NaN\n", " | NaN\n", " | TA05 Microtargeting\n", " | D3 Disrupt\n", " | T0017 - Promote online funding\\nT0061 - Sell m...\n", " | NaN\n", " | 
| 17\n", " | C00069\n", " | daylight\n", " | Mark clickbait visually\n", " | NaN\n", " | NaN\n", " | NaN\n", " | 2019-11-workshop\n", " | NaN\n", " | NaN\n", " | TA05 Microtargeting\n", " | D3 Disrupt\n", " | T0016 - Clickbait\n", " | NaN\n", " | 
| 18\n", " | C00081\n", " | daylight\n", " | Discredit by pointing out the \"noise\" and info...\n", " | NaN\n", " | NaN\n", " | NaN\n", " | 2019-11-workshop\n", " | NaN\n", " | NaN\n", " | TA06 Develop Content\n", " | D3 Disrupt\n", " | info pollution\n", " | NaN\n", " | 
| 19\n", " | C00094\n", " | daylight\n", " | Force full disclosure on corporate sponsor of ...\n", " | NaN\n", " | NaN\n", " | NaN\n", " | 2019-11-workshop\n", " | NaN\n", " | NaN\n", " | TA06 Develop Content\n", " | D7 Deter\n", " | T0026 - Create fake research\n", " | NaN\n", " | 
| 20\n", " | C00113\n", " | daylight\n", " | Debunk and defuse a fake expert / credentials....\n", " | NaN\n", " | NaN\n", " | NaN\n", " | 2019-11-workshop\n", " | NaN\n", " | NaN\n", " | TA08 Pump Priming\n", " | D2 Deny\n", " | T0045\n", " | NaN\n", " | 
| 21\n", " | C00115\n", " | daylight\n", " | Expose actor and intentions\n", " | NaN\n", " | NaN\n", " | NaN\n", " | 2019-11-workshop\n", " | NaN\n", " | NaN\n", " | TA08 Pump Priming\n", " | D2 Deny\n", " | T0046\\nT0048\\nT0052\\nT0053\\nT0054\\nT0055\\nT0056\n", " | NaN\n", " | 
| 22\n", " | C00116\n", " | daylight\n", " | Provide proof of involvement\n", " | NaN\n", " | NaN\n", " | NaN\n", " | 2019-11-workshop\n", " | NaN\n", " | NaN\n", " | TA08 Pump Priming\n", " | D2 Deny\n", " | T0041 - Deny involvement\n", " | NaN\n", " | 
| 23\n", " | C00126\n", " | daylight\n", " | Social media amber alert\n", " | NaN\n", " | NaN\n", " | NaN\n", " | 2019-11-workshop\n", " | NaN\n", " | NaN\n", " | TA09 Exposure\n", " | D3 Disrupt\n", " | T0052\\nT0053\\nT0054\\nT0055\\nT0056\n", " | NaN\n", " | 
| 24\n", " | C00150\n", " | daylight\n", " | “calling them out”\n", " | Identify social media accounts as sources of p...\n", " | NaN\n", " | NaN\n", " | 2019-11-search\n", " | Rand2237\n", " | NaN\n", " | TA03 Develop People\n", " | D2 Deny\n", " | NaN\n", " | NaN\n", " | 
| 25\n", " | C00151\n", " | daylight\n", " | “fight in the light”\n", " | Use leadership in the arts, entertainment, and...\n", " | NaN\n", " | NaN\n", " | 2019-11-search\n", " | Hicks19\n", " | NaN\n", " | TA09 Exposure\n", " | D3 Disrupt\n", " | NaN\n", " | NaN\n", " | 
| 26\n", " | C00152\n", " | daylight\n", " | “name and shame”\n", " | USAID has been restructuring its programs to a...\n", " | NaN\n", " | NaN\n", " | 2019-11-search\n", " | Dalton19\n", " | NaN\n", " | TA04 Develop Networks\n", " | D2 Deny\n", " | NaN\n", " | NaN\n", " | 
| 27\n", " | C00184\n", " | daylight\n", " | Media exposure\n", " | NaN\n", " | NaN\n", " | NaN\n", " | 2019-11-search\n", " | NaN\n", " | I00010,I00015,I00032,I00044\n", " | TA09 Exposure\n", " | D4 Degrade\n", " | NaN\n", " | NaN\n", " | 
| 28\n", " | C00189\n", " | daylight\n", " | Ongoing analysis/monitoring of \"flagged\" profiles\n", " | Confirm whether platforms are actively removin...\n", " | NaN\n", " | NaN\n", " | 2019-11-search\n", " | Rand2237\n", " | NaN\n", " | TA03 Develop People\n", " | D6 Destroy\n", " | NaN\n", " | NaN\n", " | 
| 29\n", " | C00031\n", " | dilution\n", " | Dilute the core narrative - create multiple pe...\n", " | Create competing narratives. Included \"Facilit...\n", " | Playbook 1: Create multiple versions of the na...\n", " | NaN\n", " | 2019-11-workshop\n", " | NaN\n", " | NaN\n", " | TA02 Objective Planning\n", " | D3 Disrupt\n", " | T0002 - Facilitate State Propaganda\\nT0003 - L...\n", " | CAVEAT: some element of disinformation is simp...\n", " | 
| ...\n", " | ...\n", " | ...\n", " | ...\n", " | ...\n", " | ...\n", " | ...\n", " | ...\n", " | ...\n", " | ...\n", " | ...\n", " | ...\n", " | ...\n", " | ...\n", " | 
| 156\n", " | C00122\n", " | friction\n", " | Content moderation. Censorship?\n", " | NaN\n", " | NaN\n", " | platform_admin\n", " | 2019-11-workshop\n", " | NaN\n", " | NaN\n", " | TA09 Exposure\n", " | D2 Deny\n", " | NaN\n", " | NaN\n", " | 
| 157\n", " | C00123\n", " | friction\n", " | Bot control\n", " | NaN\n", " | NaN\n", " | NaN\n", " | 2019-11-workshop\n", " | NaN\n", " | NaN\n", " | TA09 Exposure\n", " | D3 Disrupt\n", " | T0049\\nT0051\\nT0052\\nT0053\\nT0054\\nT0055\\nT0056\n", " | NaN\n", " | 
| 158\n", " | C00124\n", " | friction\n", " | Don't feed the trolls\n", " | NaN\n", " | NaN\n", " | public,media\n", " | 2019-11-workshop\n", " | NaN\n", " | NaN\n", " | TA09 Exposure\n", " | D3 Disrupt\n", " | TA08 - Pump Priming\\nTA09 - Exposure\n", " | NaN\n", " | 
| 159\n", " | C00139\n", " | friction\n", " | Weaponise youtube content matrices\n", " | NaN\n", " | NaN\n", " | NaN\n", " | 2019-11-workshop\n", " | NaN\n", " | NaN\n", " | TA11 Persistence\n", " | D3 Disrupt\n", " | NaN\n", " | NaN\n", " | 
| 160\n", " | C00143\n", " | targeting\n", " | (botnet) DMCA takedown requests to waste group...\n", " | NaN\n", " | NaN\n", " | public,elves\n", " | 2019-11-workshop\n", " | NaN\n", " | NaN\n", " | TA11 Persistence\n", " | D4 Degrade\n", " | NaN\n", " | NaN\n", " | 
| 161\n", " | C00153\n", " | targeting\n", " | Use offensive cyber action\n", " | Align offensive cyber action with information ...\n", " | NaN\n", " | infosec\n", " | 2019-11-search\n", " | Dalton19\n", " | NaN\n", " | TA01 Strategic Planning\n", " | D3 Disrupt\n", " | NaN\n", " | NaN\n", " | 
| 162\n", " | C00156\n", " | countermessaging\n", " | Better tell the U.S., NATO, and EU story.\n", " | Civil engagement activities conducted on the p...\n", " | NaN\n", " | government,military\n", " | 2019-11-search\n", " | Rand2237\n", " | NaN\n", " | TA09 Exposure\n", " | D3 Disrupt\n", " | NaN\n", " | NaN\n", " | 
| 163\n", " | C00157\n", " | countermessaging\n", " | Build alternative news sources\n", " | Create alternative local-language news sources...\n", " | NaN\n", " | NaN\n", " | 2019-11-search\n", " | p143 of Corker18\n", " | NaN\n", " | TA04 Develop Networks\n", " | D2 Deny\n", " | NaN\n", " | NaN\n", " | 
| 164\n", " | C00159\n", " | metatechnique\n", " | Campaign mindset and associated toolbox\n", " | A campaign plan for the gray zone must account...\n", " | NaN\n", " | NaN\n", " | 2019-11-search\n", " | Hicks19\n", " | NaN\n", " | TA01 Strategic Planning\n", " | D3 Disrupt\n", " | NaN\n", " | NaN\n", " | 
| 165\n", " | C00160\n", " | resilience\n", " | find and train influencers\n", " | Identify key influencers (e.g. use network ana...\n", " | NaN\n", " | data scientist,influencers\n", " | 2019-11-search\n", " | Rand2237\n", " | NaN\n", " | TA03 Develop People\n", " | D2 Deny\n", " | NaN\n", " | NaN\n", " | 
| 166\n", " | C00161\n", " | metatechnique\n", " | Coalition Building and Third-Party Inducements:\n", " | Advance coalitions across borders and sectors,...\n", " | NaN\n", " | NaN\n", " | 2019-11-search\n", " | Dalton19\n", " | NaN\n", " | TA01 Strategic Planning\n", " | D7 Deter\n", " | NaN\n", " | NaN\n", " | 
| 167\n", " | C00162\n", " | targeting\n", " | collect data/map constellations of Russian“civ...\n", " | Kremlin’s narrative spin extends through const...\n", " | NaN\n", " | NaN\n", " | 2019-11-search\n", " | Rand2237\n", " | NaN\n", " | TA04 Develop Networks\n", " | D3 Disrupt\n", " | NaN\n", " | NaN\n", " | 
| 168\n", " | C00164\n", " | targeting\n", " | compatriot policy\n", " | protect the interests of this population and, ...\n", " | NaN\n", " | NaN\n", " | 2019-11-search\n", " | Rand2237\n", " | NaN\n", " | TA03 Develop People\n", " | D3 Disrupt\n", " | NaN\n", " | NaN\n", " | 
| 169\n", " | C00165\n", " | friction\n", " | Limit access to alterable documents\n", " | e.g. for leaked legal documents, use court mot...\n", " | NaN\n", " | NaN\n", " | 2019-11-search\n", " | NaN\n", " | I00015\n", " | TA06 Develop Content\n", " | D2 Deny\n", " | T00025\n", " | NaN\n", " | 
| 170\n", " | C00167\n", " | countermessaging\n", " | Deploy Information and Narrative-Building in S...\n", " | Promote a narrative of transparency, truthfuln...\n", " | NaN\n", " | NaN\n", " | 2019-11-search\n", " | Hicks19\n", " | NaN\n", " | TA06 Develop Content\n", " | D2 Deny\n", " | NaN\n", " | NaN\n", " | 
| 171\n", " | C00176\n", " | metatechnique\n", " | Improve Coordination with and feedback from th...\n", " | gray zone challenges are increasingly multidis...\n", " | NaN\n", " | NaN\n", " | 2019-11-search\n", " | Dalton19\n", " | NaN\n", " | TA01 Strategic Planning\n", " | D7 Deter\n", " | NaN\n", " | NaN\n", " | 
| 172\n", " | C00179\n", " | removal\n", " | Identify, monitor, and, if necessary, target R...\n", " | Impact of and Dealing with Trolls - \"Chatham H...\n", " | NaN\n", " | NaN\n", " | 2019-11-search\n", " | Rand2237\n", " | NaN\n", " | TA03 Develop People\n", " | D3 Disrupt\n", " | NaN\n", " | NaN\n", " | 
| 173\n", " | C00182\n", " | removal\n", " | malware detection/quarantine/deletion\n", " | (2015) Trustwave reported that a Bedep Trojan ...\n", " | NaN\n", " | infosec\n", " | 2019-11-search\n", " | Rand2237\n", " | NaN\n", " | TA09 Exposure\n", " | D2 Deny\n", " | NaN\n", " | NaN\n", " | 
| 174\n", " | C00196\n", " | metatechnique\n", " | Include the role of social media in the regula...\n", " | The European Union created significant new reg...\n", " | NaN\n", " | government\n", " | 2019-11-search\n", " | Hicks19\n", " | NaN\n", " | TA07 Channel Selection\n", " | D3 Disrupt\n", " | NaN\n", " | NaN\n", " | 
| 175\n", " | C00200\n", " | countermessaging\n", " | Respected figure (influencer) disavows misinfo\n", " | Has been done in e.g. India\n", " | NaN\n", " | influencers\n", " | 2019-11-search\n", " | NaN\n", " | I00044\n", " | TA09 Exposure\n", " | D3 Disrupt\n", " | NaN\n", " | NaN\n", " | 
| 176\n", " | C00202\n", " | diversion\n", " | Set data 'honeytraps'\n", " | NaN\n", " | NaN\n", " | NaN\n", " | 2019-11-search\n", " | NaN\n", " | I00004,I00022\n", " | TA06 Develop Content\n", " | D2 Deny\n", " | T0025 leak altered documents\n", " | NaN\n", " | 
| 177\n", " | C00203\n", " | friction\n", " | Stop offering press credentials to propaganda ...\n", " | NaN\n", " | NaN\n", " | government\n", " | 2019-11-search\n", " | NaN\n", " | I00022\n", " | TA08 Pump Priming\n", " | D3 Disrupt\n", " | NaN\n", " | NaN\n", " | 
| 178\n", " | C00205\n", " | metatechnique\n", " | strong dialogue between the federal government...\n", " | Increase civic resilience by partnering with b...\n", " | NaN\n", " | companies,government\n", " | 2019-11-search\n", " | Hicks19\n", " | NaN\n", " | TA01 Strategic Planning\n", " | D3 Disrupt\n", " | NaN\n", " | NaN\n", " | 
| 179\n", " | C00207\n", " | targeting\n", " | tit-for-tat campaign\n", " | As used by Saudis?\n", " | NaN\n", " | government,platforms\n", " | 2019-11-search\n", " | NaN\n", " | I00042\n", " | TA01 Strategic Planning\n", " | D7 Deter\n", " | NaN\n", " | NaN\n", " | 
| 180\n", " | C00210\n", " | resilience\n", " | Use encrypted apps for confidential communication\n", " | NaN\n", " | NaN\n", " | NaN\n", " | 2019-11-search\n", " | NaN\n", " | I00022\n", " | TA06 Develop Content\n", " | D2 Deny\n", " | T0025\n", " | NaN\n", " | 
| 181\n", " | C00214\n", " | metatechnique\n", " | Create policy that makes social media police d...\n", " | German model: facebook forced to police conten...\n", " | NaN\n", " | government:policymakers\n", " | 2019-11-workshop\n", " | NaN\n", " | NaN\n", " | TA07 Channel Selection\n", " | D3 Disrupt\n", " | NaN\n", " | NaN\n", " | 
| 182\n", " | C00215\n", " | metatechnique\n", " | Use fraud legislation to clean up social media\n", " | NaN\n", " | NaN\n", " | government:policymakers\n", " | 2019-11-workshop\n", " | NaN\n", " | NaN\n", " | TA07 Channel Selection\n", " | D3 Disrupt\n", " | NaN\n", " | NaN\n", " | 
| 183\n", " | C00217\n", " | daylight\n", " | Registries alert when large batches of newsy U...\n", " | NaN\n", " | NaN\n", " | platform_admin\n", " | grugq\n", " | NaN\n", " | NaN\n", " | TA07 Channel Selection\n", " | D2 Deny\n", " | NaN\n", " | NaN\n", " | 
| 184\n", " | C00218\n", " | removal\n", " | Censorship\n", " | Alter and/or block the publication/disseminati...\n", " | NaN\n", " | platform_admin\n", " | grugq\n", " | Taylor81\n", " | NaN\n", " | TA09 Exposure\n", " | D2 Deny\n", " | NaN\n", " | NaN\n", " | 
| 185\n", " | C00219\n", " | daylight\n", " | Add metadata to content - out of the control o...\n", " | NaN\n", " | Add date and source to images\n", " | NaN\n", " | grugq\n", " | NaN\n", " | NaN\n", " | TA06 Develop Content\n", " | D3 Disrupt\n", " | NaN\n", " | NaN\n", " | 
186 rows × 13 columns
\n", "| \n", "'''.format(rowtype)\n", "\n", " # Table heading row\n", " colvals = counter.dfcounters[coltype].value_counts().sort_index().index\n", " for col in colvals:\n", " html += ' | {}\\n'.format(col)\n", " html += ' | TOTALS | 
| {2}\\n'.format(\n", " rowname, oid, index)\n", " if len(row.columns) > 0:\n", " for val in row[0].to_list():\n", " html += ' | {}\\n'.format(val)\n", " html += ' | {} |