เสวนา พรบ.ว่าด้วยการกระทำความผิดเกียวกับคอมพิวเตอร์

Public September 26th, 2008

เมื่อวานนี้ (25 กันยายน 2551) ในงานมหกรรมซอฟต์แวร์โอเพนซอร์สแห่งชาติครั้งที่ 8 ซึ่งจัดพร้อมกับงานประชุมวิชาการประจำปีของเนคเทค 2008 ผมได้ทำหน้าที่เป็นพิธีกรดำเนินรายการเสวนา พรบ.ว่าด้วยการกระทำความผิดเกี่ยวกับคอมพิวเตอร์ และ Central Log Server ซึ่งมีแขกรับเชิญ 3 ท่านคือ ร.ต.ท.ดรัณ จาดเจริญ สว.กลุ่มงานตรวจสอบฯ ศูนย์ตรวจสอบและวิเคราะห์การกระทำความผิดทางเทคโนโลยี สำนักงานตำรวจแห่งชาติ คุณสถาพร สอนเสนา จากกลุ่มงานนิติกร สำนักงานปลัดกระทรวงเทคโนโลยีสารสนเทศและการสื่อสาร และคุณสว่างพงศ์ หมวดเพชร จากบริษัทไอทีเบเกอรี่ เป็นหนึ่งในผู้ที่ได้พัฒนาผลิตภัณฑ์และจัดอบรมการทำ Central Log Server ด้วยตนเอง

