# 最小パッケージ経過期間とバージョンフォールバック

{% hint style="danger" %}
マルウェアは、経過期間や要求されたバージョンに関係なく**常に**ブロックされます。以下の動作は、マルウェアとして識別されていないパッケージにのみ適用されます。
{% endhint %}

[最小パッケージ経過期間](https://help.aikido.dev/docs/docs-ja/aikido-device-protection/using-aikido-endpoint/configuring-installation-policies#minimum-package-age)ポリシーは、バージョンがインストール可能になるまでに公開から経過している必要がある期間を設定します。たとえば、最小経過期間が24時間の場合、公開から24時間未満のバージョンはすべて**新しすぎる**と見なされます。

バージョンが新しすぎる場合の動作は、インストールの要求方法、つまり**特定のバージョン**を要求したか**最新**バージョンを要求したかによって異なります。

## 特定のバージョンを要求した場合

インストールで正確なバージョンが固定されている場合、Aikidoはそのバージョンを受け入れるか拒否するかしかできません。フォールバック先はありません。

* **バージョンが最小経過期間を満たしている** → インストールは**許可**されます。
* **バージョンが新しすぎる** → インストールは**ブロック**され、何が保留されたかを確認できるようにイベントが表示されます。

## 最新バージョンを要求した場合

インストールで最新バージョンが要求された場合、Aikidoにはフォールバックの余地があります。即座にブロックする代わりに、最小経過期間を満たす最も新しいバージョンを返します。

* **最新バージョンが最小経過期間を満たしている** → 最新バージョンが返されます。
* **最新バージョンが新しすぎる** → Aikidoは最小経過期間を満たす最も新しいバージョンにフォールバックし、代わりにそのバージョンが返されます。

これにより、コミュニティによる検証を受けるには新しすぎるバージョンを保留しつつ、インストールを継続して機能させることができます。

## 重大なセキュリティ修正

**重大な**脆弱性を修正するバージョンは、Aikidoがスキャンしてマルウェアが見つからなかった場合に限り、新しすぎる場合でも許可されます。

これがないと、最小経過期間が逆効果になる可能性があります。重大な脆弱性が公表され、メンテナーが数時間以内に修正を公開しても、ポリシーによって唯一安全にインストールできるバージョンが保留されてしまうのです。

仕組み：

1. パッケージの以前のバージョンにある重大な脆弱性を修正する新しいバージョンが公開されます。
2. Aikidoが新しいバージョンのマルウェアスキャンを行います。
3. 問題がなければ、Aikidoはそのバージョンを最小パッケージ経過期間の自動例外として追加し、インストールが許可されます。

設定は一切不要です。この例外はそのバージョンにのみ適用され、最小経過期間ポリシー自体は変更されません。

## 判定フロー

```mermaid
flowchart TD
    A[Install request] --> M[Is it malware?]

    M -- Yes --> MB[Blocked<br/>no exceptions]
    M -- No --> AGE[Requested version<br/>meets minimum age?]

    AGE -- Yes --> OK1[Requested version installed]
    AGE -- No --> CRIT[Fixes a critical vulnerability<br/>and scanned clean?]

    CRIT -- Yes --> OK2[Installed<br/>automatic exception]
    CRIT -- No --> SPEC[Was a specific<br/>version requested?]

    SPEC -- Yes --> BLK[Blocked<br/>event shown]
    SPEC -- No --> FB[Newest version that meets<br/>minimum age installed]

    classDef allow fill:#d6f5d6,stroke:#27ae60,color:#14532d;
    classDef block fill:#ffd6d6,stroke:#c0392b,color:#7f1d1d;
    class OK1,OK2,FB allow;
    class MB,BLK block;
```

{% hint style="info" %}
最小経過期間ポリシーによって保留されている特定の新しいバージョンが必要ですか？例外を追加し、その経過期間の制限を**すべてのバージョンを許可（経過期間の制限なし）**に設定してください。[インストールポリシーの設定](https://help.aikido.dev/docs/docs-ja/aikido-device-protection/using-aikido-endpoint/configuring-installation-policies#exceptions)を参照してください。
{% endhint %}
