This email shares OONI’s monthly report for November 2023.
# OONI Monthly Report: November 2023
Throughout November 2023, the OONI team worked on the following sprints:
- Sprint 103 (1st - 5th November 2023)
- Sprint 104 (6th - 19th November 2023)
- Sprint 105 (20th - 30th November 2023)
Our work can be tracked through the various OONI GitHub repositories: https://github.com/ooni
Highlights are shared in this report below.
## Launched the OONI Censorship Findings platform
We are excited to share that we launched a new Censorship Findings platform!
Along with the launch, we published:
20 reports on censorship events that emerged in 2023: https://explorer.ooni.org/findings
Blog post sharing information about the Censorship Findings platform: https://ooni.org/post/2023-launch-ooni-censorship-findings-platform/
The Censorship Findings platform was also featured as a “Tool of the Week” in Top10VPN’s newsletter: https://top10vpn.substack.com/p/friday-digest-4-fb-messenger-whatsapp
The Censorship Findings platform includes 20 reports on internet censorship events that emerged around the world in 2023 based on OONI data. These short reports include key censorship findings and charts based on OONI data. We describe the criteria that inform which cases we report on in our blog post: https://ooni.org/post/2023-launch-ooni-censorship-findings-platform/#limitations
Our goal is to support research and advocacy efforts aimed at monitoring and responding to internet censorship around the world. In response to emergent censorship events, we will continue to publish reports on the Censorship Findings platform on an ongoing basis.
We thank the global OONI community for contributing measurements, making the creation of this platform possible.
## OONI Team Meeting 2023
Our team is distributed in various countries (and continents) and throughout the year, we work remotely online. Once a year, we come together for an in-person OONI Team Meeting to discuss projects, strategic priorities, and to refine our roadmaps.
Between 8th-10th November 2023, we hosted our annual OONI Team Meeting in Nairobi, Kenya.
We chose Nairobi as a location for our team meeting based on our script which automatically provides locations that are visa-friendly, safe, and cost-effective to help ensure in person attendance from all of our team members. We took this measure because last year, half of our team was not able to travel to Rome for our 2022 Team Meeting due to visa issues (and we therefore had to host a hybrid event).
This year, hosting the meeting in Kenya meant that all of our team members were able to join in person! And this meeting provided us the opportunity to meet some of our colleagues in person for the first time! In addition to our team, the meeting also included an OTF research fellow who we will be hosting over the next year.
As part of the 3-day OONI Team Meeting 2023, we facilitated the following 15 sessions:
- OONI Strategy: Now and in the Future
- Automating censorship detection and characterization, and creating a Social Media Censorship Alert System: Discussion of current status and next steps
- Community engagement and new community roadmap
- Supporting richer testing input: Discussion of current status and next steps
- Presenting thematic censorship findings on OONI Explorer: Discussion of current status and next steps
- Measuring the blocking of VPNs and evolving circumvention games
- Evolution of OONI measurement representations: Moving towards a flexible architecture and data model for research and presentation
- Methods for measuring throttling: Discussion of current status and next steps
- OONI Run v2: Discussion of current status and next steps towards launch
- Team Health Check
- Psychological safety and supportive group norms
- Roadmap session (Part 1)
- Roadmap session (Part 2)
- OONI funds and finances for 2024
- OONI fundraising priorities
As an outcome, we have significantly improved roadmaps, and we made important progress on many of our high-priority projects and activities. We also had an opportunity to discuss strategic priorities for the future, as well as approaches for improving our team’s health and organization’s long-term resilience.
On 11th November 2023 (after the 3-day team meeting), we hosted a “team bonding day”, providing our team some extra time for in person bonding – which is important given that we work remotely throughout the year.
## Published blog post about IMC 2023 internet measurement hackathon
In collaboration with ISOC, M-Lab, Censored Planet, and IODA, OONI co-hosted an internet measurement hackathon alongside the Internet Measurement Conference (IMC) 2023.
In November 2023, we published a blog post sharing the great projects that came out of the hackathon: https://ooni.org/post/imc-hackathon-results-2023/
The hackathon participants worked on using OONI data to investigate IPv6 connectivity, data triangulation to infer censorship or shutdown events, and on correlating alarms across multiple datasets. We were very impressed with the results produced by the participants!
During the hackathon, OONI’s Arturo created “The Sound of Internet Shutdowns”: a sonification project which transforms some of the features of the IODA dataset into synthesized sounds: https://shutdown-sound.vercel.app/
Here is an example of how an internet shutdown in Iraq based on IODA data sounds like: https://www.youtube.com/watch?v=Z1TFc1AyqI4
The “Sound of Internet Shutdowns” project was featured as a “Tool of the Week” in Top10VPN’s newsletter: https://top10vpn.substack.com/p/friday-digest-3-vpn-vulnerabilities
We thank all the participants and co-organizers for making the hackathon a great event!
## OONI Probe Mobile
In November 2023, we released OONI Probe Mobile 3.8.5 for both Android (https://github.com/ooni/probe-android/releases/tag/v3.8.5) and iOS (https://github.com/ooni/probe-ios/releases/tag/v3.8.5), which included some minor improvements and maintenance work.
## OONI Run
As part of our work on creating the next generation version of OONI Run (“OONI Run v2”), we continued to iterate on the user interface designs for the web and mobile applications. Most notably, we updated the run button from the dashboard to display the new flow for selecting tests (https://github.com/ooni/probe-android/pull/632) and we updated the preferences to reflect the new designs (https://github.com/ooni/probe-android/pull/633). We also started working on our test plans to prepare for internal testing and QA next year.
Moreover, we added OONI Run link ID support (https://github.com/ooni/backend/pull/768) and backend support for searching measurements from a specific OONI Run v2 link (https://github.com/ooni/backend/issues/701) to the fastpath pipeline.
## OONI Probe CLI
We released OONI Probe CLI versions 3.19.1 and 3.19.2 to address data quality issues caused by changes in the endpoints used by the Signal application. You can read the changelogs at the following links:
We also continued working on improving our throttling methodology by merging work into the master branch (see the throttling section) and starting to prepare for the OONI Probe CLI 3.20 release.
Our community has asked us to add support for Go 1.21, but unfortunately it seems we will not be able to do that for OONI Probe 3.20. We will nonetheless try our best to support Go 1.21 before Go 1.20 goes EOL in February 2024. You can read more about this topic here: https://github.com/ooni/probe/issues/2548
## Expanding OONI’s testing model to support richer testing input
As part of our OONI Team Meeting 2023 in Nairobi, we facilitated a session on “supporting richer testing input”, as part of which we discussed the current status and next steps. As part of this, we documented the next milestones and improved upon our relevant roadmap. We illustrate the updated plan in the following GitHub issue: https://github.com/ooni/ooni.org/issues/1291
In summary, we aim to incrementally add richer testing input to the data structure returned by the check-in API for the experiments that would benefit the most from obtaining richer input.
Based on our current plan, the OONI experiments that would benefit most from richer testing input include:
DNS Check: Richer testing input would allow us to serve information about HTTP/3 and start testing DNS-over-HTTP3.
Signal: Richer testing input would enable us to serve the custom CA and to measure the endpoints from the backend, thus eliminating the need to make emergency releases (such as with OONI Probe CLI 3.19.1 and 3.19.2) to handle endpoint changes.
*STUN Reachability: Richer testing input will allow us to serve the STUN endpoints used by the snowflake client and to keep updating them without making new releases.
Tor Snowflake: Richer testing input will allow us to modify some parameters used by snowflake to bootstrap and to reduce the number of cases where we need to issue new bug-fixing releases.
RiseupVPN: Richer testing input will allow us to eliminate the functional coupling in the experiment implementation between checking for Riseup’s API reachability and obtaining the endpoints to measure, thus making the experiment more robust and adaptable.
(Potentially) urlgetter: Richer testing input will allow us to run custom measurements when there is an emerging censorship condition for which we don’t already have an experiment.
These changes will modify the OONI Probe client and, for some experiments, we will take advantage of the new ooni/data processing pipeline (https://github.com/ooni/data).
## Creating a methodology for measuring throttling
We already implemented better support for measuring throttling in Web Connectivity v0.5, which is currently not enabled for most OONI Probe apps users. To enable this experiment for everyone, we first need to make sure that it is fully compatible with the current stable version (v0.4). That is, if a website was previously marked as blocked in a specific way by v0.4, we would like v0.5 to say the same. We would also like v0.5 to provide a more nuanced view of the blocking that is happening, but we definitely don’t want to introduce data quality issues.
During November 2023, we made significant progress to make this happen. Specifically, we ran A/B testing between Web Connectivity v0.5 and v0.4 using our Gvisor-based QA suite. As part of this work, we wrestled with the difficulty of mapping the results produced by v0.5 to the ones produced by v0.4. The underpinning issue is that v0.5 results answer the question of “all the ways in which the tested website is blocked.” Conversely, v0.4 analysis code aims to answer the question of “the first way in which the website is blocked.” To reconcile these differences, we needed to significantly enrich our in-probe data processing capabilities.
To this end, we authored a new Go package named “minipipeline.” We implemented this package to mirror the data analysis architecture implemented in the new ooni/data processing pipeline (https://github.com/ooni/data). The general idea is that an OONI measurement (i.e., the piece of JSON OONI Probe sends to the backend and you can inspect in Explorer) goes through the following set of standard transformations:
We process the fundamental results inside the measurement (e.g., the results of DNS lookups, TCP connects, TLS handshakes) to produce flat “observations.” Each observation is a statement about measurements performed by OONI Probe with a single possible failure. In other words, each DNS lookup produces an observation, and each attempt at measuring an endpoint (e.g., “18.104.22.168:443” with SNI equal to “dns.google”) is also an observation. We also link DNS and endpoints observations together, take note of the redirect depth (i.e., is this the first request or the N-th redirect?), and distinguish between observations that aim to fetch a webpage and observations that just enrich the measurement.
We analyze the observations to produce a synthetic representation called “analysis,” which contains metrics such as (a) which DNS lookups failed where we expected them to succeed based on the control measurement and (b) the linear list of operations performed to fetch the final webpage, sorted by descending redirect depth, type, and result.
In turn, Web Connectivity v0.5 uses the “analysis” results to produce its top-level keys (e.g., the blocking and accessible fields also produced by Web Connectivity v0.4).
Thanks to this more comprehensive and more accurate measurement analysis process, and by filtering observations to only include into the analysis those observations that would also be produced by v0.4, we’re now able to obtain the same documented top-level test keys in v0.4 and v0.5 for all the test cases defined in our GVisor-based QA suite.
This result is a significant milestone for us, because it means we can start running A/B testing in production using existing probes once the new code has been shipped. The aim of this further A/B testing stage would be to collect real world data that is useful to compare v0.4 and v0.5, possibly leading to additional bug fixes and new QA test cases.
Additionally, from the engineering perspective, using a similar data processing architecture between OONI Probe and the ooni/data pipeline enables running A/B testing between the two tools in the future, and potentially opens up the possibility of sharing code between them.
## OONI Explorer
As part of our OONI Team Meeting 2023 in Nairobi, we facilitated a session on “presenting thematic censorship findings on OONI Explorer”. As part of this session, we discussed the challenges associated with grouping OONI measurements by resource and presenting thematic censorship findings (while eliminating the risk of false positives) in an automated way. We also discussed and determined the next steps towards implementing this area of work over the next months.
In November 2023, we also launched the new Censorship Findings (https://explorer.ooni.org/findings) page on OONI Explorer (as discussed previously in this report).
## Creating a Social Media Censorship Alert System
As part of our OONI Team Meeting 2023 in Nairobi, we facilitated a session on “creating a Social Media Censorship Alert System”. As part of this, our colleagues presented the current status of the alert system, and we discussed related challenges and next steps.
## Automating censorship detection and characterization based on OONI measurements
In November 2023, we made significant progress in the area of automating the detection and characterization of internet censorship.
Specifically, we came up with a new metric for representing the outcomes related to blocking happening, called the Likelihood of Network Interference (LoNI). This metric represents the likelihood that access to a given resource is being restricted via a particular method within the specified network region over some period of time.
The LoNI metric is implemented through a new data model called Experiment Results. The analysis code of ooni/data (https://github.com/ooni/data) has been significantly refactored to generate Experiment Results through an intermediate data model called Analysis. The basic idea is to take the Analysis keys that are generated by comparing an individual observation with ground truth data. Through a very large set of rules we are able to assign individual blocking, down and ok rules based on how confident we are in that particular signal being a sign for censorship.
We then take all the scores pertaining to a particular observation group relevant to a measurement and generate a MeasurementExperimentResult which should be backward compatible with our existing data model. In terms of performance, some cursory benchmarks were run on the dataset from 2023-09-01 to 2023-11-01 and it was processing data at a rate of ~7k observations per second, scaling on 34 cores.
As part of our work (https://github.com/ooni/data/pull/44), we:
- Implemented the Experiment Result generation based on the analysis tables;
- Implemented minimal UI for MeasurementExperimentResult;
- Added support for generating MeasurementExperimentResult as part of mkanalysis cli command;
- Added more tests for all of the above.
Moreover, we implemented a basic web interface for exploring these Experiment results (https://github.com/ooni/data/pull/43). We started working on creating a fastapi based HTTP API to expose this data to other OONI services, such as OONI Explorer (https://github.com/ooni/data/pull/45). We also wrote a minimal PoC that makes use of the backward compatible aggregation API that is using the new LoNI based experiment results (https://github.com/ooni/explorer/pull/892).
## Preparing OONI backend documentation
In November 2023, we started working towards writing OONI backend documentation that describes the architecture of the main components of OONI infrastructure. Specifically, we focused on improving the documentation of our backend architecture, data flows, and deployment workflows.
You can see a work in progress of the documentation here: https://github.com/ooni/backend-documentation/blob/main/backend_documentation.md
## Published OONI Outreach Kit in French and Spanish
The OONI Outreach Kit is now available in both French and Spanish (in addition to Russian and English)!
- French OONI Outreach Kit: https://ooni.org/fr/support/ooni-outreach-kit/
- Spanish OONI Outreach Kit: https://ooni.org/es/support/ooni-outreach-kit/
We thank our partner, Computech Institute (https://ooni.org/partners/computech/) for the French translation, and we thank OONI community members, Mariengracia Chirinos and Katherine Pennachio, for the Spanish translation.
We hope that the French and Spanish versions of the OONI Outreach Kit will help support OONI community engagement efforts!
## Published OONI Risks documentation in Burmese
The OONI Risks documentation is now available in Burmese: https://ooni.org/my/about/risks
We thank the community members who translated this documentation to Burmese. We generally consider it important to have this documentation translated in as many languages as possible (particularly in languages spoken in high-risk countries), as it communicates the potential risks associated with running OONI Probe.
The OONI Risks documentation (https://ooni.org/about/risks/) is also available in Arabic, Farsi, French, Russian, Spanish, and Swahili.
## Creating OONI Community Interview videos
In previous months, we interviewed community members so that they can share their work and their experience with using OONI tools and data. The goal of these interviews is to share how community members around the world make use of OONI tools and data as part of their work. As an outcome, we hope that such interviews will encourage others to use OONI tools too, and that our community members will receive more support for their important work.
Throughout November 2023, we collaborated with a videographer on editing footage for OONI community interviews. Specifically, we worked on multiple rounds of video edits and iterations towards producing final short videos (based on lengthy footage).
## Rapid response efforts
### Kenya blocked Telegram during KCSE 2023 exams
On 16th November 2023, we were notified by our community that access to Telegram was intermittently blocked in Kenya. We analyzed OONI data and rapidly responded on Twitter, where we shared OONI data findings and charts: https://twitter.com/OpenObservatory/status/1725202738370290053
We were surprised by this block, as this was the first time that we observed the blocking of a popular instant messaging app in Kenya.
Overall, OONI data shows intermittent signs of Telegram blocking on several networks in Kenya between 8th to 24th November 2023. The timings of the blocks correlate with the timings of the KCSE 2023 exams. However, it’s worth noting that the block did not appear to be implemented on all networks, as OONI data shows that Telegram was accessible on many other networks in Kenya in November 2023. Out of all tested networks, Jambonet appears to have implemented the heaviest restrictions, as Telegram appears to have been consistently blocked since 8th November 2023. Interestingly, OONI data only shows signs of Telegram blocking until 24th November 2023, which was the last day of the KCSE 2023 exams.
We also reported on this case on the OONI Censorship Findings platform: https://explorer.ooni.org/findings/228466228201
### Guinea blocked WhatsApp, Telegram, Facebook, Twitter, Instagram, and YouTube
As of 24th November 2023, OONI data suggests that some ISPs in Guinea started blocking access to WhatsApp, Telegram, Facebook, Twitter, Instagram, and YouTube. OONI data shows that the blocks appear to be implemented by means of TLS interference.
On 27th November 2023, we responded to this block by sharing relevant OONI data findings and charts on Twitter: https://twitter.com/OpenObservatory/status/1729105525437346052
We also reported on this case on the OONI Censorship Findings platform: https://explorer.ooni.org/findings/296303006301
Recent OONI data suggests that these blocks remain ongoing.
### Nepal blocked TikTok
In late November 2023, we were notified by our community that access to TikTok was blocked in Nepal. We immediately responded by making a public call for OONI Probe testing (sharing relevant testing instructions) on Twitter: https://twitter.com/OpenObservatory/status/1729499672694161890
We subsequently published a report on the OONI Censorship Findings platform, documenting the blocking of TikTok in Nepal based on OONI data: https://explorer.ooni.org/findings/112092297601
OONI data only shows signs of TikTok blocking in Nepal between 24th to 29th November 2023.
## Community use of OONI data
### Access Now’s press statement on the blocking of Telegram in Kenya
In response to the blocking of Telegram in Kenya, Access Now published a press statement which cites OONI data: https://www.accessnow.org/press-release/telegram-kenya-connected-national-exams/
## Community activities
### OONI training for human rights defenders in the DRC
Between 15th-17th November 2023, OONI’s Maria and Arturo facilitated an online OONI training for human rights defenders and journalists in the Democratic Republic of Congo (DRC).
This training was organized by Partenariat pour la Protection Integree (PPI) and the Integrated Refugee Organization (IRO), and it included 2 OONI training programmes for 2 groups of human rights defenders and journalists from the DRC. We were initially intending to travel to Kinshasa to facilitate a week-long training in person, but we unfortunately were unable to due to visa issues. As a result, we adapted the training programme accordingly and facilitated it entirely online.
As part of this online training, we facilitated the following OONI sessions (twice each for 2 groups):
- Introduction to OONI
- Using OONI Probe and OONI Run: Hands-on workshop
- Updating the DRC test list: Hands-on workshop
- Using OONI Explorer: Hands-on workshop
As part of these sessions, we provided relevant online presentations, followed by Q&A and hands-on exercises. Due to connectivity issues, we also created videos for each of the above sessions to enable the participants to watch the presentations without internet connectivity. To create the videos, we wrote 4 scripts (one for each session) and we automatically converted the scripts to French, which were read as part of the videos. That way, participants were able to watch the video presentations in French. We also followed up with the participants and organizers to share the training surveys and relevant resources for further learning.
### OONI presentation at RIPE 87
On 28th November 2023, OONI’s Arturo presented the Measurement Aggregation Toolkit (MAT) as part of a presentation (“Measuring Internet Censorship with OONI”) at RIPE 87 in Rome, Italy. Information about the event is available here: https://ripe87.ripe.net/programme/meeting-plan/mat-wg/
### OONI Community Meeting
On 28th November 2023, we hosted the monthly OONI Community Meeting on our Slack channel (https://slack.ooni.org/), during which we shared OONI updates from the past month, and we discussed our thoughts for improving future OONI community meetings. As part of this discussion, we asked participants to share their thoughts and feedback on how we can improve the structure and format of future OONI community meetings to help make them as useful as possible to the community.
## Measurement coverage
In November 2023, 48,336,322 OONI Probe measurements were collected from 3,134 networks in 174 countries around the world.
This information can also be found through our measurement stats on OONI Explorer (see chart on “monthly coverage worldwide”): https://explorer.ooni.org/
~ OONI team.