วันเสาร์ที่ 10 กันยายน พ.ศ. 2559

OWASP TOP 10 2013

OWASP ย่อมาจาก (The Open Web Application Security Project) ซึ่งถูกพัฒนาขึ้นโดยองค์กรที่ไม่แสวงหาผลประโยชน์เพื่อปกป้องส่งเสริมและพัฒนาการรักษาความปลอดภัยของโปรแกรมประยุกต์ (Application) ให้ดียิ่งขึ้นโดยเน้นในเรื่องเว็บแอพพลิเคชันด้วยการระบุความเสี่ยงร้ายแรง 10 อันดับที่เกิดขึ้นในการพัฒนาเว็บแอพพลิเคชันเพื่อลดความเสี่ยงในการถูกโจมตี

OWASP ได้จัดอันดับความเสี่ยงร้ายแรง 10 อันดับในด้านเว็บแอพพลิเคชันประจำปี 2013 ดังรูปที่ 1
รูปที่ 1 

คำอธิบาย
1.      Injection คือ ช่องโหว่ที่ผู้บุกรุกสามารถแทรกคำสั่งอันตรายเข้าสู่ระบบเว็บแอพพลิเคชั่น เพื่อให้ระบบทำงานตามที่ผู้บุกรุกต้องการ เช่น คำสั่งของระบบปฏิบัติการ หรือคำสั่ง SQL (Structured Query Language) เพื่อสั่งการบนระบบฐานข้อมูล ทำให้ผู้บุกรุกสามารถเรียกดูหรือแก้ไขข้อมูลสำคัญในฐานข้อมูลได้ ซึ่งชนิดของการ Injection สามารถแบ่งได้ดังนี้
o   SQL Injection
o   XML Injection
o   LDAP Injection
o   Code Injection
o   OS Injection
o   XPath Injection
o   SSI Injection
o   IMAP/SMTP Injection

2.      Broken Authentication and Session Management คือ ช่องโหว่เกิดขึ้นจากฟังกชั่นระบบการพิสูจน์ตัวตน (Authentication) ไม่ปลอดภัยเพียงพอ เช่น การตั้งชื่อผู้ใช้งานและรหัสผ่านที่ง่ายต่อการคาดเดา, การจัดการสิทธิในการเข้าถึงที่อ่อนแอ (Session Management) ทำให้ผู้บุกรุกสามารถเข้าสู่ระบบภายในได้สำเร็จ

3.      Cross Site Scripting (XXS) คือ ช่องโหว่ที่ผู้บุกรุกสามารถแทรกคำสั่งอันตรายเข้าสู่ระบบเว็บแอพพลิเคชั่นได้ เช่น คำสั่งของ Javascript หรือ HTML ทำให้ผู้บุกรุกสามารถแก้ไขข้อมูลบนเว็บไซต์ได้ รวมถึงสามารถฝังโปรแกรมอันตรายลงบนเว็บไซต์ และหลอกล่อให้เหยื่อเปิดเว็บไซต์ดังกล่าวเพื่อใช้โจมตีเหยื่อได้ ซึ่งชนิดของการทำ Cross Site Scripting (XXS)  สามารถแบ่งได้ดังนี้
o   Reflected XSS
o   Stored XSS
o   DOM Based XSS

4.      Insecure Direct Object References คือ ช่องโหว่ที่เกิดขึ้นจากระบบขาดการกำหนดสิทธิ์อย่างเหมาะสม เช่น File, Directory Database key เป็นต้น ทำให้ผู้บุกรุกสามารถเข้าถึงข้อมูลภายในระบบได้โดยที่ไม่ต้องผ่านการพิสูจน์ตัวตน หรือสามารถเข้าถึงได้ด้วยสิทธิ์ที่ไม่เหมาะสม

