コマンドの安全性とリスク分類
YeePilotがコマンドをリスクレベルに分類し、危険な操作からシステムを保護する仕組みを解説します
YeePilotは実行前にすべてのコマンドを評価し、リスクレベルを割り当てます。この多層的な安全システムにより、サーバー上で何が起こるかを常に把握し、損害を与える可能性のあるものに対して最終決定権を持つことができます。
リスクレベル
AIが提案するすべてのコマンドは、4つのリスクレベルのいずれかに分類されます:
SAFE(安全 - 緑)
変更を加えずにシステム状態を確認する読み取り専用コマンド。
例:
ls、cat、head、tail、lessps、top、htop、df、du、freewhoami、hostname、uname、uptimesystemctl status、journalctl(読み取り専用)ip addr、ss、netstat、ping、dig
SAFEコマンドはリスクが低いです。セキュリティモードによっては、確認プロンプトなしで自動実行される場合があります。
MODERATE(中程度 - 黄)
システムに変更を加えるが、日常的な管理操作であるコマンド。
例:
apt install、apt update、yum installsystemctl restart、systemctl enablemkdir、cp、mv(非システムパスへの操作)crontab -e、useraddufw allow、firewall-cmd
MODERATEコマンドは、何を行うかの要約とともに表示されます。セキュリティモードによっては、実行前に確認を求められる場合があります。
DANGEROUS(危険 - 赤)
システムに重大な、または不可逆的な変更を引き起こす可能性のあるコマンド。
例:
- 重要なディレクトリに対する
rm -rf - システムファイルに対する
chmod/chown dd(ディスク書き込み操作)iptablesのルール変更/etc/fstab、/etc/ssh/sshd_configなどの重要な設定ファイルの編集mkfs(ファイルシステムのフォーマット)
DANGEROUSコマンドは、セキュリティモードに関係なく常に明示的な確認を要求します。YeePilotは潜在的な影響を説明する目立つ警告を表示します。
BLOCKED(ブロック - 実行不可)
いかなる状況でも実行されないコマンド。ほぼ常に悪意があるか、壊滅的な破壊を引き起こす操作です。
YeePilotには 70以上の組み込みブロックパターン が含まれ、以下をカバーしています:
- 破壊的なファイルシステム操作 --
rm -rf /、rm -rf /*、ファイルシステム全体の消去 - リバースシェル -- bash、python、netcatなどのリバースシェル手法
- 権限昇格 -- 不正なsudo操作、setuid悪用
- コンテナエスケープ -- コンテナ分離からの脱出の試み
- 履歴操作 -- 痕跡を隠すためのシェル履歴のクリアまたは無効化
- 暗号通貨マイナー -- 既知のマイニングソフトウェアとプール接続
- データ流出 -- 機密ファイルを外部サービスにパイプする操作
- フォークボム --
:(){ :|:& };:およびそのバリエーション
AIがブロックされたコマンドを提案した場合、YeePilotは即座に拒否し、試行をログに記録します。セッション内からブロックされたコマンドをオーバーライドする方法はありません。
セキュリティモード
YeePilotは確認の処理方法を制御する3つのセキュリティモードを提供しています:
ストリクトモード
security:
mode: strictリスクレベルに関係なく、すべてのコマンドが実行前に確認を要求します。これは最もセキュアな設定で、本番サーバーに推奨されます。
> Show disk usage
Proposed: df -h
Risk: SAFE
[Y/n] Confirm?モデレートモード(デフォルト)
security:
mode: moderateSAFEコマンドは自動実行されます。MODERATEおよびDANGEROUSコマンドは確認を要求します。デフォルトであり、セキュリティとユーザビリティのバランスが取れています。
> Install nginx
Proposed: apt install -y nginx
Risk: MODERATE
[Y/n] Confirm?パーミッシブモード
security:
mode: permissiveSAFEおよびMODERATEコマンドは自動実行されます。DANGEROUSコマンドのみ確認を要求します。速度が注意事項より重要な開発またはステージングサーバーで使用します。
> Delete the old log files
Proposed: rm -rf /var/log/myapp/old/
Risk: DANGEROUS
[Y/n] Confirm? WARNING: This will permanently delete files.設定オプション
~/.yeepilot/config.yaml で安全システムを微調整します:
security:
mode: moderate # strict、moderate、またはpermissive
require_confirmation: true # 確認のマスタースイッチ
blocked_patterns: # カスタムブロックパターンの追加
- "curl.*|.*bash" # curlからbashへのパイプをブロック
- "wget.*-O-.*|.*sh" # wgetからshへのパイプをブロックカスタムブロックパターンの追加
組織固有で実行すべきでないコマンドがある場合、blocked_patterns リストに追加します:
security:
blocked_patterns:
- "DROP DATABASE"
- "truncate.*production"
- "shutdown -h now"カスタムパターンは組み込みの70以上のパターンに追加されます。組み込みのブロックパターンは削除できません。
最終決定権は常にあなたに
YeePilotは根本的な原則に基づいて設計されています:人間のオペレーターが常に制御権を持つということです。
- SAFEおよびMODERATEコマンドはセキュリティモードに基づいて自動承認できますが、完全制御のためにいつでもストリクトモードに切り替えられます
- DANGEROUSコマンドは常に明確な警告を表示し、明示的な承認を待ちます
- BLOCKEDコマンドはプロンプトインジェクションやAIのハルシネーションから保護するために自動的に拒否されます
- 確認プロンプトで
nを押すか、いつでもCtrl+Cを押して提案されたコマンドをキャンセルできます
パーミッシブモードを使用していても、YeePilotはすべてのコマンドを分類し、リスクレベルをログに記録します。監査ログをいつでも確認して、何が実行されたか、なぜ実行されたかを確認できます。
プロンプトインジェクション保護
YeePilotの安全システムは、プロンプトインジェクション攻撃 -- ファイル、ログ、Webページ内の悪意のあるコンテンツがAIを操作して有害なコマンドを実行させようとする試み -- からも防御します。注入されたテキストがAIの指示を上書きしようとしても、コマンド安全レイヤーはブロックパターンリストとリスク分類器に対してすべての提案コマンドを独立して評価します。安全システムはAIモデルとは別に動作し、多層防御を提供します。