דילוג לתוכן
NotHolyתיעוד

מדריך API

API מחקר

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

להציג כ-Markdown

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

נתיבמה הוא עושה
GET /v1/cve/{id}CVE אחד עם התיאור מ-NVD, CVSS, CWE, EPSS, הסטטוס ב-CISA KEV ומקורות
GET /v1/cve/search?q=&vendor=&cwe=&kev=true&min_cvss=&min_epss=&limit=חיפוש בעותק המקומי (mirror)
GET /v1/kb/search?q=&domain=&source=&tool=&limit=חיפוש במאגר הידע לאבטחה, שמקורותיו נבחרו ידנית
GET /v1/kb/{id}קריאת מסמך אחד ממאגר הידע, בחלוקה לעמודים לפי סעיף
POST /v1/advisories/queryהתרעות אבטחה (advisories) לחבילה ולגרסה
POST /v1/web/searchתוצאות חיפוש ברשת עם כותרת, URL ותקציר
POST /v1/web/readהטקסט של דף ציבורי, שנשלף דרך נתיב יציאה מוגן
POST /v1/filesהעלאת קובץ לניתוח סטטי
GET /v1/files/{id}, GET /v1/files/{id}/contentהסטטוס והטקסט שחולץ
curl
curl https://api.notholy.com/v1/cve/CVE-2021-44228 -H "Authorization: Bearer $NOTHOLY_API_KEY"
curl
curl -X POST https://api.notholy.com/v1/advisories/query \
  -H "Authorization: Bearer $NOTHOLY_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"ecosystem": "npm", "name": "lodash", "version": "4.17.15"}'

מאגר ידע

GET /v1/kb/search מחזיר קטעים ממאגר ידע לאבטחה שמקורותיו נבחרו ידנית ומותרים לשימוש, כל קטע עם המקור, הרישיון והייחוס שלו. אפשר לסנן לפי domain (web, api, mobile, offensive, tools, cloud, ir, attack), source או tool. את המסמך המלא קוראים עם GET /v1/kb/{id}, בחלוקה לעמודים עם הפרמטרים from וגם limit. זה אותו מאגר שהצ׳אט קורא בעצמו.

curl
curl "https://api.notholy.com/v1/kb/search?q=ssrf+prevention&domain=web" -H "Authorization: Bearer $NOTHOLY_API_KEY"

קבצים

POST /v1/files מקבל את הבייטים הגולמיים כגוף הבקשה, עד 32 MB, ואת השם בכותרת x-file-name, בקידוד URL כשיש בו תווים שאינם ASCII. כדי לחכות לתוצאת הניתוח מוסיפים ?wait=1. כל קובץ נשמר מוצפן עם תוקף של שעה. התוקף נרשם, אבל מחיקה אוטומטית עדיין לא פעילה, ולכן הקובץ נשאר עד שמסירים אותו. כדי להסיר קובץ אפשר לכתוב אל [email protected]. זה אחסון שמתבקש במפורש, נפרד מההסקה, שלא שומרת תוכן. הקבצים מפוענחים בתוך ארגז חול (sandbox) מבודד בלי רשת, ושום דבר מתוכם לא מורץ.

Shell
printf 'const q = "SELECT * FROM users WHERE id = " + req.query.id;\n' > handler.js
curl -X POST "https://api.notholy.com/v1/files?wait=1" \
  -H "Authorization: Bearer $NOTHOLY_API_KEY" \
  -H "x-file-name: handler.js" \
  --data-binary @handler.js

web/read קורא רק דפים ציבוריים. הוא מסרב לכתובות פרטיות ואף פעם לא שולח תעבורה למטרות בשמך. כל מה שכתוב בדף מטופל כנתונים, אף פעם לא כהוראה.

שגיאות בנתיבים האלה הן בצורה {"error": {"code", "message"}}; שגיאות מפתח ומגבלת קצב הן בפורמט של OpenAI. קודים ייחודיים: search_failed וגם read_failed (502), 422 עם הסיבה כשהנתיב web/read מסרב לדף, וגם file_too_large (413) מעל 200 MB. העלאה של 32 עד 200 MB נכשלת עם 502 upstream_error.

הבא