דילוג לתוכן
New

DeepSeek V4.1 Flash free for 7 days: 10M tokens a day after a top-up of $10 or more. Until Nov 30.

How it works

הבקרות שאנחנו מפעילים, ואלה שעוד לא בנינו.

דרך מה בקשה עוברת, איך לקוחות מופרדים זה מזה, אילו מפתחות מגינים על מה, ועל מה אין לנו הסמכה. העמוד מתאר את מה שרץ בפרודקשן היום.

/.well-known/security.txt
Contact
mailto:[email protected]
Expires
2027-11-01T00:00:00.000Z
Preferred-Languages
en, pt, es
Canonical
https://notholy.com/.well-known/security.txt
Policy
https://notholy.com/en/security

בקשת API אחת, תחנה אחר תחנה

כל גורם שמטפל בבקשה ומה הוא יכול לקרוא. החלק המסומן בקו מתאר הוא החלק שאנחנו מפעילים.

  1. הקליינט שלך

    יכול לקרוא

    הפרומפט ומפתח ה-API שלך, שנשלחים ב-TLS.

    שומר

    מה שהכלים שלך שומרים.

  2. הקצה של Cloudflare

    יכול לקרוא

    הבקשה כולה, מפוענחת בזמן המעבר, וכתובת ה-IP שלך. ה-TLS מסתיים כאן לכל שם מארח, כולל api.notholy.com, וחיבור TLS חדש מעביר את הבקשה לשרת המקור שלנו.

    שומר

    נקבע לפי התנאים של Cloudflare.

  3. ה-gateway של NotHoly

    יכול לקרוא

    הבקשה, בזיכרון. הוא בודק את ה-HMAC של המפתח, את התקציב שלו ואת רשימות ההיתר שלו, ואז מנתב את הקריאה.

    שומר

    מטא־דאטה של שימוש: מזהה בקשה, ארגון, מפתח, מודל, טוקנים, עלות, סטטוס וזמנים. ברשומה הזו אין פרומפט, פלט או כתובת IP. התגובה לקריאה שאינה בסטרימינג עם Idempotency-Key נשארת בזיכרון למשך 24 שעות.

  4. שותף מרכז נתונים ל-AI

    יכול לקרוא

    הודעות, כלים ופרמטרי מודל, ב-HTTPS ותחת המפתח שלנו. הארגון, מזהה המשתמש וכתובת ה-IP שלך לא מועברים. השותף נמצא באחת המדינות השותפות ועשוי להיעזר בקבלני משנה משלו.

    שומר

    כלום. השותף אישר ל-NotHoly שהוא לא שומר, לא מאחסן ולא משתמש בתוכן ההסקה, ו-NotHoly בודקת את זה מעת לעת.

בידוד בין לקוחות

ארגונים מופרדים ברמת האפליקציה: כל נתיב שאילתה מסנן לפי org_id.

מפתחות
לכל ארגון יש מפתח הצפנה משלו, כך שהמפתח של לקוח אחד לא יכול לפתוח נתונים מוצפנים של לקוח אחר.
ספר החשבונות
שינויי יתרה נרשמים כהוספות בלבד, וטריגר במסד הנתונים אוכף את זה. webhooks של תשלום חייבים לשאת חתימה תקפה.

זהות וגישה

לכניסת לקוחות, למפתחות API ולגישת הצוות יש בקרות נפרדות.

