ในโค้ดโปรแกรมของลูกค้าที่พัฒนาขึ้นมาเองมักจะถูกโจมตีด้วย SQL Injection ตามตัวอย่างด้านล่าง /index.php?id=1 OR 1=1-- - ซึ่งการแก้ไขจะต้องเข้าไปปรับโค้ดที่มีปัญหา โดยการ ตรวจสอบ input ที่ส่งเข้ามา ไม่ให้มีสิ่ง แปลกปลอมเข้ามาได้ ดูใน apache domlog จะพบ request แปลก ๆ เช่น http://www.fpmconsultant.com/htm/health02.php?id=(%2f**%2fsElEcT+1+%2f**%2ffRoM(%2f**%2fsElEcT+count(*),%2f**%2fcOnCaT((%2f**%2fsElEcT(%2f**%2fsElEcT+%2f**%2fuNhEx(%2f**%2fhEx(%2f** %2fcOnCaT(0x217e21,0x4142433134355a5136324457514146504f4959434644,0x217e21))))+%2f**%2ffRoM+information_schema.%2f**%2ftAbLeS+%2f**%2flImIt+0,1),floor(rand(0)*2))x+%2f**%2ffRoM Hacker ใส่ SQL command มากับ argument ถ้าเขียนโปรแกรมไม่ดีจะถูก hack ได้ วิธีแก้ปัญหาทีม TS อันดับแรก หาทาง restore เว็บให้ลูกค้าใช้งานให้ได้ก่อน reset account password ตอบโดยใช้ reply template xxxxxxx ให้ คง status ticket เป็น OPEN และ assign ไปยัง Support ตาม escalation policy เพื่อวิเคราะห์ปัญหา และ แนะนำแนวทางแก้ไขปัญหาให้ลูกค้าต่อไป วิธีแก้ปัญหาทีม SYSNOC หรือ ITSขอยกตัวอย่างง่าย ๆ ก่อนนะครับ วิธีแก้ไข SQL injection ตัวอย่าง /home/fpmadmin/public_html/htm/health02.php $result=mysql_db_query ("$dbname","SELECT * FROM $table where id=$id"); แก้เป็น $id = mysql_real_escape_string($id); $result=mysql_db_query ("$dbname","SELECT * FROM $table where id = {$id}"); แต่ทั้งนี้ ปัญหานี้ ลูกค้าต้องแก้ไขเอง ไม่เช่นนั้น จะถูก hack ได้เรื่อย ๆ ไม่จบ แนวทาง แก้ปัญหาให้ลูกค้า ให้ทำการติดตั้ง tools RIPS scanner เพื่อให้ลูกค้าตรวจสอบได้ว่า code ชุดไหนมีปัญหา 1. Download scanner https://sourceforge.net/projects/rips-scanner/ Or https://github.com/robocoder/rips-scanner 2. Upload and Extract to public_html 3. ใส่ http authentication ใน cPanel > web protect ตั้ง uesr name และ password folder rip user: exploit password: ……. แจ้งลูกค้าตาม Reply template xxxxx (อธิบายปัญหาคร่าว ๆ และ สอนวิธีใช้งาน RIPS Scanner)
เวลา search ชื่อโดเมนบน google แล้วขึ้นข้อความว่า 'This site may harm your computer.' ตามตัวอย่างนี้ http://www.google.com/support/bin/answer.py?answer=45449&topic=360&hl=en&sa=X&oi=malwarewarninglink&resnum=1&ct=help วิธีแก้ปัญหาทีม TS เมื่อแก้ไขปัญหาเรียบร้อยแล้ว ลูกค้าจะต้องทำการแจ้งไปยัง google เอง ตามนี้ http://www.google.com/support/webmasters/bin/answer.py?answer=45432 วิธีแก้ปัญหาทีม SYSNOC หรือ ITS
Trojan พวกนี้มีชื่อเรียกรวม ๆ ว่า Italian Job รายละเอียดเพิ่มเติมดูได้ที่ http://www.newswit.com/news/2007-08-15/0202-1c266d94199c7314c39a7bf34baead9b/ หรือ http://blog.trendmicro.com/another-malware-pulls-an-italian-job/ หรือ http://www.secureworks.com/research/threats/gozi/?threat=gozi วิธีแก้ปัญหาทีม TSส่งให้ lv2 ครับ วิธีแก้ปัญหาทีม SYSNOC หรือ ITSวิธีแก้ Block IP ที่ทำการ FTP มายัง server โดยอาศัย Trojan ตัวนี้ เปลี่ยน Password ทันที โดยต้องทำจากเครื่องที่ไม่ติด Trojan เท่านั้น (ปกติคือเครื่องของเรา) แก้ไขเว็บที่มี code JS หรือ IFRAME ให้เรียบร้อย แจ้งลูกค้า ให้ทำการ update virus เป็น version ล่าสุด และ scan virus โดยวิธีการแก้ไขนั้น แล้วแต่โปรแกรมป้องกันที่ใช้ ให้ scan หา Trojan ให้เจอก่อน แล้วปรึกษาตัวแทนขายโปรแกรมป้องกันไวรัสในการแก้ไขต่อไป หรือ จดชื่อ Trojan แล้วไป search ใน เว็บไซต์ของโปรแกรมป้องกันไวรัสนั้น ๆ เพื่อหาแนวทางแก้ไข เมื่อลูกค้า confirm การแก้ไขแล้วจึงแจ้ง password ใหม่ให้ ในกรณีที่ลูกค้าอยากได้ password โดยทันที ก็ให้ไปครับไม่จำเป็นต้องหน่วงไว้ แต่ให้แจ้งลูกค้าด้วยว่า หากนำ password ไปใช้บนเครื่องที่ติด Trojan นี้ ก็จะถูก hack ได้อีก เพราะ hacker จะรู้รหัสผ่านตัวใหม่ทันทีที่มีการพิมพ์รหัสใหม่บนเครื่องคอมพิวเตอร์ตัวนี้
วิธีแก้ไข Safe Browsing Report จาก Google สาเหตุปัญหาเป็นที่เนื้อหา, Source Code มีช่องโหว่, มีบนข้อมูลของท่านมีลิ้งค์เชื่อมต่อไปยังเว็บไซต์ปลายทางที่ไม่น่าเชื่อถือเมื่อเปิดเว็บไซต์ของท่านจะไม่สามารถเรียกใช้งานได้วิธีแก้ไข เข้า Google Webmasters Tools https://www.google.com/webmasters/tools/ เพิ่มเว็บไซต์ของตนเองโดยคลิ๊กที่ ADD A Property กรอกชื่อเวบไซต์ของตนเอง กรอกข้อมูลและทำตามขั้นตอนจากนั้นให้กด Verify ดำเนินการแก้ไขตาม Require ให้เรียบร้อย ส่งเรื่องการแก้ไข โดยไปที่เมนนู Security Issues ให้ทำการ Request A Review และกรอกข้อมูลการแก้ไขที่ได้ดำเนินการไปแล้ว และรอการตรวจสอบจากระบบไม่เกิน 72 ชั่วโมง คำแนะนำหากพบ Ticket หรือการแจ้งจากระบบให้ทำการส่งต่อให้ทีมที่เกี่ยวข้องดำเนินการตรวจสอบตามขั้นตอน
[TOC] ทำไมต้องรับมือ ป้องกันไว้ก่อนดีที่สุด ไม่ต้องเริ่มใหม่ทุกครั้งที่เกิดปัญหา ความน่าเชื่อถือก็มาจากเว็บไซต์ได้ รู้ไว้เพื่อตรวจสอบ ประเมินความเสียหายเมื่อถูกโจมตี ถ้าเว็บไซต์เราถูกโจมตี ผลกระทบที่เกิดขึ้นมีอะไรบ้าง เว็บไซต์ใช้งานไม่ได้ ถูก google ลดอันดับความน่าเชื่อถือเช่น กรณีเว็บไซต์ติด malware google chrome ขึ้นเตือนผู้ใช้งานว่าเว็บไซต์ อันตราย เว็บไซต์โดนลบ ข้อมูลเว็บไซต์ในฐานข้อมูลโดนลบ ข้อมูลเว็บไซต์โดนสำเนาออกไป เว็บไซต์กลายเป็นแหล่งโฆษณาที่สร้างความรำคาญให้ผู้ใช้ ถูกแอบอ้างใช้ email ส่งออกไปหาสมาชิก ทำให้ email จากโดเมนของเราเสียงต่อการเป็น spam ต้องเปลี่ยน hosting provider บ่อยๆ เนื่องจากสร้างปัญหาให้ user รายอื่นๆ เวลาที่เสียไปจากการหาปัญหา หาคนมาแก้ปัญหา ความเสียหายจากการใช้ทรัพยากร server โดยไม่รู้ตัว การให้ข้อมูลที่ผิดเช่น เลขที่บัญชีธนาคาร รู้จักวิธีโจมตีหลากหลายรูปแบบ การโจมตีเว็บไซต์มีทั้งง่ายๆแบบคาดไม่ถึงจนไปถึงการใช้ช่องโหว่ของระบบ การ email ขอรหัสผ่านเข้าเว็บไซต์เช่น แอบอ้างว่าเป็นเจ้าหน้าที่ support มาจาก hosting provider แจ้งว่าเว็บไซต์มีปัญหาขอเข้าไปส่วนจัดการเพื่อตรวจสอบ การสุ่มรหัสผ่านบางเว็บไซต์ใช้ Username: admin Password: เป็นคำง่ายๆเช่น 1234ทำให้ง่ายต่อการเดา หรือโดยการใช้โปรแกรมพวก master password มาแสกน โจมตีแบบสร้างความรำคาญส่วนมากจะใช้ช่องทางที่เราเปิดไว้เอง เช่น webbord, แสดงความเห็นมาโพสข้อความฌฆษณา หรือหน้าสมัครสมาชิกที่มักถูก bot เข้ามา add ข้อมูลขยะ ทำให้เราต้องตามลบ การโจมตีจากช่องโหว่ scriptเช่นการอนุญาติให้ upload เอกสาร โดยไม่คัดกรอง file extension แล้วผู้ใช้ upload ภาษา script เข้าไป แล้วแจ้งตำแหน่งไฟล์ให้ด้วยก็ง่ายที่จะนำเข้าไปรัน script นั้นโดยตรง โจมตีเหมือนคนทำเอง เหมือนการควบคุมหน้าจอบางครั้งเราคิดว่าพอ login แล้วจะป้องกันการโจมตีได้ ฝั่งโจมตีก็มี tool ในการสมัครสมาชิก ยืนยัน email แล้ว post spam ได้ โจมตีแบบ injectionคือลองใส่ logic หรือ script เข้ามาเพื่อให้เรารับ script มารันที่ serverหรือการใช้ sql injection เพื่อผ่านหน้า login โจมตีให้ค้าง ใช้งานไม่ได้สร้าง request หลอกๆให้เว็บคุณทำงานหนักขึ้น คนเข้าเว็บคุณแล้วรู้สึกช้าแต่เว็บคู่แข่งคุณทำไมเร็วจัง โจมตีด้วย cookie จาก browserสมมุติเหตุการณ์เลวร้ายขนาดที่นักพัฒนาเก็บ id user ที่ login ไว้ใน cookie ถ้าผู้ใช้แก้ไขค่านั้นก็จะกลายเป็นอีกคน login ใจดีรวมไฟล์ไว้ให้ผู้ไม่หวังดีเลยบางครั้งเราลืมว่าไฟล์อย่าง .zip สามารถ download ได้ ถ้าเราเผลอZip folder admin ลงมาเพื่อแก้ไขแล้วไม่ลบทิ้ง เขาอาาจะลองเดาว่าน่าจะมีไฟล์ admin.zip ค้างอยู่ก็ได้ เอาไฟล์มาฝากไว้ที่เราบางครั้งเราเปิดให้ uplaod ไฟล์ โดยลืมจำกัดขนาด หรือไม่ป้องกันการเข้าถึงจากเว็บอื่น ทำให้เราเสียพื้นที่ในการเก็บข้อมูลได้ง่ายๆ รู้จักวิธีการปัองกัน และเครื่องมือ ป้องกัน spam แบบฟอร์มด้วย google recaptcha Google ได้พัฒนาระบบป้องกัน spam แบบฟอร์มที่ให้เรานำไปใช้ได้ฟรีมีหลาย version ตั้งแต่เลือกรูปภาพรถ ไปจนกึง ฉันไม่ใช่หุ่นยนต์ล่าสุดคือ invisible captcha ที่ผู้ใช้ไม่ต้องทำอะไรเลยก็ปลอดภัยได้ ตรวจสอบไฟล์บน server บ้าง เข้าไปดูไฟล์บน server บ้างว่ามีอะไรแปลกๆใหม ไฟล์นั้น download ได้ใหมถ้า download ได้แล้วอะไรอยู่ข้างใน เช่นไฟล์ zipดึงไฟล์บน server ลงมาเก็บไว้เป็นประจำ รวมถึงฐานข้อมูลด้วยดูพื้นที่บน server ว่า path ใหนใช้เนื้อที่เยอะ เยอะเพราะอะไรข้อมูลหรือไฟล์ขยะ ดู request ด้วย google analytics หมั่นตรวจสอบสถิติการเข้าชมเว็บไซต์อยู่เสมอ เพื่อดูว่ามีคนเข้าใช้งานปกติหรือไม่มีการเข้าใช้งานแบบไม่ปกติใหม เช่น เรียกมาจากประเทศที่ไม่ใช่กลุ่มเป้าหมายของเราถ้ามีความผิดปกติก็บล็อค กลุ่มประเทศได้จาก ip address และ .htaccessและดูหน้าเพงใหนที่คนเข้าเยอะ หรือไม่เข้าเลย จะได้นำไปปรับปรุงเว็บไซต์ รู้ว่าเว็บเราทำอะไรได้บ้าง อย่างเช่นมีให้ upload file ใหม แล้วใคร upload ได้บ้าง มีการป้องกันเรื่องนามสกุลไฟล์ที่ถูกต้องหรือไม่ลองทดสอบ upload ดูได้เลย ใช้ subversion ตรวจสอบไฟล์ ปัจจุบันมีโปรแกรม version control ให้เลือกใช้มากมาย เช่น githubSubversion ลองนำ tool เหล่านี้มาใช้ในการเปรียบเทียบ script ที่เรา backup ไว้ กับที่ run อยู่บน server ว่ามีอะไรแตกต่างจากเดิม เป็น malware หรือไม่ ประโยชน์คือทำให้เห็นความแตกต่างของไฟล์ได้ง่าย ดีกว่าไปเดาว่าเกิดจากความผิดพลาดตรงใหน ติด SSL ให้เว็บไซต์ ป้องกันการดักข้อมูลระหว่าง bowser ผู้ใช้ กับ server ที่เราใช้งานได้ทำให้โอกาสที่ข้อมูลสำคัญหลุดออกไป มีความเป็นไปได้น้องมากปัจจุบัน google ก็ปล่อย chrome version ล่าสุดที่เน้นว่าทุกเว็บต้องมี sslโดยจะขึ้น un secure ให้กับเว็บไซต์ที่ยังไม่ติด ssl ที่ address bar ใช้ระบบสมาชิกป้องกัน spam อย่าเปิดให้ผู้ใช้ทั่วไปส่งข้อมูลมาที่เว็บไซต์ได้ง่ายเกินไป ควรมีระบบสมาชิกเพื่อกรองผู้ใช้ได้ระดับหนึ่งในการส่งข้อมูลมาเดี๋ยวนี้มี social login ให้ใช้มากมาย เช่น google, microsoft, twitter, facebookใช้ social login มาช่วยให้การสมัตรสมาชิก การลงชื่อเข้าใช้ทำได้ง่ายขึ้นไม่จำเป็นต้องระบุหรือเก็บรหัสผ่านผู้ใช้ไว้ ผู้ใช้ก็ไม่ต้องจำรหัสผ่านเพิ่ม เลือก block สมาชิกที่ใช้งานไม่พึ่งประสงค์ ไม่ใช่ลบทิ้ง เพราะเดี๋ยวก็ใช้ข้อมลเดิมมาสัมครสมาชิกได้อีก Monitor ข้อมูลในฐานข้อมูลบ้าง จัดทำ หรือหา tool มาคอย monitor ว่าเกิดอะไรขึ้นในเว็บไซต์บ้างเช่น วันนี้ทำไมคนสมัครสมาชิกเข้ามาเยอะจัง ใช้คนจริงหรือเปล่ามี comment อะไรใหม่บ้าง เป็น spam หรือเปล่าตั้งข้อสงสัยว่าทำไมข้อูลตารางนี้ เยอะผิดปกติ เปลี่ยน path admin และตั้ง password ให้ยากขึ้น ยกกรณี wordpress ที่ path admin จะเป็น wp-adminไฟล์ config ก็จะชื่อว่า config.phpให้เปลี่ยนเป็น path หรือไฟล์อื่น เพื่อป้องกันโปรแกรมพวก automation ต่างๆที่จะยิง malware มาใส่ โดยอาศัยโครงสร้างต้นแบบมาใช้เปลี่ยน username password เป็นชื่ออื่นบ้างที่ไม่ใช่Admin 1234 สำหรับข้อมูลสำคัญลองใช้ Google Authenticator ด้วยระบบ login 2 ชั้นจะช่วยป้องกันการเข้าเป็น admin แบบเดิมที่ใช้แค่ userPassword ก็เข้าใช้งานได้แล้วเปลี่ยนมาเป็นต้องยืนยันด้วย google authenticator ด้วย ลอง scan web ด้วย SQLMAP ตรวจสอบความเสี่ยง ทำการ backup ไฟล์เป็นประจำหรือยัง มีชุด backup ที่สามารถย้อนไปยังข้อมูลที่ไม่เสียหาย น้อยที่สุดหรือยัง ตรวจสอบ sourcecode เป็นประจำว่ามีสิงแปลกปลองหรือไม่ เข้าไปดูเว็บไซต์ของตัวเองทุกวัน ดูสถิติเว็บไซต์เพื่อหาข้อบ่งชี้ว่ามีความผิดปกติ ดูฐานข้อมูล หรือหา tool สำหรับหาความผิดปกติ มีระบบแจ้งเตือนความผิดปกติ ตรวจสอบไฟล์บน server หาข้อมูลขยะ หรือ zip file ที่ไม่จำเป็น ฟอร์มต่างๆมีการติดตั้ง recaptcha ป้องกัน spam หรือยัง การเปลี่ยน path file หรือทำ directory protection ทำหรือยัง รหัสผ่านสำหรับ admin เข้าระบบยากพอหรือยัง เปิดใช้การ login 2 ชั้นด้วย Google Authenticator หรือยัง ทดสอบการทำงานของเว็บไซต์ เช่นลอง upload file แปลกๆ เว็บเรามีการติดตั้ง SSL หรือยัง ลองหา tool มาเจาะเว็บไซต์อย่าง SQLMap มาทดสอบระบบดู การจำกัดสิทธิ์เข้าถึง resource ด้วย htaccess ได้ทำบ้างหรือยัง Update sourcecode อยู่เสมอ