Anti-Spam
ถ้าจำกันได้ เมื่อประมาณ 10 ปีที่แล้ว ช่วงที่อินเทอร์เน็ตบูมใหม่ๆ ในสยามประเทศ เราจะได้รับ forward mail ประเภทว่า “อย่าเปิดเมลที่มีหัวข้อ ... เพราะมันมีไวรัส และสามารถทำลายข้อมูลในฮาร์ดดิสก์ของคุณ ขอให้ส่งต่อเพื่อเตือนคนรู้จักด้วย” แล้วก็จะหัวร่อ เพราะรู้ๆ กันอยู่ ว่าเมลมันเป็นแค่ข้อความล้วนๆ ไม่ใช่โปรแกรมที่จะสามารถสร้างพิษสงอะไรได้ อีกทั้งเว็บที่รวบรวม internet hoax ทั้งหลาย ก็ขึ้นทำเนียบ hoax ชนิดนี้ไว้เรียบร้อย พร้อมคำอธิบายคล้ายๆ กันนี้ โดยรวมอยู่กับ hoax อื่นๆ เช่น เด็กเป็นมะเร็ง ต้องการเงินค่ารักษาด่วน เศรษฐีคนหนึ่งตั้งเป้าไว้ว่า ถ้าเมลฉบับนี้ถูกส่งถึงผู้รับครบตามเป้า ก็จะออกค่ารักษาให้ ฯลฯ
แต่ดู พ.ศ. นี้สิ ไวรัสในเมลกลายเป็นเรื่องปกติ ใครกันนะ ที่ทำให้ฝันของ spammer พวกนี้เป็นจริง?
ไม่ต้องมีโปรแกรมที่ชอบทำตัว “ฉลาดๆ” จนกลายเป็นเครื่องมือแพร่ไวรัสเหล่านั้น ลำพังเรื่อง spam mail อย่างเดียว ก็เป็นปัญหาโลกแตกอยู่แล้ว ยิ่งฝ่ายป้องกัน spam พัฒนาเทคนิคในการตรวจจับให้ดีเท่าไร ฝ่าย spammer ก็ยิ่งพัฒนาเทคนิคใหม่ๆ เพื่อจะหลบเลี่ยง เอาไปเอามา CPU ของ server ก็ถูกใช้งานหนักขึ้นเรื่อยๆ เพื่อไล่จับพวกก่อกวนเหล่านี้ แบนด์วิดธ์ก็ถูกผลาญทิ้งกับเรื่องไม่เป็นเรื่อง อีกทั้งบางที ผู้ใช้ปกติที่ไม่รู้อิโหน่อิเหน่ ก็ต้องพลอยเดือดร้อน เมื่อเมลดีถูกเหมารวมว่าเป็น spam
ผมไม่รู้ ว่า spammer ใช้เทคนิคอะไรบ้าง แต่ดูเหมือนว่าผู้ใช้ TOT อย่างผม จะมีปัญหาเรื่องเมลอยู่เนืองๆ เช่น ถ้าใช้ SMTP ของ TOT ก็มีบางครั้งเจอ blacklist เด้งกลับ หรือถ้าใช้ local MTA ส่งโดยตรง ก็เจอปัญหา IP not fully qualified ทั้งหมดนี้ ก็เข้าใจอยู่ว่าเป็นวิธีป้องกัน spam แต่เน็ตฟรีอย่าง TOT คงเป็นแหล่งที่เหมาะสำหรับ spammer ผู้ใช้ปกติเลยต้องพลอยติดร่างแหไปด้วย
มาประกาศสงครามกับ spammer กันไหม?
ผมยังไม่รู้จักเครื่องมือดีๆ สักเท่าไร (เป็น admin มือใหม่) เท่าที่รู้มา เรียงตามลำดับความก้าวร้าวก็:
-
โยน spam ลงถัง โดยติดตั้ง spam filter เป็นวิธีตั้งรับอย่างเดียว spam mail จะผ่าน MTA เข้ามาในระบบได้ แต่จะถูก spam filter ตรวจพบและโยนลงถังขยะ แต่ spammer ซึ่งไม่ถูก reject ก็รู้แล้วว่า address นี้ใช้การได้ สามารถ spam มาได้อีก แม้ spam filter จะช่วยให้ผู้ใช้เทขยะได้ง่าย แต่ก็นับว่า server ต้องเปลือง CPU สำหรับตรวจเมลทุกฉบับเหมือนกัน
spam filter ที่เป็นที่นิยมก็คงไม่พ้น SpamAssassin (ใครต่อใครก็แนะนำแต่ตัวนี้ให้ผม) ใช้เทคนิคหลายอย่างร่วมกัน ทั้งการวิเคราะห์หัวเมล, เนื้อหา, ตรวจสอบ blacklist, train ด้วยสถิติ (Bayesian), ใช้ distributed blacklist อย่าง Razor หรือ Pyzor IBM developerWorks มี บทความ แนะนำ spamassassin ด้วย
นอกจากนี้ ยังมี Bayesian filter ใน debian อีกหลายตัว เช่น bogofilter, spamprobe, spamoracle
-
ไม่รับ spam โดยใช้เทคนิคที่เรียกว่า Greylisting ซึ่งผู้เขียนคุยว่าได้ผลถึง 97% โดยไม่กิน CPU ของ server มากเหมือนการใช้ filter วิธีการคือ ให้ MTA เด้งเมลที่มาจาก sender IP + envelope sender + envelope recipient ชุดที่ไม่เคยรู้จักไปก่อนในลักษณะ temporary failure เป็นระยะเวลาที่กำหนด ซึ่งถ้าเป็นเมลจริงที่ส่งจาก MTA ตาม spec ของ SMTP จะพยายามส่งใหม่ และมาถึงในที่สุด แต่ถ้ามาจากโปรแกรม spam หรือไวรัส เกือบทั้งหมดจะไม่พยายามใหม่ แล้วก็หายไปในที่สุด ไม่หลุดมาถึง filter หรือ mail box เลย (แต่วิธีนี้ อ่านดูแล้ว อาจป้องกันกรณีการลักใช้ mail relay ที่ maintain ไม่ดีไม่ได้ รวมทั้งอาจ block เมลที่ส่งจาก local MTA ของคนที่ต่อ TOT ที่ได้ dynamic IP จำกัดระยะเวลาด้วย) สำหรับ spam ที่หลุดรอดมาจาก greylisting ได้นั้น ผู้เขียนบอกว่า จะมีลักษณะเหมาะที่ spam filter อื่นจะตรวจจับได้ง่าย เช่น การหน่วงเวลาทำให้ขึ้น blacklist ได้ทัน หรือเป็น spam ที่มาจาก IP หน้าเดิมๆ เห็นปุ๊บก็จำได้ ฯลฯ
-
แกล้งโปรแกรมเก็บแอดเดรส ที่ชอบมากวาดเอา e-mail address ตามเว็บต่างๆ ด้วยการสร้างเว็บมั่วๆ ที่เต็มไปด้วย e-mail address ที่ดูเหมือนจริง แต่ไม่มีอยู่จริง เป็นขยะก่อกวนฐานข้อมูลของ spammer เล่นๆ หรือถ้ารู้ address ของ spammer ก็อาจใส่ลงไป เพื่อให้ spammer spam กันเองก็ได้
โปรแกรมในแนวนี้ ได้แก่ sugarplum ซึ่งจะ redirect URL ไปยัง CGI ซึ่งสร้างเว็บแบบสุ่มอัตโนมัติด้วย dictionary และอุดมไปด้วย e-mail ปลอม แต่ทั้งนี้ ข้อควรระวังคือ ควรสร้างไฟล์ robots.txt เพื่อกัน search engine ดีๆ ไม่ให้มาเปลืองเก็บ index ในเว็บยาเบื่อนี้ด้วย
-
แกล้งโปรแกรม spam โดยตรง ด้วยเทคนิคที่เรียกว่า teergrube ซึ่งจะหน่วงเวลา MTA ให้ช้า ถ้าพบว่าเป็น spammer ทำให้ประสิทธิภาพของการ spam ลดลง ใน debian จะมี package ที่ชื่อ sa-exim ที่จะ config ให้ exim4 ใช้ spamassaassin แต่เนิ่นๆ ตั้งแต่ขั้นการเชื่อมต่อ SMTP และ reject spam ก่อนหลุดเข้ามายัง mail box ของผู้ใช้ คล้ายกับที่ greylisting ทำ แต่ด้วยกฎที่ซับซ้อนกว่า บวกด้วยตัวเลือกที่สามารถ teergrube ผู้ส่งได้ด้วย
บางคนอาจตั้ง mail server ไว้ให้ teergrube แล้วเอา address ไปปล่อยไว้ตามเว็บ หรือโพสต์ต่างๆ โดยมีข้อความกำกับว่าอย่าส่งมา แต่โปรแกรมเก็บแอดเดรสมันไม่สนหรอก spam แหลก ก็เจอ teergrube
เทคนิคการแกล้ง spammer ทั้งหลาย ก็เป็นการเพิ่มอุปสรรคให้กับ spammer ที่จะต้องทำงานหนักขึ้นที่จะเจาะเข้าให้ถึงผู้ใช้จริงๆ ซึ่งก็ได้แต่หวังว่า มันจะมากพอที่จะเกินจุดคุ้มทุนของการ spam
แต่ดูๆ แล้ว ผู้ใช้ TOT จะไม่ผ่านในหลายๆ เทคนิค คงต้องทำใจ ก็ใช้ของถูกอะ (ไม่ฟรีนะ ค่าโทรเดือนที่แล้วของผมเกิน 900 อีกแน่ะ แพงกว่าอัตราต่ำสุดของ unlimited ADSL เลยแหละ)
ส่วนโปรแกรมกรองไวรัสสำหรับ client ที่เป็น Windows ทั้งหลาย ไว้หาอีกที ที่มีรายชื่อตอนนี้ก็ amavis-ng, clamav, messagewall, sanitizer ใครมีอะไรแนะนำก็ขอขอบคุณครับ ☺