تحلیل خودکار ایمیل‌های مشکوک با n8n و ChatGPT Vision

تحلیل خودکار ایمیل‌های مشکوک با n8n و ChatGPT Vision

8 دقیقه مطالعه · منتشر شده ۱۴۰۵/۴/۲۹

دانلود workflow

فایل JSON آماده import در n8n — credentialها باید در n8n شما تنظیم شوند.

  1. فایل JSON را دانلود کنید.
  2. در n8n: Workflows → Import from File.
  3. Credentialهای هر node را متصل کنید.
  4. workflow را فعال کنید.

شناسه workflow: 2665 · منبع: کاتالوگ Pixori

اتوماسیون تحلیل ایمیل‌های مشکوک با هوش مصنوعی و ادغام با Jira

این Workflow با استفاده از n8n، ایمیل‌های مشکوک را به طور خودکار شناسایی، تحلیل و گزارش می‌کند. این سیستم با سرویس‌های ایمیل مانند Gmail و Microsoft Outlook ادغام می‌شود تا پیام‌های دریافتی را دریافت کند، محتوا و متادیتای مرتبط را استخراج کند، نمایشی بصری از ایمیل ایجاد کند، از ChatGPT Vision برای تشخیص فیشینگ استفاده کند و در نهایت تیکت‌های دقیقی را برای تیم‌های امنیتی در Jira ایجاد نماید.

نمای کلی Workflow

این Workflow در مراحل مجزا سازماندهی شده است که هر کدام بخشی از فرآیند تحلیل و گزارش‌دهی را بر عهده دارند:

1. دریافت ورودی ایمیل: با دریافت ایمیل‌های جدید از حساب‌های ایمیل پیکربندی شده (Gmail، Microsoft Outlook) Workflow را فعال می‌کند.

2. استخراج محتوا و هدر ایمیل: داده‌های ضروری از ایمیل‌های دریافتی، شامل بدنه، هدرها و موضوع را تجزیه و ساختاربندی می‌کند.

3. مصورسازی ایمیل: محتوای HTML ایمیل را به یک تصویر ثابت (اسکرین‌شات) برای بازرسی بصری آسان‌تر تبدیل می‌کند.

4. تشخیص فیشینگ با هوش مصنوعی: از ChatGPT Vision برای تحلیل اسکرین‌شات ایمیل و متادیتای آن استفاده کرده و نشانگرهای بالقوه فیشینگ را شناسایی می‌کند.

5. گزارش‌دهی خودکار حوادث: یک تیکت Jira حاوی نتایج تحلیل و اسکرین‌شات ایمیل ایجاد می‌کند و فرآیند پاسخ به حوادث را ساده‌سازی می‌نماید.

---

تشریح جزئیات Node ها

۱. دریافت ورودی ایمیل

این بخش بر دریافت و راه‌اندازی Workflow بر اساس ایمیل‌های جدید تمرکز دارد.

  • Gmail Trigger

* Type: n8n-nodes-base.gmailTrigger

* Function: از طریق OAuth2 به حساب Gmail شما متصل می‌شود تا ایمیل‌های ورودی جدید را شناسایی کند.

* Configuration: برای بررسی دوره‌ای ایمیل‌های جدید و بازیابی کامل داده‌های ایمیل پیکربندی شده است.

* Output: Payload کامل JSON ایمیل ورودی را ارائه می‌دهد.

* Considerations: احراز هویت صحیح OAuth2 را تضمین کنید. محدودیت‌های نرخ API Gmail را رصد کنید.

  • Microsoft Outlook Trigger (به طور پیش‌فرض غیرفعال است)

* Type: n8n-nodes-base.microsoftOutlookTrigger

* Function: از طریق OAuth2 به حساب Microsoft Outlook شما متصل می‌شود تا ایمیل‌های جدید را شناسایی کند.

* Configuration: می‌تواند برای بررسی دوره‌ای ایمیل‌های جدید و بازیابی فیلدهای انتخاب شده فعال شود.

