Please support me!

หากชอบใจบทความของผม โปรดสนับสนุนค่ากาแฟเล็กๆน้อยๆเพื่อเป็นกำลังใจนะครับ

[IT009] แก้ไขเว็บไซต์ให้รอดพ้นจาก "เว็บอันตราย" ( Reported Attack Page! )

[INT002] แก้ไขเว็บไซต์ให้รอดพ้นจาก "เว็บอันตราย" ( Reported Attack Page! )

สำหรับนักท่องเว็บหลายๆคน อาจจะคุ้นเคยกับการที่ google แจ้งเตือนเว็บไซต์อันตราย
ซึ่งจะเกิดขึ้นเมื่อผู้ใช้คลิกเข้าไปในเว็บไซต์ที่อยู่ในลิสต์ต้องสงสัยของ google
โดยแทนที่จะเข้าไปสู่เว็บไซต์นั้น google จะแสดงหน้าจอสีแดงขึ้นมาขวางทันที

โดยปกติแล้ว google จะคอยทำการเช็คเว็บต่างๆใน internet อยู่ตลอดเวลา
หากพบว่าเว็บไซต์ใด มีพฤติกรรมที่จะเผยแพร่ malware หรือไวรัสใดๆ
( ซึ่งอาจมาในรูปแบบต่างๆ เช่น โทรจัน, cookies, scripts, ads หรือ spam links )
ก็จะถูกใส่ไว้ในลิสต์เว็บไซต์อันตราย และหากลอง search เว็บไซต์นั้นดู 
ก็จะพบว่ามีลิงค์คำเตือนว่า "This site may harm your computer" ('เว็บไซต์นี้อาจเป็นอันตรายต่อคอมพิวเตอร์ของคุณ')


เมื่อเว็บที่คุ้นเคยกลายเป็นเว็บอันตราย?

อาจจะเป็นเรื่องธรรมดา หากเรารับรู้ความเสี่ยงของเนื้อหาเว็บที่กำลังค้นหาและพบกับหน้าจอคำเตือนเว็บอันตราย
แต่ต่อมาเรามักพบว่า เว็บที่เราคุ้นเคยและคิดว่าไม่น่าเกี่ยวข้องกับพวก malware หรือ spam
กลับถูกแจ้งว่าเป็นเว็บอันตรายไปด้วย ซึ่งบางทีแม้แต่เว็บดังๆที่มีชื่อเสียง ก็ยังโดนกันถ้วนหน้า

เหตุการณ์ทำนองนี้เกิดขึ้นในลักษณะที่หน้าเว็บไซต์นั้นติดเชื้อ ( Infected page )
ซึ่งหมายความว่า ผู้สร้างเว็บไซต์นั้นไม่ได้มีเจตนาที่จะเกี่ยวข้องกับพฤติกรรมที่เสี่ยงต่อการเป็นเว็บอันตราย
แต่เกิดจากการถูกติดตั้งโดยไม่ยินยอมหรือถูกแฮ็คเข้าไปใน server เพื่อที่จะติดตั้ง script, links ที่จะนำไปสู่เว็บอันตรายอีกที
ถ้าหนักหน่อย ก็อาจจะโดนฝังตัว malware เข้าไปเลย (ลักษณะนี้ google จะถือว่าเว็บนั้นเป็น host ที่อาจจะแพร่เชื้อไปสู่เครื่องผู้ใช้ด้วย)

อีกกรณีหนึ่งคือ เครื่องที่เป็น admin เข้าไป FTP ใน server นั้นติดไวรัสเสียเองอยู่ก่อนแล้ว 
พอไปแก้ไขไฟล์ใน server มันก็แอบฝังตัวเข้าไปเลยก็มีครับ

...และหากเว็บนั้นเป็นเว็บของเราเสียเองล่ะ?

ความปวดหัวที่จะมาเคาะประตูเราอย่างแรกเลยคือ เสียงบ่นจาก user ครับ
โดยเฉพาะผู้ใช้ Firefox และ Chrome ที่จะพบกับหน้าแจ้งเตือนและไม่สามารถเข้าสู่หน้าเว็บได้
บางครั้งอาจเข้าได้โดยการกดปุ่ม Ignore แต่ก็จะถูกแจ้งเตือนขึ้นมาอีกเรื่อยๆ
และยังไม่สามารถ sign in เข้าเว็บได้อีกด้วย (ในกรณีที่เป็นหน้าจอ login หรือใช้งานเว็บบอร์ด)
หากพบว่าเว็บเรานั้นโดนเข้าให้แล้ว ก็ไม่ต่างอะไรกับเว็บล่ม ต้องรีบแก้ไขให้เร็วที่สุดครับ

