Bor v0.8.0 リリースノート / 新機能

Bor v0.8.0 は、Linux デスクトップ向けのオープンソース ポリシー管理システムで、管理機能を拡張し、管理インターフェースをモダン化し、セキュリティ体制を強化します。このリリースは、管理対象ポリシーのアプリケーションカバレッジを拡大し、フリート管理者の運用効率を向上させることに重点を置いています。

新しいポリシータイプ

Bor v0.8.0 は、3 つの新しいポリシータイプのサポートを追加し、管理者が Linux デスクトップのフリート全体に設定を適用できるようにします。

Thunderbird

Mozilla Thunderbird は、Firefox ESR と同じメカニズムで管理できるようになりました。Bor エージェントは、すべてのバインドされたポリシーをマージした管理対象 policies.json ファイルを書き込みます。最後のポリシーが削除されると、元のファイルが復元されます。この強制は Flatpak と RPM/DEB のインストールの両方に対応しています。外部からの編集を防止するため、エージェントは改ざん監視機能を使用して、外部でファイルが変更された場合に即座に管理対象ファイルを復元します。

Microsoft Edge for Business

Linux 上で Microsoft Edge を利用するフリート向けに、Bor は各 Edge 管理ポリシーディレクトリに bor_managed.json ファイルを作成する機能をサポートします。Web UI では、完全な Edge ポリシーカタログ、JSON 検証、設定が有効になる前のプレビューを備えたツリーベースのエディタが提供されます。

Firewalld Zones

Bor は、登録されたノード上の firewalld ゾーンを管理できるようになり、サービス、ポート、転送ポート、リッチルール、マスカレード、インターフェース、ソース、ゾーンターゲットを含みます。エージェントはゾーン XML を /etc/firewalld/zones/ に書き込み、firewall-cmd --check-config で構成を検証し、firewalld をリロードします。これらのゾーンファイルも改ざん監視機能で保護されます。

Web UI 大改装

管理インターフェースは PatternFly 6 を使用して再設計され、使いやすさとアクセシビリティ(WCAG 2.2 AA)を向上させました。

改善されたナビゲーションと UX

  • ルーティングページ: すべてのページに固有の URL が付与され、ブラウザの戻る/進む操作やディープリンクが可能になりました。グローバルエラーバウンダリにより白画面クラッシュを防止します。
  • フルページポリシーエディタ: ポリシーエディタはネストされたモーダルから専用のルーティングページ(/policies/:id/edit)へ移行し、ツリーベースエディタ用のスペースが拡大されました。
  • スケーラブルリスト: ノードおよびコンプライアンスリストはサーバー側ページング、フィルタリング、ソートを利用し、数千ノード規模のフリートでもパフォーマンスを維持します。
  • 安全レール: UI には未保存変更ガード、破壊的操作(リソース削除など)の確認ダイアログ、Chrome/Edge 値の JSON 検証が追加されました。
  • ダッシュボード強化: ダッシュボードはサイドバーナビゲーションのグループ化と統計タイルを備え、管理者が事前フィルタされたリストにドリルダウンできるようになりました(例: 「オフライン」をクリックすると直接フィルタ済み Nodes ページへ遷移)。

生活の質向上

  • 二段階ログイン: ログインフォームにパスワード表示切替とリアルタイムの Caps Lock 警告が追加されました。
  • MFA 管理: 多要素認証(MFA)のバックアップコードをコピーまたはダウンロードできるようになりました。
  • ポリシー管理: ポリシーは一覧ビューから直接リリースまたはリリース解除が可能です。

セキュリティ強化

Bor v0.8.0 には、サーバーとエージェントを保護する専用のセキュリティパスが含まれています。

  • アイデンティティとアクセス: エージェントのアイデンティティは mTLS クライアント証明書に厳密にバインドされました。サーバー上の MFA と RBAC の強制パスも強化されています。
  • 暗号化更新: 従来の SHA-256 暗号化された TOTP シークレットは、初回読み取り時に HKDF 派生暗号へ透過的に移行されます。
  • インフラ保護: Ubuntu PPA と Fedora COPR リポジトリインポートヘルパーは、許可リストに登録されたリダイレクト先のみをたどることで、リダイレクトベースの SSRF をブロックします。
  • 監査ログ: 監査ログの CSV エクスポートは、スプレッドシートの数式インジェクションから保護されます。
  • 認証情報管理: 初期管理者パスワードはサーバーログ(journald)に出力されず、root のみがアクセスできるファイルに書き込まれます。
  • TLS 管理: サーバー TLS 証明書は、Subject Alternative Names(SAN)が設定されたホスト名と一致しなくなったときに自動的に再生成されます。
  • 依存関係更新: すべての Dependabot アラートが解消され、react-router RSC CSRF アドバイザリ(GHSA-qwww-vcr4-c8h2)も含まれます。

技術実装とプラットフォーム更新

プロト駆動カタログ

真実の単一ソースを保つため、Firefox、Thunderbird、Chrome、Edge のポリシーカタログは protobuf アノテーションから生成されます。この共有スキーマはサーバー、エージェント、フロントエンドで使用されます。

Polkit 変数条件

Polkit ルールは action.lookup() を介した変数条件をサポートし、アクション変数に基づくマッチングが可能になりました(例: リムーバブルドライブのマウントのみ許可)。また、1 つのルール内の複数アクション ID は || で正しく結合されます。

プラットフォームスタック

  • フロントエンド: React 19.2 と react-router 8.3。
  • バックエンド/エージェント: gRPC 1.82.1 と golang.org/x/crypto 0.52.0。
  • 開発: フロントエンド開発には Node.js 22.22+ が必須となりました。

アップグレード時の注意点

管理者は新しい Thunderbird、Edge、Firewalld ポリシータイプをサポートするためにエージェントを v0.8.0 にアップグレードする必要があります。古いエージェントは認識できないポリシータイプを無視します。protobuf ポリシースキーマは thunderbird.protofirewalld.proto の追加、および polkit と edge メッセージの更新に伴い拡張されました。proto/policy/ を利用した外部ツールは再生成が必要です。

コミュニティの洞察

Hacker News のユーザーは Bor の潜在的な活用例や代替案について議論しました。非営利団体のラップトップを管理する管理者の中には、Linux Mint の Cinnamon デスクトップ環境へのサポートやカスタムスクリプト実行のアイデアを求める声もありました。

その他の技術的質問は、ポリシー適用モデル、特にエージェントが設定ドリフトやソース間の競合ポリシーをどのように処理するかに焦点が当てられました。あるユーザーは、ユーザーが気付く前に変更を元に戻す inotify ドリフトキャッチ機構の有効性を指摘しました。

"Nice work on the mTLS/gRPC push design — the inotify drift-catch on parent dirs is a clean answer to the 'revert happens before the user notices' problem, and I like that the audit trail is server-side."

プロジェクトへの追加提案として、SCAP(Security Content Automation Protocol)による DISA STIG の適用サポートや、Wazuh などのフリートガバナンスツールとの統合が挙げられています。

Sources