{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": { "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "updated ../incidents_list.md\n", "updated ../amitt_red_framework.md\n", "updated ../amitt_red_framework_clickable.html\n", "Writing ../counter_tactics/TA01counters.md\n", "Writing ../counter_tactics/TA02counters.md\n", "Writing ../counter_tactics/TA03counters.md\n", "Writing ../counter_tactics/TA04counters.md\n", "Writing ../counter_tactics/TA05counters.md\n", "Writing ../counter_tactics/TA06counters.md\n", "Writing ../counter_tactics/TA07counters.md\n", "Writing ../counter_tactics/TA08counters.md\n", "Writing ../counter_tactics/TA09counters.md\n", "Writing ../counter_tactics/TA10counters.md\n", "Writing ../counter_tactics/TA11counters.md\n", "Writing ../counter_tactics/TA12counters.md\n", "updated ../tactics_by_responsetype_table.md\n", "Writing ../metatechniques/cleaningcounters.md\n", "Writing ../metatechniques/countermessagingcounters.md\n", "Writing ../metatechniques/data pollutioncounters.md\n", "Writing ../metatechniques/daylightcounters.md\n", "Writing ../metatechniques/dilutioncounters.md\n", "Writing ../metatechniques/diversioncounters.md\n", "Writing ../metatechniques/frictioncounters.md\n", "Writing ../metatechniques/metatechniquecounters.md\n", "Writing ../metatechniques/reduce resourcescounters.md\n", "Writing ../metatechniques/removalcounters.md\n", "Writing ../metatechniques/resiliencecounters.md\n", "Writing ../metatechniques/scoringcounters.md\n", "Writing ../metatechniques/targetingcounters.md\n", "Writing ../metatechniques/verificationcounters.md\n", "updated ../metatechniques_by_responsetype_table.md\n", "Writing ../resources_needed/DHScounters.md\n", "Writing ../resources_needed/NGOcounters.md\n", "Writing ../resources_needed/activistscounters.md\n", "Writing ../resources_needed/adtechcounters.md\n", "Writing ../resources_needed/civil_societycounters.md\n", "Writing ../resources_needed/community_groupscounters.md\n", "Writing ../resources_needed/companiescounters.md\n", "Writing ../resources_needed/content_creatorscounters.md\n", "Writing ../resources_needed/data_scientistcounters.md\n", "Writing ../resources_needed/datastreamscounters.md\n", "Writing ../resources_needed/developerscounters.md\n", "Writing ../resources_needed/educatorscounters.md\n", "Writing ../resources_needed/elvescounters.md\n", "Writing ../resources_needed/factcheckerscounters.md\n", "Writing ../resources_needed/fundingcounters.md\n", "Writing ../resources_needed/gamesdesignerscounters.md\n", "Writing ../resources_needed/governmentcounters.md\n", "Writing ../resources_needed/government:policymakerscounters.md\n", "Writing ../resources_needed/influencerscounters.md\n", "Writing ../resources_needed/influencers:trusted_authoritycounters.md\n", "Writing ../resources_needed/infoseccounters.md\n", "Writing ../resources_needed/librariescounters.md\n", "Writing ../resources_needed/mediacounters.md\n", "Writing ../resources_needed/militarycounters.md\n", "Writing ../resources_needed/moneycounters.md\n", "Writing ../resources_needed/platform_admincounters.md\n", "Writing ../resources_needed/platform_admin:adtechcounters.md\n", "Writing ../resources_needed/platform_admin:fundingsitescounters.md\n", "Writing ../resources_needed/platform_admin:socialmediacounters.md\n", "Writing ../resources_needed/platform_algorithmscounters.md\n", "Writing ../resources_needed/platform_outreachcounters.md\n", "Writing ../resources_needed/platformscounters.md\n", "Writing ../resources_needed/publiccounters.md\n", "Writing ../resources_needed/public:account_ownerscounters.md\n", "Writing ../resources_needed/religious_organisationscounters.md\n", "Writing ../resources_needed/schoolscounters.md\n", "Writing ../resources_needed/server_admincounters.md\n", "updated ../resources_by_responsetype_table.md\n" ] } ], "source": [ "from generate_amitt_ttps import Amitt\n", "amitt = Amitt()\n", "amitt.generate_and_write_datafiles()" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "vars(amitt)['tactics']" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "vars(amitt).keys()" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "###. TEST AREA" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[['P01',\n", " 'P01',\n", " 'P02',\n", " 'P02',\n", " 'P02',\n", " 'P02',\n", " 'P02',\n", " 'P03',\n", " 'P03',\n", " 'P03',\n", " 'P03',\n", " 'P04'],\n", " ['TA01',\n", " 'TA02',\n", " 'TA03',\n", " 'TA04',\n", " 'TA05',\n", " 'TA06',\n", " 'TA07',\n", " 'TA08',\n", " 'TA09',\n", " 'TA10',\n", " 'TA11',\n", " 'TA12'],\n", " ['C00001',\n", " 'C00028',\n", " 'C00033',\n", " 'C00049',\n", " 'C00063',\n", " 'C00070',\n", " 'C00097',\n", " 'C00112',\n", " 'C00122',\n", " 'C00129',\n", " 'C00131',\n", " 'C00147'],\n", " ['C00003',\n", " 'C00029',\n", " 'C00034',\n", " 'C00050',\n", " 'C00065',\n", " 'C00071',\n", " 'C00098',\n", " 'C00113',\n", " 'C00123',\n", " 'C00130',\n", " 'C00133',\n", " 'C00148'],\n", " ['C00004',\n", " 'C00030',\n", " 'C00035',\n", " 'C00051',\n", " 'C00066',\n", " 'C00072',\n", " 'C00099',\n", " 'C00114',\n", " 'C00124',\n", " '',\n", " 'C00135',\n", " 'C00149'],\n", " ['C00005',\n", " 'C00031',\n", " 'C00036',\n", " 'C00052',\n", " 'C00067',\n", " 'C00073',\n", " 'C00100',\n", " 'C00115',\n", " 'C00125',\n", " '',\n", " 'C00136',\n", " ''],\n", " ['C00006',\n", " 'C00032',\n", " 'C00039',\n", " 'C00053',\n", " 'C00068',\n", " 'C00074',\n", " 'C00101',\n", " 'C00116',\n", " 'C00126',\n", " '',\n", " 'C00137',\n", " ''],\n", " ['C00007',\n", " '',\n", " 'C00040',\n", " 'C00054',\n", " 'C00069',\n", " 'C00075',\n", " 'C00102',\n", " 'C00117',\n", " 'C00128',\n", " '',\n", " 'C00138',\n", " ''],\n", " ['C00008',\n", " '',\n", " 'C00042',\n", " 'C00055',\n", " 'C00216',\n", " 'C00076',\n", " 'C00103',\n", " 'C00118',\n", " 'C00151',\n", " '',\n", " 'C00139',\n", " ''],\n", " ['C00009',\n", " '',\n", " 'C00043',\n", " 'C00056',\n", " '',\n", " 'C00077',\n", " 'C00105',\n", " 'C00119',\n", " 'C00156',\n", " '',\n", " 'C00140',\n", " ''],\n", " ['C00010',\n", " '',\n", " 'C00044',\n", " 'C00057',\n", " '',\n", " 'C00078',\n", " 'C00106',\n", " 'C00120',\n", " 'C00158',\n", " '',\n", " 'C00141',\n", " ''],\n", " ['C00011',\n", " '',\n", " 'C00045',\n", " 'C00058',\n", " '',\n", " 'C00079',\n", " 'C00107',\n", " 'C00121',\n", " 'C00169',\n", " '',\n", " 'C00142',\n", " ''],\n", " ['C00012',\n", " '',\n", " 'C00046',\n", " 'C00059',\n", " '',\n", " 'C00080',\n", " 'C00109',\n", " 'C00154',\n", " 'C00178',\n", " '',\n", " 'C00143',\n", " ''],\n", " ['C00013',\n", " '',\n", " 'C00047',\n", " 'C00060',\n", " '',\n", " 'C00081',\n", " 'C00110',\n", " 'C00188',\n", " 'C00182',\n", " '',\n", " 'C00144',\n", " ''],\n", " ['C00014',\n", " '',\n", " 'C00048',\n", " 'C00061',\n", " '',\n", " 'C00082',\n", " 'C00111',\n", " 'C00193',\n", " 'C00184',\n", " '',\n", " 'C00145',\n", " ''],\n", " ['C00015',\n", " '',\n", " 'C00150',\n", " 'C00062',\n", " '',\n", " 'C00084',\n", " 'C00195',\n", " 'C00203',\n", " 'C00190',\n", " '',\n", " '',\n", " ''],\n", " ['C00016',\n", " '',\n", " 'C00155',\n", " 'C00152',\n", " '',\n", " 'C00085',\n", " 'C00196',\n", " 'C00204',\n", " 'C00194',\n", " '',\n", " '',\n", " ''],\n", " ['C00017',\n", " '',\n", " 'C00160',\n", " 'C00157',\n", " '',\n", " 'C00086',\n", " 'C00214',\n", " '',\n", " 'C00200',\n", " '',\n", " '',\n", " ''],\n", " ['C00018',\n", " '',\n", " 'C00164',\n", " 'C00162',\n", " '',\n", " 'C00087',\n", " 'C00215',\n", " '',\n", " 'C00211',\n", " '',\n", " '',\n", " ''],\n", " ['C00019',\n", " '',\n", " 'C00170',\n", " 'C00174',\n", " '',\n", " 'C00088',\n", " 'C00217',\n", " '',\n", " 'C00212',\n", " '',\n", " '',\n", " ''],\n", " ['C00020', '', 'C00179', '', '', 'C00089', '', '', 'C00218', '', '', ''],\n", " ['C00021', '', 'C00189', '', '', 'C00090', '', '', '', '', '', ''],\n", " ['C00022', '', 'C00197', '', '', 'C00091', '', '', '', '', '', ''],\n", " ['C00023', '', '', '', '', 'C00092', '', '', '', '', '', ''],\n", " ['C00024', '', '', '', '', 'C00093', '', '', '', '', '', ''],\n", " ['C00025', '', '', '', '', 'C00094', '', '', '', '', '', ''],\n", " ['C00026', '', '', '', '', 'C00095', '', '', '', '', '', ''],\n", " ['C00027', '', '', '', '', 'C00096', '', '', '', '', '', ''],\n", " ['C00153', '', '', '', '', 'C00165', '', '', '', '', '', ''],\n", " ['C00159', '', '', '', '', 'C00167', '', '', '', '', '', ''],\n", " ['C00161', '', '', '', '', 'C00171', '', '', '', '', '', ''],\n", " ['C00176', '', '', '', '', 'C00172', '', '', '', '', '', ''],\n", " ['C00205', '', '', '', '', 'C00202', '', '', '', '', '', ''],\n", " ['C00207', '', '', '', '', 'C00210', '', '', '', '', '', ''],\n", " ['', '', '', '', '', 'C00219', '', '', '', '', '', '']]" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import pandas as pd\n", "import os\n", "tocsv=True\n", "\n", "arr = [['' for i in range(amitt.num_tactics)] for j in range(amitt.max_num_counters_per_tactic)] \n", "for index, tactic in amitt.df_tactics.iterrows():\n", " arr[0][index] = tactic['phase_id']\n", " arr[1][index] = tactic['id']\n", " if tactic['counter_ids'] == '':\n", " continue\n", " for index2, technique in enumerate(tactic['counter_ids']):\n", " arr[index2+2][index] = technique\n", "\n", "#Save grid to file\n", "if tocsv:\n", " csvdir = '../generated_csvs'\n", " if not os.path.exists(csvdir):\n", " os.makedirs(csvdir)\n", " pd.DataFrame(arr).to_csv(csvdir + '/counters_tactics_table.csv', index=False, header=False)\n", "arr" ] }, { "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 }