> For the complete documentation index, see [llms.txt](https://sliu583.gitbook.io/blog/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://sliu583.gitbook.io/blog/networking/index/cs-268-adv-network/ethics/the-collateral-damage-of-internet-censorship-by-dns-injection.md).

# The collateral damage of internet censorship by DNS injection

https\://conferences.sigcomm.org/sigcomm/2012/paper/ccr-paper266.pdf

### Summary

* Great Firewall of China injects DNS responses to restrict access to domain names&#x20;
* This affects traffic originating outside China&#x20;
  * 26.4% of open resolvers affected&#x20;
  * .de is the most affected TLD (70% of open resolvers in kr)&#x20;
* Explain how, where, and why this happens&#x20;
* Present several possible solutions&#x20;
* Restricting access to computers outside China&#x20;

<figure><img src="https://2097630930-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MVORxAomcgtzVVUqmws%2Fuploads%2F1zsFYu8rZLjR522EpFFd%2Fimage.png?alt=media&amp;token=75c3276b-8273-4b5a-b6f6-3d15311c74c0" alt=""><figcaption><p>DNS Explain </p></figcaption></figure>

<figure><img src="https://2097630930-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MVORxAomcgtzVVUqmws%2Fuploads%2Fkm7ODSPYLLJMHG9QilLH%2Fimage.png?alt=media&amp;token=80b0b7ca-d8c6-4dfd-96bc-e9669c6fadb6" alt=""><figcaption><p>DNS Injection</p></figcaption></figure>

* DNS injection&#x20;
  * Affects both inbound and outbound queries&#x20;
  * Typically does not suppress "correct" response, wins the race to respond&#x20;
  * Query to Chinese AS --> respond a different IP address \[injected responses]&#x20;

### Methodology

* HoneyQueries: detect autonomous system paths to whom see DNS injection
  * DNS query to sensitive domains, sent to unresponsive IP&#x20;
  * Assumptions: all observed DNS responses are from DNS injectors&#x20;
  * Sent from a single vantage point (AS 40676)
  * 14 million IPs that cover /24 subnets
  * Paths spread to discover all injecting autonomous systems&#x20;
  * Record IPs in responses: lemon IPs&#x20;
  * ![](https://2097630930-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MVORxAomcgtzVVUqmws%2Fuploads%2FK7ymDRWDzJ4aUy4sYHR7%2Fimage.png?alt=media\&token=42603e1e-54c8-488c-8a9e-a3cf6bf205d0)
  * ![](https://2097630930-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MVORxAomcgtzVVUqmws%2Fuploads%2FtuFMbG3tVfQOO1bI2AFx%2Fimage.png?alt=media\&token=25577745-9600-4d6e-a90a-97d1f9a07e96)
* TraceQueries: identify location of injectors on affected paths
  * ![](https://2097630930-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MVORxAomcgtzVVUqmws%2Fuploads%2FQj3AdFmi2LR9JI9MhZYg%2Fimage.png?alt=media\&token=feddc76a-eae2-4cc2-8f35-a0d4e5bec605)
  * ![](https://2097630930-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MVORxAomcgtzVVUqmws%2Fuploads%2FGEkYTjry4aaG0RQhZRgg%2Fimage.png?alt=media\&token=3ad96370-6d90-4a4c-aa27-79f3c0c56033)
  * ![](https://2097630930-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MVORxAomcgtzVVUqmws%2Fuploads%2FEPBtLk1AyQTMkYErUpeo%2Fimage.png?alt=media\&token=54ebfe8e-7ed8-4025-9235-2bab7242d6b4)
    * TCP-based queries will not be injected against&#x20;
* StepNXQueries: measure collateral damage of DNS injection&#x20;
  * ![](https://2097630930-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MVORxAomcgtzVVUqmws%2Fuploads%2FhFUwnOS0jcFmAG6AszUs%2Fimage.png?alt=media\&token=52fd3e56-f754-4f4f-8b79-106644c890f2)
  * Who's affected&#x20;
    * ![](https://2097630930-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MVORxAomcgtzVVUqmws%2Fuploads%2FghmJ5bl7Stl813L5TqDE%2Fimage.png?alt=media\&token=7475e5c0-6d38-4a66-8cb5-43407fb5ccc5)
    * This is surprising!&#x20;
    * Whose resolvers?&#x20;
      * ![](https://2097630930-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MVORxAomcgtzVVUqmws%2Fuploads%2FU6XWcTlZzFonOSE31dCp%2Fimage.png?alt=media\&token=e55491fb-6cca-4270-85e5-eee37c11ac13)
  * Details&#x20;
    * ![](https://2097630930-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MVORxAomcgtzVVUqmws%2Fuploads%2FpMYqad4E0WdrVvn68VdE%2Fimage.png?alt=media\&token=15fe03eb-a012-4780-8335-b04f6e00dcd1)
    * ![](https://2097630930-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MVORxAomcgtzVVUqmws%2Fuploads%2FOayhd28xabCp39nIUfme%2Fimage.png?alt=media\&token=a3eed3f6-5f81-47ea-8f14-af9ae123b2c9)
* Solutions&#x20;
  * DNS injectors could filter out transit queries&#x20;
  * Autonomous systems could avoid transit through injecting neighbors&#x20;
    * Particularly, TLD operators could monitoring peering paths&#x20;
  * Security extensions for DNS (DNSSEC) prevent injection&#x20;
    * DNSSEC has signed responses&#x20;
    * Resolvers would reject injected responses, accept slower ones from authoritative servers
    * .de and .kr both support DNSSEC&#x20;
* Conclusion
  * ![](https://2097630930-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MVORxAomcgtzVVUqmws%2Fuploads%2FiLU8Mojdc57PF0DK1o7g%2Fimage.png?alt=media\&token=c6b36a3d-6e60-4bfc-a32a-e5123baf68f6)
