pondělí 18. listopadu 2024

Responsible disclosure: EteSync vulnerabilities

EteSync is a software for end-to-end encrypted data synchronization. The idea is great. The implementation might be decent, but not perfect. I’ve discovered some vulnerabilities, reported them, but they weren’t fixed within the 90-day deadline. At the time of publishing, I saw no indication of fixes coming in a near future, so I decided to publish the vulnerabilities in order to inform users. After publishing this report, the vulnerabilities got fixed and a new version of EteSync DAV bridge was released.

What is affected?

EteSync consists of multiple components, e.g. Android app, iOS app, DAV bridge, server etc. The vulnerabilities directly affect just the DAV bridge. However, even if you don’t use EteSync DAV bridge, you might be somewhat affected:

  • While I don’t think the DAV bridge is used as a component of some other app, I am not 100% sure. Update: developer has confirmed that other apps aren't affected.
  • More importantly, the reaction raises questions how would be future reports processed. While I’d like to use EteSync, I can’t recommend it until I see more active development of EteSync or its fork.

The vulnerabilities

While none of the vulnerabilities look horrible on its own, they can be chained together. When an attacker knows your username and persuades you to open malicious website (without any extra permissions), they can connect to etesync-dav (even if it listens just on localhost) and extract sensitive data. Modification of the data wasn’t tested, but it might be possible. Potential techniques that would allow the attacker to guess the username haven’t been much investigated.

1. Incorrect password validation

When you log into EteSync DAV bridge, you get another password, which allows you to access the DAV endpoints and the EteSync DAV bridge web interface. This password is different from the encryption password and is only meaningful when interacting with the bridge. While the DAV endpoints seem to validate the password, the web interface actually accepts any password, which consequentially breaks the security of DAV endpoints (see below).

I’ve briefly looked at the implementation. It seems that the bridge validates the password against the EteSync server. This is wrong, because the password should be validated locally and EteSync server doesn’t care about it. Unfortunately, the endpoint ignores the credentials and returns a 200-ish response, which makes the EteSync DAV bridge consider the credentials as valid. My initial understanding of what happens was probably wrong, I'll investigate it later.

While the DAV endpoints seem to validate the password properly, they aren’t secure, though. After the attacker logs in to the web interface with any password, the web interface provides them the correct password that can be used with the DAV endpoints.

2. DNS rebinding AKA “But it listens just on localhost, doesn’t it?”

Unfortunately, even if your instance of EteSync DAV bridge listens just on localhost, it doesn’t mean it is properly protected. Web is a complex thing and there are techniques that allow you accessing some server indirectly through a confused deputy. In this case, attacker can abuse victim’s web browser as a proxy to EteSync DAV bridge through DNS rebinding attack.

Fixing the vulnerabilities

Fixing shouldn’t be hard.

  • DNS rebinding attack can be resolved by proper Host header validation. Unrecognized non-IP Host headers are a sign of a potential DNS rebinding attacks. Rejecting requests with bad Host headers (and maybe requests with no Host header) resolves DNS rebinding attack.
  • Password validation is already implemented for the DAV part, so we can reuse it.

However, I was unable to build etesync-dav (commit b9b23bf6fba60d42012008ba06023bccd9109c08) from source even without any modifications:

% pip install -r requirements.txt
…
ERROR: Cannot install -r requirements.txt (line 31) and itsdangerous==2.0.1 because these package versions have conflicting dependencies.

The conflict is caused by:
    The user requested itsdangerous==2.0.1
    flask 2.3.2 depends on itsdangerous>=2.1.2

To fix this you could try to:
1. loosen the range of package versions you've specified
2. remove package versions to allow pip attempt to solve the dependency conflict

ERROR: ResolutionImpossible: for help visit https://pip.pypa.io/en/latest/topics/dependency-resolution/#dealing-with-dependency-conflicts

Using venv doesn’t help, neither does using other distro (Debian instead of Fedora). Unfortunately, I have not received further guidance from the developer. I could have dug deeper and fix the dependency issue, but I wasn’t dedicated enough to do it.

Developer response

