Skip to content

ทำไมเราจึงไม่ควร SAVE PASSWORD เอาไว้กับ WINSCP แล้วทำอย่างไรให้ปลอดภัย


ถ้าคุณรู้จักใครที่เขาดูแลเซิร์ฟเวอร์ให้กับคุณ หรือถ้าคุณเป็นคนที่ใช้ WinSCP ในการ Transfer File เข้าออกเซิร์ฟเวอร์เป็นประจำ และคุณมี Saved Session ใน WinSCP เอาไว้ให้เปิดเข้าถึงเซิร์ฟเวอร์ได้อย่างรวดเร็ว คุณต้องรู้เรื่องนี้
 
ผมสังเกตเห็นเกือบทุกคนที่ใช้ WinSCP จะมี Saved session ที่มีการ Save Password เอาไว้ด้วย คุณรู้หรือเปล่าว่า WinSCP เก็บ Password เอาไว้ 2 ที่ แล้วแต่เวอร์ชั่นของ WinSCP ที่คุณใช้
 
ถ้าเป็นเวอร์ชั่นแบบ Installation ก็จะเก็บ Password เอาไว้ที่ Registry ของ Windows แต่ถ้าเป็นเวอร์ชั่น Portable ก็จะเก็บ Password เอาไว้ที่ INI file ให้คุณสามารถพกไฟล์ Portable EXE ไปกับ INI ไปบน USB Drive เปิดใช้แบบมี Saved Config ติดไปด้วยพร้อมกัน โดยไม่ต้องพึ่ง Registry
 
ก็มี Save Password แล้วไง…อ่ะ Password พวกนี้ก็คือ Admin Password ของระบบไงครับ เป็นกุญแจสู่อำนาจเบ็ดเสร็จที่จะใช้ขโมยข้อมูลจากเซิร์ฟเวอร์ได้อย่างไม่มีขีดจำกัด แถมยังใช้เซิร์ฟเวอร์นั้นเพื่อก่อการร้ายอื่น ๆ ได้อีก หรืออาจเป็น Saved Password ของ Router, Firewall, WiFi Controller, อุปกรณ์สำคัญในระบบที่สามารถสร้างความบรรลัยให้หน้าที่การงานของเราได้ Password ที่ Save เอาไว้ใน WinSCP มันก็สำคัญแค่นี้เองแหละครับ
 
ซึ่งการขโมย Password ของเซิร์ฟเวอร์หรือ Network Device โดยเก็บเอาจาก Saved Password ของ WinSCP ง่ายกว่าไปฝ่าฟันด่านป้องกันบนตัว OS หรือตัวอุปกรณ์ ง่ายกว่ากันหลายเท่าเลยครับ 
 
ลองเปิดดู INI File ที่อยู่ใกล้ ๆ WinSCP ดูครับ หรือไม่ก็ตามไปดูที่ Registry key ที่นี่ [SOFTWAREMartin PrikrylWinSCP 2Sessions]
 
ผมลองเอาตัวอย่างของ Saved session มาให้ดูด้านล่างนี้
 
Hostname (String) mysite.mytestbed.co.th
Password (String) A35C7559A2019BD5172E33332831252F35283972312528392F283E3938723F337228343125323D3739382C3D2F2F2B332E38
Username (String) root
 
Password เข้ารหัสเอาไว้ ไม่เห็นจะน่ากลัวตรงไหนเลย…
 
อย่าลืมนะครับ WinSCP จะต้องสามารถ Decrypt password กลับมาเป็น Plain text เพื่อจะสามารถนำ Plain text นั้นไป Login เปิด session เข้าไปหาเซิร์ฟเวอร์ ซึ่งหาก WinSCP สามารถ Decrypt กลับมาเป็น Plain text ได้ มนุษย์คนอื่น ๆ ก็สามารถจะเขียนโปรแกรมเพื่อทำแบบเดียวกันได้เช่นกัน 
 
>>ลองถามเฮียกู ดูนะครับ Retrieve WinSCP saved password เอาคำนี้ไปค้น ก็จะพบซอฟต์แวร์เยอะมาก แบบซื้อขายหรือจะให้แบบ Open source มีหมดครับ ผมบอกแล้วว่า มนุษย์คนอื่น ๆ ก็สามารถทำซอฟต์แวร์เพื่อมา Decrypt password ได้ รวมถึงมนุษย์โจรด้วย
 
Password encryption ของ WinSCP คือการเอา Plain text password มาจัดเรียงบิตซะใหม่โดยใช้ Username กับ Hostname มาเป็น Pseudo key เท่านี้เองครับ Reverse engineering กลับมาเป็น Plain text password ได้ด้วยการเขียนโปรแกรมภาษาอะไรก็ได้ อย่างข้างบนนี้ ถ้าใครสามารถ Decrypt password ออกมาเป็น mynakedpassword ได้ ก็คือเขียนโปรแกรมถูกต้องแล้วครับ
 
ผมรู้ได้ไง…เรื่องของเรื่องคือ ผมกำลังแกะ Malware ตัวหนึ่งโดยอ่านผลจาก Sandbox ที่ virustotal.com ใช้ Run Malware ตัวนี้ และพบว่า Malware มันพยายามจะอ่านค่าจาก Registry key ชื่อ Martin Prikryl ซึ่งเป็นตำแหน่งที่ใช้เก็บ Password ของ WinSCP 
 
