> ## Documentation Index
> Fetch the complete documentation index at: https://docs.replit.com/llms.txt
> Use this file to discover all available pages before exploring further.

# プロジェクトセキュリティセンター

> セキュリティスキャンを選択し、検出結果をレビューして、Replit Appを発行する前に脆弱性を修正します。

export const chatIcon = (name, size = 19) => {
  const paths = {
    MessageCircle: <path d="M7.9 20A9 9 0 1 0 4 16.1L2 22Z" />,
    ChartNoAxesCombined: <>
        <path d="M12 16v5" />
        <path d="M16 14v7" />
        <path d="M20 10v11" />
        <path d="m22 3-8.646 8.646a.5.5 0 0 1-.708 0L9.354 8.354a.5.5 0 0 0-.708 0L2 15" />
        <path d="M4 18v3" />
        <path d="M8 14v7" />
      </>,
    Workflow: <>
        <rect width="8" height="8" x="3" y="3" rx="2" />
        <path d="M7 11v4a2 2 0 0 0 2 2h4" />
        <rect width="8" height="8" x="13" y="13" rx="2" />
      </>,
    Lightbulb: <>
        <path d="M15 14c.2-1 .7-1.7 1.5-2.5 1-.9 1.5-2.2 1.5-3.5A6 6 0 0 0 6 8c0 1 .2 2.2 1.5 3.5.7.7 1.3 1.5 1.5 2.5" />
        <path d="M9 18h6" />
        <path d="M10 22h4" />
      </>,
    Code2: <>
        <path d="m18 16 4-4-4-4" />
        <path d="m6 8-4 4 4 4" />
        <path d="m14.5 4-5 16" />
      </>,
    Presentation: <>
        <path d="M2 3h20" />
        <path d="M21 3v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V3" />
        <path d="m7 21 5-5 5 5" />
      </>,
    PanelsTopLeft: <>
        <rect width="18" height="18" x="3" y="3" rx="2" />
        <path d="M3 9h18" />
        <path d="M9 21V9" />
      </>,
    Keyboard: <>
        <rect width="20" height="14" x="2" y="5" rx="2" />
        <path d="M6 9h.01M10 9h.01M14 9h.01M18 9h.01M6 13h.01M10 13h.01M14 13h.01M18 13h.01M8 17h8" />
      </>,
    Layers3: <>
        <path d="m12 2 9 5-9 5-9-5 9-5Z" />
        <path d="m3 12 9 5 9-5M3 17l9 5 9-5" />
      </>,
    CalendarClock: <>
        <path d="M16 2v4M8 2v4M3 10h18" />
        <rect width="18" height="19" x="3" y="4" rx="2" />
        <path d="M12 14v3l2 1" />
      </>,
    ConversationProject: <>
        <path d="M3 4h8v6H6l-3 2V4Z" />
        <rect width="9" height="9" x="12" y="11" rx="1.5" />
        <path d="M12 14h9M15 11v9" />
      </>,
    CursorDesign: <>
        <path d="m5 3 13 7-6 2-2 6L5 3Z" />
        <path d="M15 16h6M18 13v6" />
      </>,
    AppWindow: <>
        <rect width="20" height="18" x="2" y="3" rx="2" />
        <path d="M2 8h20M6 5.5h.01M9 5.5h.01" />
      </>,
    CloudUpload: <>
        <path d="M12 13v8M8 17l4-4 4 4" />
        <path d="M20 16.5A5 5 0 0 0 18 7h-1.3A7 7 0 0 0 3.3 9.4 4.5 4.5 0 0 0 5 18h2" />
      </>,
    Image: <>
        <rect width="18" height="18" x="3" y="3" rx="2" ry="2" />
        <circle cx="9" cy="9" r="2" />
        <path d="m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21" />
      </>,
    FileUp: <>
        <path d="M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z" />
        <path d="M14 2v4a2 2 0 0 0 2 2h4" />
        <path d="M12 12v6" />
        <path d="m15 15-3-3-3 3" />
      </>,
    Search: <>
        <circle cx="11" cy="11" r="8" />
        <path d="m21 21-4.3-4.3" />
      </>,
    Sparkles: <path d="M9.937 15.5A2 2 0 0 0 8.5 14.063l-6.135-1.582a.5.5 0 0 1 0-.962L8.5 9.936A2 2 0 0 0 9.937 8.5l1.582-6.135a.5.5 0 0 1 .963 0L14.063 8.5A2 2 0 0 0 15.5 9.937l6.135 1.581a.5.5 0 0 1 0 .964L15.5 14.063a2 2 0 0 0-1.437 1.437l-1.582 6.135a.5.5 0 0 1-.963 0z" />,
    Briefcase: <>
        <path d="M16 20V4a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16" />
        <rect width="20" height="14" x="2" y="6" rx="2" />
      </>,
    WandSparkles: <>
        <path d="m21.64 3.64-1.28-1.28a1.21 1.21 0 0 0-1.72 0L2.36 18.64a1.21 1.21 0 0 0 0 1.72l1.28 1.28a1.2 1.2 0 0 0 1.72 0L21.64 5.36a1.2 1.2 0 0 0 0-1.72" />
        <path d="m14 7 3 3" />
        <path d="M5 6v4" />
        <path d="M19 14v4" />
        <path d="M10 2v2" />
        <path d="M7 8H3" />
        <path d="M21 16h-4" />
        <path d="M11 3H9" />
      </>
  };
  return <svg width={size} height={size} viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.8" strokeLinecap="round" strokeLinejoin="round" aria-hidden="true">
      {paths[name] ?? paths.Sparkles}
    </svg>;
};