סיסמאות
12 עד 256 תווים, ונדרשת כתובת אימייל מאומתת.
גורם שני
TOTP עם קודי גיבוי, ומפתחות גישה.
מכשירים חדשים
כניסה עם סיסמה ממכשיר לא מהימן דורשת קוד חד־פעמי באימייל. הקוד נשמר כגיבוב עם מפתח, תקף ל-10 דקות, עובד פעם אחת ומאפשר 5 ניסיונות.
מכשירים מהימנים
נזכרים למשך 30 יום, נשמרים כגיבוב, ואפשר לבטל אותם.
סשנים
14 יום בעוגייה מסוג HttpOnly, Secure, SameSite=Lax. אפשר לראות את רשימת הסשנים שלך ולבטל אותם.
בדיקת בוטים
Cloudflare Turnstile בכניסה, בהרשמה ובאיפוס סיסמה, עם אימות בצד השרת. בפרודקשן, כשהבדיקה נכשלת הגישה נחסמת.
מפתחות API
נשמרים כ-HMAC-SHA-256 עם pepper בצד השרת ומוצגים פעם אחת. למפתח אפשר להגדיר רשימות היתר של IP ושל מודלים, תקציב ותאריך תפוגה. הביטול מיידי.

גישת הצוות

כניסת אדמין
רק עם מפתח גישה. סשנים נמשכים 8 שעות ומסתיימים אחרי 30 דקות ללא פעילות, ויש אפשרות לרשימת היתר של IP.
שינויי אדמין
נרשמים עם מבצע הפעולה, הפעולה, היעד והערכים לפני ואחרי.
התאמות בספר החשבונות
כל התאמה מעל US$100 דורשת אישור של אדם שני.
התחזות
לצוות אין אפשרות לפעול בתור לקוח.

הצפנה

צ׳אטים, פרויקטים וקבצים מוצפנים בשרת, עם מפתחות שנמצאים בידינו. אנחנו מפענחים אותם כדי להריץ את הצ׳אט שלך, ולכן זו הצפנה בצד השרת ולא הצפנה מקצה לקצה.

היררכיית המפתחות לצ׳אטים ולקבצים
  1. מפתח ראשי

    נשמר בסביבת השרת. עוטף כל מפתח ארגון.

  2. מפתח ארגון

    אחד לכל ארגון. עוטף את מפתחות הנתונים של אותו ארגון.

  3. מפתח נתונים

    אחד לכל שיחה ואחד לכל קובץ.

  4. תוכן מוצפן

    AES-256-GCM עם nonce של 12 בתים. מכסה כותרות צ׳אט, הודעות, חשיבה, פרויקטים, שמות קבצים, תוכן הקבצים והטקסט שחולץ מהם.

בזמן המעבר
TLS מהדפדפן שלך אל Cloudflare, עם HSTS לשנתיים ו-preload, ואז TLS מ-Cloudflare לשרת המקור שלנו. ה-gateway מתחבר לשותפי מרכזי הנתונים ל-AI במדינות שותפות ב-HTTPS. שירותים בתוך הרשת הפרטית שלנו מתקשרים בטקסט גלוי.
סיסמאות
סיסמאות של חשבון, של נעילת צ׳אט ושל שיתוף עוברות גיבוב עם scrypt. טוקנים של שיתוף נשמרים כ-SHA-256.
צ׳אטים זמניים
אירועי הריצה משתמשים במפתח אקראי של 32 בתים לכל ריצה, שנשמר רק בזיכרון התהליך.
ללא הצפנה ברמת העמודה
שם, אימייל, טלפון, כתובת לחיוב, מספר מזהה לצורכי מס, כתובת IP ומטא־דאטה של שימוש הם עמודות רגילות במסד הנתונים.

מה קורה לתוכן שלך

תוכן ההסקה ב-API לא נכתב למסד נתונים, לתור, ללוג או ל-trace. צ׳אטים שמורים נשמרים מוצפנים עד שמוחקים אותם.

הסקה ב-API

תוכן שאנחנו שומרים
אין. פרומפטים ופלטים קיימים בזיכרון ה-gateway בזמן שהבקשה רצה.
הגנה
TLS בזמן המעבר.
מתי נמחק
כשהבקשה מסתיימת, חוץ ממטמון ה-idempotency שמתואר בהמשך.
מה נשאר
מטא־דאטה של שימוש.

צ׳אט שמור