* Output: فیلدهای انتخاب شده از ایمیل ورودی را ارائه می‌دهد.

* Considerations: به طور پیش‌فرض غیرفعال است تا از پردازش تکراری در صورت فعال بودن Gmail جلوگیری شود. نیاز به احراز هویت OAuth2 دارد. محدودیت‌های API Microsoft Graph را رصد کنید.

---

۲. استخراج محتوا و هدر ایمیل

این مرحله مسئول استخراج و آماده‌سازی محتوای ایمیل برای پردازش بیشتر است.

  • Set Gmail Variables

* Type: n8n-nodes-base.set

* Function: فیلدهای کلیدی مانند htmlBody، headers، subject، recipient و textBody را از خروجی Gmail Trigger استخراج کرده و به متغیرهای Workflow اختصاص می‌دهد.

* Input: خروجی از Gmail Trigger.

* Output: متغیرهای ساختاریافته ایمیل.

  • Retrieve Headers of Email (Outlook)

* Type: n8n-nodes-base.httpRequest

* Function: برای ایمیل‌های Outlook، این Node با API Microsoft Graph تماس می‌گیرد تا internetMessageHeaders و body ایمیل را به طور کامل بازیابی کند.

* Configuration: از اعتبارنامه‌های OAuth2 Outlook استفاده می‌کند. internetMessageHeaders و body را با اولویت محتوای "text" درخواست می‌کند.

* Input: خروجی از Microsoft Outlook Trigger.

* Output: JSON حاوی هدرهای دقیق و محتوای بدنه.

  • Format Headers

* Type: n8n-nodes-base.code

* Function: آرایه خام internetMessageHeaders را از پاسخ API Microsoft Graph به یک فرمت دیکشنری قابل استفاده‌تر تجزیه می‌کند.

* Input: خروجی از Retrieve Headers of Email (Outlook).

* Output: یک شیء ساختاریافته از هدرهای ایمیل.

  • Set Outlook Variables

* Type: n8n-nodes-base.set

* Function: فیلدهای کلیدی (htmlBody، headers، subject، recipient، textBody) را از داده‌های ایمیل Outlook و هدرهای فرمت شده استخراج و اختصاص می‌دهد.

* Input: خروجی از Format Headers.

* Output: متغیرهای ساختاریافته ایمیل سازگار با داده‌های Gmail.

  • Set Email Variables

* Type: n8n-nodes-base.set

* Function: تمام داده‌های مرتبط ایمیل (هدرها، بدنه، موضوع، گیرنده) را از مسیر پردازش Gmail یا Outlook جمع‌آوری و یکپارچه می‌کند تا در متغیرهای واحدی برای استفاده یکنواخت در مراحل بعدی قرار گیرند.

* Input: خروجی از Set Gmail Variables یا Set Outlook Variables.

* Output: داده‌های یکپارچه ایمیل.

---

۳. مصورسازی ایمیل

این بخش بر ایجاد یک نمایش بصری از ایمیل تمرکز دارد.

  • Screenshot HTML

* Type: n8n-nodes-base.httpRequest

* Function: بدنه HTML ایمیل را به API hcti.io ارسال می‌کند تا یک اسکرین‌شات تصویری ایجاد کند.

* Configuration: از احراز هویت پایه HTTP با اعتبارنامه‌های hcti.io شما استفاده می‌کند.

* Input: خروجی از Set Email Variables.

* Output: پاسخ JSON حاوی URL اسکرین‌شات ایجاد شده.

* Considerations: پیامدهای حریم خصوصی هنگام ارسال محتوای ایمیل به یک سرویس شخص ثالث را در نظر بگیرید. اطمینان حاصل کنید که محتوای HTML بیش از حد بزرگ نباشد.

  • Retrieve Screenshot

* Type: n8n-nodes-base.httpRequest