โดยที่ผมเองก็กล่าวได้ว่ายังขาดความรู้ความเข้าใจการจัดเก็บล็อกให้ถูกต้อง คืออ่านในพรบ.แล้วก็ยังติดใจหลายประเด็น ก็ได้โอกาสซักถามในประเด็นต่าง ๆ ที่ตนสงสัย และเพื่อกันลืม และเป็นข้อมูลให้ผู้อื่นได้รับทราบด้วย ขอลิสต์เป็นประเด็นไปดังนี้

  • ทำไมต้องมี พรบ.นี้ - เพราะการกระทำความผิดเกี่ยวกับคอมพิวเตอร์มีลักษณะที่ต่างไปจากการกระทำความผิดอื่น ๆ เช่น ผู้กระทำความผิดสามารถทำในที่ลับไม่ให้ใครเห็นได้อย่างง่ายดาย ไม่ต้องเปิดเผยตัว พฤติกรรมการกระทำก็ไม่ชัดเจนเหมือนความผิดอื่น ๆ เช่น การขโมยปากกา ก็คือการนำเอาปากกาของผู้อื่นไปเป็นของของตน ปากกาของผู้เสียหาย ก็เห็นได้ขัดเจนว่าไปอยู่กับผู้กระทำความผิด ในขณะที่การขโมยข้อมูลในคอมพิวเตอร์นั้น ข้อมูลเดิมยังอยู่ แต่ผู้กระทำความผิดได้ลักลอบสำเนาออกไปด้วยวิธีกาาต่าง ๆ โดยหาหลักฐานแทบไม่ได้เลย การมีพรบ.นี้ทำให้การกระทำดังกล่าวสามารถระบุความผิดได้ชัดเจนยิ่งขึ้น
  • ทำไมต้องเก็บข้อมูลการจราจรทางคอมพิวเตอร์ - เพื่อใช้ประโยชน์ในการสืบสวนสอบสวน และใช้เป็นพยานหลักฐานการเอาผิด ถ้าไม่เก็บ ก็สืบหาผู้กระทำความผิดไม่ได้ จับได้ก็ไม่มีหลักฐาน
  • อะไรบ้างที่จะถูกใช้เป็นหลักฐานในการเอาผิด - 1.เนื้อหา เช่นภาพที่อัพโหลดขึ้นเว็บ ข้อความที่โพสต์ 2. ข้อมูลการจราจรทางคอมพิวเตอร์ 3. การระบุตัวตน เช่น ณ เวลาดังกล่าว ใครเป็นผู้ใช้คอมพิวเตอร์ที่เป็นหมายเลขไอพีดังกล่าว ซึ่งการเก็บเวลาที่แม่นยำตรงกัน จะช่วยให้ระบุตัวตนได้ถูกต้อง
  • IT Policy - ในองค์กรต้องกำหนด IT Policy ให้ชัดเจนเพื่อให้ผู้ปฏิบัติงานมีความระมัดระวังการใช้คอมพิวเตอร์ที่ปลอดภัยขึ้น เช่นการใช้งานคอมพิวเตอร์ที่มีการใช้ร่วมกัน เมื่อใช้เสร็จต้องล็อกเอาท์ทุกครั้ง เพื่อป้องกันคนอื่นสวมรอยใช้งานในชื่อเรา เป็นต้น
  • ถ้าไม่มีเหตุการกระทำความผิดฯ จะมีเจ้าหน้าที่เข้ามาตรวจสอบการเก็บข้อมูลการจราจรทางคอมพิวเตอร์ และฟ้องเอาผิดหรือไม่ - ไม่มี ถ้าเราไม่เก็บข้อมูลการจราจรทางคอมพิวเตอร์ เจ้าหน้าที่จะไม่ทราบเลย จนกระทั่งมีเหตุการกระทำความผิดฯ เกิดขึ้น แล้วเจ้าหน้าที่ขอเรียกดูข้อมูลจากเรา แล้วเราไม่มีให้ เราก็มีความผิดทันที (ประเด็นนี้ยังติดใจอยู่ เพราะเหมือนว่าจริง ๆ แล้วเจ้าหน้าที่มีเพียงไม่กี่คน ไม่ว่างที่จะไปไล่ตรวจสอบด้วยอีกเหตุหนึ่ง)
  • ผลิตภัณฑ์สำหรับจัดเก็บข้อมูลจราจรทางคอมพิวเตอร์ที่อ้างว่าได้รับการรับรองจากกระทรวงเทคโนโลยีสารสนเทศและการสื่อสาร เป็นเช่นนั้นจริงหรือไม่ - ไม่จริง กระทรวงฯ ไม่เคยรับรองและไม่มีนโยบายจะรับรองผลิตภัณฑ์จัดเก็บข้อมูลการจราจรทางคอมพิวเตอร์ใด ๆ ถ้ามีแสดงว่าแอบอ้างเพื่อประโยชน์ทางการค้า
  • แล้วจะทราบได้อย่างไรว่าผลิตภัณฑ์ฯ ดังกล่าว ทำงานได้ถูกต้องจริง - ให้อ้างอิงจาก พรบ.และประกาศที่เกี่ยวข้อง ว่าคุณสมบัติของผลิตภัณฑ์เป็นไปตาม พรบ.และประกาศหรือไม่ (ผู้ขายต้องรับรองผลิตภัณฑ์ตัวเอง ว่างั้นเถอะ)
  • จำเป็นต้องซื้อผลิตภัณฑ์ฯ หรือไม่ - ไม่จำเป็น สามารถทำเองได้โดยใช้เครื่องมือที่เป็นโอเพนซอร์สทั้งหมด โดยต้องลงทุนศึกษา หรือเข้าอบรมก็ทำได้ แต่ถ้าจะให้สะดวก จะใช้บริการจากผู้ให้บริการ ต่าง ๆ ก็ได้
  • การทำให้ข้อมูลการจราจรทางคอมพิวเตอร์เชื่อถือได้ ทำอย่างไร - ใน พรบ. ไม่ได้กำหนดว่าทำอย่างไร ขึ้นอยู่กับเทคนิคและความเหมาะสม เช่นการแยก Server กับ Central Log ออกจากกัน การ sign key ใน archive ของ log หรือแม้แต่เก็บ log ตามปกติแต่มีขั้นตอนระเบียบวิธีปฏิบัติที่เชื่อถือได้ว่าไม่มีการดัดแปลงแก้ไข
  • ในการสืบสวน หรือแสดงพยานหลักฐานในศาล จะมีการตรวจสอบหรือไม่ว่าข้อมูลดังกล่าวได้รับการจัดเก็บอย่างน่าเชื่อถือจริง - โดยปกติจะไม่ตรวจสอบ ถือว่าผู้จัดเก็บข้อมูลเป็นพยาน ไม่มีส่วนได้ส่วนเสียในการกระทำความผิด เมื่อแสดงพยานหลักฐานอย่างไร ตำรวจ และศาลจะเชื่อตามนั้น ยกเว้นมีเหตุอันเชื่อได้ว่า ผู้จัดเก็บข้อมูลดังกล่าว อาจจะเกี่ยวข้อง รู้เห็นเป็นใจ หรือมีส่วนได้ส่วนเสียกับการกระทำความผิดดังกล่าว หรือถูกสงสัยว่าเป็นผู้กระทำความผิดเสียเอง
  • การจัดเก็บข้อมูลการจราจรด้วยวิธี sniff สามารถใช้ได้หรือไม่ - ไม่แนะนำให้ใช้วิธีดังกล่าว เนื่องจากเสี่ยงต่อการขัดต่อมาตราอื่นบางมาตรา ซึ่งจะทำให้ไม่สามารถนำมาใช้เป็นพยานหลักฐานได้ และมีเทคนิคอื่น ๆ ที่ไม่ต้องใช้วิธีการ sniff
  • ร้านอินเทอร์เน็ตคาเฟ่ ควรจัดเก็บข้อมูลอย่างไร - 1. จัดเก็บข้อมูลจราจรทางคอมพิวเตอร์ตามปกติ (คือยังไงก็ต้องมี gateway ที่เก็บ log อยู่ดี) 2. ผู้ใช้บริการต้องแสดงบัตรให้เจ้าหน้าที่ลงบันทึกหมายเลขบัตร และบันทึกเวลาใช้งาน เครื่องที่ใช้ทุกครั้ง ชาวต่างชาติก็ต้องแสดงพาสปอร์ต
  • ทำไมร้านเน็ตฯ ถูกเพ่งเล็งเป็นพิเศษ - ร้านอินเทอร์เน็ตคาเฟ่เป็นสถานที่สาธารณะที่มีคนเข้าออกเยอะ ถ้าร้านไหนไม่เข้มงวดเรื่องการจัดเก็บข้อมูลจะเป็นแหล่งให้ผู้กระทำความผิดเลือกใช้เป็นที่ก่อเหตุได้
  • ประเด็น Free Wi-Fi - 1. Free Wi-Fi ควรมีการออกรหัสให้ผู้ใช้ที่มีการลงทะเบียนด้วยหมายเลขบัตรฯ เท่านั้น มิฉะนั้นจะเป็นแหล่งเอื้อให้กระทำความผิดได้ 2. ระวัง Free Wi-Fi ปลอม ที่แอบเปิดให้บริการเพื่อดักจับ ID และรหัสผ่าน โดยเฉพาะที่ตั้งชื่อเลียนแบบ Wi-Fi อื่น ๆ แถว ๆ นั้น

