554 คำ
3 นาที
IT Foundation EP.06 — Security พื้นฐาน
สารบัญ

Series: IT Foundation — พื้นฐาน IT สำหรับยุค AI (ภาษาคน)

  1. EP.01 — รากฐานคอมพิวเตอร์
  2. EP.02 — พื้นฐาน Computer Science
  3. EP.03 — ซอฟต์แวร์ทำงานยังไง
  4. EP.04 — Architectures
  5. EP.05 — Web Technologies
  6. EP.06 — Security พื้นฐาน ← คุณอยู่ตรงนี้
  7. EP.07 — Performance & Testing
  8. EP.08 — Dev/Deploy/Ops
  9. EP.09 — Security ขั้นสูง
  10. EP.10 — Project Management

ใน 5 ตอนที่ผ่านมา เราสร้างร้านอาหารดิจิทัลกันเรียบร้อย มีหน้าร้านสวย (Frontend) มีครัวทรงพลัง (Backend) มีคลังเก็บของ (Database) และเชื่อมต่อกับโลกภายนอกผ่านอินเทอร์เน็ตได้แล้ว แต่ถ้าผมถามว่า “คุณล็อกประตูร้านหรือยัง?” หลายคนจะเงียบครับ

Security คือเรื่องที่เจ้าของธุรกิจส่วนใหญ่ไม่สนใจ จนกว่าจะโดนปล้นครั้งแรก แล้วถึงตอนนั้นมันก็สายเกินไป ข้อมูลลูกค้าหลุดแล้ว ชื่อเสียงเสียแล้ว ค่าปรับ PDPA/GDPR ก็ตามมา ตอนนี้เราจะมาคุยกันว่า “ระบบกันขโมยพื้นฐาน” ที่ทุกแอปต้องมีคืออะไรบ้าง แบบเข้าใจง่าย ไม่ต้องเป็นโปรแกรมเมอร์ก็คุยกับทีม Dev รู้เรื่อง

OWASP Threats — ทำความรู้จักโจรยอดฮิต#

OWASP คือองค์กรที่รวบรวม “ท็อปชาร์ตโจรดิจิทัล” เอาไว้ให้โลกรู้ว่าโจรชอบใช้มุขอะไรบ้าง เพราะถ้าเรารู้เขารู้เรา ป้องกันก็ง่ายขึ้นเยอะครับ

1) SQL Injection — การหลอกถามข้อมูล

ลองนึกภาพร้านคุณมียาม (Database) คอยตอบคำถามให้ลูกค้า ปกติลูกค้าถามว่า “ขอดูรายชื่อพนักงานชื่อ สมชาย” ยามก็ส่งข้อมูลสมชายให้ แต่โจรฉลาดกว่านั้น โจรจะบอกยามว่า “ขอดูรายชื่อพนักงานชื่อ สมชาย หรือใครก็ได้ทั้งหมด!”

ยามซื่อบื้อที่ไม่ได้ฝึกมาดีก็จะส่งรายชื่อทุกคนในร้านให้โจรไปเลย รวมถึงรหัสผ่าน เบอร์โทร ที่อยู่ ทุกอย่าง นี่คือมุขที่ทำให้ข้อมูลลูกค้าหลุดครั้งใหญ่ๆ ในข่าวมาแล้วนับไม่ถ้วน

วิธีป้องกันคือสอนยามให้ฉลาดขึ้น (ศัพท์เทคนิคเรียก Prepared Statements และ Input Sanitization) คือให้ยามตรวจสอบก่อนว่าสิ่งที่ลูกค้าพูดเป็น “ชื่อคน” จริงๆ ไหม ไม่ใช่คำสั่งแอบแฝง ผู้บริหารต้องกำชับทีม Dev เลยครับว่าห้ามต่อ SQL เองแบบดิบๆ เด็ดขาด

2) Authentication Issues — ระบบล็อกอินอ่อนแอ

ระบบตรวจบัตรของร้านคุณแข็งแรงแค่ไหน? ถ้าโจรเอารหัสผ่านที่หลุดจากเว็บอื่นมาลองกดไล่ๆ (Credential Stuffing) หรือยืนกดสุ่มรหัสทีละล้านครั้ง (Brute Force) แล้วระบบคุณไม่ล็อกเลย นั่นคืออ่อนแอครับ ทางแก้คือใส่ Multi-Factor Auth (ยืนยันตัวตน 2 ชั้น) และจำกัดจำนวนครั้งที่ลองรหัสผิดได้

3) Data Exposure — ข้อมูลรั่วไหล

