{"about":{"site":"https://codewithpapers.app","non_affiliation":"Code with Papers and Syntology are not affiliated with, endorsed by, or sponsored by Papers with Code, Meta, or the pwc-archive mirror.","licence":"CC BY-SA 4.0","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","attribution":"https://codewithpapers.app/attribution","modified":"archive material modified by Syntology; see the attribution page"},"url":"/paper/mockingbird-defending-against-deep-learning","title":"Mockingbird: Defending Against Deep-Learning-Based Website Fingerprinting Attacks with Adversarial Traces","arxiv_id":"1902.06626","date":"2019-02-18","proceeding":null,"authors":["Mohammad Saidur Rahman","Mohsen Imani","Nate Mathews","Matthew Wright"],"abstract":"Website Fingerprinting (WF) is a type of traffic analysis attack that enables a local passive eavesdropper to infer the victim's activity, even when the traffic is protected by a VPN or an anonymity system like Tor. Leveraging a deep-learning classifier, a WF attacker can gain over 98% accuracy on Tor traffic. In this paper, we explore a novel defense, Mockingbird, based on the idea of adversarial examples that have been shown to undermine machine-learning classifiers in other domains. Since the attacker gets to design and train his attack classifier based on the defense, we first demonstrate that at a straightforward technique for generating adversarial-example based traces fails to protect against an attacker using adversarial training for robust classification. We then propose Mockingbird, a technique for generating traces that resists adversarial training by moving randomly in the space of viable traces and not following more predictable gradients. The technique drops the accuracy of the state-of-the-art attack hardened with adversarial training from 98% to 42-58% while incurring only 58% bandwidth overhead. The attack accuracy is generally lower than state-of-the-art defenses, and much lower when considering Top-2 accuracy, while incurring lower bandwidth overheads.","url_abs":"https://arxiv.org/abs/1902.06626v3","url_pdf":"https://arxiv.org/pdf/1902.06626v3.pdf","source":{"archive":"pwc-archive (Hugging Face), CC BY-SA 4.0","snapshot":"2025-07-28","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","row_kind":"links_only","authors_date_abstract":"arXiv metadata, CC0 1.0 (https://info.arxiv.org/help/license), from the Kaggle arXiv metadata snapshot of 2026-09-12"},"code_links":[{"paper_slug":"mockingbird-defending-against-deep-learning","repo_url":"https://github.com/msrocean/mockingbird","is_official":1,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"tf","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/website-fingerprinting-defense-on-website","task":"Website Fingerprinting Defense","dataset":"Website Traffic Data on Tor","model":"CNN","rank_in_archive_order":1,"of":1,"metrics":{"Accuracy (%)":"42"},"uses_additional_data":false}],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=1902.06626","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"1902.06626"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-24T18:15:14+00:00","read_at_is":"when the build read Syntology's graph, not when any sample ran","claim":"Per-sample execution status on synthesized fixtures; not a correctness claim about the paper. Samples come from repositories linked to the paper, official or community; repo_kind says which.","repos":[{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/msrocean/mockingbird","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"unverified":6},"by_repo_kind":{"official":{"samples":6,"ran":0,"repositories":1}},"repo_kind_vocabulary":{"official":"The archive marks this repository official for the paper","named_in_paper":"The archive records that the paper mentions this repository; it is not marked official","listed":"In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper","found_in_text":"Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted","community":"Not in the archive's code links for this paper; a community repository Syntology harvested"},"n_pointer_only_for_licence":0,"samples":[{"code_sha256_prefix":"d033fad1fde2a36b","entry":"ResNet18","repo":"msrocean/mockingbird","repo_kind":"official","path":"run_attack.py","file_url":"https://github.com/msrocean/mockingbird/blob/HEAD/run_attack.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"d033fad1fde2a36b"}},{"code_sha256_prefix":"5e96b626474ce4a3","entry":"basic_1d","repo":"msrocean/mockingbird","repo_kind":"official","path":"run_attack.py","file_url":"https://github.com/msrocean/mockingbird/blob/HEAD/run_attack.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"5e96b626474ce4a3"}},{"code_sha256_prefix":"29a4ce6ded619c39","entry":"dilated_basic_1d","repo":"msrocean/mockingbird","repo_kind":"official","path":"run_attack.py","file_url":"https://github.com/msrocean/mockingbird/blob/HEAD/run_attack.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"29a4ce6ded619c39"}},{"code_sha256_prefix":"66181ae4102bc5d8","entry":"distance","repo":"msrocean/mockingbird","repo_kind":"official","path":"mockingbird_utility.py","file_url":"https://github.com/msrocean/mockingbird/blob/HEAD/mockingbird_utility.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"66181ae4102bc5d8"}},{"code_sha256_prefix":"3e433b35b8881035","entry":"exclute_class","repo":"msrocean/mockingbird","repo_kind":"official","path":"mockingbird_utility.py","file_url":"https://github.com/msrocean/mockingbird/blob/HEAD/mockingbird_utility.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"3e433b35b8881035"}},{"code_sha256_prefix":"96f3205d7cf9c6f8","entry":"get_class_samples","repo":"msrocean/mockingbird","repo_kind":"official","path":"mockingbird_utility.py","file_url":"https://github.com/msrocean/mockingbird/blob/HEAD/mockingbird_utility.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"96f3205d7cf9c6f8"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}