The vulnerabilities were reported according to security.txt on 14th August 2024 with deadline set to 12th November 2024, giving the developers about 90 days. (Well, rounded to 90 days.). I got the first response on 1st September 2024. At beginning, it looked promising, but the conversation faded away. The developer seems to be busy with other things. I have to admit that part of the delay was caused by me, as I wasn't very responsive in September.

After publishing the vulnerabilities, I got a reaction from EteSync developer, clarified what was unclear and the developer released fixes for those vulnerabilities.

Fixes by developer

Password validation bug is fixed. DNS rebinding is fixed partially, i.e., DAV endpoints aren't protected from DNS rebinding yet, but this shouldn't be an issue when authentication works and DAV password isn't leaked.

  • Stop using EteSync DAV until those vulnerabilities are fixed.Upgrade EteSync DAV bridge and regenerate DAV password by re-adding your account.
  • Consider stopping using other EteSync clients until there is some evidence that they are maintained. Unfortunately, I don’t have any suggestion for direct alternative. While DecSync CC + Syncthing looks like a good alternative, the development activity doesn’t look encouraging. Moreover, I am not sure about soundness of their data model, considering that the file synchronization might occur in any order, which might introduce various edge cases.

Request for developers

While I am still grateful for developing the awesome product and I understand that you are busy with other tasks, I unfortunately cannot currently recommend EteSync. Adding some other people who can properly respond the vulnerability reports and fix the vulnerabilities can make EteSync great again.

Update history

  • Fix was released
  • Developer communication
  • Understanding of the password validation bug

úterý 17. srpna 2021

To nelze přepočítávat na peníze…

Článek vyšel též ve Stokách Svobodného přístavu.

Občas o něčem slyším, že to nelze přepočítávat na peníze. Na první pohled to může dávat smysl – nejsme zvyklí porovnávat hodnotu těchto statků s penězi. A může to znít hezky, než nás realita přinutí něco rozhodnout. Jsem ochoten si připlatit za zdravější jídlo nebo bezpečnější auto? Ve výsledku tak prakticky všechno v některých situacích potřebujeme prioritizovat, a tedy i do jisté míry přepočítat na peníze. Pokud se budeme chtít přepočtu vyhnout tím, že tu oblast necháme na starost státu, přepočet stejně bude potřeba provést – jen jej provede politik. Jeho úkol je přepočítat něco na peníze pro mnoho lidí, které nezná, a kteří si ani nemusejí přát mu to rozhodnutí svěřit. Přepočítání na peníze se tím ale nevyhneme.

pondělí 16. srpna 2021

Proč je málokdo spokojen s výsledky voleb?

Článek vyšel též ve Stokách Svobodného přístavu.

Když se budete ptát lidí, proč socialismus nefunguje, nejčastější odpovědí asi bude absence motivace – když se budu více snažit, já sám z toho budu mít minimální užitek. Není to sice jediný důvod, ale je podstatný. Když ale někdo není spokojen s výsledkem demokratického procesu, málokdy slyším podobný argument. Přitom problém tu je stejný – na samotného voliče má jeho volba sama o sobě minimální vliv, proto nemá takovou motivaci se snažit. Zatímco pojem „problém racionální ignorance“ spoustě lidí nic neříká, vysvětlení nedostatkem motivace možná znát budou.

A co s tím? Nehlasujme demokraticky o tom, co si může rozhodnout každý sám za sebe.

pondělí 26. července 2021

Proč jsem se nechal očkovat? S čím jsem váhal?

Nechal jsem se očkovat. Kvůli zdraví, ne kvůli očkovacímu pasu. Než k tomu došlo, pečlivě jsem zvažoval pro a proti. Zároveň jsem se o tom bavil s různými lidmi a vyslechl si jejich obavy.

Malý disclaimer

V této oblasti jsem zvídavý laik, ne lékař. Myslím, že tento zápisek může být pro některé námětem k zamyšlení, ale nenahradí to případnou individuální konzultaci s lékařem, zvlášť pokud je vaše situace něčím specifická. Nenesu zodpovědnost za vaše rozhodnutí.