5.      Security Misconfiguration คือ ช่องโหว่ที่เกิดขึ้นจากระบบขาดการติดตั้งและการตั้งค่าอย่างเหมาะสม เช่น การใช้ชื่อผู้ใช้งานและรหัสผ่านแบบดีฟอลต์ , การตั้งค่าพาธการเข้าถึงแบบดีฟลอต์, การคงอยู่ของไฟล์สำคัญในระบบที่มาพร้อมกับการติดตั้งและตั้งค่า เป็นต้น ทำให้ผู้บุกรุกสามารถเข้าถึงข้อมูลภายในระบบ หรือรวบรวมข้อมูลสำคัญภายในระบบได้

6.      Sensitive Data Exposure คือ ช่องโหว่ที่เกิดขึ้นจากระบบขาดการเข้ารหัสลับข้อมูลสำคัญระหว่างการรับส่งข้อมูลหรือมีการเข้ารหัสด้วยวิธีการที่สามารถถอดรหัสได้ง่าย ทำให้ผู้บุกรุกสามารถเข้าถึงข้อมูลสำคัญในระบบได้



7.      Missing Function Level Access Control คือ ช่องโหว่ที่เกิดขึ้นจากระบบขาดการตรวจสอบฟังก์ชัน หรือสิทธิ์ต่าง ๆ ในการเชื่อมต่อเข้าสู่ระบบ ทำให้ผู้บุกรุกสามารถทำการ เชื่อมต่อเข้าสู่ระบบ โดยการข้ามขั้นตอนการพิสูจน์ตัวตนได้

8.      Cross-Site Request Forgery (CSRF) คือ ช่องโหว่ที่เกิดขึ้นจากการผู้ไม่หวังดีบังคับให้เว็บบราวเซอร์ของเหยื่อส่ง HTTP request ที่ปรับเปลี่ยนแก้ไข รวมถึง session cookie และ ข้อมูลเกี่ยวกับการระบุตัวตน (Authentication) ไปยังเว็บแอพพลิเคชั่นที่มีช่องโหว่ เพื่อทำกิจกรรมบางอย่าง เช่น การโอนเงิน, ทำลายข้อมูล, ลบการตั้งค่าความปลอดภัย เป็นต้น ที่แอพพลิเคชั่นคิดว่ามาจากผู้ใช้ที่ถูกต้องได้ (สวมรอยสิทธิ์การใช้งานของผู้อื่น)

9.      Using Know Vulnerable Components  คือ ช่องโหว่ที่เกิดขึ้นจากตัวระบบหรือแอพพลิเคชั่น ที่มีการใช้งานไลบรารี่และส่วนประกอบ หรือคำสั่งที่ไม่มีความปลอดภัยอยู่ในระบบ เช่น Heartbleed และ Shellshock จึงทำให้ระบบมีความเสี่ยงในการถูกโจมตี

10.  Unvalidated Redirects and Forwards   คือ ช่องโหว่ที่เกิดขึ้นจากระบบขาดการป้องกันการรับค่าอินพุตอย่างเหมาะสม ทำให้ผู้บุกรุกสามารถโจมตีด้วยเทคนิค Phishing (การสร้างเว็บไซต์หลอกลวง) เพื่อหลอกลวงเหยื่อให้ป้อนข้อมูลสำคัญของระบบ เช่น ชื่อผู้ใช้งานและรหัสผ่าน, ข้อมูลบัตรเครดิต, ข้อมูลส่วนบุคคล เป็นต้น

อ้างอิง
https://www.owasp.org/index.php/Top_10_2013-Top_10
http://foh9.blogspot.com/2012/01/10-owasp-2010.html
https://blog.wisered.com

การทดสอบเจาะระบบสารสนเทศ (Penetration Testing)

กระบวนการและขั้นตอนในการทดสอบเจาะระบบสารสนเทศ โดยใช้หลักสูตร Certified Ethical Hacker (C|EH) ในการอ้างอิงเพราะเป็นหลักสูตรชั้นนำของโลกทางด้านความมั่นคงปลอดภัยสารสนเทศของบริษัท EC-Council สามารถแบ่งขั้นตอนได้ดังนี้

ขั้นตอนการเจาะระบบ (Hacking Phases)



