Tags:
Node Thumbnail

ทีมความปลอดภัยของกูเกิลแจ้งบั๊กใน ntpd รุ่นก่อนหน้า 4.2.8 (ที่เพิ่งออกมาเมื่อวันที่ 19 ธันวาคมที่ผ่านมา) ทุกรุ่น มีบั๊กความปลอดภัยสำคัญคือแฮกเกอร์สามารถยิงโค้ดเข้ามารันในเครื่องที่รัน ntpd อยู่ได้

ICS-CERT ไม่ได้ให้รายละเอียดของบั๊กทั้งหมด โดยการแจ้งเตือนแจ้งเป็นกลุ่มของบั๊ก ได้แก่

  • CVE-2014-9293 ปัญหาของการสร้างเลขสุ่มในกรณีที่ไม่มีไฟล์กุญแจ
  • CVE-2014-9294 ปัญหาการสร้างเลขสุ่มเนื่องจากการใช้ค่าเริ่มต้นที่อ่อนแอ
  • CVE-2014-9295 การรันโค้ดจากเครื่องรีโมตที่ยิงโค้ดเข้ามา ผ่านบั๊ก stack overflow
  • CVE-2014-9296 ความผิดพลาดของโค้ดบางส่วนที่ไม่คืนค่าหลังทำงานเสร็จ

ทาง ICS-CERT ระบุว่าการโจมตีบั๊กนี้ใช้ความสามารถระดับต่ำ โดยคะแนนความร้ายแรงตามมาตรฐาน CVSS อยู่ที่ 7.3 ดังนั้นควรรีบอัพเดตหรืออย่างน้อยๆ ก็ปิดไม่ให้โลกภายนอกเข้าถึง ntpd กันได้

ทาง Theo de Raadt ผู้ดูแลโครงการ OpenBSD ออกมาระบุว่าซอฟต์แวร์ OpenNTPD ไม่มีปัญหานี้เพราะเขียนซอฟต์แวร์ขึ้นใหม่ทั้งหมด มีการป้องกันที่ดี โค้ดเขียนด้วยแนวทางที่ดีที่สุดเท่าที่รู้กันในยุคใหม่ โดยตัวโค้ดมีความยาวไม่ถึง 5,000 บรรทัดเทียบกับ ntpd ที่ยาวประมาณ 100,000 บรรทัด

ที่มา - ICS-CERT

Get latest news from Blognone

Comments

By: hisoft
ContributorWindows PhoneWindows
on 22 December 2014 - 22:04 #775127
hisoft's picture

ซฮฟต์แวร์ => ซอฟต์แวร์

By: Perl
ContributoriPhoneUbuntu
on 22 December 2014 - 22:54 #775139
Perl's picture

แนะนำให้ทำ Access List หรือ IP Filter สำหรับ ntpd บนอุปกรณ์ Network, Firewall ด้วยครับ

เคยโดนมากับตัว Juniper Firewall ร่วง โดนเล่นทาง xntpd เนี่ยหล่ะครับ

By: peat_psuwit
ContributorAndroidUbuntuWindows
on 23 December 2014 - 01:13 #775163

ntpd ที่อยู่ใน Linux ส่วนใหญ่เป็นตัวที่มีความเสี่ยงใช่ไหมครับ?

By: iCyLand
iPhoneAndroidRed HatUbuntu
on 23 December 2014 - 01:14 #775164
iCyLand's picture

ntpd ผมให้ sync server ภายในอย่างเดียวเลย ไม่ปล่อย public

By: Bank14
ContributorAndroidRed HatWindows
on 23 December 2014 - 10:31 #775265
Bank14's picture

บั๊ก stack overflow คืออะไรหรือครับ

By: overbid
ContributorAndroidRed HatUbuntu
on 23 December 2014 - 14:35 #775369 Reply to:775265

คือทำให้มีการเรียกใช้ฟังก์ชันจนเกินบัฟเฟอร์ครับ อาจทำให้เครื่องค้างได้เลย

By: Bank14
ContributorAndroidRed HatWindows
on 23 December 2014 - 15:37 #775400 Reply to:775369
Bank14's picture

ขอบคุณครับ

By: mr_tawan
ContributoriPhoneAndroidWindows
on 23 December 2014 - 17:37 #775428 Reply to:775369
mr_tawan's picture

ถ้าเกิน buffer จะเรียกว่า buffer overflow ครับ

ส่วน stack overflow เนี่ยเกิดจากการใช้ stack จนหมด คือในแต่ละ process จะได้รับพื้นที่หน่วยความจำส่วนหนึ่งสำหรับ stack (และอีกส่วนใหญ่ ๆ ใน Heap) ซึ่งปรกติ stack จะมีขนาดค่อนข้างเล็ก (บน Windows ก็ประมาณ 1MB, GCC ประมาณ 7MB เป็นต้น) ถ้ามีการใช้ตัวแปรประเภท stack มาก ๆ จะทำให้เกิด overflow ได้ครับ

ใน C++ หน่วยความจำจะถูกจองใน stack ยกเว้นการจองที่ใช้ new operator ที่จะจองใน Heap

การเกิด Overflow ที่ง่ายที่สุดคือการเขียน recursion ที่มีระดับความลึกเยอะ ๆ แบบ

int recur(const int& count) {
  int result = 0
  if(count<100000000) result = recur(count+1);
  else result =  count;

  return result;
}

  • 9tawan.net บล็อกส่วนตัวฮับ
By: Bank14
ContributorAndroidRed HatWindows
on 20 January 2015 - 12:07 #782888 Reply to:775428
Bank14's picture

ขอบคุณคุณ mr_tawan ครับ ถ้าเราไม่ได้เขียนภาษา low level พวก c, c++, assembly ก็จะไม่เจอปัญหาแบบพวกนี้ใช่ไหมครับ

By: tirakarn
AndroidUbuntuWindows
on 23 December 2014 - 12:46 #775338

CentOS 6.5 update ยังไงครับ
แล้วถ้าปิด service ไปก่อน จะมีผลเสียอะไรบ้างครับ

By: overbid
ContributorAndroidRed HatUbuntu
on 23 December 2014 - 14:29 #775368 Reply to:775338

yum update ntp

ถ้าปิดอาจทำให้เวลาของเครื่องที่ปิดไม่เท่ากันกับเครื่องอื่นครับ

By: tirakarn
AndroidUbuntuWindows
on 23 December 2014 - 16:47 #775435 Reply to:775368

ขอบคุณครับ