Censorship of GitHub

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, Iraq, Russia, and Turkey. In all of these cases, GitHub has been eventually unblocked after backlash from users and technology businesses or compliance from GitHub.

Background
GitHub is a web-based Git repository hosting service and is primarily used to host the source code of software, facilitate project management, and provide distributed revision control functionality of Git, access control, wikis, and bug tracking. As of June 2023, GitHub reports having over 100 million users and over 330 million repositories. 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. Users can fork (copy and individually develop) other projects, which GitHub does not automatically take down when served DMCA takedown notices. GitHub uses HTTPS for its connections, making data more secure against interception from third parties.

China
China heavily regulates Internet traffic and has blocked many international Internet companies including Facebook and Twitter. In addition, Western businesses have said that these restrictions hurt their business by reducing access to information, such as from search engines and those using VPNs. In 2013, the country started blocking GitHub and it was met by protests among Chinese programmers.

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.

Blockage
On January 21, 2013, GitHub was blocked in China using DNS hijacking. It was reported that the attack was carried out in response to political information posted on the platform. 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". The block was lifted on January 23, 2013, after an online protest on Sina Weibo.

Criticism
Kai-Fu Lee brought 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.

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."

Attack
On January 26, 2013, GitHub users in China experienced a man-in-the-middle attack in which attackers could have intercepted traffic between the site and its users in China. The mechanism of the attack was through a fake SSL certificate. 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. 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." NETRESEC performed forensics of the attack and determined that it was indeed an attack, due to the large number of router hops involved (6) and because the user submitting the packet capture was from China.

This attack was performed again on March 26, 2020, on GitHub Pages and March 27, 2020, on GitHub.com.

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. The petition linked to a Gist containing names of 3 of the architects and their contact information. 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. InformationWeek 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."

DDoS attack
On March 26, 2015, GitHub was the target of a distributed denial-of-service (DDoS) attack originating from China. It targeted two anti-censorship projects: GreatFire and cn-nytimes, the latter including instructions on how to access the Chinese version of The New York Times. GitHub blocked China-based IP addresses from visiting these repositories. If a visitor comes from China, the page would show "Repository unavailable because of the Chinese Internet Blacklist". Based on GitHub, they are doing this so "that our users in that jurisdiction may continue to have access to GitHub to collaborate and build software." They are now having a gov-takedowns repository to record all the government requirements they could show.

India
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.

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

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.

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..." 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.

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."

Impact
The Times of India reported blockage for Indian users by the ISPs Vodafone, BSNL and Hathway, but it still had access using Airtel. 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. Methods for gaining access ranged from using an alternate DNS server to installing circumvention software.

Criticism


Regarding 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. 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. Anonymous of India also posted several threats against the government, but did not take any action.

Russia
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.

ISP blockage


On December 2, 2014, Roscomnadzor blocked GitHub due to it hosting various copies of a suicide manual. Because GitHub uses HTTPS, which encrypts data between a user's computer and GitHub's servers, Internet service providers (ISPs) were forced to block the whole website instead of the pages involved. Complying ISPs included: Beeline, MTS, MGTS and Megafon. Maxim Ksenzov, the Deputy Head of 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. GitHub was also momentarily blocked on October 2, 2014, until the original copy of the manual was deleted by its uploader.

Banned content
The manual in question was posted on March 23, 2014, and details 31 methods of suicide in Russian. It was added to a repository for a software library used for working with Windows filesystems and was forked by several users. The original copy was deleted by the owner on October 2, 2014, after numerous GitHub users complained because of a block by Roscomnadzor.

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. The takedown targeted the manual and its copies, as well as a reposted blog entry about suicide.

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)." GitHub also created an official repository titled "roskomnadzor" for the purpose of posting takedown notices from the regulator. (It was later moved to "gov-takedowns" after a request from China on June 9, 2016 ) 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.

Turkey
On October 8, 2016, following the leak of emails of Turkish Minister Berat Albayrak by RedHack, the Information and Communication Technologies Authority (BTK) ordered ISPs to block several file sharing websites, including Dropbox, Microsoft OneDrive, and Google Drive. The censorship monitoring watchdog Turkey Blocks observed that GitHub was blocked the following morning, and associated administrative orders were subsequently posted by the BTK stating that access had been officially restricted. Software that depended on GitHub reported errors, such as Font Awesome and Homebrew. Participants in Startup Istanbul week also complained about the unavailability of infrastructure. The #GitHub hashtag became one of Twitter's top trends in Turkey. According to The Daily Dot, RedHack purposefully spread the emails using multiple services, expecting Turkey to block them so that the Streisand effect could be utilized. GitHub was unblocked 18 hours later.