สรุปงาน JoomlaTalk #9 – Joomla! Security

เป็นงาน Joomla Talk ที่ยิ่งใหญ่อลังการณ์ที่สุดครั้งหนึ่ง เพราะปรกติจะเจอกันตาม co-working space คุยๆกันประมาณ 20 คน แต่ครั้งนี้ได้รับการสนับสนุนจาก สำนักงานพัฒนาธุรกรรมทางอิเล็คทรอนิค (สพธอ.) เป็นห้องสัมมนาอย่างดี ดูทางการสุดๆ เอาเป็นว่าก่อนที่กระแสจะหายแล้วก็จะลืมๆไปว่ามีการพูดคุยอะไรมาบ้าง เลยขออนุญาตเอาที่จดๆมาทันมาเขียนเก็บไว้ก่อน เพราะน่าจะใช้ได้อีกเรื่อยๆ ขออภัยหากเนื้อหาที่มีไม่ครบถ้วนและก็หวังว่าจะเป็นประโยชน์อะไรได้บ้าง

ช่วงที่ 1 : Being a part of Joomla World Conference team and how to build a good event website

Mr.Jerry ครับเห็นว่าบินมาจากเวียดนาม แวะมาแบ่งปันประสบการณ์การเข้าร่วมงาน Joomla World Conference แน่นอนว่าก็มาชวนๆกันไปครับ ใครพอจะมีกำลังก็ไปได้ แล้วก็เอาเว็บไซต์ของงานมาให้ดูรายละเอียดแล้วก็ function ต่างๆภายในเว็บไซต์

อันนี้เว็บของปีที่แล้วครับ http://conference.joomla.org/old/2015/
ส่วนอันนี้เป็นเว็บไซต์ของปีที่กำลังจะจัด https://conference.joomla.org/

แล้วก็แนะนำคุณลักษณะการออกแบบเว็บไซต์ event ที่ดีที่สำคัญดังนี้ครับ

  • Responsive (อันนี้คงไม่ต้องพูดถึง)
  • Call to action ปุ่มซื้อตั๋วที่ชัดเจน วัตถุประสงค์หลัก
  • สิ่งสำคัญคือต้องชักชวนและบอกเหตุผลที่ชัดเจนกับผู้เข้าชมครับว่า “ทำไมถึงต้องมางานนี้ให้ได้
  • สิ่งที่สำคัญรองลงมาคือการแสดงผลตารางการสัมมนาภายในซึ่งควรมีการจัดเรียงที่เข้าใจได้ง่าย แต่จะให้เหนือไปกว่านั้นได้ถ้าสามารถปรับปรุงข้อมูล และมีการ alert ได้ใน realtime ว่ามีการเปลี่ยนแปลงอะไรหรือไม หรือห้องไหน กลุ่มไหนกำลังพุดคุยอะไรกันอยู่
  • ข้อมูลหลักอื่นๆที่ต้องมีในเว็บไซต์ event มีอยู่ดังนี้ครับ
    • ข้อมูลของ Sponsor ซึ่ง Jerry บอกว่าสำคัญเพราะเค้าเป็นคนให้เงินเรามาจัด ของ joomla เองจะแบ่งด้วยครับว่าใครสนับสนุนค่าใช้จ่ายในส่วนนไหน บริษัทสนับสนุนด้านสถานที่ บางบริษัทสนับสนุนด้านอาหารและเครื่องดื่ม บางบริษัทสนับสนุนด้านอุปกรณ์สำหรับการ demo technology อะไรประมาณนี้
    • ข้อมูลอื่นๆเกี่ยวกับการจองตั๋วเครื่องบิน ที่พัก สิ่งอำนวยความสะดวก หรือสถานที่ท่องเที่ยวใกล้เคียง ก็ควรจะมีการแนะนำอยู่ในเว็บไซต์ด้วย ถึงแม้จะไม่เกี่ยวกับงานโดยตรง แต่ก็สามารถช่วยให้ผู้เข้าชม มีความสะดวกสบายและจัดการตารางเวลาตัวเองได้ง่ายขึ้นครับ

ช่วงที่ 2 : ล้อมวงคุย หัวข้อ “Joomla! Security Guideline แนวทางการบริหารจัดการความปลอดภัยเว็บไซต์ Joomla!”

