{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": { "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Updating ../phases/P01.md\n", "Updating ../phases/P02.md\n", "Updating ../phases/P03.md\n", "Updating ../phases/P04.md\n", "Updating ../tactics/TA01.md\n", "Updating ../tactics/TA02.md\n", "Updating ../tactics/TA03.md\n", "Updating ../tactics/TA04.md\n", "Updating ../tactics/TA05.md\n", "Updating ../tactics/TA06.md\n", "Updating ../tactics/TA07.md\n", "Updating ../tactics/TA08.md\n", "Updating ../tactics/TA09.md\n", "Updating ../tactics/TA10.md\n", "Updating ../tactics/TA11.md\n", "Updating ../tactics/TA12.md\n", "Updating ../techniques/T0001.md\n", "Updating ../techniques/T0002.md\n", "Updating ../techniques/T0003.md\n", "Updating ../techniques/T0004.md\n", "Updating ../techniques/T0005.md\n", "Updating ../techniques/T0006.md\n", "Updating ../techniques/T0007.md\n", "Updating ../techniques/T0008.md\n", "Updating ../techniques/T0009.md\n", "Updating ../techniques/T0010.md\n", "Updating ../techniques/T0011.md\n", "Updating ../techniques/T0012.md\n", "Updating ../techniques/T0013.md\n", "Updating ../techniques/T0014.md\n", "Updating ../techniques/T0015.md\n", "Updating ../techniques/T0016.md\n", "Updating ../techniques/T0017.md\n", "Updating ../techniques/T0018.md\n", "Updating ../techniques/T0019.md\n", "Updating ../techniques/T0020.md\n", "Updating ../techniques/T0021.md\n", "Updating ../techniques/T0022.md\n", "Updating ../techniques/T0023.md\n", "Updating ../techniques/T0024.md\n", "Updating ../techniques/T0025.md\n", "Updating ../techniques/T0026.md\n", "Updating ../techniques/T0027.md\n", "Updating ../techniques/T0028.md\n", "Updating ../techniques/T0029.md\n", "Updating ../techniques/T0030.md\n", "Updating ../techniques/T0031.md\n", "Updating ../techniques/T0032.md\n", "Updating ../techniques/T0033.md\n", "Updating ../techniques/T0034.md\n", "Updating ../techniques/T0035.md\n", "Updating ../techniques/T0036.md\n", "Updating ../techniques/T0037.md\n", "Updating ../techniques/T0038.md\n", "Updating ../techniques/T0039.md\n", "Updating ../techniques/T0040.md\n", "Updating ../techniques/T0041.md\n", "Updating ../techniques/T0042.md\n", "Updating ../techniques/T0043.md\n", "Updating ../techniques/T0044.md\n", "Updating ../techniques/T0045.md\n", "Updating ../techniques/T0046.md\n", "Updating ../techniques/T0047.md\n", "Updating ../techniques/T0048.md\n", "Updating ../techniques/T0049.md\n", "Updating ../techniques/T0050.md\n", "Updating ../techniques/T0051.md\n", "Updating ../techniques/T0052.md\n", "Updating ../techniques/T0053.md\n", "Updating ../techniques/T0054.md\n", "Updating ../techniques/T0055.md\n", "Updating ../techniques/T0056.md\n", "Updating ../techniques/T0057.md\n", "Updating ../techniques/T0058.md\n", "Updating ../techniques/T0059.md\n", "Updating ../techniques/T0060.md\n", "Updating ../techniques/T0061.md\n", "Updating ../tasks/TK0001.md\n", "Updating ../tasks/TK0002.md\n", "Updating ../tasks/TK0003.md\n", "Updating ../tasks/TK0004.md\n", "Updating ../tasks/TK0005.md\n", "Updating ../tasks/TK0006.md\n", "Updating ../tasks/TK0007.md\n", "Updating ../tasks/TK0008.md\n", "Updating ../tasks/TK0009.md\n", "Updating ../tasks/TK0010.md\n", "Updating ../tasks/TK0011.md\n", "Updating ../tasks/TK0012.md\n", "Updating ../tasks/TK0013.md\n", "Updating ../tasks/TK0014.md\n", "Updating ../tasks/TK0015.md\n", "Updating ../tasks/TK0016.md\n", "Updating ../tasks/TK0017.md\n", "Updating ../tasks/TK0018.md\n", "Updating ../tasks/TK0019.md\n", "Updating ../tasks/TK0020.md\n", "Updating ../tasks/TK0021.md\n", "Updating ../tasks/TK0022.md\n", "Updating ../tasks/TK0023.md\n", "Updating ../tasks/TK0024.md\n", "Updating ../tasks/TK0025.md\n", "Updating ../tasks/TK0026.md\n", "Updating ../tasks/TK0027.md\n", "Updating ../tasks/TK0028.md\n", "Updating ../tasks/TK0029.md\n", "Updating ../tasks/TK0030.md\n", "Updating ../incidents/I00001.md\n", "Updating ../incidents/I00002.md\n", "Updating ../incidents/I00003.md\n", "Updating ../incidents/I00004.md\n", "Updating ../incidents/I00005.md\n", "Updating ../incidents/I00006.md\n", "Updating ../incidents/I00007.md\n", "Updating ../incidents/I00008.md\n", "Updating ../incidents/I00009.md\n", "Updating ../incidents/I00010.md\n", "Updating ../incidents/I00011.md\n", "Updating ../incidents/I00012.md\n", "Updating ../incidents/I00013.md\n", "Updating ../incidents/I00014.md\n", "Updating ../incidents/I00015.md\n", "Updating ../incidents/I00016.md\n", "Updating ../incidents/I00017.md\n", "Updating ../incidents/I00018.md\n", "Updating ../incidents/I00019.md\n", "Updating ../incidents/I00020.md\n", "Updating ../incidents/I00021.md\n", "Updating ../incidents/I00022.md\n", "Updating ../incidents/I00023.md\n", "Updating ../incidents/I00024.md\n", "Updating ../incidents/I00025.md\n", "Updating ../incidents/I00026.md\n", "Updating ../incidents/I00027.md\n", "Updating ../incidents/I00028.md\n", "Updating ../incidents/I00029.md\n", "Updating ../incidents/I00030.md\n", "Updating ../incidents/I00031.md\n", "Updating ../incidents/I00032.md\n", "Updating ../incidents/I00033.md\n", "Updating ../incidents/I00034.md\n", "Updating ../incidents/I00035.md\n", "Updating ../incidents/I00036.md\n", "Updating ../incidents/I00037.md\n", "Updating ../incidents/I00038.md\n", "Updating ../incidents/I00039.md\n", "Updating ../incidents/I00040.md\n", "Updating ../incidents/I00041.md\n", "Updating ../incidents/I00042.md\n", "Updating ../incidents/I00043.md\n", "Updating ../incidents/I00044.md\n", "Updating ../incidents/I00045.md\n", "Updating ../incidents/I00046.md\n", "Updating ../incidents/I00047.md\n", "Updating ../incidents/I00048.md\n", "Updating ../incidents/I00049.md\n", "Updating ../incidents/I00050.md\n", "Updating ../incidents/I00051.md\n", "Updating ../incidents/I00052.md\n", "Updating ../incidents/I00053.md\n", "Updating ../incidents/I00054.md\n", "Updating ../incidents/I00055.md\n", "Updating ../incidents/I00056.md\n", "Updating ../incidents/I00057.md\n", "Updating ../incidents/I00058.md\n", "Updating ../incidents/I00059.md\n", "Updating ../incidents/I00060.md\n", "Updating ../incidents/I00061.md\n", "Updating ../incidents/I00062.md\n", "Updating ../incidents/I00063.md\n", "Updating ../counters/C00001.md\n", "Updating ../counters/C00003.md\n", "Updating ../counters/C00004.md\n", "Updating ../counters/C00005.md\n", "Updating ../counters/C00006.md\n", "Updating ../counters/C00007.md\n", "Updating ../counters/C00008.md\n", "Updating ../counters/C00009.md\n", "Updating ../counters/C00010.md\n", "Updating ../counters/C00011.md\n", "Updating ../counters/C00012.md\n", "Updating ../counters/C00013.md\n", "Updating ../counters/C00014.md\n", "Updating ../counters/C00015.md\n", "Updating ../counters/C00016.md\n", "Updating ../counters/C00017.md\n", "Updating ../counters/C00018.md\n", "Updating ../counters/C00019.md\n", "Updating ../counters/C00020.md\n", "Updating ../counters/C00021.md\n", "Updating ../counters/C00022.md\n", "Updating ../counters/C00023.md\n", "Updating ../counters/C00024.md\n", "Updating ../counters/C00025.md\n", "Updating ../counters/C00026.md\n", "Updating ../counters/C00027.md\n", "Updating ../counters/C00028.md\n", "Updating ../counters/C00029.md\n", "Updating ../counters/C00030.md\n", "Updating ../counters/C00031.md\n", "Updating ../counters/C00032.md\n", "Updating ../counters/C00033.md\n", "Updating ../counters/C00034.md\n", "Updating ../counters/C00035.md\n", "Updating ../counters/C00036.md\n", "Updating ../counters/C00039.md\n", "Updating ../counters/C00040.md\n", "Updating ../counters/C00042.md\n", "Updating ../counters/C00043.md\n", "Updating ../counters/C00044.md\n", "Updating ../counters/C00045.md\n", "Updating ../counters/C00046.md\n", "Updating ../counters/C00047.md\n", "Updating ../counters/C00048.md\n", "Updating ../counters/C00049.md\n", "Updating ../counters/C00050.md\n", "Updating ../counters/C00051.md\n", "Updating ../counters/C00052.md\n", "Updating ../counters/C00053.md\n", "Updating ../counters/C00054.md\n", "Updating ../counters/C00055.md\n", "Updating ../counters/C00056.md\n", "Updating ../counters/C00057.md\n", "Updating ../counters/C00058.md\n", "Updating ../counters/C00059.md\n", "Updating ../counters/C00060.md\n", "Updating ../counters/C00061.md\n", "Updating ../counters/C00062.md\n", "Updating ../counters/C00063.md\n", "Updating ../counters/C00065.md\n", "Updating ../counters/C00066.md\n", "Updating ../counters/C00067.md\n", "Updating ../counters/C00068.md\n", "Updating ../counters/C00069.md\n", "Updating ../counters/C00070.md\n", "Updating ../counters/C00071.md\n", "Updating ../counters/C00072.md\n", "Updating ../counters/C00073.md\n", "Updating ../counters/C00074.md\n", "Updating ../counters/C00075.md\n", "Updating ../counters/C00076.md\n", "Updating ../counters/C00077.md\n", "Updating ../counters/C00078.md\n", "Updating ../counters/C00079.md\n", "Updating ../counters/C00080.md\n", "Updating ../counters/C00081.md\n", "Updating ../counters/C00082.md\n", "Updating ../counters/C00084.md\n", "Updating ../counters/C00085.md\n", "Updating ../counters/C00086.md\n", "Updating ../counters/C00087.md\n", "Updating ../counters/C00088.md\n", "Updating ../counters/C00089.md\n", "Updating ../counters/C00090.md\n", "Updating ../counters/C00091.md\n", "Updating ../counters/C00092.md\n", "Updating ../counters/C00093.md\n", "Updating ../counters/C00094.md\n", "Updating ../counters/C00095.md\n", "Updating ../counters/C00096.md\n", "Updating ../counters/C00097.md\n", "Updating ../counters/C00098.md\n", "Updating ../counters/C00099.md\n", "Updating ../counters/C00100.md\n", "Updating ../counters/C00101.md\n", "Updating ../counters/C00102.md\n", "Updating ../counters/C00103.md\n", "Updating ../counters/C00105.md\n", "Updating ../counters/C00106.md\n", "Updating ../counters/C00107.md\n", "Updating ../counters/C00109.md\n", "Updating ../counters/C00110.md\n", "Updating ../counters/C00111.md\n", "Updating ../counters/C00112.md\n", "Updating ../counters/C00113.md\n", "Updating ../counters/C00114.md\n", "Updating ../counters/C00115.md\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Updating ../counters/C00116.md\n", "Updating ../counters/C00117.md\n", "Updating ../counters/C00118.md\n", "Updating ../counters/C00119.md\n", "Updating ../counters/C00120.md\n", "Updating ../counters/C00121.md\n", "Updating ../counters/C00122.md\n", "Updating ../counters/C00123.md\n", "Updating ../counters/C00124.md\n", "Updating ../counters/C00125.md\n", "Updating ../counters/C00126.md\n", "Updating ../counters/C00128.md\n", "Updating ../counters/C00129.md\n", "Updating ../counters/C00130.md\n", "Updating ../counters/C00131.md\n", "Updating ../counters/C00133.md\n", "Updating ../counters/C00135.md\n", "Updating ../counters/C00136.md\n", "Updating ../counters/C00137.md\n", "Updating ../counters/C00138.md\n", "Updating ../counters/C00139.md\n", "Updating ../counters/C00140.md\n", "Updating ../counters/C00141.md\n", "Updating ../counters/C00142.md\n", "Updating ../counters/C00143.md\n", "Updating ../counters/C00144.md\n", "Updating ../counters/C00145.md\n", "Updating ../counters/C00147.md\n", "Updating ../counters/C00148.md\n", "Updating ../counters/C00149.md\n", "Updating ../counters/C00150.md\n", "Updating ../counters/C00151.md\n", "Updating ../counters/C00152.md\n", "Updating ../counters/C00153.md\n", "Updating ../counters/C00154.md\n", "Updating ../counters/C00155.md\n", "Updating ../counters/C00156.md\n", "Updating ../counters/C00157.md\n", "Updating ../counters/C00158.md\n", "Updating ../counters/C00159.md\n", "Updating ../counters/C00160.md\n", "Updating ../counters/C00161.md\n", "Updating ../counters/C00162.md\n", "Updating ../counters/C00164.md\n", "Updating ../counters/C00165.md\n", "Updating ../counters/C00167.md\n", "Updating ../counters/C00169.md\n", "Updating ../counters/C00170.md\n", "Updating ../counters/C00171.md\n", "Updating ../counters/C00172.md\n", "Updating ../counters/C00174.md\n", "Updating ../counters/C00176.md\n", "Updating ../counters/C00178.md\n", "Updating ../counters/C00179.md\n", "Updating ../counters/C00182.md\n", "Updating ../counters/C00184.md\n", "Updating ../counters/C00188.md\n", "Updating ../counters/C00189.md\n", "Updating ../counters/C00190.md\n", "Updating ../counters/C00193.md\n", "Updating ../counters/C00194.md\n", "Updating ../counters/C00195.md\n", "Updating ../counters/C00196.md\n", "Updating ../counters/C00197.md\n", "Updating ../counters/C00200.md\n", "Updating ../counters/C00202.md\n", "Updating ../counters/C00203.md\n", "Updating ../counters/C00204.md\n", "Updating ../counters/C00205.md\n", "Updating ../counters/C00207.md\n", "Updating ../counters/C00210.md\n", "Updating ../counters/C00211.md\n", "Updating ../counters/C00212.md\n", "Updating ../counters/C00214.md\n", "Updating ../counters/C00215.md\n", "Updating ../counters/C00216.md\n", "Updating ../counters/C00217.md\n", "Updating ../counters/C00218.md\n", "Updating ../counters/C00219.md\n" ] } ], "source": [ "from generate_amitt_ttps import Amitt\n", "amitt = Amitt()\n", "amitt.update_markdown_files()" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "updated ../matrix.md\n", "updated ../incidents.md\n", "updated ../matrix_to_message.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 ../counter_tactic_counts.md\n", "Writing ../counters_metatag/cleaningcounters.md\n", "Writing ../counters_metatag/countermessagingcounters.md\n", "Writing ../counters_metatag/data pollutioncounters.md\n", "Writing ../counters_metatag/daylightcounters.md\n", "Writing ../counters_metatag/dilutioncounters.md\n", "Writing ../counters_metatag/diversioncounters.md\n", "Writing ../counters_metatag/frictioncounters.md\n", "Writing ../counters_metatag/metatechniquecounters.md\n", "Writing ../counters_metatag/reduce resourcescounters.md\n", "Writing ../counters_metatag/removalcounters.md\n", "Writing ../counters_metatag/resiliencecounters.md\n", "Writing ../counters_metatag/scoringcounters.md\n", "Writing ../counters_metatag/targetingcounters.md\n", "Writing ../counters_metatag/verificationcounters.md\n", "updated ../counter_metatag_counts.md\n", "Writing ../counter_resource/DHScounters.md\n", "Writing ../counter_resource/NGOcounters.md\n", "Writing ../counter_resource/activistscounters.md\n", "Writing ../counter_resource/adtechcounters.md\n", "Writing ../counter_resource/civil_societycounters.md\n", "Writing ../counter_resource/community_groupscounters.md\n", "Writing ../counter_resource/companiescounters.md\n", "Writing ../counter_resource/content_creatorscounters.md\n", "Writing ../counter_resource/data_scientistcounters.md\n", "Writing ../counter_resource/datastreamscounters.md\n", "Writing ../counter_resource/developerscounters.md\n", "Writing ../counter_resource/educatorscounters.md\n", "Writing ../counter_resource/elvescounters.md\n", "Writing ../counter_resource/factcheckerscounters.md\n", "Writing ../counter_resource/fundingcounters.md\n", "Writing ../counter_resource/gamesdesignerscounters.md\n", "Writing ../counter_resource/governmentcounters.md\n", "Writing ../counter_resource/government:policymakerscounters.md\n", "Writing ../counter_resource/influencerscounters.md\n", "Writing ../counter_resource/influencers:trusted_authoritycounters.md\n", "Writing ../counter_resource/infoseccounters.md\n", "Writing ../counter_resource/librariescounters.md\n", "Writing ../counter_resource/mediacounters.md\n", "Writing ../counter_resource/militarycounters.md\n", "Writing ../counter_resource/moneycounters.md\n", "Writing ../counter_resource/platform_admincounters.md\n", "Writing ../counter_resource/platform_admin:adtechcounters.md\n", "Writing ../counter_resource/platform_admin:fundingsitescounters.md\n", "Writing ../counter_resource/platform_admin:socialmediacounters.md\n", "Writing ../counter_resource/platform_algorithmscounters.md\n", "Writing ../counter_resource/platform_outreachcounters.md\n", "Writing ../counter_resource/platformscounters.md\n", "Writing ../counter_resource/publiccounters.md\n", "Writing ../counter_resource/public:account_ownerscounters.md\n", "Writing ../counter_resource/religious_organisationscounters.md\n", "Writing ../counter_resource/schoolscounters.md\n", "Writing ../counter_resource/server_admincounters.md\n", "updated ../counter_resource_counts.md\n" ] } ], "source": [ "amitt.write_grid_markdown()\n", "amitt.write_incidentlist_markdown()\n", "amitt.write_grid_message_generator()\n", "amitt.write_responsetype_tactics_table_file()\n", "amitt.write_metatechniques_responsetype_table_file()\n", "amitt.write_resources_responsetype_table_file()" ] }, { "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": null, "metadata": {}, "outputs": [], "source": [ "def create_tactic_counters_string(tactic_id):\n", " table_string = '''\n", "| Response types | Counters |\n", "| -------------- | -------- |\n", "'''\n", " tactic_counters = amitt.df_counters[amitt.df_counters['tactic_id']==tactic_id]\n", " row_string = '| {0} | [{1} {2}](../counters/{1}.md) |\\n'\n", " for index, row in tactic_counters.sort_values(['responsetype', 'id']).iterrows():\n", " table_string += row_string.format(row['responsetype'], row['id'], row['name'])\n", " return table_string\n", "\n", "\n", "def create_technique_counters_string(technique_id):\n", " table_string = '''\n", "| Counters |\n", "| -------- |\n", "'''\n", " technique_counters = amitt.cross_counterid_techniqueid[amitt.cross_counterid_techniqueid['technique_id']==technique_id]\n", " technique_counters = pd.merge(technique_counters, amitt.df_counters[['id', 'name']])\n", " row_string = '| [{0} {1}](../counters/{0}.md) |\\n'\n", " for index, row in technique_counters.sort_values('id').iterrows():\n", " table_string += row_string.format(row['id'], row['name'])\n", " return table_string\n", "\n", "create_technique_counters_string('TA01')" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "scrolled": true }, "outputs": [], "source": [ "amitt.df_counters" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "amitt.cross_counterid_techniqueid[amitt.cross_counterid_techniqueid['technique_id'] == 'T0006']" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "amitt.cross_counterid_techniqueid" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "import pandas as pd\n", "technique_id='T0006'\n", "xx = amitt.cross_counterid_techniqueid[amitt.cross_counterid_techniqueid['technique_id']==technique_id]\n", "pd.merge(xx, amitt.df_counters[['id', 'name']])" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "tactics=self.create_counter_tactics_string(row['id'])\n", "techniques=self.create_counter_techniques_string(row['id'])\n", "incidents=self.create_counter_incidents_string(row['id'])" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "pd.pivot_table(amitt.df_counters[['tactic_id', 'responsetype','id']], index='responsetype', columns='tactic_id', aggfunc=len, fill_value=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 }