Skip to main content
모든 정책을 두 가지 방법으로 테스트하세요. 에이전트가 이미 생성한 트래픽을 대상으로 테스트하고, 반드시 허용해야 하는 합법적인 작업을 대상으로 테스트하세요. 안전하지 않은 케이스만 테스트한 정책은 제대로 테스트된 것이 아닙니다.

초안 백테스트

정책 편집기는 게시하기 전에 이미 발생한 호출에 대해 초안을 재실행합니다.
  1. Admin → policy editor에서 초안을 여세요. 편집기가 JavaScript로 파싱되는지 확인합니다.
  2. backtest에서 재실행할 에이전트와 시간 범위를 선택하세요. 기본값은 every agent30d이며, 범위를 좁히려는 경우가 아니면 마지막 필터는 everything으로 두세요.
  3. run backtest를 선택하세요. 세 가지 필터와 run backtest 액션이 있는 초안 아래의 백테스트 패널, publish version 위에 표시됨.
결과는 해당 호출에 초안이 적용되었을 경우의 동작을 보여줍니다. working 호출 중 몇 개가 중단되었을지도 포함됩니다. 이것이 에이전트를 만나기 전에 발견된 거짓 양성입니다. 그 수가 수용 가능한 수준이 될 때까지 초안을 수정하고 다시 실행하세요.

직접 작성한 이벤트로 실행하기

fp policies test는 정책 파일을 로컬 머신에서 합성 이벤트에 대해 실행하고 결정을 확인합니다. 아무것도 게시되지 않으며 Cloud에도 전달되지 않습니다.
--event, --tool, --command, --file로 이벤트의 형태를 지정하세요. 정책 자체의 match 필터가 여전히 적용되므로, 작성한 이벤트를 커버하지 않는 정책은 결정 대신 skipped를 반환합니다. 이는 보통 match 범위가 의도보다 좁다는 신호입니다.

한 대의 머신에서 실행하기

다음으로, 자신의 머신에서 자신의 에이전트를 대상으로 실제로 적용해 보세요.
첫 번째 명령은 파일을 검증하고 설치합니다. 두 번째 명령은 이곳에서 적용되는 모든 항목과 함께 로드되었음을 확인합니다. 에이전트에게 정책이 차단하는 작업을 요청하여 거부되는지 확인하고, 합법적인 작업을 요청하여 통과되는지 확인하세요. 다른 사람에게는 영향이 없습니다. Cloud에 연결된 머신에서는 Observe → policy에서 두 결정을 모두 확인하세요. 정책 이름으로 필터링한 후, 연결된 각 세션을 열어 매칭된 도구 입력과 반환된 이유를 확인하세요.

오류 케이스 테스트

설치 시 누락된 파일, 구문 오류, 해결되지 않은 import, 최상위 예외, 또는 로딩 중 타임아웃되는 모듈이 있으면 거부됩니다. 따라서 파일이나 import하는 항목을 변경할 때마다 다시 실행하세요. 실행 시 동일하게 손상된 파일은 로그에 기록되고 skipped 처리되어 다른 모든 정책은 계속 실행됩니다. 프로덕션 로그에서 로드 경고를 발견하면 실행되지 않는 정책이 있다는 의미로 처리하세요. Convention 파일은 install 명령 없이 로드되므로 CI에 failproofai policies --install --custom <file> 단계를 명시적으로 추가하세요. 이것이 손상된 정책으로 인해 빌드를 실패시키는 방법입니다. 그런 다음 예상하는 입력뿐만 아니라 에이전트가 실제로 전송하는 내용을 입력으로 사용하세요. 누락된 필드, WriteEdit 같은 대체 도구 이름, Windows 경로, 잘못된 형식의 입력 등을 시도해보세요. 모든 경로에서 의도적인 allow, instruct 또는 deny를 반환하고, 함수를 결정적으로 유지하며, 외부 호출에는 짧은 타임아웃을 적용하세요.

게시 후 관찰

백테스트는 보유한 트래픽에 정책이 어떻게 동작했을지 보여줍니다. 아직 보지 못한 트래픽이 어떻게 동작할지는 보여줄 수 없습니다. 편집기에서 publish version을 선택하거나 fp policies publish를 실행한 후, 먼저 observe 모드로 배포하세요. 이 모드에서는 판정이 기록되지만 아무것도 차단되지 않습니다. 매칭 결과가 안전하지 않은 작업과 유효한 작업을 명확히 구분하면 그때 적용하세요.