export const ChatExample = ({icon, iconSrc, tag, title, href, palette, children}) => {
  const body = <>
      {palette && <div className={`chat-use-case-visual palette-${palette}`}>
          <div className="chat-use-case-window">
            <i />
            <i />
            <i />
            <b />
            <b />
            <b />
          </div>
          <em>
            {iconSrc ? <img src={iconSrc} alt="" width="26" height="26" /> : chatIcon(icon, 24)}
          </em>
        </div>}
      <span>
        {iconSrc ? <img src={iconSrc} alt="" width="19" height="19" /> : chatIcon(icon, 19)}
      </span>
      {tag && <div className="chat-example-tag">{tag}</div>}
      <strong>{title}</strong>
      <p>{children}</p>
      <small>{href ? "Explore →" : ""}</small>
    </>;
  const className = `chat-example${palette ? " has-visual" : ""}`;
  return href ? <a className={className} href={href}>
      {body}
    </a> : <div className={className}>{body}</div>;
};

export const ChatExampleGrid = ({hasVisuals, children}) => {
  return <section className={`chat-mkt chat-workflow-grid${hasVisuals ? " has-visuals" : ""}`}>
      {children}
    </section>;
};

<Frame>
  <img src="https://mintcdn.com/replit/m66KQX7992wJ3rkk/images/security-scanner/security-scanner-hero.png?fit=max&auto=format&n=m66KQX7992wJ3rkk&q=85&s=fe56b3d0d0735cc2a6dbdba2b252badc" alt="深刻度別にグループ化されたセキュリティスキャンの検出結果を表示するプロジェクトセキュリティセンター" style={{ display: "block", margin: "0 auto" }} width="3402" height="2058" data-path="images/security-scanner/security-scanner-hero.png" />
</Frame>

プロジェクトセキュリティセンターは、Replit Appのセキュリティおよびプライバシーの脆弱性を発見して修正するための中心的な場所です。プロジェクトの**Tools**ペインで**Security Center**を選択すると、スキャンを実行し、検出結果をレビューし、承認した問題をAgentに修正依頼として送信できます。

<Note>
  依存関係セキュリティの初心者の方は、CVE、SBOM、露出度、Agentで修正、再発行、Auto-Protectの定義については[セキュリティの概念](/ja/features/security/concepts)を参照してください。
</Note>

## セキュリティスキャンを選択する

[セキュリティスキャンレベル](/ja/features/security/security-scan-levels)を比較して、Level 1、2、3がそれぞれ何をチェックするかを確認してください。

必要なレビューの種類に合ったスキャンを選択してください：

<div id="agent-security-scans" />

<div id="level-3-scans" />

<ChatExampleGrid>
  <ChatExample title="ソースコードをレビューする" icon="Code2" href="/ja/features/security/agent-security-scans">
    通常のコードレビューワークフローにはAgentセキュリティスキャンを使用します。Security
    Agentがコードベースを監査し、検出結果を報告して、修正を支援します。
  </ChatExample>

  <ChatExample title="実行中のアプリをテストする" icon="Search" href="/ja/features/security/black-box-pen-tests">
    実行中のアプリに対するブラックボックスペネトレーションテストも必要な場合は、Level 3スキャンを使用します。Level
    3はそのテストをソースコードレビューと並行して実行します。
  </ChatExample>
</ChatExampleGrid>

どちらの経路でも検出結果は**Security Center**に報告されます。Agentセキュリティスキャンは有料のReplit builderが利用できます。

## 自動依存関係スキャン

