Shadowserver Foundation หน่วยงานไม่หวังผลกำไรด้านความปลอดภัยไซเบอร์ ทดลองสแกนพอร์ต MySQL ของทั้งโลก (ตรวจสอบเฉพาะพอร์ต 3306/TCP ที่เป็นค่าดีฟอลต์) และพบว่ามีเซิร์ฟเวอร์ MySQL ที่สามารถเข้าถึงได้ (accessible คือตอบสถานะกลับมา แต่ไม่ได้ลองล็อกอิน) จำนวน 3.6 ล้านเครื่อง แบ่งเป็น IPv4 2.3 ล้านเครื่อง และ IPv6 อีก 1.3 ล้านเครื่อง
หากดูตัวเลขแยกรายประเทศ เอาเฉพาะ IPv4 สหรัฐอเมริกามีเซิร์ฟเวอร์ MySQL ถูกเข้าถึงได้มากที่สุด 7.4 แสนเครื่อง ตามด้วยจีน 2.96 แสนเครื่อง ส่วนประเทศไทยก็อยู่ในอันดับต้นๆ คือมี 1 หมื่นเครื่อง ถ้าดูของ IPv6 สหรัฐอเมริกามี 4.6 แสนเครื่อง เนเธอร์แลนด์ 2.96 แสนเครื่อง และสิงคโปร์ 2.18 แสนเครื่อง (ไทยมี 136 เครื่อง IPv6)
Shadowserver Foundation บอกว่าตามปกติแล้วคงไม่ค่อยมีใครตั้งเซิร์ฟเวอร์ MySQL เพื่อรอการเชื่อมต่อจากอินเทอร์เน็ตโดยตรง แปลว่าเครื่องจำนวน 3.6 ล้านเครื่องนี้ถูกละเลยเครื่องความปลอดภัย และมีความเสี่ยงสูงที่จะถูกโจมตีได้ ทางมูลนิธิจึงแนะนำให้แอดมิน MySQL เร่งเพิ่มมาตรการความปลอดภัย เช่น คัดกรองทราฟฟิกที่เข้าถึงได้ หรือเพิ่มระบบยืนยันตัวตนที่แข็งแกร่งขึ้น
ที่มา - Shadowserver Foundation
Comments
port 3306 นี้ไม่เท่าไร
port 22 นี้น่ากลัวกว่า
ปิด password login + fail2ban เอาไว้ ความเสี่ยงน่าจะแทบหมดนะครับ ช่องโหว่ก่อนล็อกอินนี่แทบไม่ค่อยเห็นเท่าไหร่ (แต่เปิด auto update อีกชั้นก็ดี)
lewcpe.com, @wasonliw
บางทีมันก็ติดปัญหาที่ไม่ใช่เทคนิคครับ
เช่น อย่าง server ทีผมใช้เป็นแบบ self host ซื้อ hardware, software, support ให้ provider ดูแลให้
ทำให้ผมไม่รู้ด้วยซ้ำว่าใครใช้ user อะไรบ้าง
อยากจะปิด password access ก็คุยกันไม่ค่อยรู้เรื่อง ไม่ได้ native English ทั้งคู่และ English เขาห่วยกว่าผมอีก
ทุกวันนี้ก็ยังโดน brute force อยู่
จะเปลี่ยน port ก็ไม่ช่วยอะไร มันก็ scan จนหาเจอ
แต่ยังดีที่มี fail2ban ก็พอช่วยได้
เท่าที่เห็นเวลาเจอเคสแบบนี้ (ซึ่งแฟร์ๆ มันก็มีเรื่อยๆ จริงๆ เห็นบางที่ยัง deploy app ผ่าน FTP อยู่) ที่เจอคือบังคับ lock source IP เลย
ใช้เงินแก้ปัญหา บังคับ vendor ซื้อ public IP ซึ่งดันทำกันได้แฮะ.. ทำไมมันง่ายกว่าฝึกให้ใช้ scp + key login ไม่รู้
lewcpe.com, @wasonliw
ปกติเอาไว้เทส data บน server กรณีเช่า host
IPv6 นี่เค้าไปสแกนหาด้วยท่าไหนถึงเจอเยอะได้ขนาดนั้นนะครับ 😨
อัปเดต - ตอบตัวเอง
เปิดไว้เวลา dev ครับ พอ golive ย้าย server ไปที่อื่น แล้วกำหนด ip ที่เข้าได้เอา
ทำไมไม่ใช้ Private IP กันนะ
หรืออย่างน้อยก็ ssh tunnel เถอะ
นวก.คอมว่าไงครับ ออกมา defend ตัวเองบ้างว่าวางระบบยังไง
ไม่ว่างครับ กำลังเขียนรายงานโครงการ กับตรวจรับพัสดุ ถ้าไม่รีบเคลียร์ อีก ๒ เดือน จะเจองานกำหนดราคากลางกับตรวจรับอีกล็อตใหญ่
ทั้งนี้ เรื่องการวางระบบ จะขออนุมัติจัดจ้างตรวจสอบและปรับปรุงระบบต่อไป
อนึ่ง การจัดซื้อครุภัณฑ์คอมพิวเตอร์ ต้องเขียนโครงการเพื่อขออนุมัติจาก CIO ระดับกระทรวง หากไม่สามารถดำเนินการได้ตามห่วงเวลา งบประมาณอาจตกไป ซึ่งเป็นความบกพร่องของผู้ปฏิบัติ
จึงเรียนมาเพื่อโปรดทราบ
เปิด Remote ผ่าน Public IP สินะ
mysql มันมี password login แต่แรกอยู่แล้ว ความเสี่ยงก็จะเหลือแค่เรื่องรหัสผ่านรั่ว/bruteforce ... ซึ่งก็ไม่น้อยอยู่ดี 555
ไล่ password ตาม tutorial ยอดนิยมทั้งหลาย น่าจะได้เกิน 25%
lewcpe.com, @wasonliw
ตามปกติแล้วคงไม่ค่อยมีใครตั้งเซิร์ฟเวอร์ MySQL เพื่อรอการเชื่อมต่อจากอินเทอร์เน็ตโดยตรง
อันนี้หมายถึง
เครื่อง Server ที่ลง Database สามารถเข้าออกเน็ตได้หรอครับ?
หรือผมเข้าใจอะไรผิดถูกบ้างครับ?
วาลผู้รู้ช่วยตอบหน่อยนะครับ
จะได้แก้ไขถูก ขอบคุณครับ
คือปกติทั่วไปมักจะ listening จาก loopback 127.0.0.1(default) กันหน่ะครับ หรืออย่างมากก็ listening จาก local/private ip เช่น 172.16.x, 10.10.x หรือ 198.168.x
ส่วนกรณีตามข่าวคือเปิด listening จาก all ip(0.0.0.0) เลย ดังนั้น public ip จาก internet สามารถเข้ามาเชื่อมต่อได้ครับ
ส่วนการเช็คให้เช็คว่า bind-address ใน config เป็นค่าอะไรครับ
Russia is just nazi who accuse the others for being nazi.
someone once said : ผมก็ด่าของผมอยู่นะ :)