* Function: داده‌های تصویری باینری واقعی اسکرین‌شات را از URL ارائه شده توسط Node قبلی دریافت می‌کند.

* Input: خروجی از Screenshot HTML.

* Output: داده‌های تصویری باینری اسکرین‌شات ایمیل.

---

۴. تشخیص فیشینگ با هوش مصنوعی

این مرحله از هوش مصنوعی برای تحلیل ایمیل از نظر قصد مخرب استفاده می‌کند.

  • ChatGPT Analysis

* Type: @n8n/n8n-nodes-langchain.openAi

* Function: API ChatGPT (به طور خاص gpt-4o-latest) را برای تحلیل ایمیل فراخوانی می‌کند.

* Configuration:

* Model: gpt-4o-latest

* Input: تصویر اسکرین‌شات رمزگذاری شده با Base64 (داده‌های باینری از Retrieve Screenshot) و یک پرامپت که شامل هدرهای ایمیل است را دریافت می‌کند.

* Prompt: ChatGPT را برای توصیف تصویر و ارزیابی احتمال تلاش برای فیشینگ بودن ایمیل، راهنمایی می‌کند. پرامپت به گونه‌ای طراحی شده است که پاسخی را که برای رندر کننده ویکی Jira قالب‌بندی شده است، ارائه دهد و از بلوک‌های کد Markdown استاندارد اجتناب کند.

* Max Tokens: روی ۱۵۰۰ تنظیم شده است تا پاسخ‌های دقیق امکان‌پذیر باشد.

* Input: تصویر اسکرین‌شات باینری از Retrieve Screenshot و هدرهای ایمیل از Set Email Variables.

* Output: گزارش تحلیل متنی از ChatGPT، شامل ارزیابی فیشینگ.

* Considerations: نیاز به کلید API OpenAI دارد. استفاده و هزینه‌های API را رصد کنید. مهندسی پرامپت برای نتایج دقیق حیاتی است.

---

۵. گزارش‌دهی خودکار حوادث

این بخش نهایی به ایجاد تیکت‌های Jira برای بررسی امنیتی می‌پردازد.

  • Create Jira Ticket

* Type: n8n-nodes-base.jira

* Function: یک مسئله جدید Jira برای مستندسازی ایمیل مشکوک ایجاد می‌کند.

* Configuration:

* Project: پروژه پیکربندی شده Jira شما (مثلاً ID 10001).

* Issue Type: نوع مسئله پیکربندی شده (مثلاً Task، ID 10008).

* Summary: به طور پویا با استفاده از خط موضوع ایمیل تنظیم می‌شود.

* Description: گیرنده، موضوع، متن بدنه ایمیل و گزارش تحلیل ChatGPT (قالب‌بندی شده برای ویکی Jira) را ترکیب می‌کند.

* Credentials: اعتبارنامه‌های OAuth2 API Jira Cloud شما.

* Input: گزارش تحلیل ChatGPT و داده‌های ایمیل از Set Email Variables.

* Output: پاسخ JSON حاوی جزئیات مسئله جدید Jira، از جمله کلید آن.

  • Rename Screenshot

* Type: n8n-nodes-base.code

* Function: داده‌های تصویری باینری اسکرین‌شات را به emailScreenshot.png تغییر نام می‌دهد تا قبل از آپلود در Jira وضوح بیشتری داشته باشد.

* Input: داده‌های باینری اسکرین‌شات از Retrieve Screenshot.

* Output: داده‌های باینری اسکرین‌شات با نام فایل به‌روز شده.

  • Upload Screenshot of Email to Jira

* Type: n8n-nodes-base.jira

* Function: اسکرین‌شات تغییر نام یافته را به عنوان پیوست به تیکت Jira تازه ایجاد شده آپلود می‌کند.

* Configuration:

* Issue Key: به طور پویا با استفاده از کلید مسئله از خروجی Node Create Jira Ticket تنظیم می‌شود.

* Resource: نقطه پایانی issueAttachment.