Dále upozorňuju, že se soustředím zejména na vakcíny dostupné v ČR v době psaní, tedy Comirnaty (Pfizer/BioNTech), Spikevax (Moderna), Vaxzevria (AstraZeneca) a Janssen (Johnson & Johnson). Pokud zvažujete očkování jinou vakcínou (třeba v zahraničí), nemusí vše platit, byť mnohé principy jsou univerzální.

Je covid opravdu tak nebezpečný, že potřebuju očkování?

I pro mladého člověka může očkování dávat smysl, pokud:

  • Řeší nejen holé přežití, ale i následnou kvalitu života, kterou mohou ovlivnit dlouhodobé a trvalé následky. Ty sice ještě nejsou úplně zmapované, ale už teď to vypadá jako mnohem častější problém než úmrtí.
  • Spadá do některé z rizikových skupin. Sem vás může zařadit i onemocnění, o kterém zatím nevíte.
  • Má v okolí lidi, které nechce nakazit.

To nemusí být vyčerpávající seznam, ale staví to riziko covidu do poněkud jiného světla než jen pohled do tabulky s věkem a smrtností. Covid by mě nejspíš nezabil, ale i tak mám dost důvodů se mu v rámci možností radši vyhnout.

Tři možnosti

V zásadě vidím tři možnosti, jak se k covidu postavit:

  1. Izolace – Důsledně se izolovat od potenciálně nakažených.
  2. Očkování – Nechat se naočkovat a přijmout s tím spojená rizika.
  3. Nemoc – Smířit se s tím, že nemoc dříve či později pravděpodobně prodělám, a přijmout s tím spojená rizika.

Důsledná izolace není cesta, kterou bych se chtěl vydat dlouhodobě. Pokud se chcete důsledně izolovat od potenciálně nakažených a věříte, že se vám to úspěšně podaří, možná očkování opravdu tolik nepotřebujete. Dále se budu věnovat pouze variantám Očkování a Nemoc.

Dále předpokládám, že mi zbývá spousta (desítek) let života. Kdyby mi lékaři odhadovali poslední třeba rok života, asi bych nad tím přemýšlel jinak, byť verdikt by mohl zůstat stejný.

S čím srovnávat riziko?

Nic není naprosto bez rizika – žádný lék, žádná potravina, žádná nemoc, žádné očkování. Někteří srovnávají rizika očkování s riziky, která bežně někteří z nás podstupují. Bylo by sice zajímavé vědět, jak si stojí riziko očkování ve srovnání třeba s rizikem přecházení silnice, ale mnohem více vypovídající mi přijde jiná věc: Jak si stojí riziko očkování ve srovnání s rizikem neočkování? To jsou ve výsledku ty dvě možnosti, ze kterých vybíráme.

V čem se liší očkování a imunizace promořením?

Všechny čtyři vakcíny nechají tělo vyrobit spike protein, na kterém se imunitní systém naučí reagovat na virus. Tělo prostě vyrobí část viru.

Na první pohled mi to znělo děsivě, ale když to srovnám s činností viru, vypadá to vlastně jako jen dost slabý „odvar“:

  • Virus i vakcína dopraví do buňky genetickou informaci, která slouží k výrobě něčeho dalšího. Virus nechává vyrábět své kopie, vakcína jen spike protein z viru. Činnost vakcíny se po vyčerpání zastaví, ať už imunitní systém reaguje jakkoliv.
  • Virus se dále v těle množí. V případě pomalé počáteční reakce tedy může být tělo vystaveno velké dávce viru, která může způsobovat různé problémy. Vakcína se v těle nemnoží.
  • Více bych věřil řízení kvality v případě vakcíny. U viru asi nikdo nebude kontrolovat, jak kvalitně byl vyroben.
  • Vakcíny dostanete celkem přesně odměřené množství. Viru dostanete náhodnou dávku.
  • Virus se dostává do různých částí těla, kde může působit různé škody. Vakcína (aspoň Comirnaty, ale asi i ostatní) se aplikuje do svalu a neměla by se dostat mimo něj. Případné škody spike proteinem tak jsou do jisté míry omezené.