ฝากให้รับฟังไว้ครับ เพราะหลายประเด็นไม่ได้ระบุชัดเจนใน พรบ. ซึ่งอาจจะมีแนวทางปฏิบัติเปลี่ยนไปในอนาคตก็ได้

Tags: , , ,

Linux Virtualization

ลินุกซ์ September 19th, 2008

3-4 คืนมานี้สนุกกับการทดลองเล่นกับ virtualization เพราะมีโอกาสได้ลองกับ server ขนาด quadcore 2 CPU ก่อนนี้ใช้ Linux Vserver อยู่แล้ว และยังใช้งานจริงถึงปัจจุบัน และคิดว่าที่ดีกว่าคือ OpenVZ อย่างน้อยมันกำหนด quota ต่าง ๆ ได้ดีกว่า เช่น CPU, memory, disk quota สามารถสร้าง template ของ guest os ง่าย ดูแล้วเหมาะมากที่จะนำไปให้บริการ VPS

OpenVZ มีข้อดีแบบเดียวกับ Linux Vserver คือไม่ได้กันเนื้อที่ disk และ memory แยกออกมาจาก host OS แบบขาดเลยเหมือนอันอื่น แต่เป็นลักษณะการแชร์กัน เสมือนอยู่บนระบบเดียวกันนั่นแหละ disk image ก็ไม่ต้องสร้าง เก็บ quest OS ไว้ใน directory อันหนึ่ง ทำให้ disk space ก็แชร์กัน ซึ่งดู ๆ แล้วก็คล้าย ๆ กับการใช้ chroot เลย แต่มันมีอะไรลึกซื้งกว่านั้นเยอะ ข้อจำกัดของ Vserver กับ OpenVZ มีแค่ว่าต้องเป็น Linux ด้วยกันเท่านั้นเอง อาจจะต่าง distro กันได้ เรื่อง Vserver กับ OpenVZ ไว้จะเขียนโดยละเอียดอีกที

อีกอันที่สนุกมากคือ KVM ที่มีข้อดีตรงใช้ความสามารถของ virtualization technology ที่มีใน CPU รุ่นใหม่ ๆ ทั้ง Intel และ AMD ทำให้ทำงานได้เร็วมาก โดย KVM นั้นมีส่วนที่เป็น kernel module และส่วนที่เป็น user space ซึ่งอันหลักก็ต่อยอดมาจาก qemu ที่มีชื่อเสียงอยู่ก่อนแล้ว ถ้าใช้ qemu เป็น ก็ใช้ KVM ไม่ยากเลย ซึ่ง KVM ก็ทำให้เป็นไปได้ที่จะมี Windows Server รันอยู่ใน Linux Server อีกทีได้

เรื่องที่ยากหน่อยคือการทำ network interface bridge ซึ่งถึงตอนนี้ก็ยังทำไม่ได้ ลองอ่านจากในเน็ตหลาย ๆ ที่แล้ว เลยต้องเลี่ยงทำ network ภายใน แล้วใช้ iptables เปลี่ยนทางของข้อมูลแทน

ส่วน XEN นี่ยังไม่มีโอกาสได้ลองซักที ไว้ว่าง ๆ จะลองดูหน่อย

Tags: , , , ,

Installing Debian Etch with 256MB USB Memory Stick

Debian, Public, ลินุกซ์ July 1st, 2008

มีครั้งหนึ่งผมได้รับโจทย์ให้ติดตั้ง server โดยที่ server ที่จะซื้อใหม่นั้นไม่มี cd-rom มาด้วย เข้าใจว่าเป็นเหตุผลด้านราคา ซึ่งในทางปฏิบัติก็คิดว่า server ทุกตัว คงได้ใช้ cd-rom เฉพาะตอนติดตั้ง และตอนอัพเกรด หรือแก้ไขปัญหาต่าง ๆ เท่านั้น นอกนั้นก็ไม่ได้ใช้เลย จึงไม่จำเป็นแล้วที่ server จะมี cd-rom ทีนี้ปัญหาจึงเป็นว่า จะติดตั้ง Debian โดยไม่ใช้ cd-rom ได้อย่างไร คิดแบบเร็ว ๆ ก็คือใช้ USB memory stick ไงล่ะ

แล้วจะทำได้อย่างไร ? ถาม Google จึงพบกับวิธีการในคู่มือของ Debian เองเลย ถึงได้รู้ว่า Debian เค้าเตรียมเรื่องแบบนี้ไว้อยู่แล้วแฮะ ขอสรุปสั้น ๆ เป็นวิธีการที่ผมทำตามขั้นตอนในเว็บดังกล่าวดังต่อไปนี้
คำเตือน: บางขั้นตอนต่อไปนี้เป็นคำสั่งที่ต้องใช้สิทธิของ root ซึ่งหลายคำสั่งเป็นอันตรายหากสั่งอย่างไม่ถูกต้อง ดังนั้นโปรดอ่านให้เข้าใจและทำตามอย่างระมัดระวัง

  1. แน่นอนต้องมี USB memory stick ก่อน ส่วนความจุนั้น ขึ้นอยู่กับว่าเราอยากใส่ระบบติดตั้งแบบไหน ผมกะว่าจะติดตั้งแค่แบบ netinst ซึ่งตัว iso มันแค่ 150 MB เอง ดังนั้น USB memory stick ตัวเก่า ๆ 256MB ของผม น่าจะได้ใช้ประโยชน์ก็คราวนี้แหละ และก็ถ้ามีข้อมูลที่ต้องการใช้อยู่ ก็คัดลอกออกจาก USB memory stick เสียให้เรียบร้อย จากนั้นก็ลองเช็คนิดนึงว่า USB memory stick ของเราเสียบที่ช่อง usb แล้วจะเห็นเป็น device อะไร ปกติจะเห็นเป็น /dev/sda แต่หลัง ๆ ก็ไม่แน่ เพราะถ้าฮาร์ดดิสก์ใช้ SCSI (คงน้อย) หรือ S-ATA มันจะใช้ sda ไปแล้ว ซึ่งคงจะเห็น USB เป็น sdb หรือ sdc หรืออื่น ๆ แทน ดังนั้น ในขั้นตอนต่อ ๆ ไปผมจะใช้ /dev/sdX แทนนะครับ ให้เปลี่ยน X เป็นตัวที่ถูกต้องต่อไป
  2. แบ่งพาร์ทิชันใหม่ เนื่องจากเดิมนั้น เจ้า USB memory stick ของผมเป็นแบบ partitionless คือไม่มีการแบ่งพาร์ทิชัน แล้วใช้ทั้งตัวเป็นที่เก็บข้อมูลเลย เวลาใช้บนลินุกซ์ก็จะเมานท์ /dev/sdX มาใช้เลย ไม่ได้เป็น sdX1
    โดยการแบ่งจะใช้คำสั่ง dd เพื่อล้าง sector แรกก่อน และใช้ fdisk เพื่อสร้างพาร์ทิชัน โดย

    # dd if=/dev/zero of=/dev/sdX bs=512 count=1
    # fdisk /dev/sdX
    

    กด n (สร้าง partition)
    กด p (เลือก primary partition)
    กด 1 (เลือก partition ที่ 1)
    กด enter เฉย ๆ เพื่อเริ่มจาก cylinder แรก
    กด enter เฉย ๆ เพื่อสิ้นสุดที่ cylinder สุดท้าย
    กด a เพื่อกำหนดให้ partition บูตได้
    กด 1 กำหนดให้บูตจาก partition 1
    กด w เพื่อบันทึกและออกจาก fdisk

  3. สร้าง file system
    # mkdosfs /dev/sdX1
    

    คำสั่ง mkdosfs ถ้าไม่มี ให้ติดตั้ง dosfstools ก่อนโดย apt-get install dosfstools (ปกติคิดว่ามีอยู่แล้วนะ)

  4. ติดตั้ง syslinux สำหรับทำหน้าที่เป็น boot loader
    # apt-get install mtools syslinux
    # syslinux /dev/sdX1
  5. เมานท์ USB memory stick ไปที่ตำแหน่งชั่วคราวซักที่หนึ่งก่อน
    # mkdir /mnt/tmp
    # mount /dev/sdX1 /mnt/tmp

    จะเห็นแฟ้ม ldlinux.sys อยู่ในนี้แล้ว ไม่ต้องลบหรือทำอะไรกับมันนะครับ ตัวนี้เป็นส่วนหนึ่งของ boot loader

  6. ดาวน์โหลดไฟล์ vmlinuz และ initrd.gz จาก http://mirror.in.th/debian/dists/Debian4.0r3/main/installer-amd64/current/images/hd-media/ ไปเก็บใน /mnt/tmp (รุ่นอื่น ๆ ก็เลือกเอาตามความเหมาะสมนะครับ ณ ปัจจุบันรุ่นที่ stable คือ 4.0r3 และผมก็เลือกติดตั้งเป็นแบบ 64bit ซึ่ง processor ของ server ใหม่ ๆ ในปัจจุบันก็สนับสนุนหมดแล้ว ยกเว้นจะเก่า ๆ จริง ๆ ก็ใช้ i386 แทน)
  7. สร้างแฟ้ม syslinux.cfg ใน /mnt/tmp โดยมีเนื้อหาดังนี้
    default vmlinuz
    append initrd=initrd.gz
  8. ดาวน์โหลดไฟล์ ISO image ตัวติดตั้ง debian จาก http://mirror.in.th/debian_iso/4.0_r3/amd64/iso-cd/ ผมเลือกแบบ netinst ด้วยเหตุผลเรื่องขนาด ดังนั้นจึงเลือกไฟล์ debian-40r3-amd64-netinst.iso แล้วนำไปใส่ไว้ที่ /mnt/tmp เช่นกัน ถ้า USB memory stick ใหญ่กว่านี้เป็น 1GB ก็ดาวน์โหลดแผ่นติดตั้งแผ่นแรกมาลงก็ได้ หรือถ้าน้อยกว่านี้ เช่น 64MB ก็เลือกแบบ businesscard ก็ได้
  9. unmount แล้วนำไปทดลองบูตดูได้เลย
    # umount /mnt/tmp

Firefox Download Day 2008 (ควันหลง)

Uncategorized June 26th, 2008

ในที่สุดก็ผ่านไปแล้วกับ Firefox Download Day 2008 เมื่อวันที่ 17 มิ.ย. 2551 แต่จริง ๆ เวลาบ้านเรากว่าจะดาวน์โหลดได้ก็ล่วงเข้าวันที่ 18 ละ ซึ่งเป็นกิจกรรมการตลาดที่ใช้ความร่วมมือของแฟนคลับทั่วโลก ผมก็สนุกกับเขาด้วย ช่วยดาวน์โหลด 2 ครั้ง เป็นเวอร์ชัน Linux กับ Windows ที่จริงโหลดมาก็ไม่ได้ใช้เลย เพราะใน Hardy นั้นก็เป็น Firefox 3.0 อยู่แล้ว สุดท้ายได้ Certificate มา 1 ใบ เท่มาก

Firefox Download Day 2008 Cert.

ถามว่ากิจกรรมนี้ ทำแล้วได้อะไร ทำไปทำไม บ้างก็บอกว่าทำเอาสถิติไม่เห็นจะมีคุณค่าอะไรเลย โหลดไปใช้หรือเปล่าก็ไม่รู้ บ้างก็เอามาดูเปรียบเทียบเป็นรายประเทศแล้วตีความว่า ประเทศไหนเป็นอย่างไร เช่น ความเจริญทางด้าน IT, เศรษฐกิจ, ความตื่นตัวเรื่อง Open Source เป็นต้น

ในความเห็นส่วนตัวคิดว่า ทำไปแล้ว “สนุกดี” ครับ ถ้ามองลึก ๆ หน่อย ต้องย้ำว่ากิจกรรมนี้ เป็นกิจกรรมทางการตลาดครับ ถ้าเราดูตัวเลขตรง ๆ อาจจะเขวไปได้ว่าความหมายมันคืออะไร แต่จากประสบการณ์ของตัวเองที่ได้ร่วมกิจกรรมนี้ แล้วได้ชักชวนเพื่อน ๆ ที่รู้จักให้เข้ามาร่วม เลยได้เปิดโอกาสแนะนำ Firefox ไปด้วยว่ามันคืออะไร ดีอย่างไร และก็พบว่ามีแฟน Firefox หลายคนทำแบบเดียวกันนี้ด้วย คิดว่ามีเยอะมากด้วย จำนวนดาวน์โหลดของไทยถึงได้สูงเกินแสนแล้วในวันนี้ ในแผนที่ก็จะเห็นประเทศไทยเป็นสีแดงเข้มแล้ว ดังนั้นเป้าหมายของกิจกรรมนี้จริง ๆ จึงไม่ได้อยู่ที่ตัวชี้วัดชนิด lag (ประมาณดูผลที่ตามมา) นั่นก็คือจำนวนการดาวน์โหลดของประเทศ หรือทั้งโลก แต่อยู่ที่ตัวชี้วัดชนิด lead (คือสิ่งที่พยายามทำเพื่อมุ่งสู่ผลลัพธ์ที่ต้องการ ซึ่งจริง ๆ เราไม่ได้วัด) ที่แฟน Firefox แต่ละคน แต่ละกลุ่มช่วยกันทำขึ้นมามากกว่าครับ

สุดท้ายผลที่ตามมาจริง ๆ คือจำนวนการใช้งาน Firefox ก็จะเพิ่มขึ้นซึ่งคงต้องรอสักพักคงมีสถิติมาให้ดูกัน

ลิงก์ที่เกี่ยวข้อง
ดาวน์โหลด Firefox 3.0: http://www.mozilla.com/en-US/firefox/
แผนที่แสดงยอดดาวน์โหลดแบ่งเป็นประเทศ: http://www.spreadfirefox.com/en-US/worldrecord/
ข่าวใน Blognone โดยเฉพาะในส่วนความคิดเห็นของสมาชิก: http://www.blognone.com/node/8102
ข่าวใน Mhafai: http://www.mhafai.com/2008/06/firefox-3-83-million-downloads-24-hours

Tags:

Creative Commons Attribution-ShareAlike 3.0 Unported
Creative Commons Attribution-ShareAlike 3.0 Unported