1.    Reconnaissance (การสอดส่องหรือลาดตระเวน) คือขั้นตอนการรวบรวมข้อมูลเบื้องต้นของเครื่องเป้าหมาย เช่น หมายเลขไอพี ชื่อโดเมน รวมทั้งข้อมูลที่เผยแพร่อยู่บนอินเตอร์เน็ต เป็นต้น ข้อมูลเหล่านี้จะช่วยให้ทีมงานสามารถเข้าใจเครื่องเป้าหมายได้มากยิ่งขึ้น และสามารถกำหนดแนวทางในการทดสอบที่เฉพาะเจาะจงลงไปได้

ยกตัวอย่างเครื่องมือ (Tools) ที่ใช้ในการ Reconnaissance
o   ค้นหาข้อมูลจาก Search engine เช่น Google, Bing, Yahoo เป็นต้น
o   ค้นหาข้อมูลเกี่ยวกับรายละเอียดบริษัท เช่น JobDB, Jobtopgun, Jobthai เป็นต้น
o   ค้นหาข้อมูลบุคคลจากสังคมออนไลน์ (Social  Media) เช่น Facebook, Instagram, Twitter เป็นต้น
o   ค้นหาข้อมูลรายละเอียดเว็บไซต์ เช่น www.netcraft.com, whois.domaintools.com, pentest-tools.com เป็นต้น

2.  Scanning (สแกนระบบ) คือการนำข้อมุลที่ได้จากขั้นตอน Reconnaissance เพื่อใช้ในการระบุข้อมูลเพิ่มเติมหรือเฉพาะเจาะจงลงไป เช่น ประเภทของเวอร์ชั่น, ระบบปฏิบัติการ แอพพลิเคชั่น,พอร์ตที่ให้บริการ เป็นต้น สำหรับการสแกนอีกประเภทซึ่งอยู่ในขั้นตอนนี้ก็คือ Vulnerability Scanning ซึ่งเป็นการค้นหาช่องโหว่ที่มีอยู่บนระบบ

ยกตัวอย่างเครื่องมือ (Tools) ที่ใช้ในการ Scanning
o   Nmap
o   SuperScan
o   Nessus
o   OpenVAS
o   N-Stalker
o   Nexpose
o   Acunetix
o   Nikto

3.   Gaining Access (การเข้าถึงเป้าหมาย) คือ การทดสอบเจาะระบบอย่างแท้จริง โดยการนำข้อมุลที่ได้จากขั้นตอน Scanning มาทำการวิเคราะห์ถึงวิธีการโจมตีและเครื่องมือต่างๆ เพื่อใช้ในการโจมตีช่องโหว่ที่เกิดขึ้นจริงในการเจาะระบบ นำมาทดสอบกับเครื่องเป้าหมาย เพื่อยืนยันว่ามีช่องโหว่อยู่จริง  

ยกตัวอย่างเครื่องมือ (Tools) ที่ใช้ในการ Gaining Access
o   Sqlmap
o   Aircrack
o   Burp Suite
o   Cain and Abel
o   John the Ripper

4.    Maintaining Access (การคงสภาพทางเข้า) คือ ขั้นตอนหลังจากที่ Hacker ประสบความสำเร็จในการโจมตี  จะดำเนินการเพิ่มสิทธิ์และช่องทางพิเศษสำหรับตนเอง โดยเฉพาะ ด้วยการฝัง Backdoor, Root kits และ Trojan ไว้ในเครื่องบนเครื่องเหยื่อ เพื่อให้สามารถย้อนกลับเข้ามาแปรสภาพเครื่องเหยื่อให้เป็นฐานในการโจมตีเครื่องอื่นๆ ทำให้บางครั้งเครื่องที่ตกเป็นเหยื่อในลักษณะนี้จะถูกเรียกว่า “Zombie”

ยกตัวอย่างเครื่องมือ (Tools) ที่ใช้ในการ Maintaining Access
o   Netcat
o   plink



