Censorship of GitHub

From Infogalactic: the planetary knowledge core
Jump to: navigation, search
GitHub logo

GitHub has been the target of censorship from governments using methods ranging from local Internet service provider blocks, intermediary blocking using methods such as DNS hijacking and man-in-the-middle attacks, and denial-of-service attacks on GitHub's servers from countries including China, India, and Russia. In all of these cases GitHub has been eventually unblocked after backlash from users and technology businesses or compliance from GitHub.

GitHub is a web-based Git repository hosting service and is primarily used to host the source code of software and facilitate project management. As of 2015, GitHub reports having over 10 million users and over 24.2 million repositories.[1] It offers free accounts, a pastebin service called Gist, and free website hosting under its github.io domain. The GitHub terms of service prohibits illegal use and it reserves the right to remove content at its discretion.[2] In addition, users can fork (copy and individually develop) other projects, which GitHub does not automatically take down when served DMCA takedown notices.[3] GitHub uses HTTPS for its connections making data much more secure against interception from third parties.

China

<templatestyles src="Module:Hatnote/styles.css"></templatestyles>

China heavily regulates Internet traffic and has blocked many international Internet companies including Facebook and Twitter.[4] In addition, western businesses have said that these restrictions hurt their business by reducing access to information such as by search engines and using VPNs.[5]

GreatFire, a Chinese anti-censorship organization, has attempted to circumvent the Great Firewall of China using mirror websites. However, the links to these pages were posted using GitHub which brings the risk of the site being blocked along with the mirrors. In a previous incident, HSBC bank's Chinese operation was taken offline when the Akamai network was targeted for hosting GreatFire.org websites.[6]

DNS hijacking

Blockage

"No servers were able to reach your site."
Test results from viewDNS.info showing that GitHub was blocked from within China

On January 21, 2013, GitHub was blocked in China using DNS hijacking. Confirming the block, a spokesperson for GitHub said: "It does appear that we’re at least being partly blocked by the Great Firewall of China".[lower-alpha 1][7] The block was lifted on January 23, 2013 after an online protest on Sina Weibo.[8]

Rationale

While there was no response from the Chinese government regarding the block, the Nandu Daily speculated that it was due to the hosting of plug-in software that allowed purchasing of train tickets before the Spring Festival rush in China, which was discouraged by the Ministry of Railways. However, the creator of the software denied this, saying that the software had been removed since January 16, 2013.[9]

Criticism

Kai-Fu Lee bought attention to the block after posting about it on Sina Weibo. He derided the block, saying: "Blocking GitHub is unjustifiable, and will only derail the nation's programmers from the world, while bringing about a loss in competitiveness and insight." Lee's post was shared over 80,000 times.[7]

The Next Web called the block unfortunate, saying that "Chinese developers will have to play around with workarounds or find an alternative service when they want to work with their peers around the world."[7]

MITM attack

Attack

"Safari can't verify the identity of the website github.com."
An example of the warning users in China received from browsers when trying to access GitHub with the self-signed certificate

On January 26, 2013, GitHub users in China experienced a man-in-the-middle attack in which attackers could have possibly intercepted traffic between the site and its users in China. The mechanism of the attack was through a fake SSL certificate.[10] Users attempting to access GitHub received a warning of an invalid SSL certificate, which due to being signed by an unknown authority was quickly detected.[11] A spokesperson for GitHub said "Early last week, it appeared that GitHub was being at least partially blocked by the Great Firewall of China... After a couple days, it appeared that GitHub was no longer being blocked."[10] NETRESEC performed forensics of the attack and determined that it was legitimate due to the large number of router hops (6) involved and because the user submitting the packet capture was from China.[12]

Rationale

GreatFire speculated that the attack was related to a popular White House petition calling for the denial of entry to the United States of the architects of the Great Firewall of China.[11] The petition linked to a Gist containing names of 3 of the architects and their contact information.[13] GreatFire also said that since GitHub is HTTPS only, Chinese authorities can't block individual pages and have to completely block the website, which helps explain why they would have to resort to the attack.[11] InformationWeek also noted the economic difficulty related to blocking GitHub: "What makes GitHub interesting from a censorship point of view is that it combines a critical business service — collaborative coding — with social interaction."[10]

DDoS attack

Lua error in package.lua at line 80: module 'strict' not found.

