Monthly Archives March 2009

No phone for me

ผมอยากได้ netbook แต่ผมไม่ได้ต้องการ netbook… ทั้งหมดทั้งมวลที่ผมต้องการคืออุปกรณ์ขนาดเล็กที่สุดที่ผมจะพิมพ์งานได้ มันไม่ต้องใช้งาน Word รุ่นใดๆ ไม่ต้องจอใหญ่ พลังประมวลผลสูง แต่ผมต้องการ full sized keyboard… เนื่องจากไม่ได้ต้องการอะไรมากไปกว่านั้น และการซื้อ netbook ที่คีย์บอร์ดเต็มก็ดูจะแพงบรรลัยสำหรับผม ทางเลือกที่ดีกว่าคือ… Apple Wireless Keyboard ข่าวดีคือมันต่อกับ Symbian ได้ผ่านทาง Driver ของ Nokia ข่าวร้ายคือมันเปลี่ยน Layout ไม่ได้ นั่นหมายถึงมันพิมพ์ภาษาไทยไม่ได้เลย จากการหาข้อมูลใน Windows Mobile ไม่พบข้อมูลใดๆ เพิ่มเติมในเรื่องนี้ ส่วนใน Android นั้นยังเป็นวุ้นอยู่ใน Cupcake ซื้อ N810 มาลง Jaunty ดีกว่าวุ๊ย….

Address Space Layout Randomization

วันนี้เจอเรื่องประหลาดที่ไม่ค่อยได้เจอเยอะ เอามาจดเอาไว้ ปัญหาสำคัญในเรื่องของความปลอดภัยของซอฟต์แวร์คือเวลาที่โปรแกรมเมอร์ทำงานพลาด แล้วปล่อยให้แฮกเกอร์เอาโค้ดอื่นๆ มารันในซอฟต์แวร์ตัวเองได้ เช่นบั๊ก Buffer Overflow แฮกเกอร์มักหาทางไปต่อด้วยการหาคำสั่งอื่นๆ โดยเฉพาะพวก System Call ที่สร้างความเสียหายให้กับระบบ หรือเปิดช่องโหว่อื่นๆ ขึ้นมาเรื่อยๆ ง่ายๆ เช่นการสั่ง system() นั้นหมายความว่าแฮกเกอร์จะทำอะไรก็ได้เท่าที่ user ที่รันโปรแกรมนั้นทำได้ ตาม Murphy’s Law แล้ว โปรแกรมที่มีบั๊กนั้นมักจะรันใน root เสมอ ในดอสนั้นปัญหาอย่างนี้เกิดง่ายมาก เพราะว่าตำแหน่งของ System Call ต่างๆ นั้นตายตัว ถ้าอ่านคู่มือของ OS มาเยอะๆ ก็จะรู้ทันทีว่าควร Jump ไปยัง Address ไหนเพื่อเรียก System Call อะไร เรียกว่าเจาะเข้า process ได้ปุ๊บก็เรียบร้อยกันไปเลย แล้วอย่างนั้นจะทำยังไงดี ตอบแบบกำปั้นทุบดินก็คงเป็นว่าไปบอกโปรแกรมเมอร์ให้เขียนโปรแกรมไม่มีบั๊ก เหมือนบอกว่านักการเมืองไม่โกงเมื่อใหร่แล้วบ้านเมืองจะดีเอง ในทางวิศวกรรมมันมีทางออกที่มีปัญญามากกว่านั้น คือการลดความเสียหายเมื่อแฮกเกอร์เจาะเข้ามาในตัว process ได้แล้วนั้น [...]