RMMZit

セキュリティ

バックアップシステムは最後の防衛線であり、最も弱い部分になってはなりません。RMMZit の開発・テスト・リリースの方法と、問題を報告する方法を紹介します。

脆弱性の報告

セキュリティ上の問題は公開の報告ではなく非公開でお知らせください。リポジトリの Security タブを開き、該当バージョンと再現方法を添えて Report a vulnerability をクリックします。報告は数営業日以内に確認し、確認した問題は新しいリリースで修正し、希望がない限り報告者をリリースノートに記載します。

セキュリティ修正は最新バージョンに対してリリースされます。機械可読の連絡先:security.txt。

RMMZit がコンピューターを守る仕組み

コンソール

コンソールとエージェントの接続先は別々のポートです。コンソールは許可したネットワークのみを受け付け、TLS の前に確認します。すべてのアカウントで 2 段階サインイン、argon2id パスワード、短いセッション、失敗したサインインに対する段階的なロック、CSRF 対策、厳格な Content-Security-Policy、ハッシュで連結された監査ログ。

エージェント

エージェントは外向きにのみ接続するため管理対象のコンピューターでポートを開ける必要がなく、登録時にサーバー証明書をピン留めし、サーバーが署名しエージェントが検証したコマンドのみを実行します。

リモートアクセス

リモートデスクトップ、ターミナル、ファイルはその顧客へのアクセス権を持つユーザーのみが使えます。すべてのセッションと操作は監査ログに記録され、リモート画面へのオプションの通知で、誰かが接続していることをユーザーに知らせます。

自社ネットワークのみ

クラウドサービスなし、テレメトリなし、当社のアカウントも不要。コンソールからの root 操作(更新、ネットワーク、タイムゾーン)は、検証済みの固定リクエストのみを受け付ける別のヘルパーを経由します。診断情報からはパスワード、トークン、鍵が除去されます。

リリースの保護

RMMZit のテスト

変更のたびに(GitHub Actions)

チェック検出するもの
CIgo vet、組み込み PostgreSQL を使う全テストスイート、staticcheck、gosec、govulncheck、Gitleaks。Linux と Windows のビルド
CodeQLインジェクション、パストラバーサル、安全でないリダイレクトなどのデータフローの不具合(Go、JavaScript、ワークフロー)
govulncheckGo と、コードが実際に呼び出す依存関係の既知の脆弱性
staticcheckバグとデッドコード
Dependabot脆弱または古い Go モジュールとアクション
Secret scanning誤ってコミットされた認証情報(プッシュ保護付き)
OpenSSF Scorecardリポジトリのサプライチェーンの取り組み

リリース前に(テストラボで)

チェック検出するもの
gosec安全でない Go のパターン:コマンド実行、ファイル権限、弱い暗号
Semgrepインジェクション、XSS、安全でない Cookie、オープンリダイレクト(Go、JavaScript、シークレット、OWASP Top 10 ルール)
Trivy脆弱な依存関係、シークレット、設定ミス
Gitleaksgit 履歴全体に含まれるシークレット
OWASP ZAP管理者としてサインインした状態でのフルスキャン:XSS、SQL インジェクション、CSRF、パストラバーサル、ヘッダーの問題
OpenVAS と nmapネットワークレベルの脆弱性、開いているポート、アプライアンスの TLS 設定
エンドツーエンド QA実際の Windows・Linux コンピューターでの登録、監視、アラート、リモートデスクトップ、ターミナル、ファイル、スクリプト、更新、ロール、LDAP、SSO

見つかった問題はリリース前に修正し、受け入れたリスクはリリースノートに記載します。

このウェブサイト

rmmzit.com は静的サイトです。言語設定用の Cookie 1 つ以外に、アクセス解析、トラッキング、サードパーティのスクリプトやフォントはなく、スクリプトを一切許可しない Content-Security-Policy を設定しています。プライバシーポリシーをご覧ください。