India

<templatestyles src="Module:Hatnote/styles.css"></templatestyles>

India selectively censors websites at the federal and state levels. This is enforced by the Information Technology Act, 2000 as well as licensing requirements for Internet Service Providers (ISPs). Critics such as Rajeev Chandrasekhar have noted the vagueness of these regulations and the Centre for Internet and Society found that ISPs tended to over-comply with takedown requests.[14]

ISP blockage

On December 17, 2014, the Indian Department of Telecom issued an order to ISPs to block 32 websites.[15] The notice was made public on December 31, 2014 and it included GitHub, GitHub's Gist, Vimeo, the Internet Archive, and various pastebin services.[16]

<templatestyles src="Template:Quote_box/styles.css" />

Direction to block Internet Website

To: All Internet Service Licensees
Under the powers conferred by Section 69A of the Information Technology Act, 2000 and under the Information Technology (Procedures and Safeguards for Blocking of Access of Information by Public) Rules, 2009, it has been decided to immediately block the access to the following 32 URLs:...

Department of Telecommunications[16]

The block order was confirmed on Twitter by Arvind Gupta, the national head of the ruling party BJP, and was attributed to a suggestion by India's Anti Terrorism Squad in response to content by the Islamic extremist group ISIS. Gupta also stated that websites that cooperated with the investigation were being unblocked.[17]

On January 2, 2015, the Ministry of Communications issued a statement that it will be unblocking 4 of the websites, including GitHub's Gist, and said that it will consider unblocking the remaining websites once they complied. Explaining its rationale, the ministry stated "Many of these websites do not require any authentication for pasting any material on them... These websites were being used frequently for pasting, communicating [jihadi] content..."[18] Gulshan Rai of the CERT-In agency of the ministry said that the order came from the Mumbai Additional Chief Metropolitan Magistrate following an interrogation of Arif Majeed, an ISIS recruit.[19]

On January 4, 2015, a GitHub spokesperson said that some users were still having trouble accessing the site and that GitHub has attempted to reach out to the Indian government, but is still unclear about the cause of the block. They said that restoring access to the developer community in India was their top priority and that they "would like to work with the Indian government to establish a transparent process for identifying unlawful content, restore access, and ensure that GitHub continues to remain available in the future without interruption."[20]

Impact

The Times of India reported blockage for Indian users by ISPs Vodafone, BSNL and Hathway, but still had access using Airtel.[15] Because the order only told ISPs what to block and not how, the effectiveness of blocking access varied. The blocking was unreliable and seemed to be occurring at multiple layers, even within the same ISP. Blocking methods included IP blocking, the use of a proxy server, and DNS blocking. Gaining access ranged from using an alternate DNS server to installing circumvention software.[21]

Criticism

Silhouettes of GitHub's octocat and the vimeo logo with the word "blocked" inside them, along with a description of the block
A poster by the Free Software Foundation Tamil Nadu protesting the blocks using the hashtag #GOIBlocks

In regards to the blocks, TechCrunch remarked that "[the] addition of GitHub... is one of the more head-scratching decisions" and anticipated an uproar considering its importance in the tech industry. They also called it embarrassing in the context of Prime Minister Narendra Modi's Make in India campaign to promote India as a destination for information technology.[22] Prasanth Sugathan of the Software Freedom and Law Center called the blocks short-sighted, saying that "If you block one website, terrorists can always use another one... Such a move only inconveniences the daily users..." Twitter users protested using the hashtag #GOIblocks and recirculated a hypocritical message by Modi from 2012 condemning blanket blocking of websites.[19] Anonymous of India also posted several threats against the government, but did not take any action.[18]

Russia

<templatestyles src="Module:Hatnote/styles.css"></templatestyles>

The Russian government blacklists websites that include child pornography, drug-related material, advocacy of suicide, extremist material, and other illegal content under the Russian Internet Restriction Bill to protect children. This list is maintained by Roscomnadzor, Russia's regulatory agency.[23]

ISP blockage

A screenshot of the Firefox browser and an error message in Russian
The block message Russian GitHub users saw when trying to access the website on December 2, 2014[lower-alpha 2]