บางครั้งโจรไม่ต้องแฮก เพราะทีมเราเผลอเอาข้อมูลสำคัญไปแปะไว้ที่อื่น เช่น เขียน API Key ลงในโค้ดแล้ว push ขึ้น GitHub แบบ Public หรือเก็บเลขบัตรเครดิตลูกค้าไว้ใน log ไฟล์ที่ใครๆ ก็อ่านได้ นี่เรียกว่า “ทิ้งกุญแจบ้านไว้หน้าบ้าน” ครับ ปัญหาส่วนใหญ่เกิดจากความประมาท ไม่ใช่ความอัจฉริยะของโจร

4) XSS (Cross-Site Scripting) — การฝากระเบิด

มุขนี้เจ๋งครับ โจรไม่ต้องแฮกเว็บคุณ แต่จะเอา “สคริปต์ร้าย” มาแปะไว้ที่หน้าเว็บคุณ แล้วรอให้ลูกค้าคนอื่นเข้ามาโดนระเบิด

ลองนึกว่าโจรเดินมาแปะสติกเกอร์ QR Code ปลอมที่หน้าร้านคุณพร้อมเขียนว่า “สแกนรับเงินฟรี” ลูกค้าที่ไว้ใจร้านคุณก็สแกน พอสแกนปุ๊บข้อมูลโดนขโมยไปทันที ซึ่งในมุมลูกค้าเขาโดนหลอกจาก “ร้านคุณ” ไม่ใช่จากโจร ชื่อเสียงคุณพังครับ

ทางแก้คือตรวจสอบทุกข้อความที่ผู้ใช้พิมพ์เข้ามา ถ้ามีโค้ดแปลกปลอมให้แปลงเป็นข้อความธรรมดาก่อนแสดงผล (เรียกว่า Escaping) และตั้งกฎให้เบราว์เซอร์ห้ามรันโค้ดจากที่ไม่รู้จัก (เรียกว่า CSP)

Authentication — ระบบยามตรวจบัตรประชาชน#

Authentication คือระบบยืนยันตัวตน เป็นด่านแรกที่โจรจะต้องผ่านก่อนถึงข้อมูลลูกค้า ระบบนี้ถ้าอ่อนคือจบครับ

Password Handling — การเก็บกุญแจให้ปลอดภัย

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

วิธีที่ถูกต้องเรียกว่า Hashing ลองนึกภาพเอาเนื้อวัวก้อนหนึ่งเข้าเครื่องบดเนื้อ เราได้เนื้อบดออกมา แต่เราไม่สามารถ “ย้อน” เนื้อบดกลับไปเป็นวัวได้อีก รหัสผ่านก็เหมือนกันครับ ระบบจะบดรหัส “123456” ให้กลายเป็นรหัสลับยาวๆ แล้วเก็บแค่รหัสลับนั้น พอลูกค้ามา login ก็บดรหัสที่เขากรอกแล้วเอามาเทียบว่าตรงกันไหม

แต่แค่บดเฉยๆ ยังไม่พอครับ ต้อง “โรยเกลือ” ด้วย (ศัพท์เทคนิคเรียก Salting) คือเติมค่าสุ่มเข้าไปก่อนบด เพื่อให้โจรที่มีตาราง “รหัสบดสำเร็จรูป” (Rainbow Table) ใช้ไม่ได้ผล

ผู้บริหารจำคำนี้ไว้ครับ: ห้ามเก็บ Password เป็น Plain Text เด็ดขาด

JWT & Sessions — สายรัดข้อมือ

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

สายรัดข้อมือนี้ในโลกเทคเรียก Token หรือ Session ครับ มันมีวันหมดอายุ (Expiry) เพื่อไม่ให้ถ้าถูกขโมยไปแล้วใช้ได้ตลอดกาล เหมือนบัตรเข้าห้องพักโรงแรมที่พอ check out ก็ใช้ไม่ได้แล้ว

OAuth — ล็อกอินด้วย Google/Facebook

เคยเห็นปุ่ม “Login with Google” ไหมครับ? นั่นคือ OAuth วิธีนี้ลูกค้าโชว์ Passport (บัญชี Google) ให้ร้านเราดู แทนที่จะมาสมัครสมาชิกใหม่ ประโยชน์คือลูกค้าสมัครง่าย (Conversion สูงขึ้นเยอะ) และเราไม่ต้องเก็บรหัสผ่านเอง เพราะ Google เก็บให้แล้ว ปลอดภัยกว่า

RBAC — แบ่งสิทธิ์ตามบทบาท

