ตรวจสอบความปลอดภัย web server https โดย Qualys

“จะตรวจสอบได้อย่างไรว่า Web Server ที่ให้บริการ https มีความปลอดภัยเพียงพอ” บทความนี้จะอธิบายวิธีการใช้งานและการอ่านค่าคร่าว ๆ ของ Web Qualys ดังนี้ เข้า Web Site https://www.ssllabs.com/ssltest จะปรากฏหน้าต่างให้ใส่ Domain Name ที่ต้องการตรวจสอบ ถ้าไม่ต้องการให้โชว์ผลขึ้น Score Board ประจานให้ทั่วโลกเห็น(อันนี้ห้ามคนอื่นกดไม่ได้นะครับ) ให้ติก Do not show the results on the boards จากนั้นกด Submit จากนั้นระบบจะทำการตรวจสอบประมาณ 1-2 นาที โดย Web Site ที่สามารถตรวจสอบได้ต้องสามารถเข้าถึงจากภายนอกเท่านั้น จากนั้นจะปรากฎหน้าผลลัพธ์ในรูปแบบ Overall Rating ดังนี้ ในส่วนแรกคือ Summary อธิบายเป็นส่วน ๆ ได้ดังนี้ Overall Rating :  จะเป็นตัวบอกคร่าว ๆ ว่า Web นี้มีความปลอดภัย Grade อะไรซึ่งจากรูปได้ F แสดงว่าไม่ปลอดภัยอย่างมาก จะอธิบายเพิ่มเติมโดยแยกเป็น 4 ส่วนคือ Certificate – ระดับความแข็งแรงของใบประกาศ (ยากในการปลอมหรือในการถอดรหัสข้อมูล) Protocol Support – ระดับความปลอดภัยของ Protocol ที่ให้บริการ SSL/TLS Key Exchange – ระดับความปลอดภัยของการแลกเปลี่ยน Key Cipher Strength – ระดับความแข็งแรงของ Cipher ซึ่งเป็น Algorithm ที่ใช้ในการเข้ารหัส ในส่วนนี้จะอธิบายลึกลงไปว่ามีผลทำให้เกิดช่องโหว่ร้ายแรงอะไรบ้าง โดยจะบอกว่าเกิดจากอะไร เช่น จากรูป Server รองรับ SSL Version 2 ซึ่งยกเลิกการใช้งานไปแล้วเพราะไม่ปลอดภัย, เกิดช่องโหว่ FREAK, POODLE TLS โดยเราสามารถอ่านรายละเอียดเพิ่มเติมโดยการกด More Info จะอธิบายรายละเอียดเพิ่มเติม แต่ถือว่าเป็นระดับที่ยังไม่ร้ายแรง แต่แนะนำให้แก้ไข เช่น จากรูปแนะนำให้เลิกใช้ SSL Version 3 ส่วน TLS ควรใช้ Version ล่าสุดซึ่งเป็น TLS 1.2 โดยเราสามารถเลื่อนมาดูรายละเอียดเพิ่มเติมได้ ซึ่งจะมีบอกในส่วน Handshake Simulation ซึ่งจะตรวจสอบให้คร่าว ๆ ว่า Browser ใดไม่รองรับบ้าง หวังว่าจะเป็นเครื่องมือที่ช่วยยกระดับความปลอดภัยของ Web Server ที่รองรับการใช้งานแบบเข้ารหัสได้เป็นอย่างดีครับ สามารถอ่านวิธีแก้ไขช่องโหว่เพิ่มเติมได้ที่นี่ครับ http://sysadmin.psu.ac.th/2015/11/10/serversecuritypatch Reference : https://www.ssllabs.com, Qualys SSL LABS

Read More »

รวมวิธีลดช่องโหว่ Server

