/static/codemoomoo2.png

บทที่ 1 — Introduction to Network Security (พื้นฐานความมั่นคงปลอดภัยเครือข่าย)

แนวคิด: ปูพื้นฐานความเข้าใจก่อนเข้าสู่หัวข้อเชิงเทคนิค — บทนี้ครอบคลุมแนวคิดหลัก, โมเดล CIA Triad, ประเภทของภัยคุกคาม, ระบบความมั่นคงพื้นฐาน, กรอบการทำงานมาตรฐานสากล และบทบาทของผู้เกี่ยวข้องในสาขา Network Security


1.1 แนวคิดพื้นฐานด้าน Cybersecurity และ Network Security

1.1.1 ความแตกต่างระหว่าง Information Security, Cybersecurity และ Network Security

ก่อนเข้าสู่เนื้อหาเชิงเทคนิค จำเป็นต้องเข้าใจความแตกต่างของคำศัพท์ที่มักใช้แทนกันบ่อยครั้ง:

graph TD
    direction LR
    IS["🔐 Information Security\n(ความมั่นคงปลอดภัยสารสนเทศ)\nข้อมูลทุกรูปแบบ: ดิจิทัล + กายภาพ"]
    CS["💻 Cybersecurity\n(ความมั่นคงทางไซเบอร์)\nระบบดิจิทัล + เครือข่าย + ข้อมูล"]
    NS["🌐 Network Security\n(ความมั่นคงเครือข่าย)\nโครงสร้างเครือข่าย + โปรโตคอล + อุปกรณ์"]

    IS -->|"ครอบคลุม (includes)"| CS
    CS -->|"ครอบคลุม (includes)"| NS

1.1.2 ทำไม Network Security จึงสำคัญ

ในยุคที่ทุกสิ่งเชื่อมต่อกันด้วยอินเทอร์เน็ต ภัยคุกคามทางเครือข่ายมีความรุนแรงเพิ่มขึ้นอย่างต่อเนื่อง:

1.1.3 วิวัฒนาการของ Network Security (ประวัติศาสตร์)

flowchart TB
    subgraph ERA1["🕰️ ยุค 1960s–70s - ARPANET & รากฐาน"]
    direction LR
        A1["ARPANET\n(1969)\nเครือข่ายแรกของโลก"]
        A2["Unix\nSecurity\n(1971)"]
        A3["DES Standard\n(1977)\nมาตรฐานเข้ารหัสแรก"]
        A1 --> A2 --> A3
    end

    subgraph ERA2["🖥️ ยุค 1980s - PC & Virus ระบาด"]
        B1["Morris Worm\n(1988)\nหนอนอินเทอร์เน็ตตัวแรก"]
        B2["First Firewall\n(1988)\nไฟร์วอลล์รุ่นแรก"]
        B3["CERT ก่อตั้ง\n(1988)\nทีม Response แรก"]
        B1 --> B2 --> B3
    end

    subgraph ERA3["🌐 ยุค 1990s - WWW & SSL"]
        C1["WWW & HTTP\n(1991)\nเวิลด์ไวด์เว็บ"]
        C2["SSL Protocol\n(1995)\nการเข้ารหัสเว็บ"]
        C3["SSH Protocol\n(1995)\nการเข้าถึงปลอดภัย"]
        C1 --> C2 --> C3
    end

    subgraph ERA4["📡 ยุค 2000s - Network Attacks"]
        D1["Wi-Fi WPA\n(2003)\nมาตรฐานไร้สาย"]
        D2["Stuxnet\n(2010)\nCyberweapon แรก"]
        D3["NIST CSF\n(2014)\nกรอบมาตรฐาน"]
        D1 --> D2 --> D3
    end

    subgraph ERA5["☁️ ยุค 2020s - Cloud & Zero Trust"]
        E1["Zero Trust\nArchitecture"]
        E2["AI-Powered\nSecurity"]
        E3["Post-Quantum\nCryptography"]
        E1 --> E2 --> E3
    end

    ERA1 --> ERA2 --> ERA3 --> ERA4 --> ERA5

1.1.4 ตัวอย่างการใช้งานจริงด้วย Linux Tools

ตรวจสอบสถานะเครือข่ายพื้นฐาน (Basic Network Status Check):

# 1. ตรวจสอบ network interfaces และ IP addresses
ip addr show

# 2. ดู routing table — เส้นทางการส่งข้อมูล
ip route show

# 3. ตรวจสอบ TCP/UDP connections ที่กำลัง LISTEN อยู่
ss -tuln

# 4. แสดง network statistics สรุป
ss -s

# 5. ตรวจสอบ DNS resolution
dig +short google.com

# 6. ทดสอบ connectivity พื้นฐาน
ping -c 4 8.8.8.8

# 7. Traceroute — ดูเส้นทางของ packet
traceroute 8.8.8.8

# 8. ดู ARP cache — การ mapping IP ↔ MAC
arp -n

ผลลัพธ์ตัวอย่าง (Sample Output):

# ip addr show (ตัวอย่าง)
2: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP
    inet 192.168.1.100/24 brd 192.168.1.255 scope global ens3
    inet6 fe80::5054:ff:fe12:3456/64 scope link

# ss -tuln (ตัวอย่าง port ที่เปิดอยู่)
Netid  State   Local Address:Port  Process
tcp    LISTEN  0.0.0.0:22          sshd       ← SSH
tcp    LISTEN  0.0.0.0:80          nginx      ← HTTP
tcp    LISTEN  0.0.0.0:443         nginx      ← HTTPS
tcp    LISTEN  127.0.0.1:3306      mysqld     ← MySQL (เฉพาะ localhost)

1.2 CIA Triad: Confidentiality, Integrity, Availability

CIA Triad คือหลักการสามเสาหลักของความมั่นคงปลอดภัยสารสนเทศ (Information Security Triad) ซึ่งเป็นกรอบแนวคิดพื้นฐานที่ใช้ประเมิน วิเคราะห์ และออกแบบระบบความมั่นคงปลอดภัยทุกระดับ

graph TD
    CIA["🔐 CIA Triad\nหลักการความมั่นคงสารสนเทศ\nInformation Security Foundation"]

    C["🔒 Confidentiality\nการรักษาความลับ\n\nข้อมูลเข้าถึงได้เฉพาะ\nผู้มีสิทธิ์เท่านั้น\n\nTools: Encryption, ACL"]

    I["✅ Integrity\nความครบถ้วนสมบูรณ์\n\nข้อมูลถูกต้องและ\nไม่ถูกแก้ไขโดยไม่ได้รับอนุญาต\n\nTools: Hash, Digital Signature"]

    A["⚡ Availability\nความพร้อมใช้งาน\n\nระบบและข้อมูลพร้อมใช้\nเมื่อผู้มีสิทธิ์ต้องการ\n\nTools: Redundancy, Backup"]

    CIA --> C
    CIA --> I
    CIA --> A

1.2.1 Confidentiality (การรักษาความลับ)

Confidentiality (การรักษาความลับ) หมายถึง การป้องกันไม่ให้ข้อมูลถูกเปิดเผยต่อบุคคล, กระบวนการ, หรือระบบที่ไม่ได้รับอนุญาต — ไม่ว่าจะเป็นขณะจัดเก็บ (at rest) หรือขณะรับส่ง (in transit)

เทคนิคที่ใช้รักษา Confidentiality:

ตัวอย่างการละเมิด Confidentiality:

ทดลองด้วย Linux — ตรวจสอบ File Permissions และการเข้ารหัส:

# === ทดสอบ File Permissions (สิทธิ์ไฟล์) ===

# สร้างไฟล์ข้อมูลสำคัญจำลอง
echo "ข้อมูลลับ: API_KEY=sk-abc123xyz, DB_PASS=P@ssw0rd!" > /tmp/secret.txt

