def get_stats_fortify(self, result, stats): fortify_off, fortify_on = self.extract_fortify_data_from_analysis( result) total_amount_of_files = calculate_total_files( [fortify_off, fortify_on]) self.append_nx_stats_to_result_dict(fortify_off, fortify_on, stats, total_amount_of_files)
def get_stats_pie(self, result, stats): pie_invalid, pie_off, pie_on, pie_partial = self.extract_pie_data_from_analysis( result) total_amount_of_files = calculate_total_files( [pie_off, pie_on, pie_partial, pie_invalid]) self.append_pie_stats_to_result_dict(pie_invalid, pie_off, pie_on, pie_partial, stats, total_amount_of_files)
def get_stats_relro(self, result, stats): relro_off, relro_on, relro_partial = self.extract_relro_data_from_analysis( result) total_amount_of_files = calculate_total_files( [relro_off, relro_on, relro_partial]) self.append_relro_stats_to_result_dict(relro_off, relro_on, relro_partial, stats, total_amount_of_files)
def set_nx_stats_to_dict(self, result, stats): nx_off, nx_on = self.updater.extract_nx_data_from_analysis(result) self.assertEqual(nx_off, [('NX disabled', 200)]) self.assertEqual(nx_on, [('NX enabled', 800)]) total_amount_of_files = calculate_total_files([nx_off, nx_on]) self.assertEqual(total_amount_of_files, 1000) self.updater.append_nx_stats_to_result_dict(nx_off, nx_on, stats, total_amount_of_files) self.assertEqual(stats, {'exploit_mitigations': [('NX enabled', 800, 0.8), ('NX disabled', 200, 0.2)]})
def set_canary_stats_to_dict(self, result, stats): canary_off, canary_on = self.updater.extract_canary_data_from_analysis(result) self.assertEqual(canary_off, [('Canary disabled', 700)]) self.assertEqual(canary_on, [('Canary enabled', 1000)]) total_amount_of_files = calculate_total_files([canary_off, canary_on]) self.assertEqual(total_amount_of_files, 1700) self.updater.append_canary_stats_to_result_dict(canary_off, canary_on, stats, total_amount_of_files) self.assertEqual(stats, {'exploit_mitigations': [('Canary enabled', 1000, 0.58824), ('Canary disabled', 700, 0.41176)]})
def set_relro_stats_to_dict(self, result, stats): relro_off, relro_on, relro_partial = self.updater.extract_relro_data_from_analysis(result) self.assertEqual(relro_off, [('RELRO disabled', 1100)]) self.assertEqual(relro_on, [('RELRO fully enabled', 400)]) self.assertEqual(relro_partial, [('RELRO partially enabled', 600)]) total_amount_of_files = calculate_total_files([relro_off, relro_on, relro_partial]) self.assertEqual(total_amount_of_files, 2100) self.updater.append_relro_stats_to_result_dict(relro_off, relro_on, relro_partial, stats, total_amount_of_files) self.assertEqual(stats, {'exploit_mitigations': [('RELRO fully enabled', 400, 0.19048), ('RELRO partially enabled', 600, 0.28571), ('RELRO disabled', 1100, 0.52381)]})
def set_pie_stats_to_dict(self, result, stats): pie_invalid, pie_off, pie_on, pie_partial = self.updater.extract_pie_data_from_analysis(result) self.assertEqual(pie_invalid, [('PIE - invalid ELF file', 100)]) self.assertEqual(pie_off, [('PIE disabled', 900)]) self.assertEqual(pie_partial, [('PIE/DSO present', 300)]) self.assertEqual(pie_on, [('PIE enabled', 500)]) total_amount_of_files = calculate_total_files([pie_on, pie_partial, pie_off, pie_invalid]) self.assertEqual(total_amount_of_files, 1800) self.updater.append_pie_stats_to_result_dict(pie_invalid, pie_off, pie_on, pie_partial, stats, total_amount_of_files) self.assertEqual(stats, {'exploit_mitigations': [('PIE enabled', 500, 0.27778), ('PIE/DSO present', 300, 0.16667), ('PIE disabled', 900, 0.5), ('PIE - invalid ELF file', 100, 0.05556)]})
def get_stats_canary(self, result, stats): canary_off, canary_on = self.extract_canary_data_from_analysis(result) total_amount_of_files = calculate_total_files([canary_off, canary_on]) self.append_canary_stats_to_result_dict(canary_off, canary_on, stats, total_amount_of_files)
def get_stats_nx(self, result, stats): nx_off, nx_on = self.extract_nx_data_from_analysis(result) total_amount_of_files = calculate_total_files([nx_off, nx_on]) self.append_nx_stats_to_result_dict(nx_off, nx_on, stats, total_amount_of_files)
def test_calculate_total_files(input_data, expected): assert calculate_total_files(input_data) == expected