เรียกได้ว่าเป็นช่วง highlight ของงานก็ไม่น่าจะผิดครับโดยวิทยากรแต่ละท่านจะสลับกันขึ้นมาแบ่งปันข้อมูล แล้วก็เสวนาถามตอบกันไปครับ

  • ในบรรดา opensource CMS อันดับหนึ่งคือ WordPress รองลงมาก็คือ Joomla ครับ
  • Joomla ในปัจจุบันอยู่ที่เวอร์ชั่น 3.4.8 แต่ก็ยังคงมีอีกหลายๆเว็บไซต์ที่ยังคงใช้งานเวอร์ชั่นเก่า 1.5 หรือ 2.5 อยู่
  • เว็บไซต์ที่ยังใช้ Joomla version ก่อน 3 ควรจะอัพเดทครับ เพราะไม่มีการอัพเดทด้านความปลอดภัยแล้ว
  • จะอัพเดทด้วยวิธีไหนก็ต้องถามก่อนครับว่ามีงบแค่ไหน แล้วจะไมเกรดมาเป็นเวอร์ชั่นอะไร (3.4.8 เถอะครับ)
    – จาก 1.5 ต้องใช้เครื่องมือช่วยในการ migrate ครับ (ส่วนตัวแล้วเคยใช้ jUpgade)
    – จาก 2.5 ง่ายกว่าเพราะสามารถอัพเดทจากตัว update ของ joomla ได้เลย
  • ทำไมต้องอัพเดท หรือไมเกรดมาเป็น joomla3
    1. version ก่อนหน้าจะไม่มีการปรับปรุงใดใดออกมาแล้ว (ต่อให้มีบัคหรือช่องโหว่ก็เถอะ)
    2. extension ต่างๆก็มักจะแก้ไขตัวที่ใช้งานกับ joomla version ล่าสุดก่อน
    3. Security Release หรือ Update เพื่อปิดช่องโหว่ที่ถูกค้นพบจะออกมาเร็วๆและถี่มากสำหรับ joomla version ล่าสุด
  • เวลาที่เหมาะสมที่สุดในการเข้าเจาะ/โจมตีระบบ คือช่วง 1500 ถึง 1600 ของวันศุกร์ เพราะนั่นหมายความว่าการติดต่อประสานงานกับผู้มีอำนาจตัดสินใจจะทำได้ยาก โดยเฉพาะเว็บต้นทางที่อยู่ต่างประเทศ
  • การแก้ไขอีกทางที่ช่วยได้คือไปทางอ้อมๆ เช่นประกาศในกลุ่ม community (หรือพันทิพ ฮา) ว่าเกิดปัญหาขึ้นกับเว็บไซต์นั้นๆ หรือมีการแจ้ง alert จาก ThaiCERT ก็เป็นอีกทางหนึ่ง
  • Joomla Website ถูกโจมตีได้จากส่วนไหนบ้าง จริงๆก็แทบจะทุกส่วนของ webserver architecture ล่ะ
    1. Web Server
    2. PHP
    3. Application (ตัว Joomla เอง)
    4. Client (ตัว user นั่นแหละ)
  • เตรียมพร้อมก่อนการถูก Hacked / Defaced
    1. มีการทำ Back-up ไว้หรือไม่ มีการจัดเก็บเป็น Version ระบุวันที่ที่ได้ทำการ back-up ไว้หรือเปล่า
    2. มีการทำ list ของ Extension ที่เราได้ติดตั้งเอาไว้ในเว็บไซต์ของเราหรือไม่ last update เมื่อไหร่ เป็น version อะไร
    3. มีการแอบสอดส่องดูแล Last modified date ของไฟล์ต่างๆบน server ของเราหรือไม่
    4. มีการใช้งานเครื่องมือต่างๆที่ช่วยเหลือในการตรวจสอบการโจมตีเว็บไซต์ของเราหรือเปล่า
  • เมื่อถูก Hacked / Defaced ต้องทำอย่างไร
    1. Down ระบบก่อนเป็นอย่างแรก อาจจะทำหน้า html “อยู่ในระหว่างปรับปรุงระบบ” ขึ้นแสดงผลไปก่อน
    2. การตัดการเชื่อมต่อใดใด ระหว่าง web server เพื่อป้องกันคำสั่งจาก remote access หรือการส่งข้อมูลออกจากฐานข้อมูล
    3. ถ้าทำได้ให้เก็บเว็บที่โดน hacked เอาไว้ก่อนเพื่อหาสาเหตุว่าเกิดจากอะไร
    4. Restore ระบบจาก back-up ที่มีอยู่ (ถ้าเตรียมพร้อมไว้ก็จะมี back-up)
    5. ตรวจสอบว่า clean ดีแล้วก็นำขึ้นใช้งานอีกครั้งหนึ่ง (ถ้าทราบเหตุจากข้อ 3 ก็ทำการแก้ไขซะก่อนขึ้นใหม่)
  • อนาคตของ Joomla ที่เกี่ยวข้องกับ Security
    1. จะมีการปรับ algoritum ในการ Excrypt ข้อมูล
    2. มีการสนับสนุนระบบ Authen 2 ชั้น (ตอนนี้ก็มี แต่อาจจะใช้งานง่ายขึ้น หลากหลายขึ้น)
    3. Extension ใหม่ๆที่กำลังจะออกมาช่วยในการ Monitor/Protection ในส่วนหลังบ้านของ Joomla

