Týždeň 2024-29

Bezpečnosti nie je nikdy dosť. Ale zabezpečenie cez BSOD v prípade CrowdStrike to už je trochu moc. @vlkodotnet

Udalosť týždňa: CrowdStrike update

Minulý piatok nebol najlepší deň v IT. Z ničoho nič prestala ísť hŕba počítačov a nefungovali letiská, vlaky, nemocnice. Už to vyzeralo na sofistikovaný útok nejakého tajného spolku, keď v tom inžinieri zistili, že za problém môže aktualizácia softwaru CrowdStrike.

Najskôr ale začneme s tým, čo je to CrowdStrike a prečo sa mu podarilo dať dole toľko firiem a organizácií. CrowdStrike založil George Kurtz, ktorý pôsobil predtým ako CTO, GM a EVP of Enterprise v McAfee. CrowdStrike má hŕbu korporátnych zákazníkov, ktorí si nainštalujú malého klienta (cca 5 MB), ktorý monitoruje váš počítač a na základe príznakov vyhodnocuje hrozby. To vyhodnocovanie nefunguje lokálne, ale klient posiela tisíce rôznych ukazovateľov a signálov niekam na server a ten štatisticky a dynamicky vyhodnocuje hrozby. Potom vie vzdialene zablokovať škodlivý kód, identifikovať prienik do systému, tajný transfer množstva dát, prelomenie hesiel, atď.

Takéto niečo asi len obyčajná aplikácia nezvládne, a tak je CrowdStrike integrovaný na úrovni kernelu. Je napísaný v C++, podpísaný certifikátom, ale posledný update obsahoval chybu, ktorá spôsobila BSOD. Vo výsledku cca 8,5 miliónov počítačov začalo padať a jediný spôsob ich opravy zahŕňal manuálny zásah (Microsoft medzitým vydal nástroj na automatizáciu tohto manuálneho zásahu).

CrowdStrike’s faulty update crashed 8.5 million Windows devices, says Microsoft
Here are the details about what went wrong on Friday.

Predtým, ako sa začnete vysmievať Windows, že má BSOD, tak si najskôr povieme, prečo ju Windows má. BSOD nastane, ak program na úrovni kernelu chce pristupovať niekam mimo povolený rozsah pamäte. Kým užívateľskému kódu to viete zakázať a celý proces zhodiť, tak na úrovni kernelu to možné nie je. BSOD je teda monitorovací kód, ktorý zabráni najhoršiemu a zapíše potrebné debug dáta, aby ste vedeli problém odstrániť. Voľakedy ste vedeli pokračovať aj za BSOD, ale architekti systému rozhodli, že je to lepšie takto, čiže BSOD je end screen. Samozrejme aj Windows sa vyvíja a tak už tlačiarne nemajú ovládače na úrovni kernelu, atď. V podstate okrem takéhoto vysoko integrovaného softwaru a GPU (ten je stále na úrovni kernelu kvôli výkonnosti) dnes veľa možností, ako prísť k BSOD, nemáte.

A samozrejme, ako to býva, tak sa Microsoft skryl za CrowdStrike, pretože v piatok im nefungovali služby v Central US region datacentre (dokonca všetky tri availability zóny), ale kto by si to všimol, keď jeho počítač nefungoval?

Microsoft 365 remains ‘degraded’ as Azure outage resolved
Central US region is back in business but Office apps still in trouble

Firefox s novým defaultom pre PPA

Firefox vo verzii 128 prináša opt-out nastavenie Privacy-Preserving Attribution (ďalej len PPA). Táto technológia funguje tak, že podporovaný reklamný partner zobrazí na stránke reklamu, ale už nedostane spätnú väzbu, že bola zobrazená. Túto informáciu si uloží do seba prehliadač Firefox. Poskytovateľ reklamy môže potom vyžiadať informáciu o zobrazení reklamy. Tá sa zase nezobrazí priamo, ale cez Distributed Aggregation Protocol (DAP) sa odošle na servery Mozilly. Mozilla potom vygeneruje sumárny report, v ktorom dostane poskytovateľ reklamy informáciu o zobrazení reklamy aj s nejakými navyše informáciami. Ja ako užívateľ by som mal byť takto anonymizovaný od informácie, kde konkrétne sa reklama použila. Vyzerá to pekne, ale je tu pár ale. Ale čo keď bude poskytovateľ generovať len unikátnu reklamu pre každé zobrazenie a dostane takto report za jednu osobu? Ale čo ak Mozilla začne ako jediný agregátor reklamných dát tento obsah využívať a predávať iným? Tak či onak, vy môžete zájsť do nastavení a PPA si vypnúť.

For advertising: Firefox now collects user data by default
Firefox presents itself as the first choice for data protection. But the new version collects data for advertisers by default. Normal or a breach of trust?

Kedy je čas odísť?

