Category: Network Security

  • วิธีตั้งค่า HTTPS บน Apache2 รุ่นที่สูงกว่า 2.4.8

    จากบทความ การแก้ไข Certificate สำหรับ Apache Web Server (Ubuntu 14.04 LTS) ตอนนี้ Apache2 รุ่นที่สูงกว่า 2.4.8 ประกาศให้ SSLCertificateChainFile นั้น obsolete หรือ จะไม่ใช้อีกต่อไป

    จากเดิม เราเคยใช้

    SSLCertificateFile /etc/apache2/cer/[cer-file-name].crt
    SSLCertificateKeyFile /etc/apache2/cer/[cer-file-name].key
    SSLCertificateChainFile /etc/apache2/cer/[cer-file-name].ca-bundle

    ต่อไปนี้ แนะนำให้ใช้แค่

    SSLCertificateFile /etc/apache2/cer/[cer-file-name]_combined.crt
    SSLCertificateKeyFile /etc/apache2/cer/[cer-file-name].key

    แล้ว 

    /etc/apache2/cer/[cer-file-name]_combined.crt

    มาจากไหน ??? มันมากจากการเอาไฟล์ [cer-file-name].crt แล้วต่อท้ายด้วยไฟล์ [cer-file-name].ca-bundle ด้วยคำสั่ง

    cat [cer-file-name].crt [cer-file-name].ca-bundle > [cer-file-name]_combined.crt

    เช่น

    cat in_psu.crt intermediate_ca.crt > in_psu_combined.crt

    เป็นต้น เสร็จแล้ว ก็ Restart Apache — จบแค่นี้ ใช้งานได้

    TL;DR

    Q: มีไฟล์ .crt เต็มไปหมด จะรู้ได้ไงว่า อันไหนคือ Certificate ของอะไร อย่างไร

    A: สมมุติ Certificate ของ Server ที่ได้มา ชื่อ server.crt ต้องใช้คำสั่งนี้ ดูรายละเอียด

    openssl x509 -in server.crt -text

    ผลที่ได้ จะประมาณนี้

    สิ่งสำคัญที่ควรดู ในที่นี้คือ Issuer จะเห็นว่า CN หรือ common name คือ AlphaSSL CA – SHA256 – G2  และบรรทัด Subject จะบอกว่า Domain (*.xxxxx.psu.ac.th) ที่ลงทะเบียนไว้ อยู่ภายใต้ “AlphaSSL CA” อีกที

    ซึ่ง ถ้าไปดูใน /etc/ssl/certs ก็จะเห็นว่า ไม่มี CA Certificate ของ “AlphaSSL CA” นี้อยู่ แต่จะมีของ “GlobalSign Root CA” อยู่

    ทำไมเป็นอย่างนั้น ??? เพราะ CA เค้าต้องรักษา Root Certificate ของตนเองไว้ให้ดี จึงออกสิ่งที่เรียกว่า Intermediate CA ขึ้นมาอีกชั้นหนึ่ง แล้วแจกจ่ายให้กับผู้ที่ซื้อ Certificate ของเค้าอีกชั้นหนึ่ง

    คราวนี้ มาลองดูข้อมูลใน intermediate_ca.crt ว่ามีข้อมูลเป็นอย่างไร ด้วยคำสั่ง

    openssl x509 -in intermediate_ca.crt -text

    จะเห็นได้ว่า Issuer เป็น “GlobalSign Root CA” และ Subject เป็น “AlphaSSL CA” 

    จากเดิม Apache2 รุ่น < 2.4.8 ให้ใช้ Directive  “SSLCertificateChainFile” ในการกำหนด Intermediate CA ได้ แต่หลังจากนั้น ก็ให้ Obsolete เพราะ สามารถเอา 2 ไฟล์มาต่อกันได้ตามที่เขียนไว้ข้างต้น

    ในทางปฏิบัติ จริง ๆ แล้ว ก็ยังใช้ได้อยู่ แต่เป็น Obsolete ทางที่ดี ก็ควรจะปรับปรุงตามที่แนะนำไว้จะดีกว่า

    และ ถ้าใช้งานแค่ SSLCertificateFile (แบบที่มีแต่ Server Certificate) และ SSLCertificateKey (Server Private Key) นั้น เมื่อ Restart apache2 แล้ว ทดสอบใช้งานกับ Web Browser ส่วนใหญ่ จะใช้งานได้ ไม่ต้องอ้าง Intermediate CA ก็ได้ *** เพราะใน Web Browser ได้ติดตั้ง Intermediate CA พวกนี้ไว้เป็นส่วนใหญ่แล้ *** แต่ถ้าลองเรียกผ่าน curl หรือบริการอื่น ๆ เช่น จาก Google DialogFlow Fulfillment ก็จะเรียกไม่ผ่าน เพราะในระบบเค้าไม่ได้ใส่ Intermediate CA ไว้นั่นเอง

    การที่ Combined ทั้ง Server Certificate และ Intermediate CA ไว้ในไฟล์เดียวกัน ทำให้มั่นใจได้ว่า สามารถใช้งาน https ได้จากทุก Platform นั่นเอง

    หวังว่าจะเป็นประโยชน์ครับ

  • Hardening your HTTP response headers

    Introduction

    HTTP Response headers คือ ค่าของสตริงที่ส่งกลับมาจากเซิร์ฟเวอร์ที่มีเนื้อหาตามที่ถูกร้องขอ โดยปกติจะใช้บอกข้อมูลทางเทคนิค เช่น เบราเซอร์ควรแคชเนื้อหา, ประเภทของเนื้อหาคืออะไร, ซอฟต์แวร์ที่ทำงานบนเซิร์ฟเวอร์ และอื่น ๆ   HTTP Response headers ถูกใช้เพื่อส่งต่อนโยบายความปลอดภัยไปยังเบราเซอร์  ทำให้การเปิดเว็บไซต์ของเรามีความปลอดภัยเพิ่มมากขึ้น

    Header ของ Apache2 ที่ควรต้องใส่เพื่อเพิ่มความปลอดภัยมีดังนี้

    Content Security Policy

    Header เรื่อง Content Security Policy (CSP) ช่วยให้กำหนดต้นทางของเนื้อหาที่อนุญาตสำหรับเว็บไซต์ โดยการจำกัดเนื้อหาที่เบราเซอร์สามารถโหลดได้ ได้แก่ js และ css

    สามารถสร้าง CSP ได้จาก https://report-uri.com/home/generate ทั้งนี้ต้องทดสอบการทำงานทุกครั้งเนื่องจาก การกำหนดค่าบางอย่างอาจทำให้เว็บไซต์ ทำงานไม่ถูกต้อง ดูรายละเอียดเพิ่มเติมได้ที่ https://scotthelme.co.uk/content-security-policy-an-introduction/ สำหรับ Apache2 เพิ่ม Header ต่อไปนี้ ในแฟ้มของไซต์ที่ต้องการ เช่น /etc/apache2/site-enabled/lsc-ssl.conf  หรือแฟ้ม .htaccess ในไซต์ที่ต้องการ (ซึ่งแนะนำว่าใช้ .htaccess จะได้ไม่ต้องรีสตาร์ทเซิร์ฟเวอร์) เพื่อเปิดการใช้งาน CSP


    Header always set Content-Security-Policy "default-src https: data: 'unsafe-inline' 'unsafe-eval'"

    HTTP Strict Transport Security (HSTS)

    เว็บไซต์ ต้องมีการตั้งค่าให้ redirect จาก HTTP ไปยัง HTTPS เสมอ และ HSTS จะเป็น Header ที่กำหนดให้เบราเซอร์จำสถานะของ HTTPS เอาไว้แม้ว่าจะเป็นการเปิดจาก bookmark ที่เป็น HTTP ก็ตาม ก็จะถูกบังคับให้เป็น HTTPS รายละเอียดเพิ่มเติม https://scotthelme.co.uk/hsts-the-missing-link-in-tls/ เช่น เมื่อเปิด http://licensing.psu.ac.th ก็จะถูก redirect ไป https://licensing.psu.ac.th

    Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"

    X-Frame-Options

    X-Frame-Options หรือ XFO header จะช่วยป้องกันผู้ใช้จากการโจมตีแบบ clickjacking ที่ผู้บุกรุกสามารถโหลด iframe จากไซต์ของเขาบนไซต์ของเราได้ ซึ่งทำให้ผู้ใช้งานเว็บไซต์ของเราเชื่อว่าไม่อันตราย!! รายละเอียดเพิ่มเติม https://www.troyhunt.com/clickjack-attack-hidden-threat-right-in/

    Header always set X-Frame-Options "SAMEORIGIN"

    X-Xss-Protection

    Header นี้ใช้กำหนดค่าการป้องกัน XSS ที่มีอยู่บนเบราเซอร์ต่างๆ โดยการตั้งค่าจะมี 0 คือ ปิดการทำงาน 1 คือเปิดการทำงาน และ 1; mode=block ซึ่งจะกำหนดให้เบราเซอร์ทำการบล็อคการกระทำใดๆ ก็ตามที่มากกว่าการล้างข้อมูลสคริปต์

    Header always set X-Xss-Protection "1; mode=block"

    X-Content-Type-Options

    X-Content-Type-Options ใช้ในการป้องกันการโจมตีผ่านทางช่องโหว่ MIME sniffing ซึ่งจะเกิดเมื่อ เว็บไซต์อนุญาตให้ผู้ใช้อัพโหลดเนื้อหาไปยังเซิร์ฟเวอร์ ซึ่งผู้ใช้อาจเปลี่ยนหรือซ่อนไฟล์อันตราย แล้วอัพโหลดขึ้นเซิร์ฟเวอร์ รายละเอียดเพิ่มเติม https://www.keycdn.com/support/x-content-type-options/

    Header always set X-Content-Type-Options "nosniff"

    เบื้องต้นแนะนำเท่านี้ก่อนครับ พิเศษ!! สำหรับผู้ใช้งาน wordpress มีปลั๊กอินชื่อ HTTP Headers ใช่ตั้งค่า Header ต่างๆ ที่เล่ามาข้างต้นได้อย่างสบายใจหายห่วง!!! ไม่ต้องแก้ .htaccess ไม่ต้องแก้ config ใด ๆ  เมื่อติดตั้งเสร็จแล้วจะพบว่ามี Header อีกมากที่สามารถตั้งค่าเพิ่มเติมได้ ซึ่งจะกล่าวอีกในครั้งต่อ ๆ ไป

    ต้นฉบับ

    https://scotthelme.co.uk/hardening-your-http-response-headers/

    มีวิธีการเซ็ตสำหรับ Nginx และ IIS สามารถดูเพิ่มเติมได้ครับ
    อย่าลืม!!

    ตรวจ HTTP Response ได้ที่ https://securityheaders.com

    จบขอให้สนุก

  • อย่าเชื่อเครื่องมือมากเกินไป …

    เมื่อเดือนมีนาคม 2561 ผมได้ทำการทดสอบเครื่องมือเจาะระบบ “N”  (ใช้ทดสอบว่าระบบเป้าหมายมีช่องโหว่ใดให้โจมตีบ้าง) ภายใต้ภาระกิจ “Honeypot” เพื่อทดสอบว่า เครื่องมือดังกล่าว สามารถรับรองความปลอดภัยของระบบปฏิบัติการของเครื่องเซิร์ฟเวอร์ ก่อนที่จะอนุญาตให้เข้าถึงได้จากอินเตอร์เน็ตได้หรือไม่

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

    วิธีการทดสอบ

    จัดให้มีเครื่องทดสอบ ชื่อ honeypot.in.psu.ac.th อยู่บน VM และใช้เครื่องมือเจาะระบบ “N” ตรวจสอบ 2 ครั้ง โดยครั้งแรก (Baseline 01) เป็นการติดตั้งระบบปฏิบัติการ Ubuntu 16.04 LTS แบบ Default และ Update ให้เป็นปัจจุบันที่สุด แล้วรีบแจ้งให้ “N” ตรวจสอบ ครั้งที่ 2 (Baseline 02) ทำการติดตั้ง Web Server, PHP, MySQL และติดตั้งช่องโหว่อย่างง่ายที่พัฒนาขึ้นเอง (https://github.com/nagarindkx/honeypot) ลงไป โดยภาพรวมดังภาพที่ 1 แล้วรีบแจ้งให้ “N” ตรวจสอบ

    ภาพที่1: ภาพรวมของ Honeypot

    honeypot.in.psu.ac.th ประกอบด้วยโครงสร้างไฟล์ ดังภาพที่ 2

    ภาพที่ 2: โครงสร้างไฟล์ของ honeypot

    เมื่อคลิก Login with SQL Injection Vulnerable  จะได้ภาพที่ 3 ซึ่งจะส่งไปที่ไฟล์ badform.html โดยในฟอร์มนี้จะมีช่องโหว่ SQL Injection ทำให้สามารถเข้าเป็น admin ได้โดยลองใส่ username/password ดังนี้

    ภาพที่ 3: http://honeypot.in.psu.ac.th/badform.html

    ซึ่งจะได้ผลว่า สามารถเข้าเป็น admin ได้โดยไม่ต้องทราบรหัสผ่านที่แท้จริง แต่อาศัยการเขียน SQL Statement ที่ไม่รัดกุม และไม่ตรวจสอบ Input ก่อน ดังภาพที่ 4

    ภาพที่ 4: ช่องโหว่ SQL Injection

    เมื่อคลิก  Simple Non Persistent XSS   จะได้ภาพที่ 5  ซึ่งจะส่งไปยัง simple.php โดยจะเห็นได้ว่า สามารถใส่ชื่อ นามสกุล ลงไปใน URL ได้เลย ผ่านตัวแปร name  (ต้องลองใช้กับ FireFox ถ้าเป็น Google Chrome จะมี XSS Auditor ไม่ได้รับผลกระทบ)

    ภาพที่ 5: ช่องโหว่ Non Persistent XSS

     

    ช่องโหว่นี้ ทำให้ Hacker นำเว็บไซต์นี้ไป ดักเอา Cookie Session ของผู้อื่น หรือ Session HiJacking ดังภาพที่ 6
    ด้วย URL นี้
    http://honeypot.in.psu.ac.th/simple.php?name=%3Cscript%3Ealert(escape(document.cookie))%3C/script%3E

    ภาพที่ 6: Session HiJacking

    หรือ เปลี่ยนเปลี่ยน URL ที่ “Click to Download” ไห้ยังเว็บไซต์ที่ต้องการได้ เช่นเป็น hacked.com เป็นต้น ดังภาพที่ 7 ด้วย URL นี้
    http://honeypot.in.psu.ac.th/simple.php?name=%3Cscript%3Ewindow.onload=function()%20{%20var%20link=document.getElementsByTagName(%22a%22);%20link[0].href=%27http://hacked.com%27}%3C/script%3E

    ภาพที่ 7: HTML Injection

    เมื่อคลิก Login to Test Permanent XSS จะได้ภาพที่ 8  ซึ่งจะส่งไปยัง goodlogin.php

    ภาพที่ 8:ช่องโหว่ Persistent XSS

    ซึ่ง เป็น Form ที่ป้องกัน SQL Injection และ ไม่ยอมรับ username/password ว่าง หากไม่ทราบรหัสผ่านจริงๆ ก็จะเข้าไม่ได้ ดังภาพที่ 9

    ภาพที่ 9: กรณี Login ไม่สำเร็จ

    หาก Login เป็น user1 สำเร็จ จะสามารถเปลี่ยน Display Name ได้ ดังภาพที่ 10
    ทดลองด้วย

    username: user1
    password: user1123**

    ภาพที่ 10: user1 เมื่อ Login สำเร็จ สามารถเปลี่ยน Display Name ได้

    หาก user1 ต้องการดัก Session HiJack จาก Admin สามารถทำได้โดย แก้ Display Name ดังนี้

    <a href=”#” onclick=alert(escape(document.cookie))>User1</a>

    เมื่อกดปุ่ม Update จะได้ภาพที่ 11

    ภาพที่ 11: user1 วาง Session HiJacking สำเร็จ

    เมื่อ admin เข้ามาในระบบ ด้วย

    username: admin
    password: admin123**

    จะได้ภาพที่ 12

    ภาพที่ 12: admin จะมองเห็นรายชื่อ users ทั้งหมด ในที่จะเห็น user1 ที่มี display name ของตนเองเป็น Link

    เมื่อ admin ติดกับดัก ลองคลิก link ที่เขียนโดย user1 ก็จะเปิดเผย (และสามารถส่ง session กลับไปให้ user1 ได้หลายวิธี) ก็จะได้ผลดังภาพที่ 13

    ภาพที่ 13: แสดง Session ของ Admin ซึ่งในช่วงเวลานั้นๆ user1 สามารถเข้ามาเป็น admin ได้โดยไม่ต้องทราบรหัสผ่านของ admin

    *** และ มี Backdoor ที่อยู่ใน /uploads/ ไฟล์ image.php ที่ ไม่ได้แสดงใน index.php หน้าแรก ซึ่งจะสามารถส่งคำสั่งเข้าไปให้ Execute ได้ เช่น ls -l ดังภาพที่ 14 หรือ แม้แต่ wget ไฟล์จากภายนอกมาไว้ในนี้ได้ เพื่อสร้าง Backdoor ในที่ต่างๆ ซึ่งเรียกว่า Remote Code Execution

    ภาพที่ 14: Backdoor ใน /uploads/image.php ที่ไม่ได้อยู่ใน index.php หน้าแรกของ honeypot

    ผลการทดสอบ

    จากผลการทดสอบด้วย “N” เมื่อ Mon, 12 Mar 2018 13:57:16 ICT ผลดังภาพที่ 15

    ภาพที่ 15: แสดงรายการช่องโหว่ “N”  ตรวจพบ ประกอบด้วย 1 High, 5 Medium Risk

    ผลการทดสอบสามารถสรุปเป็นตารางได้ ดังตารางที่ 1

    ตารางที่ 1: แสดงผลเปรียบเทียบสิ่งที่ honeypot วางไว้ กับสิ่งที่ “N” ตรวจพบ ตามตำแหน่งไฟล์ต่างๆ

    ตำแหน่งไฟล์Honeypot วาง“N” ตรวจพบ
    badform.htmlSQL Injectionยอมรับได้
    – Web Application Potentially Vulnerable to Clickjacking (เป็น Form ที่ยอมให้เว็บอื่นเอาไปใส่ใน iframe ได้)
    login.phpJavaScript Injectionเป็น False Positive
    เพราะ Login Fail

    – CGI Generic SQL Injection (blind)
    – CGI Generic XSS (quick test)
    – CGI Generic Cookie Injection Scripting
    – CGI Generic XSS (comprehensive test)
    – CGI Generic HTML Injections (quick test)
    ยอมรับได้
    – Web Application Potentially Vulnerable to Clickjacking (เป็น Form ที่ยอมให้เว็บอื่นเอาไปใส่ใน iframe ได้)


    ไม่เข้าไปตรวจ JavaScript Injection เพราะไม่ได้ตรวจสอบ SQL Injection จากหน้า badform.html
    simple.phpNon-Persistent XSSยอมรับได้
    – CGI Generic XSS (quick test)
    – CGI Generic Cookie Injection Scripting
    – CGI Generic XSS (comprehensive test)
    – CGI Generic HTML Injections (quick test)
    goodlogin.phpเป็น False Positive เพราะ Login Fail
    – CGI Generic SQL Injection (blind)

    ยอมรับได้
    – Web Application Potentially Vulnerable to Clickjacking (เป็น Form ที่ยอมให้เว็บอื่นเอาไปใส่ใน iframe ได้)
    home.phpPersistent XSSไม่เข้าไปตรวจ เพราะไม่สามารถเดารหัสผ่านที่ถูกต้องได้
    /uploads/image.phpBackdoor (Remote Code Execution)ไม่เข้าไปตรวจ เพราะไม่มี Link จากหน้าแรก

    สรุปผลการทดสอบ

    1. น่าตกใจ ที่ “N” ไม่สามารถตรวจพบ SQL Injection ได้ในหน้า badform.html
    2. “N” ตรวจพบ XSS ในหลายรูปแบบในหน้า simple.php ซึ่งนับว่าดี
    3. “N” ตรวจสอบได้เฉพาะ URL ที่สามารถติดตามไปจากหน้าแรกได้เท่านั้น จะเห็นได้ว่า ไม่สาามารถเข้าไปตรวจสอบ home.php ซึ่งต้องเดารหัสผ่านให้ได้ก่อน และ /uploads/image.php ซึ่งไม่มีการเรียกจากหน้าแรก ซึ่งโดยทางปฏิบัติ Hacker เมื่อเจาะเข้ามาวางไฟล์ได้แล้ว จะเอา URL นั้นไปโพสต์ประกาศในกลุ่ม หรือ บนหน้าเว็บไซต์อื่นๆ เช่น zone-h.org เป็นต้น ทำให้ เราตรวจด้วย “N” ยังไงก็ไม่เจอ แต่ Google ตรวจเจอเพราะไปตรวจสอบเว็บไซต์ของกลุ่ม Hacker อีกที
    4. “N” ทำงานเป็นลำดับ ดังนั้น เมื่อ ไม่ตรวจพบ SQL Injection ในหน้า badform.html ก็ไม่ตรวจ JavaScript Injection ในหน้า login.php
    5. “N” เตือนเรื่องสามารถนำ Form ไปอยู่ใน iframe ของเว็บไซต์อื่นๆได้ ซึ่งนับว่าดี

    อภิปรายผลการทดสอบ

    การมีเครื่องมือในการเจาะระบบอย่าง “N” เป็นเรื่องดี ทำให้สามารถลดงานของผู้ดูแลระบบได้ อย่างน้อยก็เรื่องการตรวจสอบ Version ของ OS, Software ที่ใช้ ว่าได้รับผลกระทบต่อช่องโหว่ที่สำคัญ ซึ่งจะประกาศเป็นเลข CVE เอาไว้แล้ว ทำให้ตรวจสอบภาพรวมๆได้ และตรวจสอบได้ตาม Signature ที่บริษัทเค้ากำหนดมาเท่านั้น

    อย่างไรก็ตาม ในทางปฏบัติ “N” หรือ เครื่องมืออื่นๆที่ทำงานแบบ Outside-In อย่างนี้ จะไม่มีทางตรวจสอบ ช่องโหว่ ที่อยู่ “ภายใน” เครื่องได้ หากแต่ การตรวจสอบ Log File และ การตรวจสอบเครื่องเซิร์ฟเวอร์จากภายใน จึงเป็นสิ่งจำเป็นอย่างยิ่ง นอกจากจะทำให้เราตรวจพบช่องโหว่ต่างๆก่อนจะโดนรายงาน แล้ว ยังเป็น การสะสมความรู้ซึ่งสำคัญยิ่่งกว่า เพราะเราจะได้ทำการ ป้องกัน ก่อนที่จะต้องมาตามแก้ไข อย่างเช่นในปัจจุบัน

  • ระวังการใช้งานบนเครื่องที่ยังเป็น Windows XP จะถูกติดตั้ง Key Logger ระบาดในมหาวิทยาลัย

    ช่วง 2-3 วันนี้ ระบบ PSU Webmail ตรวจพบว่า มีบัญชีผู้ใช้อย่างน้อย 3 ราย ถูกใช้งานจากสิงคโปร์ และตุรกี  แล้วส่ง email ออกไปเป็นจำนวนมาก ระบบตรวจจับได้ จึงทำการ Force Reset Password ของระบบ PSU Email บัญชีผู้ใช้ดังกล่าวอัตโนมัติ

    IP ที่ใช้งาน PSU Webmail ดังภาพด้านบน ตรวจสอบแล้ว พบว่า มาจาก

    • 202.189.89.116 จากเครือข่ายของ Twentieth Century Fox ที่ ตุรกี
    • 206.189.89.212 จากเครือข่ายของ Twentieth Century Fox ที่ สิงคโปร์
    • 128.199.202.189 จากเครือข่ายของ DigitalOcean ที่สิงคโปร์

    ส่งอีเมลจำนวน 4 ฉบับ ถึง 800 emails ภายใน 1 นาที ดังภาพ

    ในการตรวจสอบเชิงลึกต่อไป พบว่า IP  206.189.89.116 ยังพยายาม Login ไปยังบัญชีผู้ใช้ 2 ใน 3 ข้างต้นอีกด้วย จึงสันนิษฐาน ว่า น่าจะเป็นคนร้ายกลุ่มเดียวกัน เพียงแต่สลับแหล่งที่เข้าใช้ PSU Webmail ไปมา

    จากการลงพื้นที่ ไปดูที่เครื่องผู้ใช้ พบว่า มีพฤติกรรมที่เหมือนกัน คือ

    1. ยืนยันว่า ไม่เคยคลิกเปิด email ที่ต้องสงสัยจริง ๆ (เอ่อ ใครก็จะพูดเช่นนั้น เอาว่าไม่มีหลักฐาน ก็ไม่สามารถสรุปได้ว่าไม่จริง)
    2. *** มีการใช้คอมพิวเตอร์ส่วนกลาง *** ซึ่งหนึ่งในนั้น จะเป็น Windows XP และมีโปรแกรมเถื่อนเป็นจำนวนมาก

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

     

    ในภาพใหญ่ของมหาวิทยาลัยสงขลานครินทร์ ยังมีเครื่องรุ่นเก่าที่ยังใช้ Windows XP อยู่ แถมยังใช้โปรแกรมเถื่อนที่อาจจะติดมาจากร้าน หรือ คนในออฟฟิซเองเอามาติดตั้งอยู่ หากสามารถ Enforce ให้เปลี่ยนได้ น่าจะลดปัญหาพวกนี้ได้

     

    กำลังหาหลักฐานที่หนักแน่นพอ เพื่อนำเสนอผู้ใหญ่ต่อไปครับ

     

  • CIS Control v7

    Cybersecurity Best Practices
    CIS Controls and CIS Benchmarks are global industry best practices endorsed by leading IT security vendors and governing bodies.

    CIS Controls : Secure Your Organization
    IT security leaders use CIS Controls to quickly establish the protections providing the highest payoff in their organizations. They guide you through a series of 20 foundational and advanced cybersecurity actions, where the most common attacks can be eliminated.

    CIS Benchmarks : Secure Your Systems & Platforms
    Proven guidelines will enable you to safeguard operating systems, software and networks that are most vulnerable to cyber attacks. They are continuously verified by a volunteer IT community to combat evolving cybersecurity challenges.

    Basic CIS Controls
    1 Inventory and Control of Hardware Assets (บันทึกรายการและควบคุมทรัพย์สินที่เป็นฮาร์ดแวร์)
    2 Inventory and Control of Software Assets (บันทึกรายการและควบคุมทรัพย์สินที่เป็นซอฟต์แวร์)
    3 Continuous Vulnerability Management (จัดการกับช่องโหว่อย่างต่อเนื่อง)
    4 Controlled Use of Administrative Privileges (ควบคุมการใช้สิทธิพิเศษในการบริหารระบบ)
    5 Secure Configuration for Hardware and Software on Mobile Devices, Laptops, Workstations and Servers
    (กำหนดค่าที่ปลอดภัยให้กับฮาร์ดแวร์และซอฟท์แวร์ บนอุปกรณ์พกพา แลปทอป เวิร์กสเตชั่น และเซิร์ฟเวอร์)
    6 Maintenance, Monitoring and Analysis of Audit Logs (บำรุงรักษา เฝ้าสังเกต และวิเคราะห์ ข้อมูลล๊อกการใช้งานต่างๆ)

    Foundational CIS Controls
    7 Email and Web Browser Protections (ป้องกันอีเมล และเว็บเบราว์เซอร์)
    8 Malware Defenses (ป้องกันมัลแวร์)
    9 Limitation and Control of Network Ports, Protocols, and Services (จำกัดและควบคุม พอร์ต โปรโตคอล และบริการต่างๆ บนเครือข่าย)
    10 Data Recovery Capabilities (ต้องกู้คืนข้อมูลกลับมาได้)
    11 Secure Configuration for Network Devices, such as Firewalls, Routers, and Switches
    (กำหนดค่าที่ปลอดภัยให้กับอุปกรณ์เครือข่ายต่างๆ เช่นไฟร์วอลล์ เราเตอร์ และสวิตช์)
    12 Boundary Defense (ป้องกันเขตเครือข่าย)
    13 Data Protection (ปกป้องข้อมูล)
    14 Controlled Access Based on the Need to Know (ควบคุมให้เข้าถึงได้เฉพาะสิ่งจำเป็น)
    15 Wireless Access Control (ควบคุมการเข้าถึงผ่านทางระบบไร้สาย)
    16 Account Monitoring and Control (เฝ้าสังเกตและควบคุม บัญชีผู้ใช้)

    Organizational CIS Controls
    17 Implement a Security Awareness and Training Program (ดำเนินการฝึกอบรมสร้างความตระหนักรู้ด้านความปลอดภัย)
    18 Application Software Security (จัดการความปลอดภัยของซอฟท์แวร์โปรแกรมประยุกต์)
    19 Incident Response and Management (จัดการและตอบสนองต่อเหตุการณ์ที่ไม่ปลอดภัย)
    20 Penetration Tests and Red Team Exercises (ทดสอบเจาะส่วนต่างๆ และฝึกซ้อมบุกรุกทั้งระบบ)

     

    CIS Control v7 แปลไทยบางส่วน
    https://www.cc.psu.ac.th/pdf/CIS_Control_v7_1May2018.pdf

  • จดหมายลอกลวง 23/4/61

    ช่วง ศุกร์ที่ 20 ถึง เช้าวันนี้ จันทร์ที่ 23 เมษายน 2561 พบว่า มีผู้ใช้หลายท่านได้รับ email ลักษณะประมาณนี้

    แล้วมีคำถามว่า เป็นของมหาวิทยาลัยส่งจริงหรือไม่

    ตอบก่อนเลยว่า “ไม่ใช่อีเมลของทางมหาวิทยาลัย” เป็นจดหมายหลอกลวง

    ทางระบบของมหาวิทยาลัยจะไม่ส่ง email แจ้งเตือนใดๆอย่างนี้

    ข้อสังเกต

    1. ลิงค์ใน email ที่ให้คลิก จะเป็นอะไรที่ไม่ใช่ psu.ac.th (ทราบไม๊ครับ ? ว่าโดเมนเนมของมหาวิทยาลัยสงขลานครินทร์ คือ psu.ac.th ???)

      ถ้าเป็นเว็บไซต์ที่ถูกต้อง ของมหาวิทยาลัย จะต้องปรากฏ รูปกุญแจเขียว และ โดเมนเป็นของมหาวิทยาลัยสงขลานครินทร์ ซึ่งใช้โดเมนเนม psu.ac.th ดังภาพ

    2. ผู้ส่ง (From) ในทางปฏิบัติ จะ “ตั้งค่า” ให้เป็นใครก็ได้ แต่ในที่นี้ เค้าจะไม่สามารถตั้งค่าเป็น @psu.ac.th ได้ เพราะเราได้ทำการจดทะเบียน DomainKeys Identified Mail (DKIM) และทำตามกระบวนการ Sender Policy Framework (SPF) แล้ว ซึ่งจะกำหนดว่า ต้องเป็น IP ที่ได้รับอนุญาตเท่านั้น จึงจะบอกว่า ส่งจาก @psu.ac.th ได้เท่านั้น …. แม้จะส่งได้และเข้ามาใน Inbox ของท่าน แต่อาจจะเป็นบน gmail.com, hotmail.com, yahoo.com ก็ตาม ก็จะถูกระบุว่า ไม่สามารถเชื่อถือได้

      ในที่นี้ จึงเลี่ยงไปใช้ @itservice.psu.ac.th ซึ่ง ก็ไม่มีอยู่จริงเช่นกัน

     

    หากหลงเชื่อ คลิก Link แล้วกรอกข้อมูลไปแล้วควรทำอย่างไร?

    ให้ทำการตั้งรหัสผ่าน PSU Email ใหม่ที่ ตามวิธีการนี้เท่านั้น

    http://gafe.psu.ac.th/support/1/1

     

    และ เว็บไซต์ที่จะทำการ ตั้งรหัสผ่าน PSU Email ได้ ต้องเป็นเว็บไซต์นี้เท่านั้น ซึ่งต้องยืนยันตัวจริง ด้วย PSU Passport อีกชั้นหนึ่งด้วย

    https://webmail.psu.ac.th/src/resetpassword.html

     

    ลืม PSU Passport / ไม่แน่ใจว่า PSU Passport คืออะไร ทำอย่างไร ???

    1. บุคลากรมหาวิทยาลัยสงขลานครินทร์ >>> ติดต่อการเจ้าหน้าที่ คณะ หน่วยงานของท่าน
    2. นักศึกษา >>> ติดต่อ ศูนย์คอมพิวเตอร์ ม.สงขลานครินทร์ วิทยาเขตหาดใหญ่ (email สอบถาม: passport@psu.ac.th)
    3. บุคลากรที่เกษียณ/ไม่ได้ทำงานที่มหาวิทยาลัยแล้ว >>> มหาวิทยาลัยยังคง email ของท่านไว้เสมอ สามารถใช้ต่อไปได้ แม้ เกษียณ/ลาออก ก็ตาม แต่ในกรณีที่ท่านต้องการเปลี่ยนรหัสผ่าน PSU Email แล้ว ไม่สามารถใช้งาน PSU Passport ได้แล้ว ให้มาติดต่อด้วยตนเองที่ศูนย์คอมพิวเตอร์ มหาวิทยาลัยสงขลานครินทร์ วิทยาเขตหาดใหญ่เท่านั้น
  • Facebook Spam ที่หลอกมาเป็น “ข่าวสด”

    วันนี้พบเพื่อนคนนึง มีโพสต์ประหลาดๆขึ้นบน Profile ดังภาพ

    แต่พอลองเอา Mouse Over ดูพบว่า Link ไป khaosod.me/XXXXXX

    ลองมั่วตามไปดู พบว่าไปเปิด Web หนึ่ง เลียบแบบ kapook.com

    คาดว่า เกิดจาก ก่อนหน้านี้ไปคลิก Facebook App บางอย่าง ทำให้เกิดการ ให้สิทธิ์ App เขียน Wall ได้

    วิธีแก้เคยเขียนไว้แล้วใน วิธีจัดการ Facebook Spam

  • อยากรู้ว่า Windows 10 Firewall Inbound Rules เปิดหรือปิด SMBv1, SMBv2 หรือไม่

    อยากรู้ว่า Windows 10 Firewall Inbound Rules เปิดหรือปิด SMBv1, SMBv2 หรือไม่

    ทดสอบจากเครื่อง Linux ที่ตั้งอยู่ใน network เดียวกัน ทำ nmap ค้นหา SMB (TCP Port 445) ไปที่เครื่อง Windows IP 192.168.x.yy

     

    ครั้งที่ 1
    รายการ File and Printer Sharing (SMB-In) ใน Firewall Inbound Rules เมื่อตั้งค่า Enabled = No
    ผลลัพธ์
    $ nmap -A -T4 -Pn -p445 192.168.x.yy
    Starting Nmap 7.01 ( https://nmap.org ) at 2017-05-15 13:52 ICT
    Nmap scan report for 192.168.x.yy
    Host is up.
    PORT STATE SERVICE VERSION
    445/tcp filtered microsoft-ds
    Nmap done: 1 IP address (1 host up) scanned in 2.39 seconds

    ครั้งที่ 2
    รายการ File and Printer Sharing (SMB-In) ใน Firewall Inbound Rules เมื่อตั้งค่า Enabled = Yes
    ผลลัพธ์
    $ nmap -A -T4 -Pn -p445 192.168.x.yy
    Starting Nmap 7.01 ( https://nmap.org ) at 2017-05-15 13:55 ICT
    Nmap scan report for 192.168.x.yy
    Host is up (0.00048s latency).
    PORT STATE SERVICE VERSION
    445/tcp open microsoft-ds Microsoft Windows 10 microsoft-ds
    Service Info: OS: Windows 10; CPE: cpe:/o:microsoft:windows_10
    Host script results:
    | smb-security-mode:
    | account_used: guest
    | authentication_level: user
    | challenge_response: supported
    |_ message_signing: disabled (dangerous, but default)
    |_smbv2-enabled: Server supports SMBv2 protocol
    Nmap done: 1 IP address (1 host up) scanned in 47.82 seconds

    ครั้งที่ 3
    รายการ File and Printer Sharing (SMB-In) ใน Firewall Inbound Rules เมื่อตั้งค่า Enabled = Yes
    และ
    ได้ปิด SMBv1 ตามคำแนะนำ เรื่อง “วิธีปิด SMBv1 เพื่อป้องกันตัวเองจากมัลแวร์เรียกค่าไถ่ WannaCry (ทำเถอะ ไม่ถึง 5 นาที)” https://www.blognone.com/node/92410
    ผลลัพธ์
    $ nmap -A -T4 -Pn -p445 192.168.x.yy
    Starting Nmap 7.01 ( https://nmap.org ) at 2017-05-15 13:55 ICT
    Nmap scan report for 192.168.x.yy
    Host is up (0.00051s latency).
    PORT STATE SERVICE VERSION
    445/tcp open microsoft-ds?
    Host script results:
    |_smbv2-enabled: Server supports SMBv2 protocol
    Nmap done: 1 IP address (1 host up) scanned in 47.87 seconds
    จากผลลัพธ์ในครั้งที่ 3 จะมีเพียง SMBv2

    สรุปว่า รายการ File and Printer Sharing (SMB-In) ใน Windows 10 Firewall Inbound Rules นั้นหากตรวจดูพบว่าคอลัมน์ Enabled มีค่า No ก็คือ ไม่ได้อนุญาตการเข้าถึง

    ในตัวอย่างนี้ก็คือไม่อนุญาตการเข้าถึง SMB (TCP Port 445) ซึ่งเป็นช่องทางเข้าโจมตีจาก Ransomware ที่ชื่อ WannaCrypt (บางทีเรียกย่อ ๆ ว่า WannaCry)

  • TODO: สำหรับผู้ใช้ Microsoft Windows เพื่อป้องกัน Wana Decrypt0r Ransomware

    สิ่งที่ต้องทำ สำหรับ ผู้ใช้ Microsoft Windows

    และ สำหรับผู้ดูแลระบบของหน่วยงาน

    1. Backup หรือ สำรองข้อมูลสำคัญ ไว้ใน External Harddisk, USB Drive, Cloud Drive
    2. กรณี Windows Vista, Windows XP, Windows 8
      ให้ไปที่ Website นี้ เพื่อ Download ตัว Update ที่ตรงกับ Windows ของตน มาติดตั้ง (MS17-101 หรือ KB4012598)
      http://www.catalog.update.microsoft.com/Search.aspx?q=KB4012598
    3. กรณี Windows 7
      http://www.catalog.update.microsoft.com/search.aspx?q=4012212
    4. กรณี Windows 8.1
      http://catalog.update.microsoft.com/v7/site/search.aspx?q=4012213
    5. กรณี Windows 10
      Start > พิมพ์ Windows Update

    สำหรับคนที่ยังใช้ Windows XP ควรพิจารณา Upgrade มาเป็น Windows 10

    โดยติดตั้ง Microsoft Windows รุ่นล่าสุดของมหาวิทยาลัยสงขลานครินทร์

    (ต้องมี PSU Passport)ได้ที่
    https://licensing.psu.ac.th/windows-10-education-version-1703-updated-march-2017-microsoft-imagine/

     

    ขอให้โชคดี