脆弱性の報告
セキュリティ上の問題は公開の報告ではなく非公開でお知らせください。リポジトリの Security タブを開き、該当バージョンと再現方法を添えて Report a vulnerability をクリックします。報告は数営業日以内に確認し、確認した問題は新しいリリースで修正し、希望がない限り報告者をリリースノートに記載します。
セキュリティ修正は最新バージョンに対してリリースされます。機械可読の連絡先:security.txt。
RMMZit がコンピューターを守る仕組み
コンソール
コンソールとエージェントの接続先は別々のポートです。コンソールは許可したネットワークのみを受け付け、TLS の前に確認します。すべてのアカウントで 2 段階サインイン、argon2id パスワード、短いセッション、失敗したサインインに対する段階的なロック、CSRF 対策、厳格な Content-Security-Policy、ハッシュで連結された監査ログ。
エージェント
エージェントは外向きにのみ接続するため管理対象のコンピューターでポートを開ける必要がなく、登録時にサーバー証明書をピン留めし、サーバーが署名しエージェントが検証したコマンドのみを実行します。
リモートアクセス
リモートデスクトップ、ターミナル、ファイルはその顧客へのアクセス権を持つユーザーのみが使えます。すべてのセッションと操作は監査ログに記録され、リモート画面へのオプションの通知で、誰かが接続していることをユーザーに知らせます。
自社ネットワークのみ
クラウドサービスなし、テレメトリなし、当社のアカウントも不要。コンソールからの root 操作(更新、ネットワーク、タイムゾーン)は、検証済みの固定リクエストのみを受け付ける別のヘルパーを経由します。診断情報からはパスワード、トークン、鍵が除去されます。
リリースの保護
- すべてのリリースは RMMZit の Ed25519 リリース鍵で署名され、コンソールとエージェントはアップデートのインストール前に署名とチェックサムを検証します。
- インストールスクリプトは、ダウンロードしたリリースの署名とチェックサムを検証します。
- パッケージはタグ付きコミットからビルドされ、イメージにはソースコード提供の書面(
SOURCE-CODE.txt)が含まれます。 - コンソールのアップデートは最初にデータベースをバックアップし、新しいバージョンが起動しない場合は自動的に元に戻します。
RMMZit のテスト
変更のたびに(GitHub Actions)
| チェック | 検出するもの |
|---|---|
| CI | go vet、組み込み PostgreSQL を使う全テストスイート、staticcheck、gosec、govulncheck、Gitleaks。Linux と Windows のビルド |
| CodeQL | インジェクション、パストラバーサル、安全でないリダイレクトなどのデータフローの不具合(Go、JavaScript、ワークフロー) |
| govulncheck | Go と、コードが実際に呼び出す依存関係の既知の脆弱性 |
| staticcheck | バグとデッドコード |
| Dependabot | 脆弱または古い Go モジュールとアクション |
| Secret scanning | 誤ってコミットされた認証情報(プッシュ保護付き) |
| OpenSSF Scorecard | リポジトリのサプライチェーンの取り組み |
リリース前に(テストラボで)
| チェック | 検出するもの |
|---|---|
| gosec | 安全でない Go のパターン:コマンド実行、ファイル権限、弱い暗号 |
| Semgrep | インジェクション、XSS、安全でない Cookie、オープンリダイレクト(Go、JavaScript、シークレット、OWASP Top 10 ルール) |
| Trivy | 脆弱な依存関係、シークレット、設定ミス |
| Gitleaks | git 履歴全体に含まれるシークレット |
| OWASP ZAP | 管理者としてサインインした状態でのフルスキャン:XSS、SQL インジェクション、CSRF、パストラバーサル、ヘッダーの問題 |
| OpenVAS と nmap | ネットワークレベルの脆弱性、開いているポート、アプライアンスの TLS 設定 |
| エンドツーエンド QA | 実際の Windows・Linux コンピューターでの登録、監視、アラート、リモートデスクトップ、ターミナル、ファイル、スクリプト、更新、ロール、LDAP、SSO |
見つかった問題はリリース前に修正し、受け入れたリスクはリリースノートに記載します。
このウェブサイト
rmmzit.com は静的サイトです。言語設定用の Cookie 1 つ以外に、アクセス解析、トラッキング、サードパーティのスクリプトやフォントはなく、スクリプトを一切許可しない Content-Security-Policy を設定しています。プライバシーポリシーをご覧ください。