พนักงานขายไม่ควรเห็นเงินเดือนผู้บริหาร พนักงานครัวไม่ควรเข้าห้องการเงิน นี่คือหลักการ RBAC (Role-Based Access Control)

Admin มีกุญแจ Master Key เข้าได้ทุกที่ พนักงานแต่ละคนมีกุญแจเฉพาะส่วนของตัวเอง หลักสำคัญคือ Least Privilege — ให้สิทธิ์เท่าที่จำเป็นที่สุด เพราะถ้าวันไหนบัญชีพนักงานโดนแฮก ความเสียหายจะจำกัดอยู่แค่ส่วนที่เขาเข้าถึงได้ ไม่กระจายไปทั้งบริษัท

Encryption — รถขนเงินหุ้มเกราะ#

ต่อให้ยามเก่งแค่ไหน ถ้าข้อมูลวิ่งไปมาระหว่างลูกค้ากับร้านโดยไม่มีการเข้ารหัส โจรที่ดักอยู่กลางทางก็อ่านได้หมด Encryption คือการ “ใส่กุญแจล็อกจดหมาย” ก่อนส่งครับ

HTTPS/TLS — การเข้ารหัสระหว่างเดินทาง

HTTP เหมือนส่งไปรษณียบัตร ใครที่มือถึงก็อ่านได้หมด ส่วน HTTPS คือส่งจดหมายใส่กล่องนิรภัยที่ล็อกกุญแจไว้ ต่อให้บุรุษไปรษณีย์แอบแกะก็อ่านไม่ออก

ปัจจุบันเว็บไซต์ทุกเว็บต้องเป็น HTTPS 100% ครับ ถ้าเว็บคุณยังเป็น HTTP อยู่ Google Chrome จะขึ้นแถบแดงว่า “Not Secure” ทันที ลูกค้าเห็นก็ปิดหนี ข่าวดีคือปัจจุบันใบรับรอง SSL ฟรีแล้ว (ผ่าน Let’s Encrypt หรือ Cloudflare) ไม่มีข้ออ้างว่าทำไม่ได้

Data at Rest — การเข้ารหัสในคลัง

HTTPS ป้องกันข้อมูลตอน “เดินทาง” แต่พอข้อมูลถึงเซิร์ฟเวอร์แล้วนอนนิ่งๆ อยู่ในฮาร์ดดิสก์ เราก็ต้องเข้ารหัสอีกชั้นหนึ่ง (เรียกว่า Data at Rest Encryption) เพราะถ้าวันไหนเซิร์ฟเวอร์ถูกขโมยไปทั้งเครื่อง อย่างน้อยข้อมูลข้างในก็อ่านไม่ออก เหมือนเก็บทองในตู้เซฟนั่นแหละครับ ตู้หายไปแต่เปิดไม่ออกก็ไม่มีประโยชน์

Compliance — กฎหมายที่ต้องรู้

ไทยมี PDPA ยุโรปมี GDPR บริษัทบัตรเครดิตมี PCI-DSS โรงพยาบาลอเมริกามี HIPAA กฎหมายพวกนี้ไม่ใช่เรื่องเล่นๆ ครับ GDPR ปรับได้สูงสุดถึง 4% ของรายได้ทั่วโลก ส่วน PDPA ของไทยก็ปรับได้หลักล้าน

เจ้าของธุรกิจต้องรู้ว่าข้อมูลลูกค้าที่เราเก็บอยู่ในขอบเขตกฎหมายไหนบ้าง และมีนโยบาย Consent (การขออนุญาต) Data Minimization (เก็บเท่าที่จำเป็น) และ Right to Forget (ลูกค้าขอให้ลบข้อมูลได้) หรือยัง

Network Security — ยามเฝ้าประตูและถนนรอบร้าน#

นอกจากป้องกัน “ในร้าน” เราต้องป้องกัน “ทางเข้าออก” ด้วย นี่คือส่วนของ Network Security

Firewall — ยามเฝ้าประตู

Firewall คือป้อมยามหน้าหมู่บ้าน ตรวจบัตรทุกคนที่เข้า-ออก อนุญาตเฉพาะที่ปลอดภัย เช่น “อนุญาตเฉพาะ traffic จาก port 443 (HTTPS) เท่านั้น ส่วน port อื่นห้ามเข้า” สมัยนี้มีตัวที่ฉลาดกว่านั้นเรียกว่า WAF (Web Application Firewall) ที่ไม่ได้ดูแค่ port แต่ดูเนื้อหาของคำขอด้วย ถ้าเห็นว่าเป็น SQL Injection ก็บล็อกตั้งแต่หน้าประตูเลย