5.    Covering Tracks (การลบร่องรอย) คือ ขั้นตอนเมื่อ Hacker สามารถครอบครองได้อย่างสมบูรณ์และสร้างช่องทางเดิมไว้ใช้ต่อได้แล้ว ก็จะลบหลักฐานในการ Hack และร่องรอยของตัวมันเองออกไป เพื่อซ่อนตัวจากการถูกตรวจสอบจากผู้ดูแลระบบหรือการเอาผิดทางกฎหมายนั้นเอง โดยจะพยายามลบร่องรอยที่เกิดจากการเจาะระบบทั้งหมด เช่น Log File หรือข้อความแจ้งเตือนจาก Intrusion detection system (IDS) เป็นต้น

ยกตัวอย่างเครื่องมือ (Tools) ที่ใช้ในการ Covering Tracks
o   Clearev
o   KWrite

อ้างอิง
https://www.eccouncil.org/programs/certified-ethical-hacker-ceh/

วันจันทร์ที่ 18 กรกฎาคม พ.ศ. 2559

ระบบเฝ้าระวัง (Monitoring) อุปกรณ์เครือข่าย (Network) และเครื่องแม่ข่าย(Server) ตอนที่ 1

ในปัจจุบันซอฟต์แวร์ Open Source ที่ใช้ในการเฝ้าระวังและติดตามประสิทธิภาพการทำงานอุปกรณ์เครือข่ายและเครื่องแม่ข่าย เช่น CPU, Memory, Harddisk หรือแม้แต่แอพพลิเคชัน ผ่านโปรโตคอล SNMP หรือ Agnets ที่ติดตั้งบนเครื่องแม่ข่าย  สามารถแบ่งออกเป็น 3 ประเภท ดังนี้
  1. Network
  2. System
  3. Application
อุปกรณ์ Network เช่น Router, Switch, Firewall เป็นต้น 

  • MRTG
  • Cacti
  • CactiEZ
  • Monitorix

ระบบปฎิบัติการ (System)  เช่น Windows, Linux, Sun solaris เป็นต้น

  • Cacti
  • CactiEZ
  • Nagios



แอพพลิเคชัน (Application) เช่น HTTP, FTP, SMTP เป็นต้น

  • Zabbix
  • Nagios

คุณสมบัติที่จำเป็นในการเลือกซอฟต์แวร์

  • ซอฟต์แวร์มีหน้า Web GUI ให้ใช้งานง่าย
  • ซอฟต์แวร์สามารถออกรายงานได้
  • ซอฟต์แวร์สามารถแจ้งเตือนได้ เช่น ส่งเสียง, อีเมล, ข้อความ sms เป็นต้น
  • ซอฟต์สามารถกำหนด Thresholding ได้

เสียเงิน

  • Whatup gold
  • Solarwinds
  • PRTG
  • IBM

การติดตั้ง VMWARE Tools บน Kali Linux

การติดตั้ง VMWARE Tools บน Kali Linux

ขั้นตอนการติดตั้ง

  1. apt-get update  อัพเดทฐานข้อมูลของโปรแกรมทั้งหมดบนระบบปฎิบัติการ Kali Linux
  2. apt-get upgrade  อัพเกรดโปรแกรมทั้งหมดบนระบบปฎิบัติการ Kali Linux
  3. reboot ดำเนินการรีสตาร์ทระบบปฎิบัติการ Kali Linux
  4. apt-get install open-vm-tools-desktop fuse ดำเนินการติดตั้งซอฟต์แวร์ VMWARE Tools
  5. reboot ดำเนินการรีสตาร์ทระบบปฎิบัติการ Kali Linux

ประโยชน์ 

การติดตั้ง VMWARE Tools บน Kali Linux นั้นทำให้ระบบปฎิบัติการ Kali Linux ที่ติดตั้งบนซอฟต์แวร์ VMWARE Workstation นั้นมีประสิทธิภาพในการใช้งานมากยิ่งขึ้น เช่น ย้ายข้อมูล, คัดลอกข้อมูล, ปรับขนาดหน้าและสลับหน้า เป็นต้น 

อ้างอิง

http://docs.kali.org/general-use/install-vmware-tools-kali-guest