# ดูสิทธิ์ปัจจุบัน (มีปัญหา: ทุกคนอ่านได้!)
ls -la /tmp/secret.txt
# -rw-r--r-- 1 user user 51 Jun 1 10:00 /tmp/secret.txt
#  ^^^ rw = owner    r-- = group    r-- = others (ปัญหา!)

# แก้ไขสิทธิ์ให้เฉพาะเจ้าของเท่านั้น
chmod 600 /tmp/secret.txt
ls -la /tmp/secret.txt
# -rw------- 1 user user 51 Jun 1 10:00 /tmp/secret.txt
#  ^^^ rw = owner    --- = group    --- = others (ถูกต้อง!)

# === เข้ารหัสไฟล์ด้วย OpenSSL (AES-256-CBC) ===

# เข้ารหัส
openssl enc -aes-256-cbc -pbkdf2 -in /tmp/secret.txt -out /tmp/secret.txt.enc
# (ระบบจะถามรหัสผ่านสำหรับการเข้ารหัส)

# ดูไฟล์ที่เข้ารหัสแล้ว (อ่านไม่ออก)
xxd /tmp/secret.txt.enc | head -5

# ถอดรหัส
openssl enc -aes-256-cbc -pbkdf2 -d -in /tmp/secret.txt.enc -out /tmp/secret_decrypted.txt
cat /tmp/secret_decrypted.txt
# ผลลัพธ์: ข้อมูลลับ: API_KEY=sk-abc123xyz, DB_PASS=P@ssw0rd!

# === เข้ารหัสด้วย GPG (GNU Privacy Guard) ===
gpg --symmetric --cipher-algo AES256 /tmp/secret.txt
# สร้างไฟล์ /tmp/secret.txt.gpg

# ถอดรหัส GPG
gpg --decrypt /tmp/secret.txt.gpg

1.2.2 Integrity (ความครบถ้วนสมบูรณ์)

Integrity (ความครบถ้วนสมบูรณ์) หมายถึง การรับประกันว่าข้อมูลถูกต้อง, ครบถ้วน และไม่ถูกแก้ไขโดยไม่ได้รับอนุญาต ทั้งขณะจัดเก็บ (at rest) และขณะรับส่ง (in transit)

เทคนิคที่ใช้รักษา Integrity:

ทดลองด้วย Linux — ตรวจสอบ Hash (File Integrity Verification):

# === สร้างไฟล์ตัวอย่างและคำนวณ Hash ===

# สร้างเอกสารจำลอง
cat > /tmp/contract.txt << 'EOF'
สัญญาจ้างเลขที่: 2567-001
วันที่: 1 มิถุนายน 2567
ผู้รับจ้าง: บริษัท ABC จำกัด
มูลค่าสัญญา: 500,000 บาท
เงื่อนไข: ส่งมอบงานภายใน 90 วัน
EOF

# คำนวณ hash ด้วยหลายอัลกอริทึม
echo "=== Hash Values สำหรับไฟล์สัญญา ==="
echo "MD5    : $(md5sum /tmp/contract.txt | awk '{print $1}')"
echo "SHA-1  : $(sha1sum /tmp/contract.txt | awk '{print $1}')"
echo "SHA-256: $(sha256sum /tmp/contract.txt | awk '{print $1}')"
echo "SHA-512: $(sha512sum /tmp/contract.txt | awk '{print $1}')"

# บันทึก hash อ้างอิงไว้
sha256sum /tmp/contract.txt > /tmp/contract.txt.sha256
echo "Hash บันทึกแล้วใน: /tmp/contract.txt.sha256"
cat /tmp/contract.txt.sha256

# === จำลองการแก้ไขไฟล์โดยไม่ได้รับอนุญาต ===
echo "แก้ไขมูลค่าสัญญา: 5,000,000 บาท (ปลอมแปลง!)" >> /tmp/contract.txt

# ตรวจสอบความสมบูรณ์
echo -e "\n=== ตรวจสอบ Integrity ==="
sha256sum -c /tmp/contract.txt.sha256
# ผลลัพธ์: /tmp/contract.txt: FAILED
# sha256sum: WARNING: 1 computed checksum did NOT match

# === ตรวจสอบ Integrity ของ Package ที่ดาวน์โหลด ===
# ตัวอย่าง: ตรวจสอบ ISO image ก่อนติดตั้ง
# (โดยทั่วไปเว็บไซต์ต้นทางจะให้ hash มาด้วย)
echo "ตัวอย่างการตรวจสอบ Ubuntu ISO:"
echo "sha256sum ubuntu-24.04-desktop-amd64.iso"
echo "เปรียบเทียบกับค่าจากเว็บ: 8762f7e74e4d64d72fceb5f70682e6b069932dee..."

# === File Integrity Monitoring ด้วย AIDE ===
# ติดตั้ง AIDE
sudo apt install aide -y 2>/dev/null

# สร้าง database อ้างอิง (ทำครั้งแรก)
sudo aideinit

# ตรวจสอบ (ทำทุกวัน)
sudo aide --check

1.2.3 Availability (ความพร้อมใช้งาน)

Availability (ความพร้อมใช้งาน) หมายถึง ระบบ, บริการ และข้อมูลต้องพร้อมใช้งานเมื่อผู้มีสิทธิ์ต้องการ โดยไม่มีการหยุดชะงักที่ไม่ได้รับอนุญาต การโจมตีที่กระทบ Availability มากที่สุดคือ DoS/DDoS (Denial of Service)

เทคนิคที่ใช้รักษา Availability:

สูตรคำนวณ Availability:

Availability = MTBF MTBF + MTTR × 100 %

โดยที่:

ตัวอย่างการคำนวณ Availability แบบละเอียด:

สถานการณ์: เซิร์ฟเวอร์ขององค์กรมีค่า MTBF = 720 ชั่วโมง (ประมาณ 30 วัน) และ MTTR = 4 ชั่วโมง

ขั้นตอนที่ 1: แทนค่าในสูตร

Availability = 720 720 + 4 = 720 724 0.99448 = 99.45 %

ขั้นตอนที่ 2: คำนวณ Downtime ต่อปี (ถ้า Availability = 99.45%)

Downtime/ปี = 8760 × ( 1 - 0.9945 ) = 8760 × 0.0055 48.2 ชั่วโมง/ปี

ตาราง Availability Levels (ระดับความพร้อมใช้งาน — "Nines"):

ระดับ Availability Downtime/ปี Downtime/เดือน ตัวอย่างการใช้งาน
One Nine 90% 36.5 วัน 72 ชั่วโมง ระบบ dev/test ทั่วไป
Two Nines 99% 3.65 วัน 7.2 ชั่วโมง เว็บไซต์ภายใน
Three Nines 99.9% 8.76 ชั่วโมง 43.8 นาที เว็บไซต์องค์กร
Four Nines 99.99% 52.6 นาที 4.38 นาที ระบบการเงิน, E-commerce
Five Nines 99.999% 5.26 นาที 25.9 วินาที โทรคมนาคม, โรงพยาบาล
Six Nines 99.9999% 31.5 วินาที 2.59 วินาที ระบบวิกฤต (Life-critical)

ทดลองด้วย Linux — ตรวจสอบ Uptime และคำนวณ Availability:

# === ตรวจสอบ Uptime ของระบบ ===
uptime
# 10:30:00 up 30 days, 5:22, 2 users, load average: 0.15, 0.10, 0.08

# อ่านค่า uptime แบบละเอียด (หน่วย: วินาที)
cat /proc/uptime
# 2621160.35 5180425.12
# ↑ เวลาทำงาน   ↑ เวลา idle รวมทุก CPU cores