Podarilo sa mi nájsť dumku (od slova dumať/zamýšľať sa) jedného programátora, ktorý vo veku 63,5 rokov odišiel na dôchodok. K tomu mi ešte nejakých cca 20 rokov chýba (dobre, prikrášlil som si to, len 18), ale ako sa to blíži, tak občas rozmýšľam nad kariérnymi možnosťami vyššieho veku:

  1. Manažér upgrade - prestanem programovať a stanem sa vedúckom. Namiesto kódenia bude človek len smerovať ľudí, kontrolovať výkazy, vytvárať výkazy, robiť dôležité rozhodnutia a zodpovedať za ne.
  2. Zmeniť povolanie - prekvapivo veľa programátorov začne robiť niečo iné. Otvoria si obchod alebo reštauráciu, dajú sa na nejaké remeslo, teda úplne zmenia odvetvie.
  3. Zostať programovať.

Zatiaľ som na tretej možnosti, ale zostať pri nej má svoj háčik. Ak zanedbáte vzdelávanie, tak sa vám môže stať, že vaša technológia sa stane zastaralou. Vy buď nenájdete prácu, alebo dostanete menej zaplatené. Môžete dúfať, že sa z vašej technológie stane COBOL a následne vás bude čakať kráľovská pláca, lebo nikto iný jej rozumieť nebude. Ale na to sa spoliehať je príliš rizikové, leda by som sa doučil ten COBOL.

Zostať programátorom najbližších 20 rokov nebude ľahké. Prídu AI technológie, ktoré niečo uľahčia, niečo naopak za pár mesiacov môže zaniknúť, niečo nové sa objaviť a vy musíte byť stále v strehu. Na pohovoroch s tou šedivou bradou už budem tiež podozrivý. Lebo s vekom prichádza taký ten stereotyp, keď každý predpokladá, že starší človek už nemá tú dynamickosť.

Ako to nejak rozumne zakončiť? Ja mám stále menej rovesníkov, ktorí zostali programovať, takže možno nakoniec je manažérsky upgrade prirodzeným vyústením života programátora. Brrr.

How To Know When It’s Time To Go
I retired in 2021 at 63.5 after about four decades as a programmer. What made me do this was not failing ability in any way, but after a year of consideration, I realized I didn’t care to do it anymore. Everyone will eventually reach a point at which they

Trošku premostím, lebo sa mi nechce písať novú tému. Ale príde mi zaujímavé, čo to znamená sa stále vzdelávať. Napríklad investujete čas do štúdia JavaScriptu a potom príde WASM, ktorý zoberie desktop technológiu SQLite a našrobuje ju na klienta. A popritom je treba vyriešiť, že WASM SQLite má problém bežať paralelne z viac tabov, takže je treba využiť SharedWorker. Proste problémy, ktoré by ste od danej technológie neočakávali a čakajú na zvedavých ľudí, ktorí prinesú riešenie (tým nijak nechcem poukazovať na seba).

Notion engineers sped up Notion’s browser speed with WASM SQLite
Notion engineers sped up Notion’s browser speed with WASM SQLite

AI okienko

OpenAI uviedlo oficiálneho nástupcu GPT 3.5 s názvom GPT-4o mini. Ten už je nasadený vo free verziách ChatGPT a k starému GPT 3.5 sa dostanete iba cez API. Oproti 3.5 dostanete väčšie kontextové a výstupne okno (128K in a 16K out) a samozrejme viac rýchlosti a až o 60 % nižšiu cenu na token.

OpenAI unveils GPT-4o mini, a smaller and cheaper AI model | TechCrunch
OpenAI introduced GPT-4o mini on Thursday, its latest small AI model. The company says GPT-4o mini, which is cheaper and faster than OpenAI’s current

ElevenLabs uviedlo upgrade svojho modelu Turbo 2.5. Ten vie previesť text na hlas a to aj v českom a slovenskom jazyku. Tiež pridali nové Voice Isolator API, ktoré vyčistí zvukovú nahrávku rozhovoru. A ešte raz pripomínam, že zvládne aj slovenčinu, tak ak si stále myslíte, že sme nejak tu u nás chránení pred AI podvodmi, tak na to rovno zabudnite.

ElevenLabs unveils text-to-speech Turbo 2.5 model with 32 languages
The AI company ElevenLabs has launched a new text-to-speech model called Turbo 2.5. It introduces support for three new languages: Vietnamese, Hungarian, and Norwegian. The API is available too.

Dnes bude ešte veľa nových modelov, ale tento je špeciálny. Microsoft vytvoril SpreadsheetLLM pre všetkých, ktorí pracujú s tabuľkovými procesormi. Mal vy zvládať aj veľké tabuľky, pochopiť obsah z formátovania.

Microsoft researchers have created a new AI LLM specifically for spreadsheets
A team of Microsoft researchers have published a paper that details their work on SpreadsheetLLM, an AL large language model designed specifically to help users with complex spreadsheets.

Mistral má dnes dve novinky. Prvá je NeMo, ktorý je malý model s 12B parametrami a 128K kontextovým oknom. Ideálny na fine tuning.