* Credentials: اعتبارنامه‌های OAuth2 API Jira Cloud شما.

* Input: داده‌های باینری اسکرین‌شات تغییر نام یافته.

* Output: تأیید آپلود پیوست.

* Considerations: اطمینان حاصل کنید که محدودیت‌های اندازه پیوست در Jira به درستی پیکربندی شده‌اند.

---

جدول خلاصه Workflow

نام Nodeنوع Nodeعملکرد اصلیNode(های) ورودیNode(های) خروجی
Gmail Triggern8n-nodes-base.gmailTriggerدریافت ایمیل‌های Gmail ورودیNoneSet Gmail Variables
Microsoft Outlook Triggern8n-nodes-base.microsoftOutlookTriggerدریافت ایمیل‌های Outlook ورودی (غیرفعال)NoneRetrieve Headers of Email
Set Gmail Variablesn8n-nodes-base.setاستخراج فیلدهای ایمیل Gmail به متغیرهاGmail TriggerSet Email Variables
Retrieve Headers of Emailn8n-nodes-base.httpRequestبازیابی هدرها و بدنه کامل از OutlookMicrosoft Outlook TriggerFormat Headers
Format Headersn8n-nodes-base.codeفرمت‌بندی هدرهای Outlook به شیء ساختاریافتهRetrieve Headers of EmailSet Outlook Variables
Set Outlook Variablesn8n-nodes-base.setاستخراج فیلدهای ایمیل Outlook به متغیرهاFormat HeadersSet Email Variables
Set Email Variablesn8n-nodes-base.setیکپارچه‌سازی داده‌های ایمیل از Gmail یا OutlookSet Gmail Variables, Set Outlook VariablesScreenshot HTML
Screenshot HTMLn8n-nodes-base.httpRequestارسال HTML ایمیل به hcti.io برای اسکرین‌شاتSet Email VariablesRetrieve Screenshot
Retrieve Screenshotn8n-nodes-base.httpRequestبازیابی تصویر اسکرین‌شات از hcti.ioScreenshot HTMLChatGPT Analysis
ChatGPT Analysis@n8n/n8n-nodes-langchain.openAiتحلیل اسکرین‌شات و هدرها با ChatGPTRetrieve Screenshot, Set Email VariablesCreate Jira Ticket
Create Jira Ticketn8n-nodes-base.jiraایجاد تیکت Jira برای ایمیل مشکوکChatGPT Analysis, Set Email VariablesRename Screenshot
Rename Screenshotn8n-nodes-base.codeتغییر نام فایل باینری برای آپلود JiraRetrieve ScreenshotUpload Screenshot of Email to Jira
Upload Screenshot of Email to Jiran8n-nodes-base.jiraآپلود اسکرین‌شات به عنوان پیوست به تیکت JiraRename Screenshot, Create Jira TicketNone

Nodeهای استفاده‌شده

سوالات متداول

این Workflow چگونه ایمیل‌های مشکوک را شناسایی می‌کند؟

این Workflow با استفاده از ChatGPT Vision، اسکرین‌شات ایمیل و متادیتای آن را تحلیل کرده و نشانگرهای بالقوه فیشینگ را شناسایی می‌کند.

چه سرویس‌های ایمیلی پشتیبانی می‌شوند؟

این Workflow از سرویس‌های ایمیل Gmail و Microsoft Outlook پشتیبانی می‌کند و قابلیت ادغام با هر دو را دارد.

نتیجه تحلیل ایمیل چگونه به تیم امنیتی گزارش می‌شود؟

پس از تحلیل، یک تیکت دقیق در Jira حاوی نتایج تحلیل و اسکرین‌شات ایمیل ایجاد می‌شود تا فرآیند پاسخ به حوادث را برای تیم امنیتی ساده‌سازی کند.

workflowهای مرتبط

این workflow در کاتالوگ Pixori.me بایگانی شده است. لایسنس اصلی متعلق به سازنده workflow است.