Případné obavy z vakcíny jde tedy často aplikovat i na samotný virus. Vzhledem k tomu, že se viru asi úplně nevyhnu, dává mi smysl se nechat očkovat. Až se potkám s ostrým virem, budu mít poněkud lepší šance. U setkání s ostrým nejspíš není otázka zda se s ním setkám, ale kdy.

Je dobrý nápad si do sebe nechat vpustit genetický materiál?

Genetický materiál do mě dostane nejen vakcína, ale v případě úspěchu i libovolný virus. Děje se tak pravidelně u virů způsobujících rýmu. Děje se tak u koronaviru SARS-CoV-2. Na první pohled to tedy může vypadat děsivě, ale ve výsledku nevidím jediný důvod, proč vakcínu brát jako větši riziko než virus. Spíše naopak – vizte výše srovnání vakcíny s virem.

Co když vakcína zmutuje?

Případné chyby při výrobě vakcíny mohou být sice poněkud nepříjemné, ale beru to spíše jako teoretické riziko a opět se toho nebojím o nic více než u virů. Teoreticky se u každé rýmy může podobným mechanismem stát něco hodně nepěkného, v praxi to nevypadá jako reálná hrozba. To už i úmrtí na covid vypadá reálněji (ačkoli to není můj hlavní důvod pro očkování).

Covid je přece na ústupu, ne?

Začátkem léta vypadají čísla celkem optimisticky. To ale loni taky. Letos tu navíc máme variantu delta, která má šanci se rozjet, zejména mezi neočkovanými. Rád se budu mýlit.

Očkování nevytvoří imunitu ze dne na den. I pokud bych se dostal na řadu s první dávkou hned (třeba v očkovacím centru, kde očkují bez registrace), druhá dávka by byla za tři týdny a plnou imunitu bych počítal dva týdny po druhé dávce, jsme celkem na pěti týdnech. Pokud se ale se zhoršenou epidemickou situací zvedne zájem, mohou ty časy být ještě delší, protože očkovací centra nemusejí v takové situaci stíhat očkovat všechny zájemce hned. Případně se může opět prodloužit interval mezi první a druhou dávkou.

Nejsou ty teploty po očkování nějaké moc časté?

Z jiných očkování si nepamatuju vedlejší účinky. Buď nebyly, nebo nebyly dostatečně výrazné, abych si je zapamatoval. Nebo šlo o vakcíny, které jsem dostal ještě jako malé dítě. Na první pohled to vzbuzuje otázky. Při bližším prozkoumání mi to ale nepřijde jako velký problém – prostě jde o reakci imunitního systému. V nějaké míře se to objevuje i u jiných vakcín. Možná je z nějakého důvodu zde potřeba více protilátek, a tedy i o něco silnější imunitní reakce. Může to být nepříjemnost, ale stojí mi to za to. Proti viru slabý odvar. Navíc virus bych dostal někdy náhodně, ať se mi to v té chvíli hodí, nebo ne. U vakcíny si vyberu, kdy ji chci dostat, a mohu tomu přizpůsobit plány.

Co to udělá za deset let?

Samozřejmě se 100% jistotou vědět nemůžeme, můžeme to ale odhadovat díky omezenému poli působnosti vakcíny a rychlosti rozpadu. Nechce se mi dohledávat data pro každou vakcínu, nejdelší dobu rozpadu jsem někde viděl dva měsíce. To mi nepřijde až tolik, aby vakcína nešla rozumně otestovat.

Navíc podobnou obavu lze vyslovit i o viru, kde ta situace vypadá poněkud hůře než u vakcín – dopad na více částí těla, potenciálně vyšší dávka, reálné dlouhodobé účinky apod.

Jak dlouho bude trvat imunita?

Ano, to je dnes trochu věštění z křišťálové koule. Prý aspoň půl roku, ale možná i roky. Bylo by fajn vědět více, ale neodrazuje mě to od očkování. Ostatně třeba proti klíšťové encefalitidě, tetanu a chřipce se spousta z náš také pravidelně přeočkovává.

Není lepší si počkat?