การหลีกเลี่ยงปัญหาชั่วคราวจากฝั่งผู้ใช้

กรณีที่มีความจำเป็นจะต้องเข้าเว็บไซต์เพื่อใช้งานปกติให้ได้จริงๆ
สำหรับผู้ใช้ Firefox สามารถปิดการใช้งานของการแจ้งเตือนเว็บไซต์อันตรายได้ครับ
มีขั้นตอนดังนี้...

- เลือกเมนู Edit --> Preferences
- ที่ tab 'Security' (รูปแม่กุญแจ) ให้นำเครื่องหมายติ๊กถูกออกจาก 'Block reported attack sites'

อย่างไรก็ตาม ผมก็ยังไม่แนะนำให้ใช้วิธีนี้ถ้าไม่จำเป็น เพราะหากเว็บนั้นมี malware หรือไวรัสซ่อนอยู่จริง
การคลิกลิงค์อย่างซุกซนโดยไม่ตั้งใจก็อาจจะเสี่ยงทำให้เครื่องเราติดไวรัสไปด้วยครับ

สิ่งที่ควรทำเป็นอันดับแรกเมื่อพบว่าเว็บเราถูกแจ้งเป็นเว็บอันตราย

บนเครื่องของเรา:
- อัพเดทฐานข้อมูลของโปรแกรมสแกนไวรัสให้ใหม่ล่าสุด และสแกนหาไวรัสให้ทั่ว จนมั่นใจระดับหนึ่งว่าเครื่องเราสะอาดปลอดภัย

บน server:
- ปิดบริการเว็บไซต์ชั่วคราว return code เป็น 503 Service Unavailable ซึ่งเว็บจะได้ยังไม่ถูก crawl จาก googlebot

- เปลี่ยน password ที่เกี่ยวข้องกับ web server ทั้งหมด ตั้งแต่ FTP, Database หรือหากใช้ CMS เช่น พวก Joomla หรือ Wordpress
ก็ควรจะเปลี่ยน password ของ admin ด้วยครับ เพราะอาจเป็นไปได้ว่าเราอาจจะถูก hack ไปเรียบร้อยแล้ว


