فیلتر اسپم، نرمافزاری است که به سرویس دهنده ایمیل کمک میکند تا از عبور اسپم (هرزنامه) جلوگیری کند. این فیلتر این عمل را معمولاً با شناسایی فرستنده ایمیل یا کلماتی که در موضوع و متن ایمیل بکار رفته انجام میدهد. در مقاله “اسپم چیست” به مواردی که موضوع اصلی بیشتر اسپمهاست اشاره شد. این فیلترها سعی در تشخیص این نوع ایمیلها و جلوگیری از ورود آنها به صندوقپستی کاربرانشان یا نشانهگذاری آنها بعنوان اسپم میکنند. اگر مدتهاست که از سرویسهای ایمیل معروف مانند 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” یا اشکال دیگر ممکن است در عنوان ایمیل آورده شود تا توسط فیلتر تشخیص داده نشود.
متن بیضرر
این بار اِوا سعی میکند که فیلترها با استفاده از متن بیضرر اغوا کند. به این منظور علاوه بر متن خود، متنی از جای دیگر مثلاً از یک دایرةالمعارف یا سایت خبری یاهو به آن اضافه میکند و به آلیس و باب میفرستد. اما باز هم این متن اسپم تشخیص داده میشود. فیلترهای تطبیقی یک پیام را به سه بخش اسپم، مفید و خنثی تقسیم میکنند. فیلتر با وزن دادن به آنها، وزن زیادی در مورد اسپم و وزن کمی در مورد مفید بودن پیام میدهد و مقدار زیادی متن خنثی پیدا میکند. بنابراین قراردادن متن خنثی با شکست مواجه میشود. تولیدکننده اسپم اطلاعی از علاقه آلیس به بافتنی ندارد تا وزن مفید پیام خود را زیاد کند!!!
حجم زیاد پیام بیخاصیت
اِوا این بار فکر میکند که باید متن بیخاصیت بیشتری ارسال کند. اما همچنان امیدوار است که بتواند فیلتر آلیس و باب را گمراه کند.
اِوا توانست حجم ایمیل خود را افزایش دهد اما اینبار دو مساله برایش وجود دارد:
برای حل مشکل دوم، اِوا میتواند به پنهان کردن متن از خواننده متوسل شود. این کار توسط حقه “جوهر نامرئی” و “استتار” صورت میگیرد. در این عمل، رنگ نوشته و زمینه یکسان انتخاب میشوند. اِوا میتواند حجم زیادی از متن را بمنظور فریفتن فیلتر ارسال کند، بدون اینکه متن توسط کاربر دیده شود.
احتمال جواب دادن این تاکتیک کم است زیرا استفاده از چنین روشی براحتی توسط فیلتر اسپم تشخیص داده میشود و بعنوان نشانه دیگری از اسپم استفاده میشود. در حالت استفاده از جوهر نامرئی، فیلتر اسپم برای تشخیص متن بیخاصیت نامرئی به اندازه کافی باهوش است و حتی دیگر احتیاجی به توجه به متن نیز وجود ندارد.
یک شکاف شانسی
در حقیقت تنها شانس اِوا اکنون این است که بطریقی از کلمات مورد علاقه آلیس مطلع شود و از آنها در ایمیل خود استفاده کند. اِوا شانس میآورد و ایمیلی را ارسال میکند که علاوه بر دارا بودن کلمات اسپمی! در آن از کلمات مورد علاقه آلیس که مربوط به بافتنی است استفاده میکند. فیلتر تطبیقی با وزن دادن به کلمات نمیتواند تصمیمگیری کند. برای اینکه فیلتر پیام مفید را از بین نبرد، به اسپم اجازه ورود به صندوق پستی آلیس را میدهد. البته موفقیت اِوا موقتی است. او نمیداند که پیامش عبور کرد و در ضمن فقط توانست پیامش را از یک فیلتر عبور دهد. فیلتر باب پیام را مسدود کرد زیرا باب به بافتنی علاقه ندارد و کلمات مفید برای آلیس، برای باب معنی خاصی ندارد.
برای اینکه اِوا یک فیلتر اسپم تطبیقی را فریب دهد احتیاج به گول زدن هر فیلتر بصورت مجزا دارد. او مجبور به فهمیدن کلمات مفیدی است که برای هر کاربر مختص خود اوست. این بارِ زیادی را به اِوا تحمیل میکند اگر میخواهد یک فیلتر اسپم تطبیقی را گول بزند.
اما این همه ماجرا نیست. در یک مثال واقعی، فیلتر آلیس همه سرپیامها را برای اسپم بودن یا مفید بودن سنجیده است. از آنجا که بیشتر ایمیلها در مورد بافتنی از دوستان مشخصی از آلیس و چندتایی لیست ایمیل برای او میرسد، اطلاعات در سرپیامها نیز نشاندهندههای خوبی برای مفید بودن یا اسپم بودن پیامها هستند. سرپیام رسیده از طرف اِوا نشاندهنده خوبی برای اسپم بودن ایمیل دریافتشده است. بنابراین شاید فیلتر آلیس به پیام اِوا اجازه عبور نداده باشد!!!