Někdo chce čekat, až bude vakcína více ozkoušená. Někdo na další generaci vakcín. Já jsem to zvážil, ale touto cestou nejdu. Kdybych kvůli tomu měl odložit očkování o týden, dávalo by to smysl. Nové vakcíny se sice nějaké postupně vyvíjejí, ale k dokončení, schválení, výrobě, distribuci a dostupnosti pro mě je nejspíš ještě dlouhá cesta plná nejistot. Nečekám v brzké době ani nějakou zásadní novou informaci, která by ovlivnila moji ochotu se nechat očkovat. Musel bych nejspíš čekat celkem dlouho, aby to čekání mělo smysl. Jenže to zároveň znamená být celou tu dobu neočkovaný, tedy na ne úplně malou chvíli podstoupit riziko neočkování. Nemám pocit, že by to čekání stálo za to.

Jak to bude účinné proti mutacím?

Účinnosti proti novým mutacím jsem se původně dost obával. Naštěstí to (aspoň zatím) nevypadá, že by se ty obavy naplnily. Nové mutace často o něco snižují účinnost vakcíny, ale zatím to nevypadá jako zásadní problém.

Ale přece to i přes očkování mohu chytnout (příp. někoho nakazit)

Pokud z úvah vynecháme pravděpodobnost, bude se očkování jevit jako zbytečné. Stejně jako bezpečnostní pásy, helmy, rozhlížení se na přechodu a spousta dalšího. Takže ano, i jako očkovaný se může člověk infikovat, roznášet nákazu, onemocnět, mít těžký průběh a zemřít. Liší se ale pravděpodobnosti, a to často dost zásadně.

Neproběhl ten vývoj přecejen trošku narychlo?

Vývoj proběhl možná ještě rychleji, než si myslíte. V případě Moderny byla očkovací látka vyvinuta již v lednu 2020, byť poté nejspíš ladili nějaké detaily jako optimální velikost dávky a časové rozestupy. Se základní představou, jak funguje mRNA vakcína, na tom ale nevidím nic podivného. Ve chvíli, kdy je samotná technologie mRNA vakcín připravená a je k dispozici kód viru, je asi fakt hlavní část zbývajícího vývoje věcí testování. Nemá smysl to srovnávat s délkou vývoje třeba živých vakcín a divit se, proč je to rychlejší.

Bude to stačit na kolektivní imunitu?

Těžko říct. Bylo by fajn, pokud ano, ale pokud ne, neznamená to, že jsou vakcíny k ničemu. Jednak stále poskytují individuální ochranu a jednak v částečně proočkované populaci půjde držet reprodukční číslo R ≤ 1 i s méně drastickými opatřeními.

Ale tady polovina pozitivních je očkovaná!

Práce s procenty je občas kontraintuitivní. Já se taky občas nechám nachytat prvním dojmem. Jediné, co s tím umím udělat, je nedat na první dojem a zamyslet se nad tím. Pár ilustračních příkladů (nemusí odpovídat realitě, jde spíše o principy):

  • Dočtete se, že v nějaké skupině lidí je polovina pozitivních očkovaná. Na první pohled to nevypadá jako zrovna skvělý výsledek. Ve skutečnosti ale záleží mj. na tom, jaká část této skupiny je očkovaná. Pokud by 99 % lidí z této skupiny bylo očkovaných, a tito lidé tvořili stejně pozitivních jako 1 % neočkovaných, byl by to nejspíš velký úspěch očkování. Pokud by očkováno bylo jen 50 %, už by to nevypadalo jako až tak dobrý výsledek.
  • Dočtete se, že procento nakažených očkovaných je stejné jako procento očkovaných v populaci. Dejme tomu, že podobné statistiky budou i u hospitalizací, úmrtí a dalších dopadů. Na první pohled to může vypadat, že očkování má nulový vliv. Pokud jsou ale očkováni statisticky rizikovější lidé, znamená to, že očkování jejich rizikovost statisticky snížilo na úroveň těch méně rizikových. To může znamenat i několikanásobný pokles smrtnosti.

Ale výrobce nenese odpovědnost…

Zaprvé, ona odpovědnost by byla nejspíš čistě finančního rázu. Myslím, že by výrobci vakcín takovouto odpovědnost klidně nesli, jen by se lišila cena za dávku. Pokud vakcíny nakupují politici, mají na to monopol a chtějí se blýsknout na první pohled co nejnižší cenou, dává pro ně smysl takovýto nákup bez záruky. I pokud část těch nákladů bude skrytá.