ทีนี้ ถ้าคุณเป็นคนที่คิดไม่หยุด อ่านไม่ยั้ง ตั้งคำถามไม่เลิก คุณจะได้ความรู้มากมายครับ
 
1. Malware เดี๋ยวนี้ไม่ทำลายเครื่อง ไม่ลบไฟล์ ไม่จำเป็นจะต้องเป็น Ransomware แต่ถูกส่งมาเพื่อขโมย Password จากเครื่องของคุณ การขโมยข้อมูลมันใกล้ตัวมากนะครับ อย่าคิดว่ามันมีแต่ในหนังฮอลลีวูดเท่านั้น
 
2. เวลาโจรจะลงมือ จะเล่นกับ “จุดอ่อน” เสมอครับ หลายคนพยายามป้องกันระบบด้วยการทุ่มเทกับอุปกรณ์และมาตรการและเอกสารต่าง ๆ หลายชั้นหลายขั้นตอน โดยไม่เคยวิเคราะห์หา Weakest link ในระบบเลย เช่น ปรากฎว่าโจรไปได้ Password เข้าระบบจากเครื่องของแผนก IT ที่บริจาคไปให้วัด โดยแค่ Format เบา ๆ ไม่ได้ทำลาย Physical ของฮาร์ดดิสก์ เรื่องแบบนี้เกิดขึ้นซ้ำแล้วซ้ำอีก เวลามี Security breach แผนก IT ก็หาไปดิ “โจรได้ Password ของทั้งระบบไปได้ยังไง” งงกันเป็นเดือน ๆ ค้น Log กันซะยกใหญ่ แต่ไม่ได้เอะใจว่า Weakest link มันอยู่ตรงหน้านี่เอง
 
3. Martin Prikryl เขาคือ Software architect / Developer ผู้สร้าง WinSCP ลองพิมพ์ชื่อนี้แล้วหาอ่าน CV ของเขาดูครับ 20 ปีในวิชาชีพนี้ น่าสนใจทีเดียว เผื่อจะเป็นแรงบันดาลใจให้คนไทยได้ผลิตซอฟต์แวร์ให้คนทั่วโลกได้ใช้ฟรี ประทับตรา Thailand ให้คนทั่วโลกได้เห็นศักยภาพของเรา
 
ฮาว์เอ๊เว่อร์….อย่างไรก็ดี๊ดี
 
คนทำ WinSCP ประสบการณ์ขนาดนี้ เขาก็ไม่ปล่อยให้ซอฟต์แวร์เขามีจุดบกพร่องขนาดนี้หรอกครับ ไปดูที่ Preference ของ WinSCP ในหัวข้อ Security ครับ ตรงนั้นเราสามารถใส่ Master password ได้ ซึ่ง WinSCP ก็จะเอา Master Password ไปเป็น Key สำหรับ AES Process เพื่อเปลี่ยน Plain Text password ของ Saved session ให้กลายเป็น Cipher text ครับ 
 
ซึ่งตามหลักของ AES จะ Decrypt Password ด้วย Key ก็คือ Master Password นี่เอง ในทางปฏิบัติ เมื่อก็แค่ป้อน Master Password กลับไปให้ WinSCP แค่หนึ่งครั้งตอนเรียกโปรแกรมขึ้นมาใช้งาน เท่านั้นเอง เราก็สามารถมี Saved Password ใน Saved Session ได้อย่างปลอดภัยแล้ว
 
โลกนี้ยังไม่มีใคร Reverse Engineer AES ได้นะครับ ที่เห็นแกะกันได้ก็แค่มาแงะตรงขบวนการของซอฟต์แวร์ที่ใช้ Encrypt AES เท่านั้นเอง แต่การย้อนศรจาก Cipher กลับไปหา Plain Text นั้น ยังใช้เวลาระดับปีและ Process Power และพลังงานไฟฟ้ามหาศาลในอัตราส่วนที่ไม่คุ้มจะทำครับ 
 
แค่ Master Password ใส่ให้ WinSCP ก็ปลอดภัยมาก ๆ แล้วครับ รีบไปทำกันนะครับ…
 
แล้วฝากไปคิดเพลิน ๆ เรื่อง Weakest Link ครับ มีซอฟต์แวร์อะไรอีกที่เก็บ Password สำคัญ ๆ ของระบบเอาไว้ ซึ่งสิ่งนั้นสามารถ Decrypt Password กลับมาเป็น Plain Text ได้ ไอ้นั่นแหละครับ มันคือ Weakest Link ไปจัดการมันด้วยครับ ถ้าไม่เลิกใช้ ก็หาออพชั่นที่ปลอดภัยกันให้เจอนะครับ
 
● ติดตามข่าวสารไอทีหลากหลายเรื่องจากผู้เขียนมือโปรได้ที่  >> http://www.optimus.co.th/Training/
 
● หรืออีกช่องทางในแอปพลิเคชั่น Blockdit โหลดแอปพลิเคชั่นได้ที่ blockdit.com พิมพ์ค้นหาคำว่า “Optimus Thailand”