תוכן שאנחנו שומרים
כותרות, הודעות, חשיבה, ציטוטים וקבצים מצורפים.
הגנה
AES-256-GCM, עם מפתח אחד לכל שיחה ואחד לכל קובץ.
מתי נמחק
כשמוחקים את השיחה. קבצים מצורפים לא נמחקים יחד איתה.
מה נשאר
רשומת מחיקה (tombstone) של השיחה, רשומות ריצה, תוויות של שלבי כלים, קבצים מצורפים ומטא־דאטה של שימוש.

צ׳אט זמני

תוכן שאנחנו שומרים
אין שיחה ואין הודעות. אירועי ריצה מוצפנים, וכל קובץ שמעלים.
הגנה
אירועי הריצה משתמשים במפתח אקראי לכל ריצה, שנשמר רק בזיכרון התהליך. קבצים שהועלו משתמשים במפתח לכל קובץ, שעטוף במפתח הארגון.
מתי נמחק
אירועי הריצה נמחקים שעה אחרי סיום הריצה.
מה נשאר
רשומת ריצה, תוויות של שלבי כלים, כל קובץ שהועלה ומטא־דאטה של שימוש.
מטמון idempotency
אם שולחים Idempotency-Key בקריאה שאינה בסטרימינג, התגובה המלאה נשארת בזיכרון התהליך של ה-gateway למשך 24 שעות, כדי שניסיון חוזר יקבל את אותה תשובה. היא אף פעם לא נכתבת לדיסק, רק הארגון שלך יכול לקבל אותה שוב, ואתחול של התהליך מוחק אותה.
תוויות של שלבי כלים
ריצות צ׳אט רושמות בטקסט גלוי את היעד של כל קריאת כלי, בלי תפוגה אוטומטית: שאילתת החיפוש ברשת, שאילתת החיפוש בקבצים, שאילתת ה-CVE, שם הקובץ או שם המארח של read_url. גם כתובות ה-URL של הציטוטים נשמרות בטקסט גלוי.
אימון מודלים
אנחנו לא משתמשים בתוכן של לקוחות כדי לאמן מודלי AI או לניתוח מודלים. מטא־דאטה מנותחת לצורכי חיוב, ניטור שימוש לרעה ותפעול.
שותפי מרכזי נתונים ל-AI
כל השותפים אישרו ל-NotHoly שהם לא שומרים, לא מאחסנים ולא משתמשים בתוכן ההסקה. NotHoly מאמתת ובודקת אותם מעת לעת.

טיפול בקבצים

ניתוח סטטי בלבד

העלאות נחשבות עוינות, ואף קובץ של משתמש לא מורץ. כל קובץ עובר ניתוח סטטי בקונטיינר gVisor חד-פעמי. זה חל על העלאות בצ׳אט, על /v1/files ועל כלי ה-MCP analyze_file.

במנוחה
שמות הקבצים, התוכן שלהם והטקסט שחולץ מהם מוצפנים במפתח לכל קובץ לפני שהם נשמרים. הניתוח כותב את הקובץ המפוענח לתיקייה זמנית ומוחק אותו כשהשלב מסתיים. רשומת הקובץ שומרת בטקסט גלוי רק את הגיבוב, הגודל וסוג ה-MIME, ושם קובץ יכול להופיע בתווית של שלב כלי.
ארגז חול (sandbox)
מריץ מבודד מפעיל קונטיינר gVisor חדש לכל קובץ, בלי רשת, עם root לקריאה בלבד, מגבלות זיכרון, CPU ותהליכים, בלי capabilities, עם משתמש לא מורשה ובלי סודות.
כשהניתוח נכשל
קובץ שחורג מהמגבלות או כשל של המנתח מסתיימים כנדחה, עם הסיבה. הקובץ נשאר מוצפן באחסון ולא מחולץ ממנו טקסט.

רשת ו-SSRF