# แปลงเป็นรูปแบบที่อ่านได้
python3 -c "
uptime_sec = float(open('/proc/uptime').read().split()[0])
days = int(uptime_sec // 86400)
hours = int((uptime_sec % 86400) // 3600)
mins = int((uptime_sec % 3600) // 60)
print(f'System Uptime: {days} วัน, {hours} ชั่วโมง, {mins} นาที')
print(f'Uptime รวม: {uptime_sec:.0f} วินาที')
"

# ดูประวัติการ reboot
last reboot | head -5

# === Script คำนวณ Availability ===
python3 << 'PYEOF'
def calc_availability(mtbf, mttr):
    """คำนวณ Availability จาก MTBF และ MTTR"""
    availability = mtbf / (mtbf + mttr)
    total_hours_per_year = 8760
    downtime_per_year = total_hours_per_year * (1 - availability)

    print(f"{'='*50}")
    print(f"Availability Calculator")
    print(f"{'='*50}")
    print(f"MTBF (Mean Time Between Failures): {mtbf} ชั่วโมง")
    print(f"MTTR (Mean Time To Repair):        {mttr} ชั่วโมง")
    print(f"{'─'*50}")
    print(f"Availability = {mtbf}/({mtbf}+{mttr}) = {availability:.6f}")
    print(f"Availability = {availability*100:.4f}%")
    print(f"{'─'*50}")
    print(f"Downtime ต่อปี:  {downtime_per_year:.2f} ชั่วโมง")
    print(f"Downtime ต่อปี:  {downtime_per_year*60:.1f} นาที")
    print(f"{'='*50}")

# ตัวอย่าง: เซิร์ฟเวอร์ขององค์กร
calc_availability(mtbf=720, mttr=4)
PYEOF

ผลลัพธ์ที่คาดหวัง:

==================================================
Availability Calculator
==================================================
MTBF (Mean Time Between Failures): 720 ชั่วโมง
MTTR (Mean Time To Repair):        4 ชั่วโมง
──────────────────────────────────────────────────
Availability = 720/(720+4) = 0.994475
Availability = 99.4475%
──────────────────────────────────────────────────
Downtime ต่อปี:  48.40 ชั่วโมง
Downtime ต่อปี:  2904.0 นาที
==================================================

1.2.4 ตารางสรุปเปรียบเทียบ CIA Triad

หัวข้อ Confidentiality Integrity Availability
เป้าหมาย ปกป้องจากการเปิดเผยโดยไม่ได้รับอนุญาต ป้องกันการแก้ไขโดยไม่ได้รับอนุญาต รับประกันการเข้าถึงได้ตลอดเวลา
ภัยคุกคามหลัก Eavesdropping, Data Leakage Tampering, Man-in-the-Middle DoS/DDoS, Hardware Failure
เครื่องมือหลัก Encryption, Access Control, Data Masking Hashing, Digital Signature, FIM Redundancy, Backup, Load Balancing
มาตรฐานที่เกี่ยวข้อง PDPA, GDPR, HIPAA PCI-DSS, SOX, Code Signing SLA Agreement, ISO 22301 (BCMS)
Linux Tools gpg, openssl enc, chmod sha256sum, aide, git uptime, systemctl, rsync
การวัดผล Encryption Coverage, Access Logs Hash Verification Pass Rate Availability %, RTO, RPO
ตัวอย่างการละเมิด Password DB Leak, Wiretapping SQL Injection, File Tampering DDoS Attack, Power Outage

1.3 ประเภทของภัยคุกคาม (Threats), ช่องโหว่ (Vulnerabilities) และการโจมตี (Attacks)

1.3.1 นิยามและความสัมพันธ์

ความเข้าใจความแตกต่างของคำสามคำต่อไปนี้เป็นพื้นฐานสำคัญของ Security:

สูตรคำนวณ Risk (แบบพื้นฐาน):

Risk = Threat × Vulnerability × Impact

สูตรคำนวณ Risk (แบบ NIST SP 800-30):

Risk = Likelihood × Impact

โดยที่:

1.3.2 ตัวอย่างการคำนวณ Risk แบบละเอียด

สถานการณ์จำลอง: เซิร์ฟเวอร์เว็บขององค์กรที่ไม่ได้รับการอัปเดต patch มา 6 เดือน และเปิดให้เข้าถึงจากอินเทอร์เน็ต

ปัจจัย ค่า (1–10) คำอธิบาย
Threat 8 แฮกเกอร์พยายามโจมตีเซิร์ฟเวอร์ที่เปิดสู่อินเทอร์เน็ตตลอดเวลา
Vulnerability 9 มีช่องโหว่ที่ยังไม่ได้ patch หลายรายการ รวมถึง Critical CVEs
Impact 7 ข้อมูลลูกค้า 10,000 รายอาจรั่วไหล, ค่าปรับ PDPA สูงสุด 5 ล้านบาท
Risk 504 504/1000 = ความเสี่ยงสูงมาก (Critical Risk)

การคำนวณ:

Risk = 8 × 9 × 7 = 72 × 7 = 504

ระดับ Risk และแนวทางจัดการ:

ระดับ Risk คะแนน สี แนวทางจัดการ
Low 1–200 🟩 Monitor ตามปกติ, แก้ไขในรอบ maintenance ถัดไป
Medium 201–400 🟨 วางแผนแก้ไขภายใน 30 วัน
High 401–700 🟧 แก้ไขเร่งด่วนภายใน 7–14 วัน
Critical 701–1000 🟥 แก้ไขทันทีหรือปิด service ชั่วคราว

1.3.3 CVSS Score (Common Vulnerability Scoring System)

CVSS (Common Vulnerability Scoring System) คือระบบมาตรฐานสากลสำหรับประเมินและสื่อสารความรุนแรงของช่องโหว่ในซอฟต์แวร์

สูตร CVSS v3.1 Base Score (แบบย่อ):

BaseScore = Roundup ( Minimum ( 10 × ISCBase × Exploitability 10 , 10 ) )

ระดับคะแนน CVSS v3.1:

คะแนน ระดับ ตัวอย่างช่องโหว่จริง CVE
0.0 None ไม่มีผลกระทบ
0.1–3.9 Low ข้อมูล debug เปิดเผย CVE-2021-xxxxx
4.0–6.9 Medium Directory Traversal, XSS CVE-2022-xxxxx
7.0–8.9 High Remote Code Execution (มีเงื่อนไข) CVE-2021-44228
9.0–10.0 Critical Log4Shell (9.8), Heartbleed (7.5) CVE-2021-44228

1.3.4 ประเภทของภัยคุกคาม (Types of Threats)

graph TD
    T["⚠️ ภัยคุกคาม\nThreats"]

    subgraph HUMAN["👤 Human Threats - ภัยคุกคามจากมนุษย์"]
        H1["🖥️ External Attackers\nแฮกเกอร์ภายนอก\nCybercriminals, APT Groups"]
        H2["🏢 Insider Threats\nภัยจากภายในองค์กร\nพนักงานทุจริต, ความประมาท"]
        H3["🏛️ Nation-State Actors\nรัฐบาลต่างชาติ\nCyber Espionage"]
        H4["💰 Cybercriminals\nอาชญากรไซเบอร์\nRansomware Groups"]
    end

    subgraph NATURAL["🌪️ Environmental Threats - ภัยธรรมชาติและสิ่งแวดล้อม"]
        N1["🌊 ภัยธรรมชาติ\nFlood, Earthquake\nTsunami"]
        N2["🔥 ไฟไหม้\nFire, Explosion"]
        N3["⚡ ไฟฟ้าขัดข้อง\nPower Outage\nUPS Failure"]
    end

    subgraph TECH["💻 Technical Threats - ภัยคุกคามทางเทคนิค"]
        T1["🦠 Malware\nVirus, Worm\nRansomware, Trojan"]
        T2["🕳️ Zero-Day Exploit\nช่องโหว่ไม่รู้จักมาก่อน"]
        T3["💽 Hardware Failure\nดิสก์เสีย, เซิร์ฟเวอร์พัง"]
        T4["📡 Supply Chain Attack\nโจมตีผ่าน Vendor"]
    end

    T --> HUMAN
    T --> NATURAL
    T --> TECH

1.3.5 ประเภทของการโจมตี (Attack Categories)

ประเภทการโจมตี คำอธิบาย ตัวอย่าง กระทบ CIA
Passive Attack ดักฟัง/สังเกตโดยไม่แก้ไขข้อมูล Sniffing, Eavesdropping Confidentiality
Active Attack แก้ไข, ขัดขวาง หรือปลอมแปลงข้อมูล DoS, MITM, Injection Integrity, Availability
Insider Attack โจมตีจากภายในองค์กร Data theft, Sabotage ทั้ง 3 ด้าน
Outsider Attack โจมตีจากภายนอกองค์กร Hacking, Phishing ขึ้นอยู่กับเทคนิค
Targeted Attack (APT) เลือกเป้าหมายเฉพาะเจาะจง, ใช้เวลานาน Spear Phishing, Zero-day ทั้ง 3 ด้าน
Opportunistic Attack โจมตีเป้าหมายที่มีช่องโหว่โดยไม่เลือก Ransomware, Worms Availability, Confidentiality

1.3.6 ทดลองด้วย Linux — ตรวจสอบ Vulnerabilities

# === 1. ตรวจสอบ Security Updates ที่ค้างอยู่ (Ubuntu/Debian) ===
apt list --upgradable 2>/dev/null | grep -i security | head -20

# นับจำนวน security updates
echo "จำนวน Security Updates ค้างอยู่:"
apt list --upgradable 2>/dev/null | grep -i security | wc -l

# === 2. ตรวจสอบ CVE ของ Package ที่ติดตั้ง ===
# ดูเวอร์ชัน OpenSSL ที่ใช้อยู่
openssl version -a

# ดู kernel version
uname -r

# === 3. ใช้ Lynis ตรวจสอบ Security Audit เบื้องต้น ===
sudo apt install lynis -y 2>/dev/null || sudo pacman -S lynis

# รัน quick audit
sudo lynis audit system --quick 2>&1 | tail -30

# === 4. ตรวจสอบ SUID/SGID files (อาจใช้ Privilege Escalation ได้) ===
echo "=== SUID Files (อาจเป็นช่องโหว่ Privilege Escalation) ==="
find / -perm -4000 -type f 2>/dev/null | grep -v proc | head -20

echo "=== SGID Files ==="
find / -perm -2000 -type f 2>/dev/null | grep -v proc | head -10

# === 5. ตรวจสอบ World-Writable Files ===
echo "=== World-Writable Files (อันตราย!) ==="
find /etc -writable -type f 2>/dev/null | head -10

# === 6. ตรวจสอบ failed login attempts ===
echo "=== Failed SSH Login Attempts (24 ชั่วโมงล่าสุด) ==="
journalctl -u sshd --since "24 hours ago" 2>/dev/null | \
    grep "Failed password" | \
    awk '{print $NF}' | sort | uniq -c | sort -rn | head -10

# === 7. ใช้ nmap scan ports ตัวเอง (ต้องขออนุญาตก่อนทำ) ===
echo "=== Open Ports บนเครื่องตัวเอง ==="
nmap -sV localhost 2>/dev/null || echo "ติดตั้ง nmap: sudo apt install nmap"

1.4 ระบบความมั่นคงพื้นฐาน (Basic Security Systems) และ Security Policies

1.4.1 แนวคิด Defense in Depth (การป้องกันเชิงลึก)

Defense in Depth คือแนวทางการป้องกันหลายชั้น โดยไม่พึ่งพาชั้นป้องกันใดชั้นหนึ่งเพียงชั้นเดียว หากชั้นหนึ่งถูกเจาะ ชั้นถัดไปยังคงป้องกันอยู่

graph TB
    Internet["🌐 Internet\nผู้ใช้ภายนอก / ผู้โจมตี"]

    subgraph L1["🔴 ชั้นที่ 1: Perimeter Security (รั้วชั้นนอก)"]
        direction LR
        FW~~~WAF~~~DDOS
        FW["🔥 Firewall / NGFW\nกรองแพ็กเก็ต, กฎ Stateful"]
        WAF["🛡️ WAF (Web Application Firewall)\nป้องกัน SQLi, XSS, OWASP Top 10"]
        DDOS["🌊 Anti-DDoS\nกรอง traffic โจมตี DDoS"]
    end

    subgraph L2["🟠 ชั้นที่ 2: Network Security (ความมั่นคงเครือข่าย)"]
        direction LR
        IDS~~~SEG~~~VPN
        IDS["👁️ IDS/IPS (Snort/Suricata)\nตรวจจับและป้องกันการบุกรุก"]
        SEG["📡 Network Segmentation\nDMZ, VLAN, Zero Trust Zones"]
        VPN["🔐 VPN Gateway\nเข้ารหัสการสื่อสาร Remote Access"]
    end

    subgraph L3["🟡 ชั้นที่ 3: Host Security (ความมั่นคงโฮสต์)"]
        direction LR
        AV~~~PATCH~~~HIDS
        AV["🦠 EDR/Antivirus\nตรวจจับ Malware, Behavioral Analysis"]
        PATCH["🔧 Patch Management\nอัปเดต OS/Software ทันที"]
        HIDS["📋 HIDS + FIM\nตรวจสอบ Log, Files, Integrity"]
    end

    subgraph L4["🟢 ชั้นที่ 4: Application Security (ความมั่นคงแอปพลิเคชัน)"]
        direction LR
        AUTH~~~AUTHZ~~~CRYPTO
        AUTH["👤 Authentication (MFA)\nพิสูจน์ตัวตนหลายปัจจัย"]
        AUTHZ["🔑 Authorization (RBAC)\nควบคุมสิทธิ์ตามบทบาท"]
        CRYPTO["🔒 Encryption (TLS 1.3)\nเข้ารหัสข้อมูลขณะรับส่ง"]
    end

    subgraph L5["🔵 ชั้นที่ 5: Data Security (ความมั่นคงข้อมูล)"]
        direction LR
        DLP~~~BACKUP~~~CLASSIFY
        DLP["💾 DLP (Data Loss Prevention)\nป้องกันข้อมูลรั่วไหล"]
        BACKUP["📦 Backup & DR\nสำรองข้อมูลและกู้คืนระบบ"]
        CLASSIFY["📁 Data Classification\nจัดประเภทและติดป้ายข้อมูล"]
    end

    Internet --> L1 --> L2 --> L3 --> L4 --> L5

1.4.2 Security Policies (นโยบายความมั่นคงปลอดภัย)

Security Policy (นโยบายความมั่นคงปลอดภัย) คือเอกสารที่กำหนดกฎ, แนวทาง, และข้อปฏิบัติสำหรับการปกป้องสินทรัพย์สารสนเทศขององค์กร ซึ่งต้องได้รับการอนุมัติจากผู้บริหารระดับสูงและสื่อสารให้พนักงานทุกคนทราบ

ลำดับชั้นของ Security Documents:

  1. Policy (นโยบาย) — ระดับสูงสุด, กำหนดทิศทางโดยรวม เช่น "องค์กรต้องรักษาความลับของข้อมูลลูกค้า"
  2. Standard (มาตรฐาน) — ข้อกำหนดเฉพาะที่ต้องปฏิบัติตาม เช่น "รหัสผ่านต้องยาวอย่างน้อย 12 ตัวอักษร"
  3. Guideline (แนวทาง) — คำแนะนำที่ควรปฏิบัติ (ไม่บังคับ)
  4. Procedure (ขั้นตอน) — คำแนะนำปฏิบัติแบบ step-by-step

ประเภทของ Security Policies ที่สำคัญ:

นโยบาย เนื้อหา กลุ่มเป้าหมาย
Acceptable Use Policy (AUP) กำหนดการใช้งานอุปกรณ์และเครือข่ายที่ยอมรับได้ พนักงานทุกคน
Password Policy ความซับซ้อน, อายุ, การเก็บรักษา รหัสผ่าน พนักงานทุกคน
Remote Access Policy เงื่อนไขการเข้าถึงระบบจากระยะไกล พนักงาน WFH, Vendor
Data Classification Policy ระดับความลับข้อมูล: Public/Internal/Confidential ทุกแผนก
Incident Response Policy ขั้นตอนตอบสนองเมื่อเกิดเหตุการณ์ความมั่นคงปลอดภัย ทีม IT, Security
BYOD Policy กฎการใช้อุปกรณ์ส่วนตัวในการทำงาน พนักงานที่ใช้ BYOD
Patch Management Policy กำหนดตารางและข้อกำหนดการอัปเดต ทีม IT Operations

1.4.3 ทดลองด้วย Linux — ตั้งค่า Password Policy

# === 1. ดู Password Policy ปัจจุบัน ===
sudo chage -l $(whoami)
# แสดง: Last password change, Password expires, Password inactive, etc.

# === 2. ตั้งค่า Password Aging Policy ===
# รหัสผ่านหมดอายุใน 90 วัน
sudo chage -M 90 username

# ต้องรอ 7 วันก่อนเปลี่ยนรหัสผ่านใหม่ได้
sudo chage -m 7 username

# แจ้งเตือนก่อนหมดอายุ 14 วัน
sudo chage -W 14 username

# ปิดบัญชีหลังรหัสผ่านหมดอายุ 30 วัน (ไม่เข้าสู่ระบบ)
sudo chage -I 30 username

# ดูผลหลังตั้งค่า
sudo chage -l username

# === 3. กำหนด Password Complexity ด้วย PAM ===
# ติดตั้ง libpam-pwquality
sudo apt install libpam-pwquality -y

# กำหนดค่าความซับซ้อน
sudo tee /etc/security/pwquality.conf << 'EOF'
# ความยาวขั้นต่ำ
minlen = 12

# ต้องมีตัวเลขอย่างน้อย 1 ตัว (-N = จำเป็น)
dcredit = -1

# ต้องมีตัวพิมพ์ใหญ่อย่างน้อย 1 ตัว
ucredit = -1

# ต้องมีตัวพิมพ์เล็กอย่างน้อย 1 ตัว
lcredit = -1

# ต้องมีอักขระพิเศษอย่างน้อย 1 ตัว
ocredit = -1

# ห้ามซ้ำเกิน 3 ตัวติดต่อกัน
maxrepeat = 3

# ห้ามมีส่วนของ username ในรหัสผ่าน
usercheck = 1
EOF

echo "Password policy ตั้งค่าแล้ว!"

# === 4. ทดสอบ password strength ===
python3 << 'PYEOF'
import re

def check_password_strength(password):
    """ตรวจสอบความแข็งแกร่งของรหัสผ่าน"""
    score = 0
    issues = []

    checks = [
        (len(password) >= 12, "ความยาว >= 12 ตัวอักษร", 2),
        (bool(re.search(r'[A-Z]', password)), "มีตัวพิมพ์ใหญ่ (A-Z)", 1),
        (bool(re.search(r'[a-z]', password)), "มีตัวพิมพ์เล็ก (a-z)", 1),
        (bool(re.search(r'\d', password)), "มีตัวเลข (0-9)", 1),
        (bool(re.search(r'[!@#$%^&*(),.?":{}|<>]', password)), "มีอักขระพิเศษ", 2),
        (not re.search(r'(.)\1{2,}', password), "ไม่มีตัวซ้ำเกิน 3 ตัว", 1),
        (len(password) >= 16, "ความยาว >= 16 ตัวอักษร (bonus)", 1),
    ]

    for passed, desc, points in checks:
        status = "✅" if passed else "❌"
        if passed:
            score += points
        else:
            issues.append(desc)
        print(f"  {status} {desc}")

    max_score = sum(p for _, _, p in checks)
    percent = (score / max_score) * 100

    if percent >= 80:
        level = "💪 แข็งแกร่งมาก (Strong)"
    elif percent >= 60:
        level = "👍 ปานกลาง (Medium)"
    else:
        level = "⚠️ อ่อนแอ (Weak) — ต้องปรับปรุง!"

    print(f"\n  คะแนน: {score}/{max_score} ({percent:.0f}%)")
    print(f"  ระดับ: {level}")

passwords = ["123456", "Password1", "P@ssw0rd!2024#Secure"]
for pwd in passwords:
    print(f"\nรหัสผ่าน: '{pwd}'")
    check_password_strength(pwd)
PYEOF

1.4.4 Principle of Least Privilege (หลักการสิทธิ์ขั้นต่ำ)

Principle of Least Privilege (PoLP) คือหลักการให้สิทธิ์เพียงพอสำหรับการทำงานที่จำเป็นเท่านั้น ไม่มากกว่านั้น เพื่อลดความเสียหายหากบัญชีถูกโจมตีหรือพนักงานทุจริต

# === ตรวจสอบ Privilege ของผู้ใช้ ===

# ดู sudoers privileges ของผู้ใช้
sudo -l -U username 2>/dev/null

# ดู groups ที่ผู้ใช้เป็นสมาชิก
groups username
id username

# ตรวจสอบผู้ใช้ที่มีสิทธิ์ root (UID=0)
awk -F: '($3 == 0) {print "⚠️ Root-level user: "$1}' /etc/passwd

# ตรวจสอบ sudoers file
sudo cat /etc/sudoers | grep -v "^#" | grep -v "^$"

# === สร้างผู้ใช้ที่มีสิทธิ์จำกัดตาม PoLP ===
# สร้าง service account สำหรับ web server เท่านั้น
sudo useradd -r -s /bin/false -d /var/www webservice
# -r = system account (UID < 1000)
# -s /bin/false = ไม่สามารถ login ได้
# -d /var/www = home directory จำกัด

# กำหนด sudo permission เฉพาะคำสั่งที่จำเป็น
# เพิ่มด้วย visudo:
# webadmin ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart nginx
# webadmin ALL=(ALL) NOPASSWD: /usr/bin/systemctl status nginx

# ตรวจสอบไฟล์ที่ sensitive และสิทธิ์
ls -la /etc/shadow     # เฉพาะ root (000 หรือ 640)
ls -la /etc/sudoers    # เฉพาะ root (440)
ls -la /root/          # เฉพาะ root (700)

1.5 กรอบการทำงานด้านความมั่นคงปลอดภัย: NIST, ISO/IEC 27001

1.5.1 NIST Cybersecurity Framework (CSF)

NIST CSF (National Institute of Standards and Technology Cybersecurity Framework) คือกรอบการทำงานที่พัฒนาโดยสถาบัน NIST ของสหรัฐอเมริกา เพื่อช่วยองค์กรทุกขนาดในการบริหารจัดการความเสี่ยงด้าน Cybersecurity ประกอบด้วย 6 ฟังก์ชันหลัก (CSF 2.0, 2024) ที่ต้องดำเนินการต่อเนื่อง:

graph LR
    GV["🏛️ GOVERN\nกำกับดูแล\nนโยบาย + Roles\n(ใหม่ใน CSF 2.0)"]
    ID["🔍 IDENTIFY\nระบุสินทรัพย์\nและความเสี่ยง"]
    PR["🛡️ PROTECT\nป้องกัน\nและควบคุม"]
    DE["👁️ DETECT\nตรวจจับ\nเหตุการณ์"]
    RE["⚡ RESPOND\nตอบสนอง\nต่อเหตุการณ์"]
    RC["🔄 RECOVER\nกู้คืน\nระบบและบริการ"]

    GV --> ID
    ID --> PR
    PR --> DE
    DE --> RE
    RE --> RC
    RC -->|"ปรับปรุงอย่างต่อเนื่อง\n(Continuous Improvement)"| ID

รายละเอียดแต่ละฟังก์ชัน NIST CSF 2.0:

ฟังก์ชัน กิจกรรมหลัก ตัวอย่างการดำเนินงาน เครื่องมือ
Govern นโยบาย, บทบาท, Roles, Risk Strategy จัดตั้ง CISO, ออกนโยบาย ISMS GRC Platform
Identify Asset Inventory, Risk Assessment ทำ CMDB, ประเมิน Risk Nmap, Asset Manager
Protect Access Control, Encryption, Patch ติดตั้ง Firewall, MFA, Patch UFW, Ansible
Detect Monitoring, Log Analysis, Anomaly ติดตั้ง SIEM, IDS/IPS Wazuh, Suricata
Respond Incident Response, Communication SOC รับมือเหตุการณ์ TheHive, PagerDuty
Recover Recovery Plan, Backup, Communication Restore จาก Backup rsync, Veeam

1.5.2 ISO/IEC 27001:2022 — ISMS

ISO/IEC 27001 คือมาตรฐานสากลสำหรับระบบบริหารจัดการความมั่นคงปลอดภัยสารสนเทศ (Information Security Management System — ISMS) ใช้วงจร PDCA (Plan-Do-Check-Act) และมี 93 Controls ใน Annex A (ปรับปรุงใน 2022)

flowchart TD
    subgraph PLAN["📋 PLAN: วางแผน - (กำหนดขอบเขตและประเมินความเสี่ยง)"]
        P1["1️⃣ กำหนดขอบเขต ISMS\n(Define Scope)"]
        P2["2️⃣ Risk Assessment\n(ประเมินความเสี่ยง)"]
        P3["3️⃣ Risk Treatment Plan\n(แผนจัดการความเสี่ยง)"]
        P4["4️⃣ Statement of Applicability\n(SoA — ระบุ Controls ที่ใช้)"]
        P1 --> P2 --> P3 --> P4
    end

    subgraph DO["⚙️ DO: ดำเนินการ - (ติดตั้งมาตรการและดำเนินงาน)"]
        D1["5️⃣ Implement Controls\n(ติดตั้ง 93 Controls ตาม Annex A)"]
        D2["6️⃣ Security Awareness Training\n(อบรมพนักงาน)"]
        D3["7️⃣ Documentation\n(จัดทำเอกสารหลักฐาน)"]
        D1 --> D2 --> D3
    end

    subgraph CHECK["🔍 CHECK: ตรวจสอบ - (วัดผลและตรวจสอบ)"]
        C1["8️⃣ Internal Audit\n(ตรวจสอบภายในองค์กร)"]
        C2["9️⃣ Management Review\n(ทบทวนโดยผู้บริหาร)"]
        C3["🔟 Performance Measurement\n(วัดผล KPI ความมั่นคง)"]
        C1 --> C2 --> C3
    end

    subgraph ACT["🔄 ACT: ปรับปรุง - (แก้ไขและปรับปรุงต่อเนื่อง)"]
        A1["1️⃣1️⃣ Corrective Actions\n(แก้ไขข้อบกพร่องที่พบ)"]
        A2["1️⃣2️⃣ Continual Improvement\n(ปรับปรุง ISMS อย่างต่อเนื่อง)"]
        A1 --> A2
    end

    PLAN --> DO
    DO --> CHECK
    CHECK --> ACT
    ACT -->|"วนซ้ำ (Iterative)"| PLAN

Annex A Controls หลัก (ISO 27001:2022):

กลุ่ม Control จำนวน Controls ตัวอย่าง
A.5 Organizational Controls 37 นโยบาย, Roles, Risk Management
A.6 People Controls 8 Background check, Training, Awareness
A.7 Physical Controls 14 Physical Security, Clear Desk
A.8 Technological Controls 34 Access Control, Encryption, Logging

1.5.3 เปรียบเทียบ NIST CSF vs. ISO/IEC 27001

หัวข้อ NIST CSF 2.0 ISO/IEC 27001:2022
ที่มา NIST สหรัฐอเมริกา ISO — องค์กรมาตรฐานสากล
ลักษณะ Voluntary Framework (ไม่บังคับ, ยืดหยุ่น) Certifiable Standard (ขอใบรับรองได้)
โครงสร้าง 6 Functions (Govern, Identify, Protect, Detect, Respond, Recover) PDCA Cycle + 93 Annex A Controls
เป้าหมาย Cybersecurity Risk Management ISMS — ระบบบริหารจัดการ InfoSec
ขนาดองค์กร ทุกขนาด (ปรับใช้ได้) ทุกขนาด (แต่ซับซ้อนกว่า)
ความยาก ปานกลาง สูง (ต้องมีเอกสารและหลักฐานมาก)
ค่าใช้จ่าย ฟรี (ดาวน์โหลด PDF ได้) ค่า Certification สูง (~500K–2M บาท)
ปรับปรุงล่าสุด CSF 2.0 (กุมภาพันธ์ 2024) ISO 27001:2022
ใช้ในไทย ใช้เป็น reference / baseline ขอ Certification สำหรับธุรกิจ

1.5.4 กฎหมายและมาตรฐานที่เกี่ยวข้องในประเทศไทย

มาตรฐาน/กฎหมาย สาระสำคัญ กลุ่มเป้าหมาย บทลงโทษ
PDPA 2562 คุ้มครองข้อมูลส่วนบุคคล, หน้าที่ Data Controller/Processor ทุกองค์กรที่ประมวลผลข้อมูลส่วนบุคคล ปรับสูงสุด 5 ล้านบาท, จำคุก 6 เดือน
พ.ร.บ. คอมพิวเตอร์ 2560 ความผิดเกี่ยวกับคอมพิวเตอร์ ทุกคนในไทย จำคุก 1–7 ปี
พ.ร.บ. ไซเบอร์ 2562 ความมั่นคงปลอดภัยโครงสร้างพื้นฐานสำคัญ CII (เช่น พลังงาน, การเงิน, สาธารณสุข) มาตรการทางปกครอง
ISO 27001:2022 ISMS มาตรฐานสากล องค์กรที่ต้องการ Certification
NIST CSF 2.0 กรอบบริหาร Cybersecurity Risk อ้างอิงสำหรับทุกองค์กร
PCI-DSS v4.0 ความมั่นคงข้อมูลบัตรชำระเงิน ธุรกิจที่รับ/ประมวลบัตรเครดิต ค่าปรับสูง, เพิกถอนสิทธิ์รับบัตร

1.5.5 ทดลองด้วย Linux — ตรวจสอบ Security Hardening ตาม Framework

# === Script ตรวจสอบ Security Baseline (อ้างอิง NIST CSF + CIS Benchmarks) ===

cat > /tmp/nist_check.sh << 'SCRIPT'
#!/bin/bash
# Security Baseline Checker — อ้างอิง NIST CSF 2.0

RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
NC='\033[0m' # No Color

pass=0
fail=0
warn=0

check() {
    local desc="$1"
    local cmd="$2"
    if eval "$cmd" &>/dev/null; then
        echo -e "${GREEN}[PASS]${NC} $desc"
        ((pass++))
    else
        echo -e "${RED}[FAIL]${NC} $desc"
        ((fail++))
    fi
}

warn_check() {
    local desc="$1"
    local cmd="$2"
    if eval "$cmd" &>/dev/null; then
        echo -e "${GREEN}[PASS]${NC} $desc"
        ((pass++))
    else
        echo -e "${YELLOW}[WARN]${NC} $desc"
        ((warn++))
    fi
}

echo "========================================"
echo "NIST CSF Security Baseline Check"
echo "Date: $(date)"
echo "Host: $(hostname)"
echo "========================================"

echo -e "\n--- [IDENTIFY] Asset & Configuration ---"
check "OS อัปเดตแล้ว (มี updates < 10 รายการ)" \
    "[ $(apt list --upgradable 2>/dev/null | wc -l) -lt 10 ]"

echo -e "\n--- [PROTECT] Access Control ---"
check "Root login SSH ถูกปิด" \
    "grep -q 'PermitRootLogin no' /etc/ssh/sshd_config"

check "SSH Password Auth ถูกปิด (ใช้ Key เท่านั้น)" \
    "grep -q 'PasswordAuthentication no' /etc/ssh/sshd_config"

warn_check "Firewall (ufw/iptables) เปิดใช้งาน" \
    "ufw status 2>/dev/null | grep -q 'active' || iptables -L INPUT 2>/dev/null | grep -q 'DROP\|REJECT'"

echo -e "\n--- [PROTECT] Encryption & Hardening ---"
check "ไม่มี world-writable files ใน /etc" \
    "[ -z \"\$(find /etc -writable -type f 2>/dev/null)\" ]"

check "SSH Protocol version 2 เท่านั้น" \
    "grep -q 'Protocol 2' /etc/ssh/sshd_config 2>/dev/null || ssh -V 2>&1 | grep -q 'OpenSSH_[89]'"

echo -e "\n--- [DETECT] Logging & Monitoring ---"
check "rsyslog/syslog ทำงานอยู่" \
    "systemctl is-active rsyslog &>/dev/null || systemctl is-active syslog &>/dev/null"

warn_check "auditd ติดตั้งและทำงาน" \
    "systemctl is-active auditd &>/dev/null"

echo -e "\n========================================"
echo -e "ผลสรุป: ${GREEN}PASS: $pass${NC} | ${RED}FAIL: $fail${NC} | ${YELLOW}WARN: $warn${NC}"
echo "========================================"
SCRIPT

chmod +x /tmp/nist_check.sh
sudo /tmp/nist_check.sh

1.6 บทบาทและความรับผิดชอบในการรักษาความมั่นคงปลอดภัย

1.6.1 โครงสร้างทีม Security ในองค์กร

graph TD
    BOARD["🏦 Board of Directors\nคณะกรรมการบริษัท"]
    CEO["👔 CEO / ผู้บริหารสูงสุด"]
    CISO["🔐 CISO\n(Chief Information Security Officer)\nผู้บริหารความมั่นคงสารสนเทศสูงสุด"]

    subgraph BLUE["🔵 Blue Team — ป้องกันและตรวจจับ"]
        direction TB
        SA["🏗️ Security Architect\nออกแบบสถาปัตยกรรม"]
        SOC["📊 SOC Manager\nบริหารทีม Security Operations"]
        SOC1["👁️ SOC Analyst L1\nMonitor & Triage"]
        SOC2["🔍 SOC Analyst L2\nInvestigate & Escalate"]
        SOC3["⚔️ SOC Analyst L3\nThreat Hunt & Forensics"]
        IR["🚨 Incident Responder\nตอบสนองเหตุการณ์"]
        SE["⚙️ Security Engineer\nติดตั้งระบบป้องกัน"]
        SOC --> SOC1 --> SOC2 --> SOC3
        SA~~~IR~~~SE
    end

    subgraph RED["🔴 Red Team — ทดสอบเจาะระบบ"]
        PT["⚔️ Penetration Tester\nEthical Hacking"]
        VA["🔍 Vulnerability Assessor\nประเมินช่องโหว่"]
        TI["🕵️ Threat Intelligence\nวิเคราะห์ภัยคุกคาม"]
    end

    subgraph GRC_TEAM["⚖️ GRC — ธรรมาภิบาล, ความเสี่ยง, ความสอดคล้อง"]
        GRC["📋 GRC Analyst\nGovernance, Risk & Compliance"]
        AUDIT["🔎 Security Auditor\nตรวจสอบความสอดคล้อง"]
    end

    BOARD --> CEO --> CISO
    CISO --> BLUE
    CISO --> RED
    CISO --> GRC_TEAM

1.6.2 บทบาทและความรับผิดชอบโดยละเอียด

ตำแหน่ง ความรับผิดชอบหลัก ทักษะที่ต้องการ เครื่องมือที่ใช้
CISO กำหนดนโยบาย, บริหารความเสี่ยง, รายงานต่อ Board Leadership, Risk Mgmt, Business GRC Platform, SIEM
Security Architect ออกแบบสถาปัตยกรรมความมั่นคง, Threat Modeling Network, Cloud, PKI, Zero Trust Draw.io, Threat Modeler
SOC Analyst L1 Monitor alerts, Triage events, Escalate SIEM basics, Log reading Splunk, QRadar, Wazuh
SOC Analyst L2 Investigate incidents, Malware analysis DFIR, Packet Analysis Wireshark, Volatility
SOC Analyst L3 Threat Hunting, Tool development Advanced DFIR, Scripting, RE YARA, Sigma, Python
Incident Responder รับมือเหตุการณ์, กู้คืนระบบ, รายงาน DFIR, Forensics, Communication Velociraptor, TheHive
Penetration Tester ทดสอบเจาะระบบแบบมีจริยธรรม, รายงาน Ethical Hacking, Exploit Dev Metasploit, Burp Suite
Security Engineer ติดตั้ง, Config, ดูแล Security Controls Linux, Networking, Scripting Ansible, Terraform, pfSense
GRC Analyst ดูแลการปฏิบัติตามมาตรฐาน PDPA/ISO 27001 ISO 27001, PDPA, Risk Assessment Archer, ServiceNow GRC
Threat Intelligence วิเคราะห์ภัยคุกคามใหม่, IOC analysis OSINT, Malware Analysis, CTI MISP, OpenCTI, VirusTotal

1.6.3 Red Team vs. Blue Team vs. Purple Team

graph TB
    subgraph RED["🔴 Red Team - ผู้โจมตี (Attacker Mindset)"]
        direction LR
        R1["Penetration Testing\nทดสอบเจาะระบบ"]
        R2["Social Engineering\nจิตวิทยาการหลอกลวง"]
        R3["APT Simulation\nจำลองการโจมตีขั้นสูง"]
        R4["Zero-Day Research\nค้นหาช่องโหว่ใหม่"]
         R1~~~R2~~~R3~~~R4
    end

    subgraph PURPLE["🟣 Purple Team - สะพานเชื่อม Red & Blue"]
        direction LR
        P1~~~P2~~~P3~~~P4
        P1["Adversary Emulation\nจำลองพฤติกรรมโจมตีจริง"]
        P2["Detection Engineering\nพัฒนา Detection Rules"]
        P3["Table-top Exercises\nซ้อมแผน Incident Response"]
        P4["Knowledge Transfer\nถ่ายทอดความรู้ Red → Blue"]
    end

    subgraph BLUE["🔵 Blue Team - ผู้ป้องกัน (Defender Mindset)"]
        direction LR
        B1~~~B2~~~B3~~~B4
        B1["Security Monitoring\nตรวจสอบเหตุการณ์ตลอด 24/7"]
        B2["Incident Response\nตอบสนองเหตุการณ์"]
        B3["Threat Hunting\nค้นหาภัยคุกคามที่ซ่อนอยู่"]
        B4["Security Hardening\nเสริมความมั่นคงระบบ"]
    end

    RED <-->|"แบ่งปัน TTPs\n(Tactics, Techniques, Procedures)"| PURPLE
    PURPLE <-->|"ปรับปรุง Detection\nและ Response"| BLUE

1.6.4 ทดลองด้วย Linux — งาน SOC Analyst (Log Analysis)

# === งานทั่วไปของ SOC Analyst — ตรวจสอบ Logs ===

# 1. ตรวจสอบ authentication failures (SSH Brute Force)
echo "=== Top 10 IPs ที่พยายาม Brute Force SSH ==="
grep "Failed password" /var/log/auth.log 2>/dev/null | \
    grep -oP 'from \K[\d.]+' | \
    sort | uniq -c | sort -rn | head -10 | \
    awk '{printf "  %-5s attempts: %s\n", $1, $2}'

# 2. ดู successful logins
echo -e "\n=== Successful SSH Logins (10 รายการล่าสุด) ==="
grep "Accepted" /var/log/auth.log 2>/dev/null | tail -10 | \
    awk '{print $1,$2,$3,"| User:",$9,"| From:",$11}'

# 3. ดู sudo commands (privilege escalation monitoring)
echo -e "\n=== Recent sudo Commands ==="
grep "COMMAND" /var/log/auth.log 2>/dev/null | tail -15

# 4. ตรวจสอบ crontab ที่น่าสงสัย (Persistence Mechanism)
echo -e "\n=== System Crontabs ==="
crontab -l 2>/dev/null && echo "--- (current user) ---"
ls -la /etc/cron.d/ 2>/dev/null
ls -la /etc/cron.daily/ 2>/dev/null

# 5. ดู network connections ที่น่าสงสัย
echo -e "\n=== Established Connections ==="
ss -tunp | grep ESTAB | \
    awk '{print $5, "→", $6, "PID:"$7}' | head -20

# 6. ตรวจสอบ processes ที่กิน CPU/Memory สูงผิดปกติ
echo -e "\n=== Top 10 Processes by CPU ==="
ps aux --sort=-%cpu | head -11 | \
    awk 'NR>1{printf "  %-20s CPU:%-6s MEM:%-6s PID:%s\n", $11, $3, $4, $2}'

# 7. สร้าง simple log analysis script
cat > /tmp/soc_triage.sh << 'TRIAGE'
#!/bin/bash
# Simple SOC Triage Script

echo "=========================================="
echo "SOC TRIAGE REPORT — $(date)"
echo "Host: $(hostname) | IP: $(hostname -I | awk '{print $1}')"
echo "=========================================="

# Check for multiple failed logins from same IP
THRESHOLD=5
echo -e "\n[!] IPs ที่ fail login เกิน $THRESHOLD ครั้ง:"
grep "Failed password" /var/log/auth.log 2>/dev/null | \
    grep -oP 'from \K[\d.]+' | sort | uniq -c | \
    awk -v t="$THRESHOLD" '$1 >= t {print "  ALERT: IP "$2" failed "$1" times"}' | \
    head -10

# Check for new user accounts created recently
echo -e "\n[!] User accounts ที่สร้างใหม่ใน 7 วัน:"
find /home -maxdepth 1 -type d -newer /etc/passwd -mtime -7 2>/dev/null | \
    awk -F/ '{if($3!="") print "  New home dir: "$3}'

# Check for listening services
echo -e "\n[!] Services ที่กำลัง Listen:"
ss -tlnp | grep LISTEN | awk '{print "  Port:"$4, "Process:"$6}'

echo -e "\n=========================================="
echo "Triage Complete"
TRIAGE

chmod +x /tmp/soc_triage.sh
sudo /tmp/soc_triage.sh

1.6.5 Certifications ที่เกี่ยวข้องกับแต่ละบทบาท

ระดับ Certification บทบาทที่เหมาะสม ผู้ออก ราคาประมาณ
เริ่มต้น CompTIA Security+ SOC L1, IT Security CompTIA ~10,000 บาท
เริ่มต้น CEH (Certified Ethical Hacker) Penetration Tester เริ่มต้น EC-Council ~20,000 บาท
กลาง CompTIA CySA+ SOC Analyst, Blue Team CompTIA ~12,000 บาท
กลาง OSCP Penetration Tester มืออาชีพ Offensive Security ~35,000 บาท
สูง CISSP Security Manager, Architect (ISC)² ~25,000 บาท
สูง CISM Security Manager ISACA ~25,000 บาท
GRC ISO 27001 Lead Auditor GRC Analyst, Auditor Various CBs ~30,000 บาท
เฉพาะทาง GREM (Malware RE) Malware Analyst, SOC L3 GIAC ~45,000 บาท
เฉพาะทาง GCFA (Forensics) Digital Forensics, IR GIAC ~45,000 บาท
Cloud AWS Security Specialty Cloud Security Engineer AWS ~10,000 บาท

สรุปบทที่ 1 (Chapter 1 Summary)

บทที่ 1 ได้ปูพื้นฐานที่จำเป็นสำหรับการศึกษา Network Security ทั้งหมด โดยครอบคลุมประเด็นสำคัญดังนี้:

1. แนวคิดพื้นฐาน ความแตกต่างระหว่าง Information Security (ขอบเขตกว้างสุด), Cybersecurity และ Network Security (เฉพาะเจาะจง) พร้อมวิวัฒนาการตั้งแต่ยุค ARPANET จนถึง Zero Trust ในปัจจุบัน

2. CIA Triad — สามเสาหลัก

3. Threats, Vulnerabilities, Attacks ความสัมพันธ์ Threat × Vulnerability × Impact = Risk, ระบบ CVSS สำหรับประเมินช่องโหว่ (0.0–10.0) และประเภทการโจมตีทั้ง Passive/Active

4. Defense in Depth การป้องกัน 5 ชั้น: Perimeter → Network → Host → Application → Data พร้อม Security Policies และหลัก Least Privilege

5. NIST CSF 2.0 และ ISO/IEC 27001:2022

6. บทบาทใน Security CISO ดูแลภาพรวม, Blue Team ป้องกัน, Red Team ทดสอบ, Purple Team เชื่อมกัน และ GRC ดูแลการปฏิบัติตามมาตรฐาน

หลักการสำคัญที่ต้องจำ:


เอกสารอ้างอิง (References)

  1. NIST Cybersecurity Framework 2.0 — National Institute of Standards and Technology (2024). https://www.nist.gov/cyberframework

  2. ISO/IEC 27001:2022 — Information Security, Cybersecurity and Privacy Protection. International Organization for Standardization. https://www.iso.org/standard/27001

  3. IBM Cost of a Data Breach Report 2023 — IBM Security. https://www.ibm.com/security/data-breach

  4. OWASP Top 10 (2021) — Open Web Application Security Project. https://owasp.org/Top10/

  5. MITRE ATT&CK Framework v15 — MITRE Corporation. https://attack.mitre.org/

  6. Common Vulnerability Scoring System (CVSS) v3.1 Specification — FIRST.org. https://www.first.org/cvss/specification-document

  7. CIS Benchmarks — Center for Internet Security. https://www.cisecurity.org/cis-benchmarks

  8. พ.ร.บ. คุ้มครองข้อมูลส่วนบุคคล พ.ศ. 2562 (PDPA) — ราชกิจจานุเบกษา, 27 พฤษภาคม 2562. https://www.pdpa.go.th/

  9. พ.ร.บ. การรักษาความมั่นคงปลอดภัยไซเบอร์ พ.ศ. 2562 — ราชกิจจานุเบกษา. https://www.ncsa.or.th/

  10. Stallings, W. (2022). Cryptography and Network Security: Principles and Practice (8th ed.). Pearson Education.

  11. Anderson, R. (2020). Security Engineering: A Guide to Building Dependable Distributed Systems (3rd ed.). Wiley.

  12. CompTIA Security+ Study Guide (SY0-701) — CompTIA. https://www.comptia.org/certifications/security

  13. The Linux Command Line (2nd Ed.) — William Shotts. No Starch Press. https://linuxcommand.org/tlcl.php

  14. man pages ที่เกี่ยวข้อง: man sshd_config, man iptables, man sha256sum, man chage, man openssl, man ss, man lynis