VPN — อุโมงค์ลับ

สมัย work from home พนักงานทำงานจากบ้าน จากร้านกาแฟ จากสนามบิน ถ้าให้เขาเข้าระบบบริษัทผ่าน Wi-Fi สาธารณะตรงๆ เท่ากับเปิดประตูรับโจรเลย VPN คืออุโมงค์ลับที่เข้ารหัสไว้ ต่อให้คนดักฟังอยู่ข้าง Wi-Fi ก็เห็นแค่ traffic มั่วๆ อ่านไม่ออก

Rate Limiting — จำกัดจำนวนคำขอ

“คุณลูกค้าครับ กดปุ่มสมัครสมาชิกได้แค่คนละ 1 ครั้งต่อ 5 วินาที ห้ามกดรัวนะครับ” นี่คือ Rate Limiting เอาไว้ป้องกันโจรที่พยายามสมัครสมาชิกปลอมเป็นพันๆ บัญชี หรือพยายามเดารหัสผ่านเป็นล้านครั้ง

DDoS Protection — ป้องกันโจรถล่ม

DDoS คือการส่งคำขอปลอมมาถล่มเซิร์ฟเวอร์ของคุณจนล่ม ลองนึกว่ามีคน 10 ล้านคนโทรเข้าเบอร์ร้านคุณพร้อมกัน ลูกค้าจริงก็โทรเข้าไม่ได้สักที ถ้าเซิร์ฟเวอร์ล่มครึ่งวัน บริษัท e-commerce อาจเสียเงินหลักล้าน

ข่าวดีคือบริการอย่าง Cloudflare มีแพ็กเกจฟรีที่ช่วยกรองคำขอปลอมให้อัตโนมัติ เห็น traffic น่าสงสัยก็บังคับให้ทำ CAPTCHA ก่อน ของถูกและใช้ง่ายมากครับ

Recap — ป้อมปราการดิจิทัล#

ถ้าให้สรุปทั้งบทเป็นภาพเดียว Security คือ “ป้อมปราการหลายชั้น” เหมือนหัวหอมที่ลอกทีละชั้นแล้วร้องไห้ โจรจะเข้าถึงทองของเราได้ก็ต้องผ่านทุกชั้นนี้

  • Layer 1 Network — รั้วและยามหน้าหมู่บ้าน (Firewall, DDoS Protection, Rate Limiting)
  • Layer 2 Transmission — รถขนเงินหุ้มเกราะระหว่างเดินทาง (HTTPS/TLS, VPN)
  • Layer 3 Application — ยามตรวจบัตรและสิทธิ์หน้าห้อง (Authentication, RBAC, Input Validation)
  • Layer 4 Data — ตู้เซฟเก็บทอง (Hashing, Encryption at Rest)

สิ่งที่ผู้นำต้องจำจากบทนี้มี 2 ข้อครับ

ข้อแรก Security ไม่ใช่ฟีเจอร์เสริม ไม่ใช่อะไรที่ “เดี๋ยวค่อยทำตอนมีเวลา” ครับ มันเป็นพื้นฐานตั้งแต่วันแรก เพราะถ้าหลุดครั้งเดียว ความเชื่อมั่นที่คุณสร้างมา 10 ปีพังในวันเดียว ข่าวเรื่องบริษัทไทยที่ข้อมูลลูกค้าหลุดปีที่แล้วเห็นกันทั้งประเทศ ผมเชื่อว่าคุณไม่อยากเป็นรายถัดไป

ข้อสอง คนคือจุดอ่อนที่สุด ระบบจะดีแค่ไหน ถ้าพนักงานตั้งรหัสผ่านว่า “123456” หรือโดน Phishing หลอกให้คลิกลิงก์ในอีเมลปลอม ป้อมปราการที่สร้างมาก็พังหมด การฝึกอบรมพนักงานเรื่อง security awareness สำคัญพอๆ กับระบบเทคโนโลยี ลงทุนกับคนก่อนครับ

ป้อมปราการของเราแข็งแรงแล้ว แต่ปัญหาใหม่เกิดขึ้น ถ้ายามตรวจบัตรนานเกินไปจนลูกค้ารอไม่ไหว หรือประตูนิรภัยหนักจนเปิดช้า ลูกค้าก็หนีไปร้านอื่นอยู่ดี ตอนหน้าเราจะมาคุยกันเรื่อง “ทำยังไงให้ปลอดภัยและเร็วไปพร้อมกัน” ครับ

EP.07 — Performance & Testing