TailscaleHound؛ نقشهٔ دسترسی Tailscale روی BloodHound
خلاصهٔ کاملتر
TailscaleHound یه ابزاره که شبکهٔ Tailscale (تِیلنت) رو به گراف BloodHound تبدیل میکنه. کاربرها، دستگاهها، گروهها، تگها، ACLها، grantها، قواعد SSH، روتها و کلی متادیتای کنترلپلین رو جمع میکنه و یه فایل OpenGraph JSON سازگار با BloodHound بیرون میده.
هدف اعلامشده اینه که روابط دسترسی Tailscale بهشکل مسیر گرافی دیده بشن؛ مثلاً اینکه کدوم کاربر از طریق کدوم گروه و ACL به کدوم دستگاه دسترسی داره. یه کوئری ساده برای دیدن دستگاههایی که هر کاربر ثبت کرده اینشکلیه:
MATCH p=(u:TS_User)-[:TS_RegisteredDevice]->(d:TS_Device)
RETURN pهمین مدل رو میشه تا ACL و grant و SSH ادامه داد.
جمعآوری دو حالت داره: راه دور از طریق API تِیلاسکیل، و محلی از خروجی tailscale status --json. توی حالت محلی اگه فایل Access Policy رو هم بدی، همون غنیسازی ACL، grant، SSH، گروه، تگ و posture حالت ریموت رو میگیری.
در مجموع ۳۹ نوع نود و ۶۴ نوع رابطه تعریف کرده — از هویت و نقشها گرفته تا دستگاه، ACL/grant، قواعد SSH، Funnel و سرویسها. یه قابلیت جالب هم نگاشت هویت ترکیبیه: با رابطهٔ TS_AZUserSyncedToUser کاربر Azure رو به کاربر Tailscale وصل میکنه تا مسیرهای ابری-به-تِیلنت دیده بشن.
سازنده توصیه میکنه ابزار با یه حساب دارای نقش Auditor (فقطخواندنی) اجرا بشه تا دید کامل بدون تغییر بده، و تأکید میکنه کوکی tailcontrol که برای غنیسازی پنل ادمین استفاده میشه مثل یه کرِدنشیال حساسه و نباید کامیت یا لو بره. چند اسکریپت کمکی هم برای آپلود اسکیما و خروجی به BloodHound داره.
نکات کلیدی:
- TailscaleHound تِیلنت رو به گراف OpenGraph سازگار با BloodHound تبدیل میکنه
- کاربر، دستگاه، ACL، grant، قواعد SSH و روتها رو جمع میکنه
- جمعآوری از راه API یا خروجی محلی tailscale status
- ۳۹ نوع نود و ۶۴ نوع رابطه؛ نگاشت هویت ترکیبی با Azure
- اجرا با نقش فقطخواندنی Auditor توصیه شده؛ کوکی tailcontrol حساسه




