همانطور که قبلا در مقاله “هرزنامه، موجودیتی زنده و در حال تکامل” گفته شد، زمان آن فرا رسیده است که ماهیت واقعی ایمیلهای اسپم یا هرزنامهها را به عنوان یک پدیده پویا در دنیای اینترنت و ارتباطات بپذیریم. با پذیرفتن ماهیت متغیر و در حال تکامل هرزنامه، میتوانیم راهکاری مناسب برای شناسایی و مقابله با انواع مختلف آن پیدا کنیم.
در این مقاله به معرفی یک راهکار هوشمند و پویا برای فیلتر کردن هرزنامه پرداخته شده است که درست مثل هرزنامه قابلیت تطبیق و سازگاری بسیار بالا دارد. راهکار پیشنهادی مبتنی بر تکنیکهای هوش مصنوعی و شبکههای عصبی است. شبکه عصبی که برای این هدف طراحی خواهد شد، میآموزد که چطور از طریق خصوصیات درونی هر ایمیل و بهواسطه مجموعهای از نشانگرهای ژنتیکی، یک ایمیل را به عنوان هرزنامه یا ایمیل خوب توصیف و شناسایی کند.
توجه داشته باشید که برای ادامه مطالعه این مقاله و درک بهتر راهکار ارائه شده، لازم است اطلاعات کافی در خصوص شبکههای عصبی، هوش مصنوعی و روشهای آموزش و آمادهسازی آن داشته باشید.
شناسایی نشانگرهای ژنتیکی ایمیل
هر ایمیل با توجه به تمام اجزا و محتویاتی که دارد، دارای ویژگیهای بخصوصی است که میتوانند همانند مفهوم ژن در موجودات زنده نظر گرفته شود.
به عنوان مثال، ایمیلی را در نظر بگیرید که دارای فایل پیوست باشد، یا بیش از 5 نفر دریافت کننده داشته باشد، یا فرمت محتوی آن HTML باشد؛ داشتن یا نداشتن هر یک از این ویژگیها یک نشانگر ژنتیکی برای ایمیل به حساب میآید. مجموعه ویژگیهای ژنتیکی ایمیل نشان دهنده ماهیت کلی آن خواهد بود.
هدف ما این است که بتوانیم سیستمی هوشمند ایجاد کنیم تا با استخراج ویژگیهای ژنتیکی ایمیل، تشخیص دهد که آیا این ایمیل هرزنامه است یا خیر.
آموزش شبکه عصبی
در راهکارهای مبتنی بر شبکه عصبی، یکی از مهمترین گامها این است که سیستم را با ارائه اطلاعات و نمونههای صحیح آموزش دهیم، یعنی با وارد کردن نمونههایی از ایمیلهای هرزنامه و ایمیلهای عادی، موتور سیستم را راهاندازی کنیم.
سپس سیستمی که با اطلاعات کافی آموزش داده شده است، میتواند در محیط واقعی ویژگیهای ژنتیکی هر ایمیلی را بررسی کرده و تصمیم بگیرد که این ایمیل به کدام یک از دو دسته فوق (هرزنامه یا ایمیل عادی) تعلق دارد.
نگاه کلی به گامهای اجرایی
اگر بخواهیم روال کار این فیلتر هوشمند را بررسی کنیم، گامهای اصلی در این فرایند به ترتیب زیر هستند:
گام نخست: یک ایمیل به صورت المانهای رشتهای تجزیه (parse) شود.
گام دوم: محتوی درون ایمیل بر اساس نشانگرهای ژنتیکی بررسی شده و یک عدد احتمالی بین صفر و یک (0و1) برای هر نشانگر ژنتیکی در نظر گرفته شود. (مثلا آیا فایل پیوست دارد یا خیر و …)
گام سوم: مجموعه احتمالات ایجاد شده به عنوان ورودی به شبکه عصبی وارد شده و یک MLP به وجود بیاید(MLP یا “پرسپترون چند لایه” یکی از مدلهای شبکه عصبی).
گام چهارم: خروجیMLP یک احتمال بین صفر و یک است، به این معنی که آیا ایمیل بررسی شده هرزنامه است یا یک ایمیل بیضرر، یا این که وضعیت آن ناشناخته است.
گام پنجم: در نهایت بر مبنای خروجی MLP، ایمیل به مجموعه مناسب (هرزنامه ، ناشناخته یا ایمیل بی ضرر) انتقال خواهد یافت.
روند آموزش فیلتر ایمیل
یکی از مهمترین نقاط قوت راهکار مبتنی بر شبکه عصبی، این است که فیلتر ما میتواند بیاموزد که از نظر هر کاربر چه چیزی ایمیل عادی و چه چیزی هرزنامه است و در نتیجه فیلترها بصورت کاملا شخصی ایجاد میشوند.
برای آموزش این سیستم، نیاز به دو مجموعه از ایمیل داریم؛ یک مجموعه از ایمیلهای عادی و یک مجموعه از ایمیلهای هرزنامه. این دو مجموعه از ایمیلها باید به ترتیب زیر پردازش شوند:
1- هر دو مجموعه ایمیل (هرزنامه و ایمیل عادی) به المانهای رشتهای تجزیه شوند.
2- محتوی درون ایمیلها بر اساس نشانگرهای ژنتیکی بررسی شود و برای هر پیام از هر دو مجموعه، به ازای هر نشانگر ژنتیکی؛ یک احتمال بین {0و1} تعیین شود. در نهایت دو مجموعه از نشانگرها خواهیم داشت که یکی برای ایمیلهای خوب و یک سری دیگر برای هرزنامهها خواهند بود.
3- هر دو مجموعه آمار بدست آمده در گام قبل، با به کارگیری روشهای آماری شیب کاهش و بازخورد خروجی، به عنوان ورودی برای آموزش MLP مورد استفاده قرار خواهد گرفت.
آموزش با این روش را باید تا زمانی ادامه داد که به یک میزان از خطای قابل قبول (mean Squared Erorr) رسید.
نکته مهم و برجسته در مورد این روش این است که یک MLP پایه و عمومی میتواند بین کاربران مختلف تعمیم و گسترش یافته یا از طریق کاربران دیگر در اینترنت به روزرسانی و تکمیل شود. بنابراین هر کاربر میتواند آموزشهای بیشتری به شبکه خود داده و با اعمال تنظیمهای دلخواه، شرایط مورد نظر خود را اعمال کند و بر مبنای شرایط داده شده به هر یکی از دو مجموعه (ایمیل عادی و هرزنامه)، فیلتر خود را بهینهسازی کند.
بهینهسازی عملکرد فیلتر ایمیل
غیر از بحث آموزش این سیستم، راههای دیگری هم هست که بتوان عملکر این فیلتر را بهینه کرد. برخی از این کارها عبارتند از:
1- تهیه لیست سفید و لیست سیاه از ارسال کنندگان ایمیل
اگر یک ایمیل از طرف شخص یا یک مجموعه از لیست سفید ارسال شده باشد، به طور اتوماتیک به عنوان یک ایمیل خوب پذیرفته خواهد شد و اگر فرستنده ایمیل در لیست سیاه قرار داشت داشته باشد عکس قضیه اتفاق افتاده و آن ایمیل به طور اتوماتیک به عنوان هرزنامه تلقی شده و پذیرفته نخواهد شد. چنانچه فرستنده در هیچ یک از دو لیست قرار نداشته باشد پردازش خواهد شد.
این کار کمک میکند که ایمیلهای متعارف (مثلا ایمیلهایی که از طرف همکاران یا آشنایان دریافت میشوند) از پردازش معاف شوند و ایمیلهایی از سمت کاربران بد سابقه و هرزنامه نویسان هم بدون پردازش اسپم تلقی شوند.
2- امکان افزایش و تقویت حساسیتهای سیستم نسبت به ورودیهای MLP
به عنوان مثال فرض کنید ما یک ایمیل را تجزیه کرده تا ببینیم آیا حاوی لینک تصویریHTML هست یا نه؛ این یکی از ژنهایی است که برای بررسی ایمیل ردیابی میشود، چراکه ۹۹.۹۹ درصد از اینگونه ایمیلها هرزنامه هستند. اما ممکن است که برخی افراد نخواهند که تمام ایمیلهای HTML آنها به عنوان هرزنامه دستهبندی شوند. ممکن است آنها با ایمیلهای خوبی سر و کار داشته باشند که حاوی لینکهای تصویری هستند. در چنین شرایطی بهتر است کاربر این اختیار و توانایی را داشته باشد که با تنظیماتی مانند اینکه “چند وقت یکبار شما ایمیل معتبری دریافت میکنید که حاوی تصاویر است؟” برای این نشانگر محدودیتی ایجاد کند.
3- بهرهمندی از یک سرور مرکزی با قابلیت بکارگیری فیلترهای جدید و به روز
برای همگام بودن با سرعت رشد هرزنامهها ما نیاز به سروری داریم که تمامی ویژگیهای جدید و بهروز هرزنامهها را شناسایی کرده و آنها را در فیلتر خود اعمال کند. فیلتر ایجاد شده در این حالت؛ به خودی خود با ژنهای نشانگر جدیدی که شناخته است، تطبیق خواهد یافت. این مسئله کارامدی سرور مرکزی را به طرز فوقالعاده افزایش داده و با گسترش استفاده از آن، ادامه ارسال هرزنامه را برای ارسال کنندگان آن بسیار پرهزینه و دشوار و شاید غیر ممکن خواهد کرد. به عبارت بهتر، ما میخواهیم سیستمی که در اختیار داریم با همان سرعت هرزنامه رشد کند.
مهمترین ژنهای نشانگر هرزنامه
حال که روند کلی کار تعریف شد باید ببینیم که ما دنبال چه ژنهایی هستیم. چراکه حدود صدها نشانگر مختلف وجود دارند که از طریق آنها میتوان یک پیام را به عنوان هرزنامه شناسایی کرد. اما برای آسانتر کردن مسئله، ما در این مقاله نشانگرهایی که اهمیت بیشتری دارند را نام میبریم:
1- قالب یا فرمت ایمیل HTML
برای بسیاری از کاربران، یک ایمیل عادی در قالب متن ساده و یا متن RTF است در حالی که بیشتر پیامهایی که در قالب html دریافت میشوند، هرزنامه هستند. زیرا هرزنامه نویسان با استفاده از html میتوانند تصاویری را در پیام خود جای دهند که قابلیت ردگیری این را دارند که چه کسی پیام را دیده و چه کسی ندیده است. قالب html به آنها اجازه میدهد که کلماتی را در پیام خود مخفی کنند که می تواند تحلیل فیلتر بر مبنای تئوری baysain را گمراه کند.
از طرفی، با توجه به اینکه هرزنامهنویسان به نوعی بازاریاب هستند، برای آنها بسیار بهتر است که کالای خود را با ظاهری بسیار جذاب به کاربران ارائه کنند. در نتیجه قالب html برای آنها بسیار مناسبتر است و از همین رو احتمال هرزنامه بودن ایمیلی با فرمت HTML بسیار بالاتر است.
2- ایمیل در قالب یکHTML معتبر
برای مخفی نگاه داشتن عبارات و کلمات کلیدی از دید کاربر (و نه از فیلتر هرزنامه زیرا که این کلمات کلیدی را برای شکستن فیلتر مورد استفاده قرار می دهند) ارسال کنندگان هرزنامه از این امکان استفاده میکنند که قالب html را به صورت نادرست و نامناسب تنظیم کنند؛ به ویژه در برخی از بخشها از قبیل عبارات تبلیغاتی که کماکان برای کاربر قابل رویت هستند. اگر این ویژگی در پیامی وجود داشته باشد به احتمال زیاد آن پیام یک هرزنامه است. مجددا یادآوری می کنیم که هرزنامهنویسان این قالب نادرست را به طور عمدی مورد استفاده قرار میدهند تا فیلترهای عادی هرزنامه را شکسته و از آن عبور کنند.
3- ایمیل رمزگذاری شده با base64
ازآنجایی که اکثر فیلترهای هرزنامه قادر نیستند یک متن رمزگذاری شده را بخوانند و آنرا بررسی کنند، رمزگذاری متن با این قالب به هرزنامهنویسان اجازه میدهد که عبارات تبلیغاتی خود را به رویت کاربر برساند ولی از دید اکثر فیلترها مخفی نگه دارند. از طرفی با توجه به سربار بسیار زیادی که رمرنگاری ۲۰۶۴ برای ارسال متن و پیام های معمولی دارد، این قالب معمولاً فقط توسط هرزنامه نویسان استفاده میشود. بنابراین استفاده از این رمزنگاری در پیام، به احتمال قریب به یقین نشان دهنده هرزنامه بودن آن است.
4- لینکهای تصویری در ایمیل
همانطور که گفته شد، هدف ارسال کنندگان هرزنامه پنهان کردن نیت تبلیغاتی بودن پیام از دید فیلتر است، در نتیجه بجای قرار دادن تبلیغات بصورت مستقیم در ایمیل؛ یک لینک در متن ایمیل قرار میدهند که مربوط به تصویری بر روی اینترنت است و کاربر با کلیک روی آن لینک، تصویر را خواهد دید.
معمولا زمانیکه که اینگونه تصاویر باز میشوند، برنامه مشخصی در سرور مربوطه اجرا میشود و به هرزنامه نویس اعلام میکند که دریافت کننده ایمیل، تصویر را مشاهده کرده است. در نتیجه آن کاربر به عنوان هدف بهتر و مناسبتری برای بازاریابی شناسایی میشود و در آینده هرزنامههای بیشتری دریافت خواهد کرد. با توجه به اینکه اغلب ایمیلهای معمولی حاوی لینک تصاویر از سایتهای مختلف نیستند، وجود این ویژگی در ایمیل دریافتی به این مفهوم خواهد بود که پیام دریافت شده به احتمال زیاد یک هرزنامه است.
5-وجود متن پنهان از دید کاربر در ایمیل
در ایمیلهای هرزنامهای که در قالب html تنظیم شده است، معمولا هرزنامهنویسان یک قسمت را بهگونهای تنظیم میکنند که از دید دریافت کننده مخفی باشد. به عنوام مثال ممکن است این قسمت از اطلاعات را در بخش بالای صفحه نمایش ایمیل قرار دهند، به نحوی که زمان نمایش ایمیل، خارج از کادر قابل دید کاربر قرار بگیرد، یا این که نوشتههای این قسمت پنهانی را با فونتی بنویسند که دقیقا همرنگ با رنگ پیشزمینه باشد، به نحوی که اصلا دیده نشود. این قسمتهای پنهان، معمولا شامل کلماتی تصادفی و غیر هرزنامهای است.
هدف از این کار، فریب دادن فیلترهای هرزنامه است، چرا که اکثر فیلترها تمامی متن را مورد توجه و تحلیل قرار میدهند نه آن قسمتی که قابل رویت است، بنابراین زمانی که تعداد کلمات غیر هرزنامهای و درهم در ایمیل زیاد باشد، احتمال محاسبه شده برای هرزنامه بودن ایمیل کاهش پیدا میکند و فیلترهای عادی این ایمیل را یک ایمیل عادی در نظر میگیرند. بنابراین، اگر چنین ویژگی در متن ایمیل وجود داشته باشد، آن پیام با احتمال بسیار بالا یک هرزنامه است.
لازم به ذکر است که فیلتر ما کاملا به این بخشهای مخفی متن بیتوجه بوده و فقط به همان بخشی که کاربر میبیند توجه خواهد کرد و این برتری فیلتر ما است.
6- تعداد زیاد دریافت کننده
توجه داشته باشید این ویژگی ممکن است دلیل قاطعی برای هرزنامه بودن ایمیل نباشد، اما بهطور معمول هرزنامهها لیست بلند و بالایی از دریافت کنندگان دارند. ولی شرایطی هم وجود دارد که کاربری یک ایمیل در ارتباط با کار را برای تعداد زیادی از همکاران میفرستد، یا مثلا یکی از دوستان شما یک ایمیل را در زمان برای بیست نفر ارسال میکند. بنابراین در نظر گرفتن این ویژگی، کمی بستگی به موقعیت و فرستنده آن دارد.
7- نسبت تعداد لینکها به تعداد کلمات در ایمیل
اکثر هرزنامهها حاوی حداقل یک لینک به سایت خودشان یا هر جای دیگر هستند که بتوانید از طریق آن “لغو اشتراک” کنید (که از طرفی، کاربر با این کار ثابت میکند که ایمیلش معتبر است و احتمالا به 200 لیست هرزنامه دیگر اضافه خواهد شد). البته وجود چنین لینکی لزوما به معنی هرزنامه بودن پیام نیست، اما اگر ایمیلی دریافت کردید که متن آن حاوی ۵ لینک ولی فقط ۱۰ کلمه است به احتمال زیاد چنین ایمیلی یک هرزنامه است.
8- نسبت تعداد کلمات با املای نادرست به کلمات درست
از آنجایی که هرزنامهنویسان از هیچ تلاشی برای پنهان کردن کلماتی که به فیلتر اخطار دهد فروگذار نمیکنند، معمولا ایمیل ارسالی خود را با کلماتی که املای نادرست دارند و بی معنی هستند پر میکنند تا فیلتر هرزنامه گمراه شود. البته این مورد را هم نمیتوان به عنوان یک ویژگی قطعی برای هرزنامهها در نظر گرفت چرا که همه ما دوستانی داریم که املای آنها پر از اشتباه است. ولی این ویژگی در صورت قرار گرفتن کنار دیگر نشانگرهای هرزنامه میتواند دلیل خوبی باشد که ایمیل یک هرزنامه است.
9- احتمال هرزنامه بودن این ایمیل بر مبنای الگوریتم بیزی(bayesain)
یکی از روشهای معمول برای تشخیص ایمیلهای اسپم، استفاده از روش کلاسبندی بیزی یا Bayesain Spam Filtering است. نحوه کار این فیلتر این است که کلمات یا موارد داخل ایمیل را بررسی کرده و میزان استفاده شدن آنها در ایمیلهای هرزنامه را محاسبه میکند . کلمات در ایمیلهای هرزنامه و ایمیلهای عادی دارای احتمال خاصی هستند. این احتمالها بر اساس بررسی ایمیلهای هرزنامه و ایمیلهای عادی در دوره آموزش سیستم استخراج شدهاند. فیلتر با بررسی کلمات و تعداد تکرار آنها در ایمیل جدید، احتمال هرزنامه بودن آن را حساب میکند.
عدم قطعیت نشانگرهای هرزنامه
نشانگرهایی که برای هرزنامه معرف شدند، لزوما به هرزنامه بودن یک ایمیل دلالت نمیکنند. این امر بستگی به نوع ایمیلهای عادی و غیر هرزنامهای دارد که توسط کاربر به فیلتر معرفی شده است. به همین دلیل است که آموزش و آمادهسازی سیستم به عهده کاربر گذاشته شده است. به عبارت دیگر؛ انتخاب اینکه یک ایمیل هرزنامه است یا ایمیل خوب، بر مبنای یک آمار کلی نیست بلکه بر مبنای احتمالاتی است که بر اساس انتخاب کاربر به عنوان ایمیل عادی یا هرزنامه تعریف شدهاند.
با این روش به سیستم اجازه می دهیم که ایمیلهای قبلی را که توسط کاربر به عنوان ایمیل عادی و هرزنامه معرفی شدهاند را به عنوان ورودی بگیرد؛ مقادیر فوق را برای ژنهای تعریف شده حساب کرده و سپس این مقادیر را در فیلتر اعمال کند.
به این ترتیب فیلتر میآموزد که خوب را از بد تشخیص دهد. قدرت این روش در این نکته است که سرعت انعطاف پذیری و انطباق فیلتر به همان سرعت تغییر روش هرزنامه نویسهاست.
مدلهای پیادهسازی شده با این روش از دقت یک اشتباه در 1000ایمیل برخوردار هستند، با انجام تنظیمات دقیقتر برای بهینهسازی سیستم و شناسایی ژنهای بیشتر، قطعا دقت این فیلتر میتواند تا یک اشتباه در ۵۰۰۰ ایمیل افزایش یابد.
سخن آخر
باید بپذیریم که هرزنامهها را نمیتوان با یک الگوریتم یا یک روش حذف کرد. برای از بین بردن آنها اولین و مهمترین راه این است که هیچکس چیزی از سایتهای هرزنامهنویسان خریداری نکند. تحریم محصولات آنها، شروعی خوبی است که هرزنامهنویسان از هزینه کردن روی این موضوع دست بردارند. ارائه دهندگان خدمات ایمیل هم باید ابزارهای کارآمد و بهروز برای مقابله با هرزنامه در شبکه ایمیل خود به کار برند.