{'fraction_non_alphanumeric': 0.014272121788772598, 'fraction_numerical': 0.0, 'mean_word_length': 5.743589743589744, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
Automatic Reverse Engineering of Unknown Security Protocols from Network Traces

Previous network-based protocol reverse engineering methods have only considered plaintext format of payload, and have not been suitable for security protocols which include many ciphertext data. We propose a novel approach to reverse security protocols from network traces-named SPREA (security protocols reverse engineering approach). SPREA extracts protocol keywords sequences hierarchically using sequential pattern mining for the first time, which would provide a new idea for plaintext format parsing. On this basis, SPREA utilizes the randomness feature of ciphertext data to locate ciphertext fields based on entropy estimation. Then SPREA infers the state machine using sequential pattern mining and Prospex method. Finally we evaluate SPREA on four classical security protocols. The experimental results show that without using dynamic binary analysis, SPREA can parse true protocol format and infer state machine purely from network traces with high accuracy.