Актуальные темы
#
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 снижает риск атак на цепочку поставок
Атаки на цепочку поставок — это злонамеренные обновления, которые проникают в открытый исходный код, используемый многими приложениями. Вот как мы проектируем Obsidian, чтобы гарантировать, что приложение является безопасной и приватной средой для ваших мыслей.
Меньше значит безопаснее
Это может показаться очевидным, но основной способ, которым мы снижаем риск атак на цепочку поставок, — это избегание зависимости от стороннего кода. У Obsidian небольшое количество зависимостей по сравнению с другими приложениями в нашей категории. Смотрите список открытых библиотек на нашей странице Кредиты.
Такие функции, как Bases и Canvas, были реализованы с нуля, вместо того чтобы импортировать готовые библиотеки. Это дает нам полный контроль над тем, что работает в Obsidian.
- Для небольших утилитарных функций мы почти всегда переimplementируем их в нашем коде.
- Для средних модулей мы форкаем их и храним внутри нашей кодовой базы, если лицензии это позволяют.
- Для крупных библиотек, таких как pdf.js, Mermaid и MathJax, мы включаем известные хорошие, зафиксированные по версиям файлы и обновляем их только время от времени или когда выходят исправления безопасности. Мы читаем примечания к релизам, смотрим на изменения в upstream и тщательно тестируем перед переключением.
Этот подход сохраняет нашу граф зависимостей мелким с небольшим количеством подзависимостей. Меньшая площадь поверхности снижает вероятность того, что злонамеренное обновление пройдет незамеченным.
Что на самом деле входит в приложение
Только небольшое количество пакетов является частью приложения, которое вы запускаете, например, Electron, CodeMirror, moment.js. Другие пакеты помогают нам строить приложение и никогда не отправляются пользователям, например, esbuild или eslint.
Фиксация версий и lock-файлы
Все зависимости строго зафиксированы по версиям и зафиксированы с помощью lock-файла. Lock-файл является источником правды для сборок, поэтому мы получаем детерминированные установки. Это дает нам простой след аудита при проверке изменений.
Мы не запускаем постинсталляционные скрипты. Это предотвращает выполнение пакетов произвольного кода во время установки.
Медленные, обдуманные обновления
Когда мы обновляем зависимости, мы:
...

Топ
Рейтинг
Избранное