Populární témata
#
Bonk Eco continues to show strength amid $USELESS rally
#
Pump.fun to raise $1B token sale, traders speculating on airdrop
#
Boop.Fun leading the way with a new launchpad on Solana.

Obsidian
Méně je bezpečnější: jak Obsidian snižuje riziko útoků na dodavatelské řetězce
Útoky na dodavatelský řetězec jsou škodlivé aktualizace, které se vplíží do otevřeného zdrojového kódu používaného mnoha aplikacemi. Zde je návod, jak navrhujeme Obsidian, abychom zajistili, že aplikace bude bezpečným a soukromým prostředím pro vaše myšlenky.
Méně je bezpečnější
Může to znít jako samozřejmost, ale primárním způsobem, jak snížit riziko útoků na dodavatelský řetězec, je vyhnout se závislosti na kódu třetích stran. Obsidian má ve srovnání s ostatními aplikacemi v naší kategorii nízký počet závislostí. Podívejte se na seznam knihoven s otevřeným zdrojovým kódem na naší stránce Poděkování.
Funkce jako Základy a Canvas byly implementovány od nuly namísto importu běžně dostupných knihoven. To nám dává plnou kontrolu nad tím, co běží v Obsidianu.
- U malých pomocných funkcí je téměř vždy znovu implementujeme do našeho kódu.
- U středních modulů je rozvětvujeme a ponecháváme v naší kódové základně, pokud to licence dovolují.
- U velkých knihoven, jako jsou pdf.js, Mermaid a MathJax, přidáváme známé funkční soubory s uzamčenou verzí a upgradujeme pouze příležitostně nebo když se objeví bezpečnostní opravy. Čteme poznámky k verzi, díváme se na změny v upstreamu a před přechodem důkladně testujeme.
Tento přístup udržuje náš graf závislostí mělký s několika dílčími závislostmi. Menší plocha snižuje pravděpodobnost proklouznutí škodlivé aktualizace.
Co se vlastně v aplikaci dodává
Součástí aplikace, kterou používáte, je pouze hrstka balíčků, např. Electron, CodeMirror moment.js. Ostatní balíčky nám pomáhají vytvořit aplikaci a nikdy se nedodávají uživatelům, např. esbuild nebo eslint.
Připínání verzí a soubory zámku
Všechny závislosti jsou striktně připnuty k verzi a potvrzeny pomocí souboru zámku. Soubor zámku je zdrojem pravdy pro sestavení, takže dostáváme deterministické instalace. To nám poskytuje přímou auditní stopu při kontrole změn.
Postinstalační skripty nespouštíme. Tím zabráníte balíčkům ve spouštění libovolného kódu během instalace.
Pomalé, záměrné upgrady
Když provádíme aktualizace závislostí, můžeme:
1. Přečtěte si seznam změn závislosti řádek po řádku.
2. Zkontrolujte dílčí závislosti zavedené novou verzí.
3. Diff upstream, pokud je sada změn velká nebo riskantní.
4. Provádějte automatizované a ruční testy napříč platformami a kritickými uživatelskými cestami.
5. Potvrďte nový soubor zámku až po úspěšném dokončení těchto kontrol.
V praxi závislosti aktualizujeme jen zřídka, protože obecně fungují a nevyžadují časté změny. Když to uděláme, přistupujeme ke každé změně, jako bychom přebírali novou závislost.
Čas je vyrovnávací paměť
S upgrady nespěcháme. Mezi upgradem jakékoli závislosti a odesláním vydání dochází ke zpoždění. Tato mezera funguje jako okno včasného varování: komunita a bezpečnostní výzkumníci často rychle odhalí škodlivé verze. V době, kdy jsme připraveni k odeslání, ekosystém obvykle označí všechna problematická vydání.
—
Žádné opatření nemůže eliminovat riziko dodavatelského řetězce. Ale výběr menšího počtu závislostí, mělkých grafů, přesných pinů verzí, žádné postinstalace a pomalé kadence upgradů s velkým množstvím recenzí společně snižují pravděpodobnost, že bude Obsidian ovlivněn, a poskytují nám dlouhé okno pro detekci problémů, než se kód dostane k uživatelům.
Pokud vás zajímá náš širší přístup k zabezpečení, podívejte se na naši stránku o zabezpečení a minulé audity.

59,84K
Bounty zvýšena na 5 000 $

Obsidian17. 9. 01:23
Pro importéra je otevřena nová odměna:
2 000 $ za převod databází Notion na Obsidian Bases a soubory ve formátu prostého textu
731,82K
Top
Hodnocení
Oblíbené