On December 2, 2014, Roscomnadzor blocked GitHub because it was hosting various copies of a suicide manual. Because GitHub uses HTTPS, which encrypts data between a user's computer and GitHub, Internet Service Providers were forced to block the whole website instead of the pages in question. Complying ISPs included: Beeline, MTS, MGTS and Megafon. Maxim Ksenzov, the Deputy Head of the Roscomnadzor, said in a statement that the block was due to GitHub not complying with earlier takedown requests for the manual on October 10, 2014.[24] GitHub was also momentarily blocked on October 2, 2014 until the original copy of the manual was deleted.[25]

Banned content

The manual in question was posted on March 23, 2014, and details 31 methods of suicide in Russia. It was created in a repository for a software library for working with Windows filesystems and was forked by several users.[26] The original copy was deleted by the owner on October 2, 2014 after numerous complaints by GitHub users following a block of GitHub by Roscomnadzor.[lower-alpha 3][26][27]

TechCrunch remarked that the manual seemed to be written as satire and includes methods such as "biting your tongue", "joining the military" or "getting a good gun" from a policeman.[28] The takedown targeted the manual and its copies, as well as a reposted blog entry about suicide.[29]

Response

GitHub complied and blocked access to the content within Russia saying that they were working to get reinstated. Citing its terms of service, GitHub elaborated that "you must not, in the use of the Service, violate any laws in your jurisdiction (including but not limited to copyright or trademark laws)."[28] GitHub also created an official repository titled "roskomnadzor" for the purpose of posting takedown notices from the regulator. In the readme of the repository, GitHub states that they are concerned about Internet censorship and believe in transparency to document the potential for chilling effects. They also warn that the presence of a notice is only for documentation and that GitHub does not pass any judgement on their validity.[30]

Notes

  1. The Next Web and GreatFire both claim that it was fully blocked however.[7]
  2. The content of the page consists of 4 reasons why the website breaks laws under the Russian Federation, and why therefore, the contents of the website are blocked.
  3. However, because the original was forked, and Git keeps a history of changes, the file was still accessible on GitHub.

References

  1. Lua error in package.lua at line 80: module 'strict' not found.
  2. Lua error in package.lua at line 80: module 'strict' not found. (Specifically terms A8 and G7)
  3. Lua error in package.lua at line 80: module 'strict' not found.
  4. Lua error in package.lua at line 80: module 'strict' not found.
  5. Lua error in package.lua at line 80: module 'strict' not found.
  6. Lua error in package.lua at line 80: module 'strict' not found.
  7. 7.0 7.1 7.2 7.3 Lua error in package.lua at line 80: module 'strict' not found.
  8. Lua error in package.lua at line 80: module 'strict' not found.
  9. Lua error in package.lua at line 80: module 'strict' not found.
  10. 10.0 10.1 10.2 Lua error in package.lua at line 80: module 'strict' not found.
  11. 11.0 11.1 11.2 Lua error in package.lua at line 80: module 'strict' not found.
  12. Lua error in package.lua at line 80: module 'strict' not found.
  13. Lua error in package.lua at line 80: module 'strict' not found.
  14. Lua error in package.lua at line 80: module 'strict' not found.
  15. 15.0 15.1 Lua error in package.lua at line 80: module 'strict' not found.
  16. 16.0 16.1 Lua error in package.lua at line 80: module 'strict' not found.
  17. Lua error in package.lua at line 80: module 'strict' not found.
  18. 18.0 18.1 Lua error in package.lua at line 80: module 'strict' not found.
  19. 19.0 19.1 Lua error in package.lua at line 80: module 'strict' not found.
  20. Lua error in package.lua at line 80: module 'strict' not found.
  21. Lua error in package.lua at line 80: module 'strict' not found.
  22. Lua error in package.lua at line 80: module 'strict' not found.
  23. Lua error in package.lua at line 80: module 'strict' not found.
  24. Lua error in package.lua at line 80: module 'strict' not found.
  25. Lua error in package.lua at line 80: module 'strict' not found.
  26. 26.0 26.1 Lua error in package.lua at line 80: module 'strict' not found.
  27. Lua error in package.lua at line 80: module 'strict' not found.
  28. 28.0 28.1 Lua error in package.lua at line 80: module 'strict' not found.
  29. Lua error in package.lua at line 80: module 'strict' not found.
  30. Lua error in package.lua at line 80: module 'strict' not found.

External links

zh:GitHub#.E4.BA.8B.E4.BB.B6