“บทความนี้เป็นบทความเกี่ยวกับวิธีการปิดช่องโหว่ รวมถึงวิธีการ Monitor ตรวจสอบช่องโหว่ด้วยโปรแกรมต่าง ๆ ครับ” วิธีการตรวจสอบช่องโหว่ Blog 1 : ตรวจสอบความปลอดภัย web server https โดย Qualys Blog 2 : วิธีการตรวจสอบระดับความปลอดภัยของ Certificate วิธีการแก้ไข Certificate เพื่อให้มีความปลอดภัยมากขึ้น Blog 1 : Windows Server 2003 R2 Blog 2 : Windows Server 2008 / 2008 R2 / 2012 / 2012 R2 Blog 3 : Apache Web Server (Ubuntu 14.04 LTS) Blog 4 : Lighttpd Web Server (Ubuntu 14.04 LTS) วิธีการปิดช่องโหว่ Logjam,Freak,Poodle,Beast Blog 1 : Windows Server 2003 R2 Blog 2 : Windows Server 2008/2008 R2/2012/2012 R2 Blog 3 : Apache Web Server (Ubuntu 14.04 LTS) Blog 4 : Lighttpd Web Server (Ubuntu 14.04 LTS) อ่านวิธีแก้ไขเพิ่มเติมได้ที่ : http://disablessl3.com/

Read More »

การทดสอบโปรแกรม (Testing)

วันนี้ขออธิบายสิ่งที่หลาย ๆ คนอาจจะรู้ อาจจะทราบกันอยู่แล้ว แต่บางคนอาจจะยังไม่รู้ถึงกระบวนการและความจำเป็นของการทดสอบระบบ ผู้เขียนจึงขอนำเสนอข้อมูลในเรื่องนี้สักหน่อย เนื่องจากกำลังทำงานหลัก ๆ ที่เกี่ยวกับการทดสอบโปรแกรมเป็นส่วนใหญ่  การ Test คือการทดสอบระบบว่าทำงานได้ถูกต้องได้ผลตามวัตถุประสงค์หรือไม่ ซึ่งเป็นการทดสอบกระบวนการทางพื้นฐานทางคอมพิวเตอร์ โปรแกรมคอมพิวเตอร์มีหลักการง่าย ๆ คือ Input -> Process -> Output วิธีการกำหนด Test case อย่างง่ายที่สุดคือทำการ Test แต่ละส่วนโดยอยู่บนพื้นฐานของ Business requirement และวัตถุประสงค์ของระบบ ซึ่งจะต้องมีการเขียน Test case โดย Test case เป็นเอกสารที่ระบุชุดข้อมูลป้อนเข้าผลลัพธ์ ที่คาดว่าจะได้รับและกลุ่มของเงื่อนไขในการดำเนินการในชุดทดสอบต่าง ๆ มีจุดมุ่งหมายเพื่อแบ่งฟังก์ชันการทำงานของซอฟต์แวร์ออกเป็นฟังก์ชันย่อย ๆ เพื่อให้สามารถทำการทดสอบโดยชุดข้อมูลป้อนเข้าดังกล่าว และสร้างผลลัพธ์ที่สามารถประเมินผลได้โดยปกติจะขึ้นกับ use case ของระบบ “Test case ประกอบด้วย” ชื่อ Test case โดยปกติแล้วคือ Use case ตาม ฺBusiness requirement เช่น การ login เข้าระบบ วัตถุประสงค์ของ Test case นั้น ๆ ผลที่คิดว่าจะได้รับ (Output) กำหนดลักษณะข้อมูลที่จะนำเข้าเพื่อใช้ในการ Test (Input) ขั้นตอนวิธีการทดสอบ เป็น Step 1,2,3,… ว่าแต่ละขั้นตอนต้องทำอะไรบ้าง ผลที่ได้จากการ test “ชนิดของการ Test” ทดสอบความถูกต้อง Unit test เป็นการ test functional ของระบบในแต่ละส่วนย่อยๆเพื่อให้แน่ใจว่าแต่ละส่วนทำงานได้ถูกต้อง Integration test เป็นการนำแต่ละ unit มาประกอบกันและทดสอบการติดต่อระหว่าง unit ว่าสามารถทำงานได้ถูกต้อง End to end test เป็นการทดสอบระบบในภาพรวมโดยนำแต่ละส่วนของระบบมาประกอบกันให้สมบูรณ์ และทดสอบระบบประหนึ่งเป็น ผู้ใช้ของระบบ ทดสอบคุณภาพ Stress test เป็นการทดสอบประสิทธิภาพของระบบ เพื่อทดสอบว่าระบบสามารถรับจำนวนผู้ใช้, ข้อมูล ได้มากแค่ไหน Usability test เป็นการทดสอบประสิทธิภาพการใช้งานของระบบ เช่น UI เหมาะสมต่อการใช้งานหรือไม่ เข้าใจได้ง่ายหรือไม่ การทดสอบระบบไม่ว่าที่ไหนก็คงมีวิธีการและขั้นตอนไม่ต่างกันนัก ที่แตกต่างกันคงจะเป็นความเข้มข้นของการ Test เสียมากกว่า คือจะ Test ละเอียดแค่ไหน มีระบบที่ใช้เพื่อการ Test พร้อมหรือไม่ และทีมงานมีความพร้อมแค่ไหน การจะเป็น Tester ที่ดีได้ต้องเข้าใจถึงมาตรฐานต่างๆที่ระบบใช้งาน เพื่อจะได้ทดสอบได้อย่างถูกต้องและแบบมีหลักเกณฑ์ ยกตัวอย่างง่ายๆ หากเป็น Tester ของเว็บไซต์ที่หนึ่ง หากไม่มีความรู้ด้านมาตรฐานหรือด้านเทคนิคเลย จะทดสอบอะไรได้บ้าง? เพียงแต่ click ดูแล้วดูผลลัพธ์ว่าตรงเท่านั้นหรือ?