เครื่องมือต่างๆที่แนะนำในการบริหารจัดการ Joomla Security

  • Forum Post Assistant ไว้สำหรับดึงข้อมูลเกี่ยวกับเว็บไซต์เราเวลาจะขอคำแนะนำกับ Joomla Community
    https://github.com/ForumPostAssistant
  • Joomla Anti-Malware Scan Script (JAMSS) เป็นสคริปสำหรับ scan โค้ทว่ามีส่วนไหนที่ทำตัวเหมือนเป็น spam
    https://github.com/btoplak/Joomla-Anti-Malware-Scan-Script–JAMSS
  • เครื่องมือต่างๆสำหรับการทดสอบและพัฒนา Joomla บน GitHub
    https://github.com/joomlatools/
    https://github.com/joomlatools/joomlatools-vagrant
  • Google Webmaster Tools เป็นเครื่องมือในแบบ online ของ google โดยจะทำการ verified ความเป็นเจ้าของเว็บไซต์ และเชื่อมโยงพฤติกรรมการใช้งานเว็บไซต์ของเราเข้ากับการเก็บข้อมูลของ google ซึ่งจะคอยช่วยเรา monitor อีกทางหนึ่ง
  • Joomla Security Extension มีส่วนขยายที่เกี่ยวข้องกับ Joomla Security มากมาย แต่ที่แนะนำและฟรีก็ประมาณนี้ครับ
    • Akeeba Backup : ตัวช่วย Back-up เพียงแค่คลิ๊กเดียว (ส่วนตัวก็ใช้อยู่)
    • Admin Tool Core : เครื่องมือช่วย mornitor การเรียกเข้าใช้งานเว็บไซต์ joomla
    • JHackGuard : คอยตรวจสอบ request ต่างๆ และการเข้าใช้งานว่ามีใครพยายามจะ hack เว็บเราหรือเปล่า

ประเด็นการทำงานร่วมกันระหว่าง Webmaster กับ ทีม Security ภายในองค์กร

  • สำหรับเว็บไซต์ของหน่วยงานใหญ่ๆ มักจะมีทีม IT Security หรือ CERT คอยตรวจสอบ Application ต่างๆอีกชั้นหนึ่ง
  • ลักษณะการบริหารจัดการต้องอยู่ในรูปแบบ Risk Base ไม่ใช่เอาผลการ scan มาใช้ตัดสินใจโดยตรง Program report เป็นแค่ข้อมูลดิบ ไม่ใช่สำหรับการตัดสินใจ
  • ผู้ตรวจสอบต้องมีการวิเคราะห์และประเมิณผลกระทบของแต่ละช่องโหว่
  • ช่องโหว่ส่วนใหญ่เป็น False Positive
  • ผู้ตรวจสอบต้องสามารถวิเคราะห์ผลกระทบของแต่ละช่องโหว่ได้ บางช่องโหว่แค่รูปไม่ขึ้น บางช่องโหว่ทำให้ล่มทั้งระบบ
  • ผู้ตรวจสอบต้องสามารถประเมิณความเป็นจริงจากการตรวจสอบได้ว่าสามารถทำได้จริงหรือไม่ เช่น สามารถ bruteforce ได้แต่ใช้เวลา 200 ปี หรือสามารถ injection ได้แต่มีการป้องกันอยู่แล้วใน Network Layer กรณีเหล่านี้จะนำเอามาคิดหรือไม่
  • ผู้ตรวจสอบจะต้องประเมิณความเสี่ยงจากรูปแบบการป้องกันอื่นๆได้ เพราะเราสามารถป้องกันการโจมตีได้จาก layer อื่นๆ เช่นการจัดการ Access Control อีกชั้นจาก OS การนำเอา web application firewall มาครอบอีกชั้นหนึ่ง ก็สามารถทำให้ความเสี่ยงจากประเด็นที่ถูกรายงานจากโปรแกรมเกือบเป็นศูนย์ได้