自動依存関係スキャンは、プロジェクトのパッケージを公開されている脆弱性レコードと照合します。これらのスキャンは無料で自動的に実行されます。新しいCVE（Common Vulnerabilities and Exposures）エントリが開示されると、Replitはそれをプロジェクトの依存関係と照合し、一致したものを手動での再スキャンなしに**Security**ペインに表示します。

依存関係スキャンはNode.js/npm、Python、Go、Rust、PHP、Rubyをサポートしています。

自動依存関係修正は現在、Node.js/npmに焦点を当てています。

<Frame>
  <img src="https://mintcdn.com/replit/MuLW6SmzOLVKbNrI/images/project-security-center/fix-all-with-agent.png?fit=max&auto=format&n=MuLW6SmzOLVKbNrI&q=85&s=8d6a692c34d6d106462fa714bdc703aa" alt="「Fix all with Agent」アクションを含む自動依存関係スキャンカード" width="1440" height="900" data-path="images/project-security-center/fix-all-with-agent.png" />
</Frame>

### Auto-Protect

Auto-Protectは自動依存関係スキャンを拡張します。一致する脆弱性が検出されると、Agentがパッチを準備・テストし、直接リンクを記載したメールを送信します。パッチは**Security**ペインでレビュー待ちのまま残ります。適用後は、本番バージョンに修正が反映されるようアプリを再発行してください。

Auto-Protectは依存関係のCVEのみを対象としています。アプリケーションコードのレビューには[Agentセキュリティスキャン](/ja/features/security/agent-security-scans)を使用してください。

どちらのAuto-Protect設定も、デフォルトでオフです：

<Steps>
  <Step title="パッチ準備を有効にする">
    Workspace管理者が**Settings** > **Account** > **Advanced**に移動し、
    Replitが修正を準備すべき最低深刻度（低、中、高、またはクリティカル）
    を選択します。
  </Step>

  <Step title="セキュリティメールを有効にする">
    **Settings** > **Personalization** > **Email Notifications**に移動し、
    通知を受け取りたい最低深刻度を選択します。
  </Step>
</Steps>

Replitは新しい脆弱性ごとに、ワークスペースあたり最大1通のメールを送信し、影響を受けるすべてのプロジェクトをまとめて要約します。**Go to Task**を選択して、適用前にAgentが準備したパッチを確認してください。パッチを適用した後、新しいバージョンを発行するまで脆弱性は**再発行待ち**と表示されます。

<Note>
  Agentが準備した修正は、Auto-Protectによって積極的に準備された場合でも、他のAgent作業と同様に課金されます。
</Note>

## 検出結果をレビューする

セキュリティの結果は**Security**ペインに表示され、深刻度別にグループ化されます：

| 深刻度 | ガイダンス |
| - | - |
| クリティカル | 発行前に対処すべき即時のリスク |
| 高 | 特定の条件下で悪用される可能性がある重大な問題 |
| 中 | 悪用される可能性が低い潜在的なリスク |
| 低 / 情報 | 軽微な問題やベストプラクティスの推奨事項 |

承認、修正、または却下する前に、各検出結果をレビューしてください。承認した問題を修正依頼としてAgentに送信し、修正を適用した後に該当するスキャンを再実行します。

## 開発中および発行時のセキュリティチェック

### ビルド中のセキュリティスキャン

Agentでビルドしている間、Replitは自動的にAgentが変更したファイルを一般的な安全でないパターンとハードコードされた機密情報についてレビューします。これはAgentワークフローにおける早期の軽量なチェックであり、コードベース全体のレビューではありません。この結果は**Security**ペインに別のレポートとして表示されません。

### 発行チェック

Replitは発行前にもセキュリティスキャンを実行します。**Block publishing of critical vulnerabilities**設定は、スキャンでクリティカルな問題が見つかった場合に何が起こるかを決定します：

* **オン**：問題が解決または却下されるまで発行がブロックされます。
* **オフ**：発行が進み、検出結果はレビュー用に表示されたままになります。

エンタープライズ組織では、すべてのアプリでこの設定を必須にできます。

これらのチェックは、完全な[Agentセキュリティスキャン](/ja/features/security/agent-security-scans)や[Level 3スキャン](/ja/features/security/black-box-pen-tests)を置き換えるものではなく、補完するものです。

## 次のステップ

* [Agentセキュリティスキャンのワークフロー](/ja/features/security/agent-security-scans)に従います。
* [Level 3でブラックボックスペネトレーションテストを実行する方法](/ja/features/security/black-box-pen-tests)を学びます。
* [発行](/ja/learn/projects-and-artifacts/replit-deployments)について詳しく学びます。
* [How Replit secures AI-generated code](https://blog.replit.com/securing-ai-generated-code)を読みます。
