William Waites on Fri, 25 Feb 2022 22:10:15 +0100 (CET)


[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]

<nettime> 418 I'm a teapot


Yesterday, as Russia began its invasion of Ukraine, some people on the Internet
noticed a strange thing. I'm not going to comment on the big picture except to say
that the situation is terrible, the invasion criminal and the failure of other
countries to do anything meaningful to stop it, reprehensible. Nor will I attempt
to expound on how the conditions for this to happen came to exist; there are 
plenty of people who know more about that than I do. Instead, I will examine this
strange detail that will surely be just a minor footnote in this terrible conflict,
try to explain what it means, and, at the end, indulge in some hopeful speculation
into how it got there.

The web site of the Russian Ministry of Defence looks like it's "down" from the
perspective of nearly everyone outside of Russia and a small number of other
countries. If you point a web browser at it right now, you'll get a blank page.
But the _way_ that it is down is interesting. If you look closely, you'll see
that it is producing an error code 418. This can be reproduced more clearly
with a tool like [curl(1)]:

```
% curl -I https://mil.ru/
HTTP/1.1 418 
Date: Fri, 25 Feb 2022 19:23:07 GMT
Content-Length: 0
Connection: keep-alive
Server: Ministry of Defence of the Russian Federation
```

All successful conversations between your web browser and a web server include
a [status code]. A status code is a three digit number, and it has meaning. If it
starts with a 2, like 200, that means everything is ok, and you'll get a web
page along with it to look at. If it starts with a 3, that means whatever you're
looking for has moved somewhere else and you'll be redirected there. If it starts
with a 4, it means you've done something wrong. Maybe you've asked for something
that's not there and you'll get 404 which means "Not Found".

So far so good. The Russian MoD is telling us we're not allowed to look
at their web site, right? If that were the case, the natural choice would be 403
which means "Forbidden" or perhaps 410 which means "Gone". But 418 is a strange
one. It means "I'm a teapot". It comes from April Fool's day 1998 when the 
IETF published their traditional joke standard ([RFC2324]), in that case about
connecting coffee pots to the Internet. As the joke goes, if you've connected
a teapot instead, you should get an error: *418 I'm a teapot*.

But there's another layer. In colloquial Russian, to be a teapot (чайник) 
means, approximately, to be computer illiterate. The connotation is slightly
different than the English term though it umambiguously suggests ignorance of
how a computer system works. So is the Russian Ministry of Defense claiming to
the outside world that they are computer illiterate? Do they have a geeky,
impish, self-effacing sense of humour? That seems a little implausible...

## Who is a teapot?

We can find out a little more about what's going on with some simple tools.
This teapot message either originates on the Ministry of Defense's web server
itself, or somewhere fairly close by since, by all accounts, nearly everyone
sees the same thing. To find this out, we can find out what actually answers
a TCP connection on the HTTPS port using [tcptraceroute(1)],

```
# tcptraceroute mil.ru 443
Tracing the path to mil.ru (82.202.190.92) on TCP port 443 (https), 30 hops max
 [...]
 8  uk-lon03a-ri2-ae-2-0.aorta.net (84.116.135.46)  28.784 ms  19.933 ms  24.521 ms
 9  ae16-209.RT.TC2.LON.UK.retn.net (87.245.245.22)  26.014 ms  24.460 ms  47.426 ms
10  ae1-3.RT.OK.MSK.RU.retn.net (87.245.232.7)  66.608 ms  67.573 ms  67.430 ms
11  GW-Indrik.retn.net (87.245.253.219)  69.701 ms  67.521 ms  68.754 ms
12  * * *
13  82.202.190.92 [open]  66.221 ms  -9016.769 ms [closed]  -8215.307 ms
```

Without belabouring the details of how to read a traceroute, and eliding the
parts closest my computer, the path goes clealy over a major backbone provider,
RETN, from London to Moskow and then to something called the Indrik gateway.
Nice bit of mythology there. [Indrik] is a kind of chimeric bull-deer-horse
-unicorn beast from Russian folklore. There's another hop not responding after
that, and then an answer. The round trip time to the last hop, which has the
same address as what we asked for, 82.202.190.92, the address of mil.ru, is
plausible. So whatever response we're getting, it's coming from Moscow, and
it's coming from the place that whoever operates mil.ru intends.

That address, 82.202.190.92, however, is not owned by the Russian Ministry
of Defense. It is part of a [network] that belongs to Kaspersky Labs. I did not
realise before looking into it just now, but Kaspersky appears to operate a
substantial amount of network infrastructure. They're not just a software
company. If an intruder had done this to embarass the Russian Ministry of
Defense, I would have expected it to be noticed and fixed by now.

So we're left with two possibilities that I can think of. Either the MoD
is in on the joke or they are not. It's hard to believe that they are in
on the joke. Perhaps it could have happened like this. The MoD said to
Kaspersky, "make it so that outsiders cannot see our web site",
and Kaspersky responded, "da, tovarishch, right away", leaving this easter
egg for us to find.

If this is true, it gives us some hope. It shows that there are people in
Russia, well-placed and with privileged access to infrastructure, that 
are against this war and think the Russian Military is illiterate and
incompetent. More importantly, they have bravely found a way, from the
very heart of the beast, to telegraph this to the world.

[status code]: https://datatracker.ietf.org/doc/html/rfc7231
[RFC2324]: https://datatracker.ietf.org/doc/html/rfc2324
[curl(1)]: https://linux.die.net/man/1/curl
[tcptraceroute(1)]: https://linux.die.net/man/1/tcptraceroute
[чайник]: https://en.wikipedia.org/wiki/Chainik
[Indrik]: https://en.wikipedia.org/wiki/Indrik
[network]: https://apps.db.ripe.net/db-web-ui/query?searchtext=82.202.190.0%2F24&rflag=true&source=RIPE&bflag=false
#  distributed via <nettime>: no commercial use without permission
#  <nettime>  is a moderated mailing list for net criticism,
#  collaborative text filtering and cultural politics of the nets
#  more info: http://mx.kein.org/mailman/listinfo/nettime-l
#  archive: http://www.nettime.org contact: nettime@kein.org
#  @nettime_bot tweets mail w/ sender unless #ANON is in Subject: