diff --git a/.cursor/rules/vulnerability-notification.mdc b/.cursor/rules/vulnerability-notification.mdc new file mode 100644 index 0000000..99cae08 --- /dev/null +++ b/.cursor/rules/vulnerability-notification.mdc @@ -0,0 +1,21 @@ +--- +description: شیوه‌نامه دائمی تولید اکسل اطلاع‌رسانی هفتگی آسیب‌پذیری‌ها (NewsBites/@RISK) +alwaysApply: true +--- + +# Vulnerability Notification Playbook + +وقتی کاربر خبرنامه SANS (NewsBites / @RISK) یا به‌روزرسانی اکسل اطلاع‌رسانی می‌دهد، **حتماً** طبق [`VULNERABILITY_NOTIFICATION_SOP.md`](VULNERABILITY_NOTIFICATION_SOP.md) عمل کن. + +## خلاصه الزامات دائمی + +1. آخرین `Vulnerabilities_Notification_*.xlsx` را بخوان → کلون با تاریخ امروز → بازنویسی داده (نه الحاق به هفته قبل). +2. شیت‌ها و ۲۹ ستون `Vulnerabilities` را عوض نکن. +3. رنگ Notification: Critical RGB(255,199,206) · High RGB(255,194,102) · Medium RGB(255,255,153). +4. فونت: فارسی `B Mitra` 12 · انگلیسی `Times New Roman` 10 · همه وسط‌چین. +5. NewsBites = curated (ADV+CVE+KEV) · @RISK = همه CVE IDها مگر خلافش گفته شود. +6. KEV حتی با CVSS پایین → حداقل High؛ ترتیب: KEV → Critical → High → Medium. +7. فارسی برای اثر/اقدام؛ انگلیسی برای Vendor/CVE/URL. +8. وریفای پوشش + دسته + فونت + خوانایی؛ سپس حذف `_build` / `_tmp*` / `_fix*` / `_verify*` / `_inspect*`. + +جزئیات مهلت‌ها، ستون‌ها، لایه‌ها و الگوی درخواست کاربر در SOP کامل است. diff --git a/VULNERABILITY_NOTIFICATION_SOP.md b/VULNERABILITY_NOTIFICATION_SOP.md new file mode 100644 index 0000000..4926dde --- /dev/null +++ b/VULNERABILITY_NOTIFICATION_SOP.md @@ -0,0 +1,223 @@ +# شیوه‌نامهٔ اطلاع‌رسانی هفتگی آسیب‌پذیری‌ها + +سند دائمی برای تولید/به‌روزرسانی فایل‌های `Vulnerabilities_Notification_YYYY-MM-DD.xlsx` در همین مخزن. +عامل AI باید این سند را مبنا بگیرد مگر کاربر صریحاً خلاف آن را بگوید. + +--- + +## 1. هدف + +هر هفته از روی **آخرین نسخهٔ اکسل**، فایل جدید با تاریخ روز ساخته شود و محتوای خبرنامهٔ همان هفته (SANS NewsBites یا @RISK یا منبع اعلام‌شده) در همان ساختار جانمایی شود. + +--- + +## 2. ورودی‌های لازم از کاربر + +کاربر در هر درخواست باید این‌ها را بدهد (یا در پیام بچسباند): + +| مورد | مثال | +|------|------| +| فایل قالب (آخرین نسخه) | `@Vulnerabilities_Notification_2026-08-09.xlsx` | +| متن کامل خبرنامه / منبع | NewsBites Vol.x Num.y یا @RISK Vol.x Num.y | +| تاریخ هدف (اگر غیر از امروز) | اختیاری؛ پیش‌فرض = تاریخ روز سیستم | + +اگر محدودهٔ محتوا مبهم باشد: + +- **NewsBites** → curated (داستان‌ها + KEV + CVEهای صریح + ADV تجمیعی برای بسته‌های بدون لیست کامل ID) +- **@RISK RECENT CVEs** → یک ردیف به ازای هر CVE ID مگر کاربر خلاف بگوید + +--- + +## 3. نام‌گذاری و تاریخ + +1. قالب را کپی کن به: `Vulnerabilities_Notification_YYYY-MM-DD.xlsx` (تاریخ میلادی امروز یا تاریخ اعلام‌شده) +2. در شیت‌ها: + - میلادی: `YYYY/MM/DD` + - شمسی: با تقویم پارسی همان روز (مثلاً `1405/05/18`) +3. منبع ثابت نمونه: + - NewsBites: `SANS NewsBites Vol.XX Num.YY / ISC / Vendor Advisory / CISA KEV` + - @RISK: `SANS @RISK Vol.XX Num.YY / ISC / Vendor Advisory / CISA KEV` + +### مهلت اقدام (پیش‌فرض) + +| شدت / وضعیت | مهلت شمسی | +|-------------|-----------| +| KEV یا Critical | تاریخ گزارش + ۳ روز | +| High | تاریخ گزارش + ۷ روز | +| Medium / Low | تاریخ گزارش + ۱۴ روز | + +--- + +## 4. ساختار شیت‌ها (بدون تغییر ستون‌ها) + +شیت‌ها به ترتیب قالب: + +1. `Summary` +2. `Vulnerabilities` (۲۹ ستون فارسی؛ هدر را عوض نکن) +3. `Assets` +4. `Tracking` +5. `MessageTemplates` +6. `_Lists` +7. `Notification` + +### ستون‌های کلیدی `Vulnerabilities` + +`ردیف` · `تاریخ_اطلاع‌رسانی` · `منبع` · `لایه_دسته‌بندی` · `Vendor` · `محصول_سرویس` · `مولفه_آسیب‌پذیر` · `CVE_Advisory` · `CVSS` · `سطح_شدت` · `وضعیت_بهره‌برداری` · `نوع_آسیب‌پذیری` · `توضیح_اثر` · `نسخه‌های_تحت_تاثیر` · `دارایی_داخلی_مرتبط` · `مالک_دارایی` · `اینترنتی_است` · `حساسیت_خدمت` · `قابلیت_بهره‌برداری_در_سازمان` · `ATTACK_Technique` · `IOC_موجود` · `اقدام_اصلاحی` · `راهکار_موقت` · `نیاز_به_Downtime` · `مسئول_اقدام` · `مهلت_اقدام` · `وضعیت_پیگیری` · `لینک_مرجع` · `توضیحات_تکمیلی` + +### قواعد محتوا + +- `توضیح_اثر` / `اقدام_اصلاحی` / `راهکار_موقت` / مالک و مسئول: **فارسی** +- Vendor / Product / CVE / URL / مقادیر انگلیسی ثابت: **انگلیسی** +- `وضعیت_پیگیری`: پیش‌فرض `Open` +- `وضعیت_بهره‌برداری`: + - `KEV` فقط برای CVEهای داخل CISA KEV + - در غیر این صورت `Under Review` + - در صورت شواهد بهره‌برداری فعال در خبر: `Active Exploitation Suspected` +- `Assets`: یک Asset منطقی به ازای هر محصول/خانواده +- `Tracking`: یک ردیف به ازای هر یافته (CVE یا ADV) +- ردیف‌های دادهٔ هفتهٔ قبل را پاک کن؛ فقط هدر/قالب بماند +- پس از نوشتن، ردیف‌های خالی/باقی‌ماندهٔ UsedRange قدیمی را هم پاک کن + +--- + +## 5. سطح شدت (CVSS و استثنا) + +| CVSS | سطح | +|------|------| +| ≥ 9.0 | Critical | +| 7.0 – 8.9 | High | +| 4.0 – 6.9 | Medium | +| < 4.0 | Low | + +استثناها: + +- **KEV** حتی با CVSS پایین‌تر → حداقل `High` (مثل Cisco FMC با CVSS 5.3) +- CVSS=0 با KEV یا اثر بحرانی در متن → قضاوت Critical/High +- موارد «NO CUSTOMER ACTION REQUIRED» → شدت عملیاتی `Low` با اقدام پایش + +ترتیب ردیف‌ها در `Notification` و ترجیحاً در `Vulnerabilities`: ابتدا KEV، بعد Critical، بعد High، بعد Medium/Low. + +--- + +## 6. رنگ‌بندی `Notification` (خوانا) + +| سطح | RGB | Excel Color (BGR) | +|-----|-----|-------------------| +| Critical | (255, 199, 206) قرمز روشن | 13551615 | +| High | (255, 194, 102) نارنجی | 6734591 | +| Medium | (255, 255, 153) زرد | 10092543 | +| Low | سفید | 16777215 | +| هدر | (68, 114, 196) + فونت سفید | 12874308 | + +رنگ‌ها را بعد از هر بازنویسی و بعد از اعمال فونت، دوباره روی ردیف‌های داده اعمال کن. + +--- + +## 7. فونت و تراز (دائمی) + +| نوع متن | فونت | اندازه | +|--------|------|--------| +| فارسی (کاراکتر عربی/فارسی) | `B Mitra` | 12 | +| انگلیسی/لاتین (CVE، Vendor، URL، CVSS، Critical/High/Open/KEV، …) | `Times New Roman` | 10 (= ۱۲ − ۲) | + +- همه سلول‌های استفاده‌شده در شیت‌های محتوا: **وسط‌چین** (`xlCenter = -4108`) افقی و عمودی +- سلول مختلط فارسی+انگلیسی: پایه `B Mitra` 12 +- شیت‌های مشمول: `Summary`, `Vulnerabilities`, `Assets`, `Tracking`, `Notification`, `MessageTemplates` + +--- + +## 8. دسته‌بندی (`لایه_دسته‌بندی`) + +از مقادیر موجود در `_Lists` استفاده کن؛ در صورت نیاز مقدار جدید را به `_Lists` اضافه کن. + +نمونه‌های رایج: + +- `Security Appliance` · `Security Appliance / SD-WAN` +- `OS` · `OS / Network` · `OS / Network Service` · `OS / Virtualization` · `OS / Kernel` +- `OT / ICS` · `Hardware / Firmware` +- `Service / Web` · `Service / SIEM` · `Service / VoIP` +- `Application / RMM` · `Application / AI` · `Application / Middleware` · `Application / CI-CD` +- `Application / Microsoft` · `Application / Healthcare` · `Application / Retail` · `Application / Ads` +- `Package / JS` · `Package / Library` · `Package / Hosting` +- `DevOps / Infra` · `Cloud / PaaS` +- `Process / Governance` · `Process / Awareness` +- `Network / SD-WAN` · `API / Framework` + +شناسهٔ غیر-CVE: `ADV-...-YYYY-MM` (یا مشابه الگوی نسخهٔ قبل). + +--- + +## 9. خروجی‌های جانبی + +### Summary + +شمارش‌ها را از دادهٔ واقعی پر کن: Total / Critical / High / Medium / Low / KEV / Active Exploitation / Internet-facing / Actions Due < 72h / Open / In Progress / Mitigated / Patched. + +### MessageTemplates + +دو قالب: + +1. `پیام رسمی کامل` — موضوع، جمع یافته‌ها، اولویت KEV، سایر اولویت‌های سازمانی، نام فایل پیوست +2. `پیام کوتاه گروه` — خلاصهٔ یک‌پاراگرافی برای گروه + +--- + +## 10. چرخهٔ اجرا (الگوریتم عامل) + +```text +1) خواندن آخرین اکسل قالب و مسلط شدن به ساختار +2) Clone → Vulnerabilities_Notification_<امروز>.xlsx +3) Clear ردیف‌های داده قدیم (Vulnerabilities/Assets/Tracking/Notification) +4) استخراج یافته‌ها از خبرنامه + نگاشت لایه/شدت/KEV +5) پر کردن Vulns + Assets + Tracking +6) پر کردن Notification (با رنگ) + Summary + MessageTemplates + _Lists +7) اعمال فونت B Mitra/TNR و وسط‌چین روی همه شیت‌های محتوا +8) باز‌اعمال رنگ Notification/Summary پس از فونت +9) وریفای: پوشش IDها، دسته‌بندی نمونه، فونت/تراز، خوانایی فارسی +10) حذف فایل‌های موقت: _build / _inspect / _tmp* / _fix* / _verify* / _font_check* +``` + +ابزار پیش‌فرض در این محیط: **Excel COM + PowerShell** (اگر Python/openpyxl نبود). متون فارسی را از JSON با UTF-8 بخوان، نه از here-string خراب‌شونده در `.ps1`. + +--- + +## 11. چک‌لیست وریفای + +- [ ] تعداد یافته‌ها = موارد توافق‌شدهٔ خبرنامه (Missing=0 / Extra=0) +- [ ] هر یافته در `Tracking` و رنگ درست در `Notification` +- [ ] لایه‌های کلیدی (KEV، OT، Cisco، Microsoft، …) صحیح +- [ ] هدر فارسی = B Mitra 12 · CVE = Times New Roman 10 · effect فارسی = B Mitra 12 +- [ ] `HorizontalAlignment = -4108` +- [ ] متن فارسی بدون mojibake +- [ ] تاریخ میلادی/شمسی هماهنگ +- [ ] هیچ فایل موقت `_...` باقی نمانده + +--- + +## 12. الگوی درخواست کاربر (کپی‌پیست) + +```text +طبق شیوه‌نامهٔ اطلاع‌رسانی هفتگی آسیب‌پذیری‌ها عمل کن. + +قالب: @Vulnerabilities_Notification_YYYY-MM-DD.xlsx +منبع: Vol.x Num.y — تاریخ <میلادی> +محدوده: + +متن خبرنامه: + + +خروجی: تاریخ امروز، رنگ/فونت/تراز طبق شیوه‌نامه، وریفای کامل، حذف فایل موقت. +``` + +--- + +## 13. خارج از محدوده (مگر دستور صریح) + +- تغییر ساختار ستون‌ها یا حذف شیت‌ها +- commit/push بدون درخواست کاربر +- نوشتن exploit / PoC +- باز کردن مسیرهای ignoreشدهٔ mono-repo طبق قوانین workspace + +--- + +*نسخهٔ شیوه‌نامه: 2026-08-09 — هم‌راستا با قالب `Vulnerabilities_Notification_2026-08-09.xlsx`* diff --git a/Vulnerabilities_Notification_2026-08-09.xlsx b/Vulnerabilities_Notification_2026-08-09.xlsx new file mode 100644 index 0000000..2b2c6b0 Binary files /dev/null and b/Vulnerabilities_Notification_2026-08-09.xlsx differ