سه شنبه, ۹ بهمن, ۱۴۰۳ / 28 January, 2025
مجله ویستا

نبرد فیلترها و تولیدکنندگان اسپم


نبرد فیلترها و تولیدکنندگان اسپم
فیلتر اسپم، نرم‌افزاری است که به سرویس دهنده ایمیل کمک می‌کند تا از عبور اسپم‌ (هرزنامه‌) جلوگیری کند. این فیلتر این عمل را معمولاً با شناسایی فرستنده ایمیل یا کلماتی که در موضوع و متن ایمیل بکار رفته انجام می‌دهد. در مقاله “اسپم چیست” به مواردی که موضوع اصلی بیشتر اسپم‌هاست اشاره شد.این فیلترها سعی در تشخیص این نوع ایمیل‌ها و جلوگیری از ورود آنها به صندوق‌پستی کاربرانشان یا نشانه‌گذاری آنها بعنوان اسپم می‌کنند. اگر مدتهاست که از سرویسهای ایمیل معروف مانند Yahoo یا Hotmail استفاده می‌کنید،‌ حتماً با هر بار سر زدن به صندوق پستی خود با انبوهی از ایمیلها با عنوان Bulk mail یا Junk mail برخورد می‌کنید. قرار گرفتن این ایمیلها در این فولدرها بدلیل اینست که سرویس‌دهنده ایمیل آنها را بعنوان اسپم تشخیص می‌دهد.البته گاهی نیز این ایمیلها از Inbox شما سر در میاورند که نشاندهنده این است که عیلرغم اسپم بودن، توانسته‌اند از فیلتر اسپم عبور کنند.حتی گاهی شنیده می‌شود که بعضی ایمیلهای اصلی به فولدر مربوط به اسپم هدایت می‌شوند که باز هم نشان از تشخیص اشتباه فیلتر است. البته نیازی به نگرانی نیست. این اتفاق بندرت رخ می‌دهد.فیلتر تطبیقی، نوعی از فیلتر است که قادر است اشتباهاتش در تشخیص اسپم‌ها را اصلاح کند و با آشنا شدن بیشتر با کلمات یا حقه‌هایی که در اسپم‌ها بکار میرود در تشخیص اسپم‌ها بهتر و دقیق‌تر عمل کند.فرستندگان اسپم هر روزه در حال استفاده از ابزار و روشهای پیچیده‌تری برای عبور دادن نامه‌هایشان از فیلترهای اسپم تطبیقی هستند. آنها از روشهایی مانند پنهان کردن پیغامها در متنهای بی‌ضرر تا تکنیکهای هوشمندانه‌تری که تلاش می‌کنند تا در توانایی‌های فیلترها در تشخیص اسپم از غیراسپم اختلال ایجاد کنند، استفاده می‌کنند. در این مقاله و مقاله بعدی با چندتا از این روش‌ها و نحوه مقابله با آنها از طرف فیلترها آشنا می‌شویم.با گسترش فیلترهای تطبیقی، تولید‌کنندگان اسپم شروع کردند به پرکردن پیغامهایشان با حجم زیادی از متن‌های غیراسپمی‌! برای گول زدن و عبور کردن از فیلترهای اسپم. فیلترهای تطبیقی در بعضی مواقع، از احتمالات برای تشخیص اسپم استفاده می‌کنند، یعنی مبنای تصمیم‌گیری در مورد اسپم‌ بودن یا نبودن یک پیغام میزان وقوع بعضی کلماتی است که در اسپم‌ها بیشتر بکار می‌رود. تولید‌کنندگان اسپم گاهی باعث برهم زدن این احتمالات در فیلترها و بعبارتی باعث مسموم‌شدن آنها می‌شوند.تولیدکنندگان اسپم امیدوارند که با اضافه‌کردن متون جانبی باعث عبور پیغامشان از یک فیلتر شوند تا توسط کاربر خوانده شوند. در این مواقع ممکن است که کاربر به فیلتر اعلام کند که پیغام عبور داده شده، اسپم بوده است و فیلتر از این به بعد این کلمات جانبی و بی‌ضرر را نشانه اسپم بداند. این باعث می‌شود که فیلتر گاهی پیغامهای مفید را نیز به اشتباه بعنوان اسپم تشخیص دهد، و به این ترتیب باعث عملکرد بد فیلتر و از کار افتادن آن شوند.خوشبختانه، طبیعت فیلترهای تطبیقی بگونه‌ای است که گول زدن و مسموم‌کردن آنها بسیار مشکل است. تنها امید یک تولیدکننده اسپم این است که بتواند با تبدیل پیغام خود به یک پیام بی‌ضرر (پیامی که درصد کلمات نشاندهنده اسپم نسبت به کل کلمات موجود در آن بسیار ناچیز و قابل اغماض باشد) باعث عبور آن از فیلتر شود که به این ترتیب از تاثیر تبلیغاتی متن موجود در آن بسیار کاسته خواهد شد.
فریب‌دادن یک فیلتر تطبیقی
یک فیلتر به این ترتیب اسپم بودن یا پیام را تشخیص می‌دهد که به کلمات موجود در متن نگاه می‌کند و به هر کدام از آنها با توجه به اینکه این کلمه به چه میزان به یک اسپم متعلق است وزنی اختصاص می‌دهد. با ترکیب این احتمالات برای همه کلمات پیام، فیلتر به احتمال اسپم بودن یا نبودن پیام میرسد و بر مبنای آن تصمیم‌گیری می‌کند. این عمل ترکیب به فیلترهای تطبیقی در تصمیم‌گیری هوشمندانه قدرت زیادی می‌بخشد. فیلتر تطبیقی برای هر کاربر کلمات مخصوص به آن کاربر را دارد.در ادامه برای روشن شدن بیشتر مطلب با سه شخصیت سروکار داریم. دو کاربر به نامهای آلیس و باب و یک تولید کننده اسپم به نام اِوا. فیلتر اسپم آلیس کلمات مجانی، رهن و وام را اسپم تشخیص می‌دهد، اما از آنجا به بافتنی علاقه دارد کلمات پشم، سوزن و زردوزی برای او کلمات مفیدی هستند. از طرف دیگر برای باب هم کلمات مجانی،‌ رهن و وام نشاندهنده اسپم هستند. اما از آنجا که به اتومبیل علاقه‌مند است کلماتی مانند موتور، فرمان و سرعت برای او نشاندهنده یک پیام جالب هستند.حال اگر اِوا پیامی به آلیس و باب بفرستد که در آن کلمات رهن و وام بکار رفته باشد، توسط فیلتر هر دو بسرعت اسپم تشخیص داده می‌شود. توجه کنید که بعضی کلمات، افعال و حروف اضافه، کلمات خنثی محسوب می‌شوند. تولید‌کنندگان اسپم برای اینکه پیام آنها توسط موضوع (subject) اسپم تشخیص داده نشود، از حروف یا فاصله‌های اضافی در میان حروف و کلمات استفاده می‌کنند.مثلا کلمه “mortgage” بمعنای رهن به صورت “m o r t g a g e” یا “m-o-r-t-g-a-g-e” یا اشکال دیگر ممکن است در عنوان ایمیل آورده شود تا توسط فیلتر تشخیص داده نشود.
متن بی‌ضرر
این بار اِوا سعی می‌کند که فیلترها با استفاده از متن بی‌ضرر اغوا کند. به این منظور علاوه بر متن خود، متنی از جای دیگر مثلاً از یک دایرهٔ‌المعارف یا سایت خبری یاهو به آن اضافه می‌کند و به آلیس و باب می‌فرستد. اما باز هم این متن اسپم تشخیص داده می‌شود. فیلترهای تطبیقی یک پیام را به سه بخش اسپم، مفید و خنثی تقسیم می‌کنند. فیلتر با وزن دادن به آنها، وزن زیادی در مورد اسپم و وزن کمی در مورد مفید بودن پیام می‌دهد و مقدار زیادی متن خنثی پیدا می‌کند.بنابراین قراردادن متن خنثی با شکست مواجه می‌شود. تولیدکننده اسپم اطلاعی از علاقه آلیس به بافتنی ندارد تا وزن مفید پیام خود را زیاد کند!!!
حجم زیاد پیام بی‌خاصیت
اِوا این بار فکر می‌کند که باید متن بی‌خاصیت بیشتری ارسال کند. اما همچنان امیدوار است که بتواند فیلتر آلیس و باب را گمراه کند.
اِوا توانست حجم ایمیل خود را افزایش دهد اما اینبار دو مساله برایش وجود دارد:
· همچنانکه اندازه پیام افزایش می‌یابد، نرخ ارسال اسپم کم می‌شود.
· حجم زیاد پیام باعث سردرگمی دریافت‌کننده نسبت به محتوای‌ اصلی می‌شود.
برای حل مشکل دوم، اِوا می‌تواند به پنهان کردن متن از خواننده متوسل شود. این کار توسط حقه “جوهر نامرئی” و “استتار” صورت می‌گیرد. در این عمل، رنگ نوشته و زمینه یکسان انتخاب می‌شوند. اِوا می‌تواند حجم زیادی از متن را بمنظور فریفتن فیلتر ارسال کند، بدون اینکه متن توسط کاربر دیده شود.احتمال جواب دادن این تاکتیک کم است زیرا استفاده از چنین روشی براحتی توسط فیلتر اسپم تشخیص داده می‌شود و بعنوان نشانه‌ دیگری از اسپم استفاده می‌شود. در حالت استفاده از جوهر نامرئی، فیلتر اسپم برای تشخیص متن بی‌خاصیت نامرئی به اندازه کافی باهوش است و حتی دیگر احتیاجی به توجه به متن نیز وجود ندارد.
یک شکاف شانسی
در حقیقت تنها شانس اِوا اکنون این است که بطریقی از کلمات مورد علاقه آلیس مطلع شود و از آنها در ایمیل خود استفاده کند. اِوا شانس می‌آورد و ایمیلی را ارسال می‌کند که علاوه بر دارا بودن کلمات اسپمی! در آن از کلمات مورد علاقه آلیس که مربوط به بافتنی است استفاده می‌کند. فیلتر تطبیقی با وزن دادن به کلمات نمی‌تواند تصمیم‌گیری کند. برای اینکه فیلتر پیام مفید را از بین نبرد، به اسپم اجازه ورود به صندوق پستی آلیس را می‌دهد. البته موفقیت اِوا موقتی است. او نمیداند که پیامش عبور کرد و در ضمن فقط توانست پیامش را از یک فیلتر عبور دهد. فیلتر باب پیام را مسدود کرد زیرا باب به بافتنی علاقه ندارد و کلمات مفید برای آلیس، برای باب معنی خاصی ندارد.برای اینکه اِوا یک فیلتر اسپم تطبیقی را فریب دهد احتیاج به گول زدن هر فیلتر بصورت مجزا دارد. او مجبور به فهمیدن کلمات مفیدی است که برای هر کاربر مختص خود اوست. این بارِ زیادی را به اِوا تحمیل می‌کند اگر میخواهد یک فیلتر اسپم تطبیقی را گول بزند.اما این همه ماجرا نیست. در یک مثال واقعی، فیلتر آلیس همه سرپیامها را برای اسپم بودن یا مفید بودن سنجیده است. از آنجا که بیشتر ایمیلها در مورد بافتنی از دوستان مشخصی از آلیس و چندتایی لیست ایمیل برای او می‌رسد، اطلاعات در سرپیامها نیز نشاندهنده‌های خوبی برای مفید بودن یا اسپم بودن پیامها هستند. سرپیام رسیده از طرف اِوا نشاندهنده خوبی برای اسپم بودن ایمیل دریافت‌شده است. بنابراین شاید فیلتر آلیس به پیام اِوا اجازه عبور نداده باشد!!!بازخورد توسط حشرات وبی!
یک مکانیسم بازخورد چیزی است که اِوا به آن نیاز دارد. اگر او می‌دانست که کدام پیامهایش به آلیس رسید و کدامها نرسید، می‌توانست با استفاده از یک فیلتر تطبیقی و با پیامهای رسیده و نرسیده به آلیس، این فیلتر را آموزش دهد.اِوا این کار را با بمباران کردن صندوق پستی آلیس با پیامهایی که حاوی متنهای تصادفی هستند انجام می‌دهد. پیامهای رسیده به آلیس احتمالا دارای کلمات مفید و پیامهای نرسیده دارای کلمات شبه اسپم هستند. بعد از مدتی او اطلاعات کافی برای تشخیص ارسال پیامهای به آلیس خواهد داشت.متاسفانه مکانیسمی وجود دارد که اوا می‌تواند از دیده شدن پیامهایش توسط آلیس مطلع شود طوریکه آلیس از این موضوع باخبر نشود. - حشره وبی. حشره وبی یک تصویر کوچک (مثلا یک پیکسلی)‌است که در یک ایمیل گنجانده می‌شود و وقتی که پیام خوانده می‌شود به تولیدکننده اسپم خبر می‌دهد. با فعال شدن حشره وبی، اِوا راهی برای اطلاع یافتن از خوانده شدن ایمیل خود توسط آلیس خواهد داشت.برای ارسال یک پیام حشره دار، اوا یک ایمیل به قالب HTML به آلیس می‌فرستد که شامل محتوای اسپم و لینکی به یک تصویر یک پیکسلی بر روی سایتی می‌باشد که تحت کنترل اوا است. در اسم این تصویر نام آلیس و یک کد یکتا که مشخص‌کننده آن پیام است، وجود دارد. با آگاهی یافتن از این دو مورد، اوا می‌تواند پیام خوانده شده توسط آلیس را مشخص کند.خوشبختانه این تکنیک هنوز برای حمله به فیلترهای تطبیقی استفاده نمی‌شود اما با در نظر گرفتن نبوغ تولیدکنندگان اسپم، چندان هم بعید بنظر نمی‌رسد. مقابله با حشرات وبی آسان است، و در قسمت روشهای دفاع در پایان این مقاله آمده است.
بدون کلمه
تکنیک دیگر که اوا می‌تواند بیازماید ارسال ایمیل بدون کلمه است. چون او می‌داند که کلماتی مانند رهن باعث حذف پیامش می‌شود، می‌تواند در عوض یک کد HTML را که شامل یک لینک به یک تصویر روی وب‌سایت است، ارسال کند. هنگامی که ایمیل باز می‌شود، تصویر دانلود می‌شود و پیام اصلی نمایش داده می‌شود.در اینجا، یک فیلتر تطبیقی خوب می‌تواند اسپم بودن این پیام را تشخیص دهد. زیرا این فیلتر فقط به کلمات توجه نمی‌کند و شبه‌کلمات مانند URLها را که در پیام قرار دارند را بررسی می‌کند. همچنین می‌تواند این حقیقت را در نظر بگیرد که پیام شامل یک تگ <img> است که باعث بارگذاری یک تصویر از وب در هنگام خوانده‌شدن پیام می‌شود.
مسموم کردن یک فیلتر تطبیقی
بزرگترین امیدواری اوا این است که اگر بتواند یک پیام را از فیلتر عبور دهد، آلیس و باب فیلترهایشان را روی آن پیام عبور داده شده، آموزش دهند. و اگر آن پیام پر از کلمات خنثی باشد، او امیدوار است که در آینده بعنوان اسپم تشخیص داده شوند و باعث شوند که بعضی ایمیلهای مناسب و خوب آلیس و باب، اسپم تشخیص داده شوند.از آنجاکه آلیس و باب نسبت به تشخیص اشتباه ایملیهای خوب بعنوان اسپم نسبت به حالت دیگر حساس‌تر هستند ، یعنی ترجیح می‌دهند که اسپم‌ها را دریافت کنند تا اینکه ایمیلهای مناسبشان بعنوان اسپم تشخیص داده شود، اگر اوا در مسموم‌کردن فیلترهای اسپم موفق شود، باعث خواهد شد که آلیس و باب نسبت به فیلترکردن تطبیقی ناامید شوند و شاید حتی آن را رها کنند.بهرحال، بعید است نقشه اوا درست از آب درآید، زیرا حتی اگر یک پیام هم از فیلتر عبور کند و آلیس و باب به فیلترشان اطلاع دهند، در میزان اهمیت کلماتی که برایشان مهمترین هستند، خدشه وارد نمی‌شود.یعنی کلمات مربوط به بافتنی برای آلیس و اتومبیل برای باب. برای اینکه نقشه مسموم‌کردن فیلترها توسط اوا عملی شود، او باید ابتدا یک پیام را از فیلتر اسپم عبور دهد و فیلتر را با کلماتی برای هر کاربر آلوده کند.امکان عبور دادن این چنین پیامی را در نظر بگیرید. کل آنچه باب انجام داده است اضافه کردن کلماتی به لیست کلمات اسپمی است. حتی اگر در آینده باب به مساپلی که اکنون در لیست اضافه شده است، علاقه‌مند شود، وجود و قدرت این کلمات آنقدر نیست که باعث اسپم شناخته شدن ایمیلهای مورد نظر باب شود.قدرت یک فیلتر تطبیقی در توانایی برای وزن دادن بسیاری از احتمالات در تصمیم‌گیری برای خوب یا بد بودن یک پیام است.
چند روش مقابله
۱- تا حد امکان از ایمیلهای متنی ساده استفاده کنید.
بیش از ٪۸۵ ایمیلهای اسپمی با استفاده از HTML نوشته می‌شوند. تولیدکنندگان اسپم این کار را می‌کنند، زیرا به این طریق می‌توانند پیامهای جدابتری با رنگها و فونتهای متفاوت ایجاد کنند. همچنان می‌توانند از حقه‌های HTML برای پنهان‌کردن کلمات اسپمی از دید یک فیلتر استفاده ببرند. البته ممکن است برای بعضی از افراد غیرعملی باشد، اما بعضی استفاده‌کنندگان اینترنت این را روش موثری برای نبرد با اسپم می‌دانند. بنابراین اگر ایمیل با فرمت HTML دریافت کنند، تقریبا به اسپم بودن آن مطمئن هستند.
۲- فیلتر اسپم شما نیاز به قدرت تحلیل فایلهای HTML برای تشخیص “جوهر نامرئی” و “استتار ” دارد.
یک فیلتر اسپم باید بتواند بین ایمیلهای واقعی که با فرمت HTML هستند (برای مثال از طرف کسی که از Outlook Express با فرمت پیش‌فرض HTML استفاده می‌کند) با HTML از طرف یک تولیدکننده اسپم تمایز قائل شود.بعلاوه، فیلتر باید HTML را تحلیل کند تا از حقه‌های بکار رفته در آن برای پنهان کردن حجم زیادی از متن مطلع شود. یک فیلتر تطبیقی خوب برای جلوگیری از گول خوردن متن‌هایی را که قابل دیدن نیستند دور می‌ریزد.
۳- فیلتر اسپم شما احتیاج به امتحان هر MIME(Multi-purpose Internet Mail Extensions) برای یافتن حقه “MIME is Money” دارد.
یک حقه هوشمندانه که بعنوان “MIME is Money” شناخته می‌شود، ارسال دو پیام در یک ایمیل با استفاده از یک روش کد کردن با عنوان MIME است. با استفاده از یک پیام متن ساده که از کلمات خنثی تشکیل شده و یک پیام در قالب HTML که شامل پیام اسپمی است، تولید کننده اسپم معتقد است که برنامه ایمیل کاربر نسخه HTML را بجای متن ساده نشان خواهد داد در حالیکه امیدوار است که نسخه متن ساده توسط فیلتر خوانده شود و به این ترتیب فیلتر گول بخورد. یک فیلتر اسپم خوب این تشخیص را خواهد داد که بخشهای متن ساده و HTML یک پیام تا حد زیادی با هم متفاوتند و از نسخه HTML‌ برای تصمیم‌گیری استفاده خواهد کرد.
۴- اجازه بارگذاری تصویرها از یک وب‌سایت دیگر را ندهید
یک راه دیگر جلوگیری از بازخورد دادن به تولیدکننده اسپم در هنگامی است که پیام از فیلتر عبور می‌کند. تولید‌کنندگان اسپم بسیار از حشرات وبی در پیامهای اسپمی برای فهمیدن اینکه دقیقاً کدام دریافت‌کننده پیام را خوانده است، استفاده می‌کنند. این دریافت کنندگان در آینده اسپم بیشتری دریافت خواهند کرد. برای این منظور یک کاربر باید تنظیمات برنامه ایمیل خود را طوری انجام دهد که تصاویر داخل ایمیلها بارگذاری نشود.تولیدکنندگان اسپم شاید برای نفوذ به فیلترهای تطبیقی با ارسال پیام در حجمهای بالا با چندین کپی به هر آدرس، بیشتر و سخت‌تر تلاش کنند. هر کپی از بقیه کمی متفاوت خواهد بود.در نهایت شاید تولید‌کنندگان اسپم تصمیم بگیرند که کمتر از کلمات اسپمی استفاده کنند و متنهای آنها به سمت ایمیلهای مفید‌تر پیش برود!!!