
Набор инструментов для проверки концепции (PoC) по укреплению границ Electron, моделирующий изоляцию рендерера/основного процесса, применение политик IPC и навигационные контроли для изучения уязвимостей безопасности десктопных приложений.
Этот репозиторий представляет собой проверочный стенд концептуального доказательства (PoC) для укрепления границ Electron в настольных архитектурах в стиле Discord. Он моделирует разделение процессов рендеринга и основного процесса, политику моста предзагрузки, экспонирование IPC-каналов, навигационные контроли и надзор времени выполнения для изучения того, как неправильная конфигурация может ослабить гарантии изоляции приложения.
Детали референтного кейса отслеживаются на: https://bugbounty.com/211356433
Тематическое исследование основано на цепочке уязвимостей настольного приложения Discord 2020 года, включающей CVE-2020-15215 (обход изоляции контекста) и CVE-2020-15174 (отказ защиты навигации/фреймбастинга), в сочетании с восходящим условием XSS во встроенном стороннем контенте [web:5][web:19][web:20].
Стенд фокусируется на релевантных безопасности условиях, таких как:
src/main/
src/runtime/
src/ipc/
src/preload/
src/security/guards/
src/security/policies/
src/network/rest/
src/network/gateway/
src/network/rpc/
src/modules/guilds/, src/modules/channels/, src/modules/voice/src/modules/auth/, src/modules/presence/, src/modules/experiments/src/cache/, src/database/, src/commands/, src/sessions/, src/state/src/rendering/ для поверхностей макета/темы/холстаsrc/media/ для этапов конвейера аудио/изображений/видеоsrc/search/ для хранилищ индексов/запросов/ранжированияsrc/ml/ для графов признаков/выводов/конвейеровsrc/billing/ для путей плана/счетов/реестраsrc/moderation/ для фильтров/отчетов/действийsrc/compliance/ для каталогов политик и аудиторских следовsrc/bots/ для состояния выполнения/хранилища/шлюза ботовsrc/platform/ для адаптеров Linux/Windows/MacPoC предоставляет детерминированные и стохастические пути для проверки анализа границ:
scripts/simulate-history.ps1).scripts/generate-fixture.js).npm install
node scripts/generate-fixture.js
node -e "const fs=require('fs');const path=require('path');function walk(d){for(const e of fs.readdirSync(d)){const p=path.join(d,e);const s=fs.statSync(p);if(s.isDirectory())walk(p);else if(p.endsWith('.js')) require('./'+p);}} walk('src'); console.log('ok');"
git checkout -B main
node scripts/generate-fixture.js > fixtures/generated.json
create*, set*, get* и поэтапных переходов рабочих процессов для упрощения дифференциального трассирования через границы подсистем.Nishant
Авторы: