I have no security :)

สวัสดีครับ ไม่ได้ update blog มานาน เลยขอมาอัพหน่อย title
อาจจะดูเป็นคำแสลงไปหน่อยครับ “I have no securityฉันไม่มีความปลอดภัย
ตรงนี้ผมอยากจะพูดถึงเรื่อง web security อีกสักนิดครับ จริงๆ เบื่อมาก
กับคำว่า security เพราะว่ามีแต่คนพูด แต่ว่าไม่ค่อยรู้จริงกันเท่าไร พูดตามๆ กันมา
เชื่อตามๆ กันมา ทั้งๆ ที่ไม่ได้รู้ว่ามันถูกหรือผิด เค้าสั่งมาแบบนั้น ก็ต้องทำตาม
อะไรแบบนี้ ซึ่งผมคิดว่านี่แหละคือความเสื่อมของเรื่องความปลอดภัย ..

คำว่า security พูดง่าย แต่ทำจริงๆ ยากมากครับ ผมเคยพูดไว้หลายๆ ครั้งว่า ถ้าคุณไม่เคย
เป็น hacker หรือลอง hack ระบบต่างๆ มาก่อน (ในที่นี้ขอพูดถึงเรื่องเว็บนะครับ
เพราะระบบหลักๆ ในปัจจุบัน เป็น web app หมด) ก็อย่าพูดเรื่อง security เลย เพราะว่า
มันฟังดูแปร่งๆ ฟังแล้วงงๆ ไม่ได้น่าเชื่อถืออะไรเลย ..

ผมขอสรุปง่ายๆ สั้นๆ ตรงนี้เลยว่าอะไรคือความเชื่อผิดๆ เกี่ยวกับ web security บ้าง
เท่าที่เจอมาตลอด 10 กว่าปีนะครับ ..

1.Firewall ไม่ได้ช่วยเรื่อง security นะครับ อย่าคิดว่ามีอะไรที่ทำให้ช้าๆ หลายๆ hop
แล้วจะทำให้ระบบของคุณปลอดภัย มันไม่เกี่ยวกัน เมืองนอกเค้าเลิกพูดถึงกันแล้วครับ
เรื่องนี้ บางทีเจอ UDP flood มาทีแบบ BW แทบเต็ม ISP ทั้งหมดของไทย ทำไมเค้าป้องกัน
กันได้ ไม่ใช่เค้ามี Firewall ราคาแพง คุณภาพอัจฉริยะนะครับ วันหลังผมจะมาอธิบาย
วิธีการอีกทีว่าเค้าป้องกันกันแบบไหน ใช้วิธีไหนบ้าง ..

2.วิ่งวง private โดยการ map host เป็น domain เอาข้างใน โดยคิดว่าวิ่งกันข้างในแล้ว
security อันนี้ เป็นความคิดที่ผิดมากๆ และไม่เป็นไปตามมาตรฐาน วิธีการนี้ ถ้าใช้กับ
การ develop ผมก็เห็นด้วยครับ จะได้ไม่ต้องแก้ code อะไรมาก แต่ว่าถ้าไปใช้จริงๆ สมมติ
คุณมีเครื่องอยู่ 1000 เครื่อง คุณไปนั่ง map host กันไหวไหมครับ ทั้งๆ ที่เค้ามี DNS ไว้
เป็นมาตฐานอยู่แล้ว จริงๆ วงข้างใน มีอะไรอันตรายกว่าขา public อยู่เยอะครับ เพราะว่า
มาจากความเชื่อที่ผิดๆ เหล่านี้แหละ ทำให้ไม่มีระบบตรวจสอบต่างๆ ที่แข็งแรงพอ ไม่เหมือนกับ
การวิ่งผ่าน public IP ที่ถ้ามีปัญหาอะไร จะรู้ได้ทันที และแก้ไขได้อย่างรวดเร็ว ในเมื่อ
ทั้ง private และ public อยู่เครื่องเดียวกัน คุณจะไปกลัวขา public ทำไม web app
เวลาเค้า hack กัน เค้า hack ผ่าน app ที่บกพร่องครับ ยังไงก็เข้าได้ ไม่อย่างนั้น เว็บใหญ่อย่าง
Google, Facebook เค้าคงต้องให้เราลากสาย LAN ไปต่อกับเค้าขา private ถึงจะใช้ API
เค้าได้นะครับ แต่ไม่เห็นเค้าทำแบบนั้นเลย เห็นเค้าเปิดให้ใช้ API ผ่าน public กันหมด โดยที่
มีปัจจัยอื่นๆ ในการควบคุมการเข้าถึงครับ เช่น อัตราในการ access ถ้าคุณใช้เยอะเกิน ก็อาจจะ
ต้องเสียค่าทำเนียม อะไรทำนองนี้เพิ่มเติม ซึ่งผมว่าตรงนี้ คือมาตรฐานที่ถูกต้องแล้วครับ ..

3.จำกัดเรื่อง Internet ไม่ให้เครื่อง server ออกเน็ตได้ เพราะว่ากลัวไป update อะไรที่ไม่ถูกต้อง
เข้ามาที่เครื่อง รู้ไหมครับ ว่าวิธีการนี้ เป็นการทำให้ security ของระบบต่ำลงมาก ในระบบ Windows
ผมไม่รู้นะครับว่า เป็นแบบไหน แต่ระบบของ Unix ต่างๆ กว่าจะออก patch ออก release มาแต่ละตัว
มีการตรวจสอบกันละเอียดมากครับ ไม่ต้องกลัวว่าจะมีความผิดพลาด ถ้าคุณเข้าใจมันดีพอ ..
การที่คุณเห็น security report ออกมาแล้วคุณคิดว่า ไม่น่ามีผลอะไร นั่นคือการที่คุณกำลังทำร้าย
ระบบของคุณเองอย่างรุนแรงครับ bug แค่นิดเดียวก็สามารถทำให้ใครก็สามารถเป็น root เครื่องคุณได้
โดยไม่ต้องมีความรู้อะไรมากมาย อาศัยแค่ exploits  ต่างๆ ที่ทำออกมาแจกกันก็พอ ..

วันนี้ผมขอจบแค่นี้ก่อนครับ ใครที่อยากศึกษาเรื่อง web security อย่างจริงๆ จังๆ แนะนำ
http://packetstormsecurity.org/ (ไม่ใช่ PacketLove.com นะครับ)