Skip to main content
בדוק כל מדיניות בשתי דרכים: מול תנועה שהסוכנים שלך כבר ייצרו, ומול פעולה לגיטימית שהיא חייבת להתיר. מדיניות שנראתה רק למקרה הלא בטוח לא נבדקה.

בדיקת אחורה של הטיוטה

עורך המדיניות משחק מחדש טיוטה מול קריאות שהצי שלך כבר ביצע, לפני שאתה מפרסם אותה.
  1. פתח את הטיוטה ב-Admin → policy editor. העורך מאשר שהיא מתאימה כ-JavaScript.
  2. ב-backtest, בחר את הסוכנים ואת חלון הזמן להשחקה מחדש — כל סוכן ו-30d כברירת מחדל — והשאר את המסנן האחרון ב-everything אלא אם אתה רוצה לצמצם.
  3. בחר run backtest. לוח ה-backtest תחת טיוטה שמתאימה כ-JavaScript, עם שלושת המסננים שלה וה-run backtest action, מעל publish version.
התוצאה היא מה שהטיוטה הייתה עושה לקריאות אלה — כולל כמה קריאות עובדות היה היא עוצרת. אלה חיובים כוזבים שנמצאו לפני שכל סוכן פוגש בהם: התחזק את הטיוטה והשחק אותה שוב עד שהמספר הזה הוא מספר שאתה יכול לקבל.

הרץ אותה מול אירוע שאתה מתאר

fp policies test מריץ קובץ מדיניות על המכונה שלך מול אירוע סינתטי ובודק את ההחלטה. שום דבר לא מפורסם ותום דבר לא מגיע ל-Cloud:
עצב את האירוע עם --event, --tool, --command ו---file. מסנן ה-match של המדיניות עצמה עדיין תקף, ולכן מדיניות שלא מכסה את האירוע שתיארת מדווחת skipped ולא החלטה — בדרך כלל סימן שה-match שלה צר יותר ממה שהתכוונת.

הרץ אותה על מכונה אחת

לאחר מכן, אכוף אותה באמת על המכונה שלך, מול הסוכן שלך:
הפקודה הראשונה מאמתת ומתקינה את הקובץ; השנייה מאשרת שהיא נטענה, לצד כל השאר שאוכף כאן. בקש מהסוכן לעשות מה שהמדיניות עוצרת וראה שהיא תדחה, ואז עשה את הגרסה הלגיטימית וראה שהיא עוברת. לאף אחד אחר זה לא משפיע. על מכונה המחוברת ל-Cloud, בדוק את שתי ההחלטות תחת Observe → policy: סנן לפי שם המדיניות, ואז פתח כל הפעלה מקושרת כדי לאשר את קלט הכלי שהיא התאימה ואת הסיבה שהחזירה.

בדוק מה שמתקלקל

ההתקנה דוחה קובץ חסר, שגיאת תחביר, ייבוא לא פתור, חריגה ברמה העליונה, או מודול שקופא בעת טעינה — אז הרץ שוב אחרי כל שינוי לקובץ או לכל דבר שהוא מייבא. בזמן אכיפה אותו קובץ שבור מתועד וביצוע מושעה כך שכל מדיניות אחרת ממשיכה לרוץ: התייחס לאזהרת טעינה ביומנים בייצור כאל אכיפה אבודה. קובצי קונבנציה נטענים ללא פקודת ההתקנה, אז שמור על שלב failproofai policies --install --custom <file> מפורש ב-CI — זה מה שגורם לבנייה להיכשל על מדיניות שבורה. לאחר מכן הזן לה מה שסוכנים בעצם שולחים, לא רק את הקלט שאתה צופה: שדות חסרים, שמות כלים חלופיים כגון Write ו-Edit, נתיבים של Windows, קלט שגוי. החזר בכוונה allow, instruct או deny בכל נתיב, שמור על הפונקציה דטרמיניסטית, וקשור כל קריאה חיצונית עם timeout קצר.

ואז פרסם אותה ותבחין בה

בדיקת אחורה מראה מה המדיניות הייתה עושה לתנועה שהייתה לך; היא לא יכולה להראות מה תנועה שלא ראית עדיין תעשה. בחר publish version בעורך (או הרץ fp policies publish), ואז פרוס אותה ב-observe mode קודם — הפסקיות שלה מתועדות ותום דבר לא חסום — ואכוף ברגע שהתאימות שלה מפרידות בין פעולות לא בטוחות ליעילות בעל כורחך.