Tak jako tak, odpovědnost nikdo nenese ani za covid. Ani tady tedy nevychází ze srovnání vakcína hůř než ta nemoc.

Není lepší imunita z prodělaného onemocnění?

Četl jsem k tomu různé názory, ale pokud se chci vyhnout onemocnění, nevidím to jako cestu pro mě, i kdyby to mělo poskytovat lepší imunitu…

Vakcína je ale přece experimentální!

Virus je mnohem experimentálnější, v populaci se objevil bez jakýchkoliv testů. Tím možná virus porušuje zákony, ale nepodařilo se jej za to nijak účinně potrestat.

Vakcínu si ale nemohu vybrat

Jde to, byť to v ČR není úplně přívětivé. Já jsem si vybral podle https://ockovani.opendatalab.cz/, kde je mj. vidět, které vakcíny mají nespotřebované, a tedy lze odhadovat, které vakcíny budou aplikovat. Některá očkovací centra to přímo uvádějí i na svých webových stránkách, případně se můžete zkusit zeptat. Dále je možné se ujistit před očkováním, ale to bych bral jako poslední možnost. V neposlední řadě to vypadá, že u očkování bez registrace je možnost výběru, ale nezkoušel jsem. A nakonec v zahraničí to někde taky jde (například v Srbsku to lze zvolit v registračním formuláři), ale nejspíš to bude pro většinu lidí zbytečná komplikace (zahraniční SIM a její aktivace mimo roaming, pas, ubytování, …).

Nepodpoří očkování vznik dalších variant?

Je to spíše přesně naopak. Více nakažených a větší virová nálož znamenají více příležitostí pro mutace. Pravda, očkování může mít vliv na to, která varianta uspěje. Ve výsledku tak může uspět méně infekční varianta, pokud zvládne lépe obejít očkování. Není to sice za mě úplně ideální scénář, ale není to ani taková hrůza.

Do očkování se nenechám nutit!

Ani já nepovažuju covid pasy tak, jak teď fungují (nebo aspoň teoreticky mají fungovat), jako úplně šťastné řešení. Mohl bych se o tom rozepsat více, ale tento článek je dost dlouhý i bez toho. Na druhou stranu, očkovat bych se nechal i bez covid pasů, takže nebudu odmítat očkování jen kvůli protestu.

Očkovaní se nemusejí testovat, takže mohou někoho nakazit!

Lze debatovat o tom, jak dobře či špatně jsou nastavená pravidla stanovená vládou. Můžeme debatovat, jestli dává větší jistotu očkování, nebo až sedm dní starý PCR test, nebo ještě něco jiného. Pokud jde ale o to, jestli já se nechám očkovat, je to částečně jedno. Očkování mi nezakazuje se nechat testovat. Už jsem se testoval, i když jsem podle nařízení vlády nemusel. Už jsem se nechal ostříhat v respirátoru, ačkoli mi to žádné nařízení vlády nepřikazovalo. Stejně tak je dobré se nespoléhat jen na očkování třeba v případě návštěvy někoho, kdo se ani ze zdravotních důvodů nechat očkovat nemůže.

úterý 8. června 2021

Může být Česká televize opravdu nezávislá?

Článek vyšel též ve Stokách Svobodného přístavu.

Občas slýchám, že potřebujeme veřejnoprávní Českou televizi jakožto nezávislé médium financované z koncesionářských poplatků. Na první pohled to může dávat smysl – vliv má přece ten, kdo platí. Médium placené z reklam může být pod vlivem inzerentů.

Toto by dávalo smysl pro obhajobu nějakého soukromého placeného (popř. freemium) média. V případě veřejnoprávních médií ale platí někdo jiný, než kdo rozhoduje o platbě. Platí každý majitel a uživatel televizního přijímače, nehledě na to, jestli má o Českou televizi zájem. Co když bude chtít vedení zvýšit poplatky? Nestačí přesvědčit zákazníky, že služby za to stojí. Je potřeba přesvědčit politiky, že mají upravit zákon. Může být Česká televize nezávislá na poslancích?

čtvrtek 17. prosince 2020

Drahá úspora na elektronických dálničních známkách

Článek vyšel také na webu Mises.cz.

Občas slýcháme, jak transparentnost pomůže kontrolám veřejných zakázek. Pojďme se podívat na jeden celkem nedávný případ, kde jsme se prý dočkali ušetřené půl miliardy. To na první pohled může vypadat jako velký úspěch. Na druhý pohled to až tak velký úspěch není – i kdybychom předpokládali, že se ušetřené peníze využijí efektivně a na dobré účely.

Kauza elektronických dálničních známek

Možná jste v lednu 2020 zaznamenali státní zakázku na e-shop k elektronickým dálničním známkám za 401 milionů korun. Tato zakázka vzbudila pochyby, co je tak drahé na e-shopu o několika produktech. Chytil se toho Tomáš Vondráček ACTUM Digital, který uspořádal hackathon, jehož cílem mělo být vytvořit tento eshop za víkend a nabídnout ho státu zadarmo. To vyvolalo velký mediální ohlas, ale nakonec z toho stát nic nevyužije.

Oslava ušetřené půlmiliardy

Nedávno Tomáš Vondráček publikoval na LinkedIn oslavný příspěvek – ačkoli se výsledek hackathonu nevyužije, je to prý obrovský přínos, protože i tak se díky tomu povedlo ušetřit spoustu peněz:

Možná to zdaleka není půl miliarda

Objevil se i skeptičtější komentář Pavla Sundy (viditelný jen přihlášeným), že prý úspora není zdaleka tak vysoká:

Můžete prosím zveřejnit zdroj? Dle Registru zakázek je cena nižší o 100m bez DPH, ovšem nejsou v ní zahrnuty vouchery na doplňkové mandaye, čili v reálu je úspora nějakých 60mio. Viz https://www.hlidacstatu.cz/Detail/11860184?qs=CENDIS+

Na odkazu lze rychle ověřit, že se cena zakázky snížila jen o cca 100 milionů. Pro další tvrzení nemám v rychlosti k dispozici zdroje, a pravděpodobně by si to vyžádalo složitější analýzu, která by vydala na samostatný článek. Vyjděme tedy z předpokladu, že úspora se pohybuje v rozsahu cca 60–500 milionů korun. Je to sice poměrně velký rozsah, ale jádro článku nenarušuje.

Nechci úsporu zadarmo

Aby se tato úspora mohla uskutečnit, bylo potřeba vynaložit určité úsilí. To je přirozené, ale i toto úsilí má smysl započítat. Sice to nešlo ze státního rozpočtu a lidé toto úsilí vynaložili dobrovolně, i tak má ale smysl uvažovat o efektivitě tohoto snažení.

Jistě někdo si toho musel všimnout a publikovat. Tomáš Vondráček zorganizoval hackathon, který stál dobrovolníky nějaký čas. To by ale samo o sobě nestačilo, celé by to politici mohli snadno odignorovat, nebýt pozornosti veřejnosti. Lidé si o tom průběžně četli, slyšeli o tom ve zprávách, diskutovali s přáteli a sdíleli na sociálních sítích.

Možná si řeknete, že tyto náklady na veřejnou diskuzi nestojí za řeč – i kdybychom to přepočítali na peníze, bude to v řádu desetikorun na obyvatele ČR. Možná ano, ale potom zkusme stejnou optikou vidět i úsporu. Když úsporu cca 60–500 milionů podělíme cca deseti miliony obyvatel, jsme na 6–50 korun na obyvatele. Možná tak náklady na obyvatele byly větší než přínos. A i pokud ne, režie byla obrovská.

Kolika zakázkám jsme schopni se věnovat?