Mistral NeMo
Mistral NeMo: our new best small model. A state-of-the-art 12B model with 128k context length, built in collaboration with NVIDIA, and released under the Apache 2.0 license.

A Codestral Mamba. Ten má 7B parametrov s až 256K kontextovým oknom. Mal by do vrecka strčiť ostatné free modely pre navrhovanie kódu. Mimochodom je dostupný pod Apache 2.0 licenciou.

Codestral Mamba
As a tribute to Cleopatra, whose glorious destiny ended in tragic snake circumstances, we are proud to release Codestral Mamba, a Mamba2 language model specialised in code generation, available under an Apache 2.0 license.

Aj keď som tu už písal, prečo veľké filmové štúdia neprejdú na AI modely pri generovaní videa, tak to stále bude niekto skúšať. Najnovšie Odyssey, ktorá sa chváli tým, že budete vedieť pregenerovať a zmeniť úplne všetko vo výstupnom videu. Takže pojde skôr o editačný nástroj, ako o nejaký automatizovaný generátor video obsahu.

Odyssey
Hollywood-grade visual AI.

Nakoniec dobrá správa. Meta nezverejní svoje multimodálne AI modely v EU. Dôvodov je viac. Chce takto vydierať EU. Tiež nevie dokázať odkiaľ získala dáta na tréning týchto modelov. A tiež by musela pripraviť spôsob, ako takto zozbieraný feedback mohol byť kontrolovaný. Alebo môže ísť iba o taký odklad a ich model nepodporuje dobre jazyky v EU. Lebo odkedy UK vystúpilo z EU, tak je to tu samá francúzština, nemčina, španielčina, taliančina, portugalčina, ....

Meta won’t release its multimodal Llama AI model in the EU
Meta cited the “unpredictable nature” of EU regulations.

.NET okienko

.NET 6 prestane byť 12. októbra 2024 podporované Microsoftom. Je najvyšší čas si k tomu cez leto sadnúť a upgradovať na .NET 8. Nás to čaká už budúci mesiac, tak som zvedavý, či na niečo neočakávané nenarazím.

.NET 6 will reach End of Support on November 12, 2024 - .NET Blog
.NET 6 will reach end of support on November 12, 2024. This blog post breaks down all the valuable information you need to know and how to update to .NET 8.

Nuget repozitár narástol na 52-tisíc balíčkov. V jeho používaní je vidieť aj trend rastu záujmu o .NET, a s tým prichádzajú aj snahy o supply chain útok alebo upload škodlivých balíčkov. Podľa štatistík majú firmy tiež prehnanú dôveru v bezpečnosť svojich závislostí. Nuget tím pripravil a pripravuje vylepšenia, ktoré tomu majú predchádzať. Poznáte Package Source Mapping alebo pre tých, ktorí spravujú celé knižnice balíčkov Package ID Prefix Reservations?

Building a Safer Future - How NuGet is Tackling Software Supply Chain Threats - The NuGet Blog
Despite significant technological progress in addressing complex security threats, the key to preventing the next attack lies in adhering to fundamental security principles. It’s essential to ensure the software ecosystem is secure, focusing on protecting .NET developers who design, build, and maint…

Dnes si zopakujeme Data Annotations validáciu v .NET 8.

Development With A Dot - .NET 8 Data Annotations Validation
Introduction I wrote about entity validation in the past, the reason I'm coming back to it is that there are some changes in .NET 8, that I haven't revisited. Time for a refresher! .NET has …

Návod ako cez extern alias vyriešiť problém, ak dve závislosti majú rovnaký namespace aj názvy tried.

Disambiguating types with the same name with extern alias
In this post I describe how to solve Error CS0433, where you have two types with the exact same name and namespace coming from two different packages

Linky na záver

Bingu sa vraj podarilo ukradnúť 2 % vyhľadávaní Google. Pozeral som to a jedine, kde to sedí, je desktop, okrem toho je to stále kvapka v mori.

Google Search share drops; Bing increases
The search market of Google has reduced whereas its competitor Bing has gained the same globally and in the U.S. market. Find out more in this article.

ES2024 prináša groupBy a my už nemusíme byť odkázaní na knižnice ako je lodash alebo underscore.

Array Grouping in JavaScript
Combining data into groups—like Object.groupBy and Map.groupBy in JavaScript—allows you to compute higher order datasets, like grouping employees by department.

Dnes budete prokrastinovať ničnerobením. Ale štýlovo a retro s defragmentáciou neexistujúceho virtuálneho disku.

Windows 98 Disk Defrag Simulator
A simulator of the classic Windows 98 Disk Defragmenter tool. Relive the nostalgia of defragmenting different disk drives!

Vizuálna bodka na záver

S DJI Mavic 3 Pro dronom vyletíme až na Mount Everest. Nepíšu či aj späť, ale ako by inak zverejnili tieto zábery?

Apple zverejnil pekne spracované video o bezpečnosti Safari. Uff, ešte že používam na Androide Edge.