Read More »

รีโมตเดสก์ทอปจากลินุกซ์ไปลินุกซ์

การทำรีโมตเดสก์ทอป (หรือรีโมตแอคเซส) จากลินุกซ์ไปลินุกซ์ เราก็ต้องเข้าใจก่อนว่า โปรโตคอลที่ใช้ในการทำรีโมตเดสก์ทอปนั้น ที่นิยมคือ VNC และ RDP โดยที่ VNC ย่อมาจาก Virtual Networking Computing จะใช้ TCP port 5900 และ RDP ย่อมาจาก Microsoft Remote Desktop Protocol จะใช้ TCP port คือ 3389 ดังนั้นเราก็ต้องเลือกว่าจะใช้แบบใดระหว่าง VNC และ RDP บทความนี้ทดสอบด้วย Linux Mint 17.2 MATE โดยค่าดีฟอลต์ในการติดตั้ง Linux Mint นั้นจะมีโปรแกรมที่เรียกว่า Desktop Sharing มาให้แล้วซึ่งจะทำหน้าที่เป็น VNC server (ชื่อโปรแกรมคือ Vino-server) แต่ยังขาดโปรแกรม client ที่จะต้องติดตั้งเพิ่ม โปรแกรมชื่อ rammina 1.2.0-rcgit.4 เป็น client สำหรับใช้งานได้ทั้ง VNC และ RDP จึงถูกเลือกมาใช้งาน   Linux -> Linux สมมติมีเครื่อง Linux (เครื่อง A) จะทำรีโมตเดสก์ทอปไปยังเครื่อง Linux อีกเครื่อง (เครื่อง B) เราจะต้องทำอย่างไรบ้าง การทำรีโมตเดสก์ทอปเมื่อเลือกใช้ VNC มีขั้นตอนดังนี้ 1. ที่เครื่อง B ตั้งค่า Desktop Sharing ดังนี้ คลิก Menu > Preferences > Desktop Sharing > เลือก Allow other users to view your desktop และ Allow other users to control your desktop > เลือก Require the user to enter this password (ตรงนี้เรียกว่า VNC password) 2. ที่เครื่อง A ติดตั้งโปรแกรม Client ชื่อ rammina ดังนี้ เปิด Terminal เพื่อพิมพ์คำสั่ง โดยคลิก Menu > เลือก Terminal และทำคำสั่งช้างล่างนี้ sudo apt-add-repository ppa:remmina-ppa-team/remmina-next sudo apt-get update sudo apt-get install remmina libfreerdp-plugins-standard sudo apt-get install remmina-plugin-vnc พิมพ์ exit เพื่อปิด Terminal จากนั้นต้องทำการ logout 1 ครั้ง แล้ว login กลับเข้ามาใหม่ 3. ที่เครื่อง A เปิดโปรแกรม Client ชื่อ rammina เพื่อทำรีโมตเดสก์ทอปไปยังเครื่อง B ดังนี้ คลิกปุ่ม Menu > เลือก Internet > เลือก Remmina > เลือก Protocol เป็น VNC > ใส่ค่า IP Address ของ Server > คลิก Quick Connect