Pokud vám nesedí přepočítávání lidské pozornsti na peníze, nabídnu ještě jiný pohled: Lidská pozornost je vzácný zdroj. Zvládli jsme se věnovat jedné státní zakázce, probírat to s rodinou, přáteli a kolegy. Dovedete si ale představit, jak by to škálovalo? Že bychom takto probírali třeba jen malý zlomek všech zakázek? Kdybychom takto vyřešili třeba jednu zakázku za týden (což mi přijde dost optimistické), jsme na cca 52 zakázkách za rok, kterým jsme schopni se věnovat. Podle otevřených dat ISVZ jsem se dopočítal 55 673 zadání veřejných zakázek za loňský rok. Jedna zakázka za týden by tak znamenala méně než 1 ‰ všech zakázek. Tedy přes 99,9 % zakázek se nejsme schopni věnovat.

Radši přispět ve sbírce…

Kdybychom místo tohoto sledování státních zakázek ten čas věnovali nějaké práci a výtěžek poslali nějaké dobročinné organizaci vlastní volby, nejspíš by to přineslo větší dopad. (Pokud za dobročinnou organizaci považujete stát a považujete jeho hospodaření za efektivní, můžete klidně poskytnout dar státu. Já to pravděpodobně neudělám…)

Co si z toho vzít?

  • Stát neškáluje.
  • Současný stát je řádově větší, než co zvládneme uhlídat. (Nejde o počet obyvatel ani rozlohu, ale o to, co všechno se snaží stát poskytovat.)
  • V minimálním státě by možná transparentnost pomohla, ale v současném stavu očekávám zanedbatelný přínos. Rozhodně na ni nespoléhejme jako na jediné řešení státní neefektivity.
  • Nechtějme po státu další služby. Naopak revidujme, co všechno stát dnes dělá, a všímejme si věcí, které by dělat nemusel. Ostatně zaměstnance stojí stát cca ⅔ příjmu na odvodech, DPH, spotřebních daních apod. Prostoru ke zmenšení je spousta.
  • Vážím si práce lidí, kteří poukazují na neefektivity státu, díky nim je problém viditelný i jako praktický problém. Nemusíme se tak opírat jen o teoretické odůvodnění nemožnosti ekonomické kalkulace od Ludwiga von Misese. Jen si nemyslím, že dotlačit politiky ke zlepšení jedné konkrétní zakázky stojí za to úsilí.

pondělí 23. prosince 2019

Život na vedlejších efektech

Znáte tu situaci, když nějaký produkt používáte způsobem, jak nebyl zamýšlen? Někdy se jeho nedostatky dokonce stanou žádoucí vlastností? Asi jako v komisku XKCD workflow:

XKCD workflow

Já to tak mám často, uvedu pár příkladů.

Kdysi dávno jsme v počítači měli disk, který nejen vydával hluk, když se točil, ale ještě k tomu vydával specifický výrazný hluk, když disk zrovna něco četl nebo zapisoval. Nový disk pak sice měl větší kapacitu, ale bohužel postrádal tuto užitečnou zvukovou signalizaci, na kterou jsem si zvykl.

Na telefonu Nokia 3120 snad nebylo možné bez odemčení kláves rozsvítit displej. Teda bylo. Stačilo napsat některé z vybraných nouzových čísel, jako například 112 nebo 911. Asi není moudré pro tyto účely používat místní nouzové číslo 112 (kdybych to omylem vytočil), ale naštěstí telefon takto z nějakého důvodu reagoval i na číslo 08. Stiskem další číslice jsem pak zrušil psaní nouzového čísla. Takže jsem používal sekcenci 080, abych zkontroloval stav telefonu. Bylo to praktické, protože 0 a 8 jsou poblíž.

Na touchpadu jsem si kdysi aktivoval emulaci multitouch. Potom systém například plochu palce bral jako dva prsty, což mi přišlo velice praktické. Bohužel jsem byl v tomto vnímání asi osamocen a novým notebookem jsem o tuto praktickou vlastnost přišel.

V autoškole jsem se naučil řídit starou Fabii 1.9 SDI skoro bez dívání na budíky. Rychlost odhadnu podle převodu a otáček. A na otáčky je tu „zvukový otáčkoměr“. Jenže, pokud budu mít relativně moderní auto, bude mít nejspíš příliš tichý motor…

Naštěstí tento problém až tak řešit nemusím. Asi vás nepřekvapí, že cílem autoškoly nebylo stát se řidičem…