CyberWeaver — デジタル取証(フォレンジック)作業台
概要
CyberWeaver は、セキュリティ分析やインシデントレスポンスで散在する証拠や手がかり(IP、プロセス、ファイル、ログ断片など)を直感的に整理・解析できるデスクトップ向けツールです。Tauri による軽量なデスクトップ実行環境の上で React と tldraw の無限キャンバスを組み合わせ、線でつなぐことで攻撃経路や関連を可視化します。バックエンド側は SQLite を用い、SeaORM を通じて構造化された線索(矩形、テキスト、付箋など)の永続化を行う設計で、セキュリティアナリストの「線を編み込む」作業を支援することを目的としています。
リポジトリの統計情報
- スター数: 15
- フォーク数: 1
- ウォッチャー数: 15
- コミット数: 2
- ファイル数: 12
- メインの言語: TypeScript
主な特徴
- Tauri + React + tldraw によるクロスプラットフォームなデスクトップアプリ基盤
- 無限キャンバス上での視覚的な「線索(クルー)」作成とトポロジー表示
- SQLite + SeaORM によるローカル永続化と構造化エンティティ管理
- 開発ロードマップが明確で、UI とデータレイヤーの同期改善が進行中
技術的なポイント
CyberWeaver の技術的要点はフロントエンドの描画エンジン(tldraw)と、Tauri を通じて組み合わせたローカル永続化層(SQLite + SeaORM)との連携にあります。tldraw は無限キャンバスとオブジェクト操作の高機能ライブラリで、ユーザーは矩形、テキスト、付箋などを自由に配置・接続できますが、これらのオブジェクトは独自の属性スキーマを持ちます。CyberWeaver はこれらの視覚要素を「線索エンティティ」として定義し、DB スキーマにマッピングすることで解析ワークフローに適したメタデータ(IP、タイムスタンプ、プロセスID、注釈等)を付与可能にしています。
バックエンドは Tauri(Rust)によるデスクトップバイナリで、軽量かつセキュアにファイルアクセスや DB 操作を行えます。SeaORM を用いることで Rust 側で型安全に SQLite にアクセスし、エンティティの永続化・検索を実装しています。現状はデータベース初期化やエンティティ定義が完了しており、フロントの描画状態と DB の双方向同期(保存・復元・差分解決)が次の課題です。
技術的なチャレンジとしては、tldraw の内部データ構造とアプリ側で期待する属性セットとのバリデーション不一致(ValidationError)が挙げられます。これには tldraw のシリアライズ形式を拡張するか、ミドルレイヤーで互換変換を実装し、バージョン互換性やマイグレーションを管理するアプローチが考えられます。さらに、オフライン環境での安定性、競合編集(将来的なコラボレーション機能を想定する場合)の解決、SQLite ファイルのバックアップ/エクスポート、描画性能(要素数が増えた場合の仮想化やレンダリング最適化)なども重要な検討点です。
アーキテクチャ面では、フロントは TypeScript + React で UI・操作ロジックを管理し、Tauri のコマンド/イベントを通じて Rust 側 API を叩く形が自然です。これにより、UI の反応性を保ちながら、重い DB クエリやファイル I/O はネイティブ側で処理して安全に完結できます。将来的にはインポートプラグイン(ログ・PCAP・SIEM からの取り込み)、分析プラグイン(自動関連付けやクラスタリング)、およびエクスポート(レポート生成、STIX 形式など)を追加する余地があります。
プロジェクトの構成
主要なファイルとディレクトリ:
- .gitignore: file
- .vscode: dir
- README.md: file
- index.html: file
- package-lock.json: file
その他のファイル(TypeScript ソース、Tauri 設定、SQL マイグレーション、tldraw 関連設定等)が合計で 12 ファイルのうち残り 7 ファイルとして含まれます。ソースはフロントエンド(React + tldraw)の TypeScript と、Tauri 用の設定ファイル、Rust 側の SeaORM マッピング/初期化ファイルが主な構成要素です。
まとめ
取証ワークフローを視覚的に編み上げるツールとして実用性が高く、現段階は基盤整備が完了しデータ同期の安定化が今後の焦点です。
リポジトリ情報:
- 名前: CyberWeaver
- 説明: CyberWeaver 数字取证工作台
- スター数: 15
- 言語: TypeScript
- URL: https://github.com/loopy898/CyberWeaver
- オーナー: loopy898
- アバター: https://avatars.githubusercontent.com/u/199633047?v=4
READMEの抜粋:
CyberWeaver🕷️
CyberWeaver 是一款基于 Tauri + React + Tldraw 开发的开源数字取证工作台。它通过无限画布将零散的攻击线索(IP、进程、文件)转化为直观的拓扑图谱,旨在为安全分析师提供高效的“线索编织”体验。
🚩 开发进度 (Roadmap)
第一阶段:环境搭建与基础可视化 (已完成)
- 基于 Tauri 的桌面客户端骨架搭建 (已完成)
- Tldraw 无限画布引擎集成 (已完成)
- 基础 UI 界面与交互逻辑配置 (已完成)
第二阶段:核心数据层与持久化 (进行中)
- 后端 SQLite 数据库初始化与 SeaORM 映射 (已完成)
- 定义结构化线索实体(矩形、文本、便签) (已完成)
- 修复线索加载时的 Tldraw 属性校验报错 (ValidationError)
- 实现画布数据与 SQLite 的双向稳定同步
第三阶段:同构旁路与可视化增强 (待启动)
- …