slide ของคุณอัครวุฒิ ดูได้ที่ลิงค์นี้ครับ
http://www.slideshare.net/akarawuth/joomlatalk9-joomla-security
ช่วงที่ 3 : ประสบการณ์การบริหารจัดการ เว็บ อปท.1,000 ไซต์ กับวิธีป้องกัน

อ.ภาณุภณ (อ.เก่ง) เป็นผู้ดูแลโปรเจค เว็บไซต์องค์การปกครองส่วนท้องถิ่น (อปท.) 1,000 เว็บไซต์ซึ่งใช้ Joomla เป็นเครื่องมือหลักในการบริหารจัดการครับ เว็บไซต์ของโปรเจคคือ http://localgov.in.th/ โดยมาเล่าให้ฟังในประเด็นการจัดการเกี่ยวกับ Security ส่วนใหญ่จะเป็นในฝั่ง server ครับ

  • ตัวโปรเจคใช้บริการของ Cloudflare ซึ่งมาพร้อมกับเครื่องมือในการตรวจสอบและป้องกันมาด้วย
  • การจัดการเว็บไซต์ joomla ทีละหลายๆเว็บจะใช้งานผ่าน CLI Joomla (Command Line Interface) โดยจะ run script ที่เขียนขึ้นเองในการตรวจสอบ ไฟล์แปลกประหลาด หรือ malware ที่แอบอยู่ใน server
  • ข้อมูลไฟล์แปลกประหลาดที่อันตราย อ้างอิงจากเว็บไซต์ Zone-h
  • ใช้บริการการ scan website ของ Sucuri.net ซึ่งส่วนนี้มีค่าใช้จ่ายพอสมควร
  • แนะนำ Clamav และ LMD (linux malware detect) ซึ่งเป็น OpenSource ใช้สำหรับ Scan Server ครับ และก็ต้องหมั่น update signature และ scan เป็นประจำด้วย
  • สุดท้ายแนะนำการตั้งค่า PHP ที่สำคัญ ห้ามเปิดไว้ สามารถตรวจสอบได้จาก System Information ในส่วนของ Joomla Administrator ครับ
    allow_url_fopen = off
    allow_url_include = off

————-
ปิดงานครับ
————-
หวังว่าจะเป็นประโยชน์บ้างไม่มากก็น้อยครับ

 

== อ้างอิง : agenda ====================================
JoomlaTalk #9 – แนวทางการบริหารจัดการความปลอดภัยเว็บไซต์ Joomla!
=================================================

Being a part of Joomla World Conference team and how to build a good event website
Mr. Jerry Christensen Project Manager – redWEB redComponent.com

ล้อมวงคุย หัวข้อ “Joomla! Security Guideline แนวทางการบริหารจัดการความปลอดภัยเว็บไซต์ Joomla!”

  • อัครวุฒิ ตำราเรียง Joomla Bug Squad – joomla.org อุปนายกสมาคมศึกษาและพัฒนาโอเพ่นซอร์ส (OSEDA)
  • ศุภชัย แต่สกุล Joomla Translation Team – joomla.org Senior Project Manager – Marvelic Engine Co.,Ltd.
  • ดร.สรณันท์ จิวะสุรัตน์ ผู้อำนวยการสำนักวิจัยและพัฒนา สพธอ.
  • คุณ อภิชาติ จงเจริญ ผู้อำนวยการฝ่าย IT Infrastructure and Network ธนาคารเกียรตินาคิน
  • คุณ พรพรหม ประภากิตติกุล ผู้ช่วยผู้จัดการ สำนักความมั่นคงปลอดภัย สพธอ.

ประสบการณ์การบริหารจัดการ เว็บ อปท.1,000 ไซต์ กับวิธีป้องกัน
คุณ ภาณุภณ พสุชัยสกุล บรรณาธิการบริหาร นิตยสารโอเพนซอร์สทูเดย์

ดำเนินรายการโดย
คุณกั้ง ผู้ก่อตั้งเว็บไซต์ siampod.com