בפורטים הציבוריים שרת המקור מקבל חיבורים רק מ-Cloudflare. התכונה היחידה בשרת שמביאה כתובות URL רצה מאחורי הגנת SSRF.

שרת המקור
פורטים 80 ו-443 מקבלים חיבורים רק מטווחי הכתובות של Cloudflare. שירותים פנימיים מאזינים ב-loopback.
גישה לשרתים
SSH עם מפתח בלבד, עם fail2ban.
read_url
http ו-https ציבוריים בפורטים 80 ו-443. כל כתובת שה-DNS מחזיר נבדקת, החיבור ננעל על ה-IP שנבדק וכל הפניה נבדקת מחדש. לא נשלחות עוגיות, יש תקרה לגודל ולזמן, ואנחנו מכבדים את robots.txt.
תעבורה לצד שלישי
השרתים שלנו לא סורקים, לא מנצלים ולא שולחים תעבורה אקטיבית למערכות של צד שלישי. read_url רק קורא עמודים ציבוריים. פקודות CLI רצות במחשב שלך, אחרי אישור שלך.

הקשחת האפליקציה

אלה כותרות התגובה ש-notholy.com שולח היום. source maps של הדפדפן לא מוגשים לציבור.

curl -sI https://notholy.com/en
Strict-Transport-Security
max-age=63072000includeSubDomainspreload
Content-Security-Policy
default-src 'self'script-src 'self' 'unsafe-inline' https://static.cloudflareinsights.com https://challenges.cloudflare.com https://static.ads-twitter.comstyle-src 'self' 'unsafe-inline'img-src 'self' data: blob: https:font-src 'self' data:connect-src 'self' https://api.notholy.com https://cloudflareinsights.com https://t.co https://analytics.twitter.commedia-src 'self' blob:worker-src 'self' blob:manifest-src 'self'frame-src https://challenges.cloudflare.comframe-ancestors 'none'object-src 'none'base-uri 'self'form-action 'self'upgrade-insecure-requests
X-Frame-Options
DENY
X-Content-Type-Options
nosniff
Referrer-Policy
strict-origin-when-cross-origin
Permissions-Policy
camera=(), microphone=(), geolocation=(), payment=(), usb=(), interest-cohort=()
Cross-Origin-Opener-Policy
same-origin

ההנחיה המודגשת היא הנקודה החלשה: ה-CSP שלנו לא מבוסס nonce, ו-script-src עדיין מתיר unsafe-inline.

ניטור ותיעוד ביקורת

המדדים ולוחות הבקרה נשארים בשרת שלנו, ואין כלי צד שלישי פעיל למעקב שגיאות.

מדדים
Prometheus ו-Grafana בשרת שלנו, מוגבלים ל-loopback. המדדים כוללים רק תוויות וספירות ונשמרים 30 יום.
לוגים של האפליקציה
מזהי בקשות, סטטוס ושגיאות, אף פעם לא גוף הבקשה. מתחלפים לפי גודל, 3 קבצים של 10 MB לכל קונטיינר.
תיעוד ביקורת של הצוות
מבצע הפעולה, הפעולה, היעד, הערכים לפני ואחרי, כתובת IP ו-user agent.
יומן ביקורת של הארגון
ארגונים מסוג חברה יכולים לעיין ב-100 הרשומות האחרונות בהגדרות, אם התפקיד מאפשר זאת.

גיבויים ושחזור

מסד הנתונים מגובה פעם ביום, מוצפן ונשמר במיקום מרוחק.

הצפנה
AES-256, עם מפתח שנגזר ב-PBKDF2 ב-200,000 איטרציות.
שמירה
14 עותקים יומיים, 8 שבועיים ו-12 חודשיים. נתונים שנמחקו יכולים להישאר בגיבוי כ-12 חודשים.
תרגיל שחזור
תרגיל מבוסס סקריפט משחזר את הגיבוי האחרון למסד נתונים זמני, מאמת את ה-checksum שלו ובודק שכל טבלה קיימת ושאין בה יותר שורות מאשר במסד החי. הוא עדיין לא רץ לפי לוח זמנים.
חלון אובדן נתונים
בתקלה בין גיבויים אפשר לאבד עד יום אחד של כתיבות.

דיווח על חולשה

אנחנו מצפים שחוקרים יבדקו אותנו. כך מדווחים על מה שמוצאים.

לאן
[email protected]. קובץ ה-security.txt שלנו נמצא ב-/.well-known/security.txt.
מה לכלול
ה-URL או הרכיב שנפגע, צעדים לשחזור וההשפעה שנצפתה.
סקופ
notholy.com, api.notholy.com ו-docs.notholy.com. אין לבדוק נתונים של לקוחות אחרים, אין להריץ בדיקות מניעת שירות, ויש לעצור ברגע שההשפעה הודגמה.
הצד שלנו
אנחנו מאשרים שהדיווח התקבל, מעדכנים לאורך התיקון, ולא ננקוט צעדים נגד מחקר בתום לב שעומד בכללים האלה.
תגמולים
אין לנו תוכנית באג באונטי בתשלום.

מה עוד לא עשינו

אם הבדיקה שלכם תלויה באחד מהסעיפים האלה, כדאי לשאול אותנו לפני שמסתמכים על NotHoly.

  • הסמכות

    ל-NotHoly אין SOC 2, ISO 27001 או הסמכת אבטחה או attestation אחרים.

  • פנטסט בלתי תלוי

    אין לנו דוח מבדק חדירה של צד שלישי לשתף.

  • הצפנה מקצה לקצה

    המפתחות נמצאים בשרת, והוא מפענח צ׳אטים וקבצים כדי לעבד אותם.

  • בידוד שנאכף במסד הנתונים

    הבידוד בין לקוחות נמצא בשאילתות של האפליקציה. מסד הנתונים לא מוסיף היום שכבה שנייה.

  • ניתוח דינמי

    קבצים מנותחים ולא מורצים, כך ששום דבר לא צופה בדגימה בזמן ריצה. ה-disassembly הוא תצוגה מקדימה של 4 KB הראשונים כ-x86-64.

  • מחיקה אוטומטית

    להעלאות יש תאריך תפוגה, וארגונים מסוג חברה יכולים לבחור תקופת שמירה לצ׳אטים, אבל היום שום משימה לא אוכפת אף אחד מהם. למטא־דאטה של שימוש ולרשומות ביקורת אין משימת מחיקה, ולכן הם נשמרים בלי תאריך סיום. רשומות סשן שפג תוקפן, שכוללות כתובת IP ו-user agent, לא נמחקות לפי לוח זמנים.

  • אימות דו־שלבי ברמת הארגון

    בעלים עדיין לא יכולים לחייב גורם שני לכל החברים.

  • ייצוא לוגים ואי־שינוי

    אי אפשר לייצא את יומן הביקורת של הארגון, והלוגים שלנו לא בתצורת write-once.

  • שחזור לנקודת זמן

    הגיבויים הם dumps יומיים בלי ארכוב רציף, והם לא כוללים את אובייקטי הקבצים שהועלו.

שאלו כל מה שהסקופ מאפשר.

יוצרים חשבון, מוסיפים קרדיטים החל מ-$5 ושואלים את השאלה הראשונה בצ׳אט או בטרמינל.

  1. 1/3

    יצירת חשבון

    פרטי או חברה. אפשר לעבור לחשבון חברה אחר כך בלי לאבד יתרה או מפתחות.

    פרטיחברה
  2. 2/3

    הוספת קרדיטים

    בכרטיס אשראי, החל מ-$5. תשלום לפי טוקן, בלי מנוי.

    $5.00טעינה מינימלית
  3. 3/3

    שאלה ראשונה

    בצ׳אט, או להתקין את ה-CLI ולהריץ notholy login בטרמינל.

    $ notholy login