Analysis how Iran’s internet shutdown gagged local freedom of speech
OSINT and data analysis of online and social media content reveals how the blocking of Iran’s regional internet connection by its government gagged people’s freedom of speech.
Using network disruptions to limit the rights to free expression and free assembly is unadvisable, says NetBlocks.org, a non-government organization that provides tools to the public to observe possible Internet blocks and the economic consequences of censoring websites.
But that’s exactly what NetBlocks thinks the Iranian government is doing again and right now. It’s only months after the government’s aggressive response to clamp down on protesters that left many dead and saw levels of violence unseen for decades.
According to NetBlocks, the internet tap was turned off after protests criticized the government for death sentences against several young people involved in last November’s protests.
Amnesty International speaks of ‘grossly unfair trials’. Last November’s protests are classified as the worst unrests in 40 years, according to the New York Times. Hundreds were killed as a result of it.
Last November 2019, the shutdown lasted a week and was in response to fuel protests. The plug was pulled by Iran’s Supreme National Security Council and the Ministry of Information and Communication Technology.
Now there is a chance that what happened last November could repeat itself. A closer look at the effects of the internet block that materialized in the Khuzestan Province, in the southwest of the country, bordering to Iraq, reveals how online protesters on Twitter were cut off.
This July, the main focus of the peaceful protests were in Behbahan.
Oil-rich Khuzestan province itself has a long history of being opposed to the central government and has played a central role in last year’s protests. The worst violence back then took place in the city of Mahshahr and suburbs with its 120,000 inhabitants.
Feelings among online protesters and other observers ran high on social media platform Twitter, even before people gathered in the streets of Behbahan. By July 15, observers said that 3.8 million tweets were encountered “in a Twitterstorm for supporting Iranian protesters to stop their execution”.
Videos published online on the 16th showed protesters in an Iranian town square. Some say it pushed things over the edge and motivated the government to invoke the blockage. We will try to find the earliest instances of these videos and use Twitter's advanced search query for that:
Behbahan protest until:2020–07–17 since:2020–07–15
If you scroll down you can find a video showing people chanting in a square with a white building in the background. We are going to geo-located it.
There were two protests. One was in Shiraz. The other protests took place in Behbahan. We will concentrate on the one in Behbahan. The protest’s location is somewhere in the city center. We know this from the description. What stands out is the big blue fluorescent/neon sign and the white building structure in the background.
It is great that multiple people recorded the protest where people gathered and reportedly shouted “don't be afraid, we are together”. Multiple camera angles give us a solid way to assess the surrounding. We see a white building in the background and a number of large signs in front of it.
I Googled ‘White building in Behbahan’ which suggested it somewhere outside a branch of the Meli Bank. There are a number of Meli Bank ATMs in the city. We have to work according to the exclusion principle. One of the 7 Meli Bank locations we find on Google Maps shows a round-angled building facing the square. We quickly find the right location at @30.591785, 50.246931.
A number of protesters and civilians were shot and killed by security forces in this area during the 2019 November protests. It also appears that part of the building was in flames sometimes in the past (according to a news report by haaretz.com, though, it’s hidden behind a paywall so it’s hard to tell).
How big was the crowd of protesters that gathered in Behbahan?
We can estimate how big the gathering was that populated the little square with a tool called Mapchecking.
Navigate to the lat/long (30.591785, 50.246931) in Behbahan. From the video, we can see that there is quite a lot of space still in the middle. Some people wear masks. We may also assume that some perform social distancing.
I set Mapchecking’s dials to 0.3 people per m2 (~10f2) - partly due to the social distancing aspect and party because holes in the crowd, parts of the centre in the square seems empty. Also, it’s possible that the crowd reaches further down into the streets away from the square (at least it's feasible). So accordingly, I draw the polygon more generously. The calculator says there are 287 people.
Why do these, less than 300 peaceful protesters matter? The news reporting suggested that the internet blackout of the entire province was built on these peaceful protests. It’s also worth remembering that Khuzestan province has around 4.7m inhabitants that found themselves suddenly without an internet connection.
No web connection means no way to check on family and friends. Such a blackout not only gaggs freedom of speech but it could have a far more dramatic effect on social life in a state of emergency.
Analysis of the effect of the internet blockage
NetBlocks said that from 10 pm local time, real-time network data shows total and partial disruptions for the Khuzestan Province, varying by provider amid anti-government protests.
Many of the online protesters, protesting against the unjust death penalty sentence used #اعدام_نکنید (don’t execute) as a hashtag to express discontent on Twitter.
Using Twint (here a useful intro), I scraped an astounding number of 356,418 tweets that made use of this hashtag between July 15, 20:52 UK time (In Iran, it was 00:22) and July 17, 11:35am UK time (3:05pm Iran time). Twitter shows their feed in their local time zone, so be careful about time changes, especially when you use a VPN (we got a Timezone column in our scraped tweets, so you can check there what time you are on). Iran’s time is GMT+4:30, or +3:30 for the UK.
You have to install Twint first. Then you can execute the following in your terminal window.
twint -s #اعدام_نکنید -o dontexecute.csv — csv
We then use R for a quick analysis of Tweet volume. R has no problem it take the 200mb of data and load it into the local environment— it takes a little longer but don't be perturbed by that. We will just look at the count of tweets per hour and hopefully arrive at a verdict whether the volume was affected by the internet blackout that kicked in 10 pm local time (6:30 UK time), on July 16, according to reports.
Run the following code snippets in your local R environment of choice.
Iran_DontExecuteHashtag <- read.csv(‘/YourFilePath.csv’)
de_short <- de %>%
select(c(date, time, created_at, likes_count, replies_count))
Number_of_replies <- de_short_likes %>%
mutate(TIME = as.POSIXct( (as.numeric(created_at) * 0.001), tz = “Europe/London”, origin = “1970–01–01”)) %>%
group_by(lubridate::hour(TIME), date) %>%
summarise(count=sum(replies_count)) %>%
arrange(desc(count)) %>%
rename(time = 1, date = 2, volume = 3) %>%
unite(merged, c(date, time), sep = “_0”, remove = FALSE) %>%
arrange(date,time,desc(date))
View(Number_of_replies)
Number_of_tweets <- de_short %>%
mutate(TIME = as.POSIXct( (as.numeric(created_at) * 0.001), tz = “Europe/London”, origin = “1970–01–01”)) %>%
group_by(lubridate::hour(TIME), date) %>%
summarise(count=n()) %>%
arrange(desc(count)) %>%
rename(time = 1, date = 2, volume = 3) %>%
unite(merged, c(date, time), sep = “_0”, remove = FALSE) %>%
arrange(date,time,desc(date))
View(Number_of_tweets)
What we get are two clean datasets for the number of tweets and replies. You can use Excel, LibreOffice or, wherever you decide to visualise this data.
Conversations (e.g. replies) may be more important than the sheer number of tweets. That’s because people in the respective province where the blackout occured may not be able to respond, which matters to this analysis more than the total number of tweets. The data suggest there is a noticeable decline after the blackout was invoked.
If we visualize the number of tweets alone, the trend is not so obvious anymore.
The volume died down after the blackout but some of it is arguably down to the fact that it’s the evening/nighttime (though it didn't recover so well after the blackout). Also, much of the #اعدام_نکنید tweets may not have been tweeted from Iran but from other countries. There was widespread support from other countries such as the US and across Europe.
The #DontExecute network
Next, we check how tweets using the hashtag connect if laid out on a network graph. We use Table2Net and Gephi for this. If you want to understand how to build network plots with tweets, a beginner tutorial like this one may help (I save this for later).
What’s confusing is that Iran just suffered a blackout the week before. On July 8, according to Netblocks, a series of network outages were down to “knock-on effect of power cut in Armenia”.
What’s frustrating the situation is that the coming days will see the blackout continuing. Various sources said (one here) that “after protests and clashes in Behbahan, Khuzestan Governor announces 3 days closure from July 19 to July 21 (inclusive). July 18 & 22 will be open as half days, as well”.
Some personal criticism:
One has to add that the US is not helping with its sanction scheme that tech companies take up to acceserbate the situation in Iran. It bans Iranians out of essential online services. Last summer, reports surfaced that access to free services on Github, Gitlab, as well as Amazon Cloud services got suspended for users inside Iran.
Critics say that these and other restrictions pushed Iranian developers to use unsafe hosting tools, leaving their websites vulnerable to cyberattacks and risking users’ security.
Internet censorship elsewhere
Other governments are actively using internet blockages to stifle free speech. Ethiopia is the latest example where the internet was cut off after the killing of Oromo singer and political activist HaacaaluuHundeessaa.
On July 5, AJ reported that at least 166 deaths occurred in violent protests due to the killing of the popular singer.
I hope that this little OSINT tutorial on Iran’s internet freedom helped you to better understand the difficult situation the country is facing.