Read More »

รีโมตเดสก์ทอปจากลินุกซ์ไปวินโดวส์และในทางกลับกัน

ผมคิดว่าหลาย ๆ คน คงจะรู้อยู่แล้วนะว่า remote desktop นั้นเป็นวิธีที่เข้าไปใช้งานเครื่องที่ไม่ได้อยู่ตรงหน้าเรา อาจวางอยู่ข้าง ๆ ก็ได้ หรือ วางอยู่ไกลออกไปที่อีกห้องนึง ถ้าเรามีเครื่องที่เป็น Windows 1 เครื่อง และเรามี Linux 1 เครื่อง แล้วเราต้องการทำรีโมตเดสก์ทอปจาก Linux ไป Windows หรือบางทีเราก็อาจต้องการทำรีโมตเดสก์ทอปจาก Windows ไป Linux จะทำอย่างไร บทความนี้ ผมทดสอบด้วย Linux Mint 17.2 MATE และ Windows 10 แต่หากใครใช้ Ubuntu desktop ก็ได้นะเพราะ Linux Mint นั้นก็คือ Ubuntu ที่ได้รับการปรับแต่งใหม่ ผมทดสอบโดยเลือกใช้โปรโตคอล RDP ในการทำรีโมตเดสก์ทอป หลังจากค้นหาใน Google search ก็พบบทความที่นำมาใช้งานได้จริง ขอสรุปสั้น ๆ ดังนี้ครับ ถ้าจะทำรีโมตเดสก์ทอปไปยัง Windows ได้นั้น ที่ Windows ต้องตั้งค่าอนุญาตในหัวข้อ Allow remote access และถ้าจะทำรีโมตเดสก์ทอปไปยัง Linux ได้นั้น ที่ Linux ต้องติดตั้งโปรแกรมเพิ่ม คือ xrdp และ tightvncserver โปรแกรมที่ใช้สำหรับทำรีโมตเดสก์ทอปจาก Linux ไปยัง Windows คือ ติดตั้งโปรแกรม rammina พร้อมด้วย rammina plugin for RDP ส่วนโปรแกรมที่ใช้สำหรับทำรีโมตเดสก์ทอปจาก Windows ไปยัง Linux คือ รันโปรแกรม Remote Desktop Connection ที่มีอยู่แล้วบน Windows ขั้นตอนอย่างละเอียด Linux -> Windows อัปเดตข้อมูลในหน้านี้เพิ่มเติมดังนี่้: โปรดตรวจสอบ Windows 10 ล่าสุดว่าได้แก้ไขให้สามารถทำ remote desktop ด้วย Azure AD Credential ได้แล้วหรือไม่ (ณ วันที่ 15 มกราคม 2559 ยังทำไม่ได้) อ้างอิงจาก Windows 10 Remote Desktop connection using Azure AD Credentials มีขั้นตอนดังนี้ 1. ที่ Windows คลิกปุ่มขวาที่ Start > เลือก Control Panel > เลือก System and Security > เลือก Allow remote access > ใต้กรอบ Remote Desktop ให้เลือก Allow remote connections to this computer และมี checkbox ที่ Allow connections only 2. ที่ Linux คลิกปุ่ม Menu > เลือก Software Manager (ใส่รหัสผ่านด้วย) > ใส่คำค้นหาว่า remmina > ดับเบิลคลิก remmina > เลือก Install > กลับไปหน้าก่อนหน้านี้ > ดับเบิลคลิก remmina-plugin-rdp หากต้องการให้ได้โปรแกรม remmina เวอร์ชั่นใหม่ ให้ทำขั้นตอนด้วย command line ดังนี้ sudo apt-add-repository

Read More »