กรณีศึกษา: เว็บ Thaiendzone (http://www.thaiendzone.org)

เว็บ thaiendzone เป็นเว็บไซต์ของสมาคมแฟลกฟุตบอลและอเมริกันฟุตบอล
ซึ่งผมได้มีโอกาสช่วยเป็น admin ดูแลในส่วนของเว็บบอร์ด
เว็บนี้ใช้ CMS ของ Joomla และใช้ Webboard ของ SMF

เมื่อประมาณหนึ่งสัปดาห์ที่ผ่านมา ผมก็พบว่า เว็บบอร์ดไม่สามารถเข้าได้โดยตรง เพราะถูก google รายงานว่าเป็นเว็บอันตราย
ลองนึกย้อนไปเมื่อไม่กี่วันก่อนหน้านั้น ก็พบว่ามีพวก bot มาตั้งกระทู้ spam links เยอะๆไว้กระทู้หนึ่ง
ซึ่งผมก็ได้ลบและแบนโดเมนผู้ใช้นั้นไปแล้ว
แต่เมื่อลองเข้าไปที่โฮมเพจ http://www.thaiendzone.org ก็ถูกรายงานเช่นเดียวกัน
อาการเช่นนี้เริ่มบ่งชัดว่า ถูกโจมตีในส่วนเว็บหลัก ไม่ใช่เพียงส่วนของเว็บบอร์ด

สำหรับการตรวจสอบ scope ของการติดเชื้อ เพื่อให้เราทราบว่าเว็บเราติดเชื้อในส่วนไหนบ้าง
สามารถทำได้โดย search google ว่า site: ตามด้วย url ของเว็บ เช่น site:thaiendzone.org

ทีนี้ลองดูแต่ละผลลัพธ์ที่ได้ ว่ามีหน้าไหนบ้างที่ถูกแจ้งเตือน ขั้นตอนนี้ผมพบว่าโดนทุกหน้าครับ
ก็ยิ่งเป็นไปได้สูงว่ามันน่าจะฝังตัวที่ไฟล์หลักๆใน server เลย

Google SafeBrowsing diagnostics page

เราสามารถดูผลการวิเคราะห์จาก google ถึงสาเหตุที่เว็บไซต์เราโดนแบนได้ จาก Google SafeBrowsing diagnostics page
ข้อมูลหน้านี้มีความสำคัญมากครับ ช่วยทำให้เราเข้าใกล้ถึงพฤติกรรมและตัวการที่ทำให้เราโดนแบนได้ 


 
วิธีการเข้าถึงหน้า diagnostic โดยตรงสามารถทำได้ดังนี้ครับ

http://www.google.com/safebrowsing/diagnostic?site=ชื่อเว็บไซต์ของเรา
เช่น http://www.google.com/safebrowsing/diagnostic?site=www.thaiendzone.org

หากต้องการทราบรายละเอียดเพิ่มเติมเกี่ยวกับข้อมูลในหน้านี้ 
แนะนำให้เข้าไปอ่านต่อที่นี่ครับ อธิบายไว้ได้ดีทีเดียว 

การนำข้อมูลที่ได้จาก diagnostics page ไปขยายผลต่อ

จาก diagnostics page ทำให้เราทราบว่า มีโดเมนไหนที่เป็นอันตรายฝังตัวอยู่บ้าง
ผมลองนำ url นั้นไปลอง search ต่อดู ก็พบว่ามีอยู่ใน Sucuri Malware database ด้วยครับ
ตัวที่ผมเจอคือ MW:SPAM:S8 
ข้อมูลจาก Sucuri นี้เป็นประโยชน์มากครับ
เพราะบอกรายละเอียดได้ดีมาก ตั้งแต่พฤติกรรมของ malware ,โดเมนของ malware, รวมไปถึงกลุ่มเสี่ยงที่สามารถติดเชื้อได้
อย่างตัวนี้ก็บอกว่า พบได้ใน Joomla และโค้ดอันตรายนั้นมักจะฝังอยู่ที่ไฟล์ index.php
ถ้าโชคดีกว่านั้น ในหน้านี้อาจจะบอกถึง Malware dump มาให้เลย นั่นคือตัวการถึงตัววายร้ายเลยครับ

Google Webmaster Tool  

Google Webmaster Tool เป็นอีกเครื่องมือที่สำคัญ ที่ทาง google จะรายงานข้อมูล malware เพิ่มเติม
เช่น แจ้งให้ทราบว่ามีเพจใดในเว็บบ้างที่มีลิงค์ไปสู่เว็บอันตราย





ในกรณีที่ผมเจอ มีอยู่ 4 หน้า แต่เมื่อตรวจสอบดูแล้ว ก็พบว่าจริงๆมันคือที่เดียวกัน
คือสุดท้ายแล้วลิงค์มาที่โฮมเพจอีกที

สำหรับการใช้งาน Google Webmaster Tool นั้น จะต้องมีบัญชีของ gmail
เมื่อ login เข้ามาแล้ว ให้เพิ่มเว็บไซต์ของเราเข้าไปในลิสต์ของเว็บที่เราเป็นเวบมาสเตอร์ก่อน
หลังจากนั้น google จะให้ทำการยืนยันว่าเราเป็นเจ้าของเว็บไซต์นี้จริง โดยมีหลายวิธีให้เลือก
วิธีง่ายๆก็คือ เพิ่มโค้ดที่ google ให้มาใส่ในหน้าแรก หรือไม่ก็อัพโหลดไฟล์ที่ google ให้มาไว้บน server
ขั้นตอนสุดท้ายก็คลิกลิงค์เพื่อยืนยัน ก็จะสามารถใช้งาน Webmaster Tool ได้ครับ

ค้นหาโค้ดอันตราย

หลังจากที่เรามีข้อมูลเกี่ยวกับ malware ไปบ้างแล้ว
ทีนี้เราจะเริ่มลงมือค้นหาโค้ดหรือ script ที่เป็นอันตรายในเว็บเรากันครับ

จากพฤติกรรมของ malware ที่เราทราบ นั่นคือเว็บเราอาจจะโดนแทรกลิงค์แปลกๆเข้าไปโดยไม่รู้ตัว
ลองเริ่มหาจากไฟล์หลักๆ บน root ของเว็บเราก่อน ( public_html )
โดยเฉพาะไฟล์ php ทั้งหลาย เช่น index.php, configuration.php
ส่วน keyword ที่ใช้ค้นหาส่วนมากควรเป็นแท็ก HTML หรือคำสั่งที่สามารถสร้างลิงค์บนเว็บเพจได้ เช่น...

iframe : ส่วนมากลิงค์อันตราย (malicious links) จะแฝงมาโดยใช้ iframe ครับ
เพราะวิธีนี้สามารถใส่ลิงค์เข้าไปโดยไม่แสดงผลออกมาให้เห็นได้

src= และ http:// : ถ้ายังไม่เจอ ให้ตรวจสอบลิงค์ทั้งหมดให้แน่ใจว่า ไม่มีลิงค์ไปสู่เว็บแปลกๆที่เราไม่คุ้นเคย

unescape และ eval : อีกรูปแบบของ JavaScript ที่อาจเป็นลิงค์อันตรายแฝงมาได้

สำหรับกรณีนี้ ผมเจอเข้าที่ไฟล์ configuration.php
โค้ดที่พบเป็น eval ครับ


eval(base64_decode("....

จากนั้นก็ตามด้วยสตริงที่ถูกเข้ารหัส base64 ยาวเหยียด
ลอง copy สตริงทั้งหมดที่ถูกเข้ารหัส ไป decode base64 (ที่เว็บนี้
ก็แจ็คพ็อตออกมาเป็นโค้ดที่ redirect ไปสู่โดเมนอันตรายตรงตามที่ diagnostics page บอกไว้ก่อนหน้านี้เป๊ะครับ

หลังจากลบโค้ดอันตรายแล้ว อย่าลืมตรวจดู permission ของไฟล์ด้วยนะครับ
อย่างกรณีนี้ ไฟล์ที่ติดเชื้อถูกแก้ permission เป็น 775 ไปเสียแล้ว
ผมจึงเปลี่ยนกลับเป็น 644 ครับ


ส่งคำขอให้ google ทบทวนเว็บของเราอีกครั้ง

หากเรามั่นใจว่าเว็บเราสะอาดเรียบร้อยแล้ว ขั้นตอนสุดท้ายคือการยื่นคำขอให้ google ตรวจสอบเว็บเรา (review) อีกครั้งครับ
สามารถทำได้ผ่านทาง Webmaster tools โดยอาจจะต้องเขียนให้เหตุผลไปสักเล็กน้อย
เมื่อส่งคำขอไปแล้ว รอการตรวจสอบจาก google กรณีของผมประมาณ 1 วันรู้ผลครับ
ซึ่งถ้าหากเว็บเราผ่านการตรวจว่าไม่มี malware แล้ว เราก็จะถูกยกเลิกการแบนในที่สุด
แต่ถ้าไม่ผ่านก็ค่อยลองกลับมาหาดูใหม่อีกครั้ง
ตรงนี้ไม่ต้องเกรงใจ google นะครับ ไม่ผ่านก็ขอ review ได้ใหม่เรื่อยๆไม่มีโดนบ่นกลับนะ ;P
ampmie152.
http://ampmie152.blogspot.com/

ความคิดเห็น

  1. ขอบพระคุณมากครับ สำหรับ การเสียสละเวลามาสอน มาให้ความรู้ผู้อื่น ที่ประสบปัญหา ขอให้ แชริ่ง กันต่อไปนะครับ

    ตอบลบ

แสดงความคิดเห็น

โพสต์ยอดนิยมจากบล็อกนี้

[MUS001] Kazoo...เครื่องดนตรีที่ใครๆก็เล่นได้!

[OTH004] มาเล่นแฟลกฟุตบอลกันเถอะ!

[INV033] รีวิว 6 เดือน กับการเป็น FA ที่ Finnomena

[IT006] How to convert UTF-8 to ANSI ? (Thai fonts)

[INV023] วิธีใช้ไฟล์ excel ประเมินมูลค่าหุ้นคร่าวๆจากงบการเงิน