[ooni-talk] OONI Monthly Report: January 2022

Maria Xynou maria at openobservatory.org
Mon Apr 18 10:45:39 UTC 2022


These days we're primarily supported by the DRL, which is why we do
quarterly reporting. That said, we'd like to share monthly updates from the
OONI team with the community, hence our January 2022 report shared below.
I'll also follow-up to share our February and March 2022 reports.

*# OONI Monthly Report: January 2022*

Throughout January 2022, the OONI team worked on the following sprints:

* Sprint 56 (3rd - 16th January 2022)
* Sprint 57 (17th - 30th January 2022)

Our work can be tracked through the various OONI GitHub repositories:

Highlights are shared in this report below.

*## OONI Probe apps*

In January 2022, Norbel Ambanumben joined the OONI team to lead the
development of the OONI Probe mobile app.

In preparation for the next release, various improvements were made to the
OONI Probe mobile app, including:
* Annotating measurements coming from VPNs (
* Faster test startup time;
* Improvements to the progress bar tracking;
* Improvements to the minimisation of running tests (
* Adding links to the OONI blog and research reports in the OONI Probe
mobile app (https://github.com/ooni/probe-android/pull/472);
* CI fix (https://github.com/ooni/probe/issues/1924).

On OONI Probe Desktop, we fixed a bug related to viewing RiseupVPN test
results (https://github.com/ooni/probe-desktop/pull/272,

*## OONI Probe Web*

We made progress on the backend components required for the operation of
OONI Probe Web.

As OONI Probe Web cannot use the same strategy as the OONI Probe apps to
discover the country code and network of the probe (since we can’t ship a
geoIP database in the client-side app), we had to add backend support for
doing this operation. Specifically, we added support for returning geoIP
information in the OONI check-in API (https://github.com/ooni/api/pull/276)
and performed some quality testing of the db-ip geoIP database.

We are considering eventually using the same mechanism for OONI Probe
desktop and mobile probes too, as it would allow us to update the geoIP
database without needing to make a new software release.

*## OONI Run*

We worked on improvements to the OONI Run platform. In particular, we fixed
a bug affecting the generation of OONI Run links (
https://github.com/ooni/run/issues/100, https://github.com/ooni/run/pull/101),
we fixed a bug affecting OONI Run links on iOS (
https://github.com/ooni/probe/issues/1978), and we made improvements to how
OONI Run is deployed (https://github.com/ooni/run/pull/103).

*## Expanding censorship measurement methodologies### Websteps*

We worked on refactoring of the probe-engine codebase in preparation for
Websteps development (our new experiment for measuring the blocking of
websites). This included code improvements following the first Websteps
prototype (https://github.com/ooni/probe/issues/1956).

We also discovered and fixed a bug that was introduced when Websteps was
merged (https://github.com/ooni/probe/issues/1808). This bug stems from a
change in the logic used by the measurement engine to decide whether to
submit measurements. After merging Websteps, we unconditionally stopped
submitting measurements for experiments that returned an error. This
behavior is correct in that the experiment should return errors only to
indicate fundamental failures (e.g., an experiment expecting that a URL is
input is passed a string that is not a valid URL) or missing preconditions.
However, because previously the core measurement engine did not enforce
this rule, several experiments were actually returning an error for network
conditions that would otherwise be associated with interesting network

We discovered this bug while performing extensive QA after merging
Websteps. We then needed to ensure that all OONI experiments were correctly
returning errors only to signal fundamental failures or missing
pre-conditions. As a result, we fixed DASH, ndt7, Psiphon, STUN
Reachability and other minor experiments. It is worth noting that no stable
OONI release ever shipped with this bug, and we indeed catched the bug
because we knew merging Websteps entailed larger changes to the tree, so we
chose to perform extensive QA to ensure we were not introducing regressions.

*### OONI Probe CLI v3.14.0 pre-release*

We released OONI Probe CLI v3.14.0-alpha.1 with support for running our new
Tor Snowflake experiment (https://ooni.org/nettest/tor-snowflake/), a
refactored Tor experiment, and a series of data quality improvements.
Details are available through our pre-release notes:

Notably, this pre-release includes:
* Support for running the new Tor Snowflake experiment on OONI Probe Mobile
and Desktop (https://github.com/ooni/probe/issues/1917);
* Refactored Tor experiment to use the newer underlying measurement
library, which allowed us to cleanup legacy code and reduce the overall
complexity of the network measurement engine (
https://github.com/ooni/probe/issues/1545 ).

*### Other improvements*

We also worked on a series of other improvements. Specifically, we:
*  Started designing a new experiment that pings DNS servers over UDP (
* Researched application-level transparent proxies to understand whether we
could use them to perform more realistic QA checks before shipping releases;
* Discovered and discussed a potential data quality issue around how we
determine DNS blocking in Web Connectivity, where DNS blocking and HTTP
blocking conflict with each other, and HTTP blocking currently takes
precedence, chose not to address the bug to keep the overall probe behavior
consistent over time, and planned to ensure we don’t have the same issue in
websteps (https://github.com/ooni/probe/issues/1975);
* Fixed a bug potentially affecting the quality of measurements where we
were not correctly detecting the end of a stream due to differences in how
we represent errors and how the Go standard library expected errors to be (
* Refactoring and improvements the code we use to communicate with the OONI
backend trying to make the Go API more robust (
* Refactored the CLI and engine codebases to increase abstraction and
testability (https://github.com/ooni/probe/issues/1885);
* Refactored code we use to collect low-level measurements to reduce
measurement code duplication and improve consistency (

*## Blog post on measuring HTTP/3 censorship with OONI Probe*

In January 2022, we started hosting Kathrin Elmenhorst for her 3-month OTF
Information Controls Research Fellowship.

We had previously worked with Kathrin on adding HTTP/3 support to OONI
Probe for measuring HTTP/3 censorship in China, Iran, India, and
Kazakhstan. Based on this research, we collaborated on a research paper
(“Web censorship measurements of HTTP/3 over QUIC”) which was submitted to
AMC Internet Measurement Conference (

To share the findings of this research with our broader community, Kathrin
wrote a blog post which summarizes the measurement findings. We published
this blog post here: https://ooni.org/post/2022-http3-measurements-paper/

*## OONI Explorer*

OONI Explorer performance was significantly enhanced in January 2022.
Migrating to the new Clickhouse-based backend has helped ensure that OONI
Explorer queries work faster and more reliably. Now database-intense
queries on OONI Explorer load within seconds, enabling users to more
effectively track censorship events around the world based on real-time
OONI data.

We made a minor update to the OONI Data Policy to mention that OONI
Explorer uses Sentry to log crash reports (

*## New Circumvention Tool Reachability Dashboard*

Throughout January 2022, we worked on creating a new Dashboard which
presents aggregate views of real-time OONI data based on the reachability
testing of circumvention tools (

In particular, this dashboard presents charts based on the reachability
testing of Psiphon, Tor, and Tor Snowflake in every country around the
world (https://github.com/ooni/ooni.org/issues/774). Through these charts,
users can gain a bird's-eye view on the testing of these tools in each
country over time, and plot charts based on the countries and date range of
their choice (https://github.com/ooni/explorer/pull/653). As these charts
present aggregates of anomalous measurements, it is possible to infer
potential cases of blocking (or cases when the tested tools were
unreachable on tested networks due to other reasons).

*## OONI backend*

Throughout January 2022, we worked on migrating the OONI API to the new
Clickhouse-based backend in production (
https://github.com/ooni/pipeline/pull/371). This resulted in a significant
improvement to OONI Explorer performance (which relies on the OONI API), as
OONI Explorer queries now work much faster and more reliably.

We expanded OONI’s data analysis capabilities to support processing STUN
reachability experiments (https://github.com/ooni/ooni.org/issues/767). The
measurements of these tests are very closely related to Tor Snowflake,
since the PT relied on STUN for NAT hole punching. We also did further
testing and performance improvements to the data analysis code in
preparation for the production launch.

Moreover, progress on the OONI API was made to have stable aggregate views
for displaying pluggable transport test results (
https://github.com/ooni/ooni.org/issues/769). Specifically, we implemented
new API endpoints to return:
* The runtime of PT test results;
* The number of PT metrics grouped by country (this allows us to filter in
the UI the country list to only those for which we have data).

We also:
*  Added backend support for scoring measurements collected from the HTTP
version of WhatsApp Web (https://github.com/ooni/backend/issues/546);
* Improved the speed of the ooniprobe list command by refactoring the
database queries (https://github.com/ooni/probe-cli/pull/662);
* Looked into migrating the ooni.org website to another provider (
https://github.com/ooni/ooni.org/issues/1064) to improve its accessibility
around the world;
* Carried out some research and experimentation related to enabling
third-party analysis of OONI data (
* Wrote a document that outlines the features of various OONI measurements
that are useful for performing data analysis tasks (in order to extract
per-website metrics).

*## Improving third party usage of OONI data*

To enable third-party use of OONI data (particularly by researchers), we
carried out some research and collected feedback on how to improve the user
experience for third party consumers of OONI data. As part of this, we
decided to offer a Command Line Interface (CLI) tool (called oonidata) that
researchers can run to download raw data dumps of OONI data. A summary of
this research can be found in this comment:

*## Preparing for a security audit*

In preparation for a security audit of OONI software projects, we worked on
extensive threat modeling. This involved identifying and mapping all
potential threats that could affect various OONI software components,
determining the probability, impact, and risk of each potential threat, as
well as strategies for mitigation. The documentation that we prepared will
support the upcoming security audits of OONI tools.

*## Collaboration with Netalitica*

Netalitica researchers continued to do excellent work in reviewing and
updating the Citizen Lab test lists. In January 2022, we reviewed their
updates to the test lists for Singapore, Myanmar, and Vietnam (
https://github.com/citizenlab/test-lists/pull/885), as well as their
updates to the test lists for Cuba, Cameroon, and Bolivia (

We also opened a pull request based on Netalitica updates to the test lists
for Nicaragua and Ecuador: https://github.com/citizenlab/test-lists/pull/881

*## Test list updates*

In January 2022, we contributed minor updates to several Citizen Lab test
lists, as documented through the following pull requests:

We reviewed and merged more than 50 pull requests from the Citizen Lab test
list repository, some of which included new contributions via our new web
platform (https://test-lists.ooni.org/).

*## Created an audio recording for a podcast on technical terms*

We created a 10-minute audio recording on “What is the Internet?” for the
ABC Digital podcast on “A Glossary of Technological Terms”.

To create this recording, we wrote a script describing what is the
internet, which we then recorded and shared with Conflux Center. This
recording was subsequently shared with training participants of the
“Technologies and Digital Tools for Peacekeeping and Political Missions:
Data, Research, Analysis, & Communication” course organized by Conflux
Center (

*## Censored Planet data user study*

Three OONI team members participated in Censored Planet’s data user study.
As part of this user study, we reviewed the new Censored Planet Dashboard
and shared feedback through a survey and through interviews with the
Censored Planet team.

*## Community activities### OONI training for UN peacekeeping missions*

On 25th January 2022, OONI’s Maria facilitated an OONI training (“OONI -
Practical exercise measuring Internet censorship”) for UN peacekeeping
missions as part of a course (“Technologies and Digital Tools for
Peacekeeping and Political Missions: Data, Research, Analysis, &
Communication”) organized by Conflux Center.

As part of the training, Maria introduced participants to OONI censorship
measurement tools, provided a live demo of using OONI Probe for measuring
internet censorship, and facilitated hands-on exercises for using OONI
Probe based on real-world scenarios.

Information about the virtual training course is available here:

*### OONI Probe workshop for partners in Southeast Asia*

On 28th January 2022, OONI’s Maria facilitated an OONI Probe workshop for
Sinar Project partners in Southeast Asia participating in the iMap Regional

As part of this workshop, Maria provided a theoretical overview of OONI
Probe and OONI Run, a live demo of using OONI Probe for measuring internet
censorship, a live demo for using OONI Run for coordinating censorship
testing, and facilitated several hands-on exercises based on real-world

*### OONI Community Meeting*

On 31st January 2022, we hosted the monthly OONI Community Meeting on our
Slack channel (https://slack.ooni.org/), during which we discussed RAACT
(Resistance Against Automated Content Takedown): a new project led by
Tracking Exposed (https://tracking.exposed/) to measure content takedowns
on social media platforms (Facebook, Instagram, TikTok, Youtube). As part
of the meeting, we discussed how the OONI community could get involved with
the RAACT project.

*## Userbase*

In January 2022, 39,215,688 OONI Probe measurements were collected from
2,634 AS networks in 171 countries around the world.

This information can also be found through our measurement stats on OONI
Explorer (see chart on “monthly coverage worldwide”):

~ OONI team.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.torproject.org/pipermail/ooni-talk/attachments/20220418/8ac2eace/attachment-0001.htm>

More information about the ooni-talk mailing list