วิธีสร้างซอฟต์แวร์ที่ปลอดภัยทั้งบนมือถือและเดสก์ท็อป
เผยแพร่แล้ว: 2019-03-06ในโลกสมัยใหม่ ข้อกังวลด้านความปลอดภัยได้รับความสนใจมากกว่าที่เคย แฮกเกอร์และนักต้มตุ๋นหลายคนเริ่มเฟื่องฟูด้วยการเพิ่มขึ้นของสกุลเงินดิจิทัลซึ่งมีมูลค่าหลายร้อยหลายพันดอลลาร์ต่อเหรียญ ข้อมูลที่ละเอียดอ่อนของคนดัง ข้อมูลรับรองการธนาคาร ข้อมูลเกี่ยวกับการโอนเงินหรือเทคโนโลยีใหม่ - พวกอันธพาลออนไลน์ได้รับประโยชน์จากทุกสิ่งเพราะผู้คนมักจะเพิกเฉยต่อมาตรการป้องกันที่สำคัญ
อย่างไรก็ตาม ปลามีกลิ่นเหม็นตั้งแต่หัวจรดเท้า หากไม่มีคุณลักษณะด้านความปลอดภัยที่เหมาะสมซึ่งออกแบบโดยนักพัฒนาซอฟต์แวร์ การปกป้องข้อมูลของคุณในฝั่งไคลเอ็นต์ก็เป็นไปไม่ได้ เมื่อพิจารณาจากข้อเท็จจริงที่ว่าอุปกรณ์พกพาได้รับความนิยมมากขึ้นเนื่องจากมีฟังก์ชันที่เพิ่มขึ้นอย่างต่อเนื่องในขณะที่แพลตฟอร์มเดสก์ท็อป/เว็บยังคงได้รับคะแนนสูงสุด เราจึงต้องการค้นพบวิธีที่ผู้เขียนสามารถทำให้ผลิตภัณฑ์ของตนเข้ากันได้และปลอดภัย คุณจะพบคำแนะนำสำหรับผู้ใช้ในส่วนสุดท้าย
ความปลอดภัยโดยสังเขป
ขั้นแรก เรามาแยกความแตกต่างระหว่างความปลอดภัยของแอปพลิเคชันและซอฟต์แวร์รักษาความปลอดภัยกัน คำเหล่านี้อาจดูมีความหมายเหมือนกัน แต่เกี่ยวข้องกับแง่มุมต่างๆ โดยที่คำจำกัดความแรกหมายถึงความปลอดภัยโดยรวมของผลิตภัณฑ์ที่นำออกใช้ และคำที่สองครอบคลุมทั้งขั้นตอนหลังการปรับใช้และก่อนการปรับใช้
โดยพื้นฐานแล้ว แอปพลิเคชันซอฟต์แวร์เป็นเครื่องมือง่ายๆ ที่ช่วยให้ผู้ใช้โต้ตอบกับข้อมูล ไม่ว่าจะผ่านอุปกรณ์พกพาหรือแพลตฟอร์มเดสก์ท็อป สมมติว่าคุณต้องการตรวจสุขภาพหรือขอข้อมูลเกี่ยวกับการทำธุรกรรมล่าสุดของคุณ การใช้สมาร์ทโฟนหรือเว็บไซต์โรงพยาบาล/ธนาคารจะสะดวกกว่าการโทรหรือเยี่ยมชมสถานที่เหล่านี้
ปัญหาคือซอฟต์แวร์ไม่รู้จักประเภทของข้อมูลที่จำแนกตามความอ่อนไหว หากไม่มีหมวดหมู่และการเข้าถึงที่ตั้งโปรแกรมด้วยตนเอง แอปจะไม่สามารถแยกแยะชื่อของคุณจากหมายเลข CVV/CVC ของบัตรเครดิตได้ ดังนั้นจึงเป็นเรื่องสำคัญที่จะเริ่มสร้างระบบรักษาความปลอดภัยที่เหมาะสมตั้งแต่ขั้นตอนการพัฒนาแรกๆ นี่คือเคล็ดลับบางประการเกี่ยวกับกระบวนการนี้:
- ดำเนินการเข้ารหัสที่ปลอดภัย
- จำแนกข้อมูลและกำหนดข้อกำหนดการอนุญาต
- ค้นหาจุดบกพร่องและกำจัดพวกมัน
- ประเมินความปลอดภัยในแต่ละขั้นตอนการพัฒนา
- ตรวจสอบความน่าเชื่อถือของสิ่งของของบุคคลที่สาม
- ให้ความรู้นักพัฒนาเกี่ยวกับเทคนิคการหลอกลวง
- ต้องการ 2FA จากพนักงาน
- อัปเกรดซอฟต์แวร์เป็นประจำหลังจากเปิดตัว
ปัญหาด้านความปลอดภัยที่ทราบ
แทบจะเป็นไปไม่ได้เลยที่จะสร้างแอปที่มีการป้องกันที่แข็งแกร่งโดยไม่เข้าใจว่าแพลตฟอร์มมือถือและเดสก์ท็อปมีความเสี่ยงต่อแฮกเกอร์อย่างไร พูดง่ายๆ ก็คือ มีวิธีการดั้งเดิมสองสามวิธีในการเจาะเข้าไปในอุปกรณ์ที่มีสถาปัตยกรรมต่างกัน เราจึงเสนอให้ตรวจสอบทันที ประเด็นเหล่านี้น่าจะช่วยได้ในระหว่างขั้นตอนการออกแบบ เมื่อคุณวางแผนมาตรการรักษาความปลอดภัยที่ดีที่สุดสำหรับผลิตภัณฑ์มือถือและเดสก์ท็อป
สมาร์ทโฟนและแท็บเล็ต
ไลฟ์สไตล์ขณะเดินทางมีอุปกรณ์พกพาที่บังคับ ดังนั้น ผู้คนจำนวนมากจึงถ่ายโอนข้อมูลหลักของพวกเขาจากคอมพิวเตอร์ไปยังสมาร์ทโฟน หรืออย่างน้อยก็ซิงค์ข้อมูลระหว่างสองแพลตฟอร์ม เป็นผลให้เราได้รับอีกจุดหนึ่งที่นักต้มตุ๋นสามารถเข้าถึงข้อมูลที่มีค่าได้ ในทางเทคนิค มีช่องโหว่สามประการ:
- ฮาร์ดแวร์ของอุปกรณ์
- ซอฟต์แวร์นั้นเอง
- เครือข่ายสาธารณะ
ตัวอย่างเช่น โจรสามารถขโมยโทรศัพท์ของคุณในฝูงชน รูทเครื่อง และเข้าถึงทุกสิ่งในระบบได้อย่างง่ายดาย ฮาร์ดแวร์สามารถถูกควบคุมได้หากคุณซื้ออุปกรณ์จากผู้จัดจำหน่ายที่ไม่เป็นทางการ นอกเหนือจากจุดอ่อนนี้แล้ว เป็นที่ทราบกันว่าแฮ็กเกอร์สามารถเจาะเข้าสู่สมาร์ทโฟนและแท็บเล็ตผ่านเครือข่าย Wi-Fi สาธารณะที่ไม่มีการป้องกัน สุดท้าย การติดตั้งมัลแวร์ผ่านเกมธรรมดาหรือแอปพลิเคชั่นสื่อไม่คุ้มค่าหากดาวน์โหลดจากร้านค้าที่ไม่เป็นทางการ
เว็บและเดสก์ท็อป
ทั้งเบราว์เซอร์และซอฟต์แวร์ที่ดาวน์โหลดมักจะทำงานคล้ายกันหากต้องการเชื่อมต่ออินเทอร์เน็ต ที่นี่ แอปพลิเคชันทำหน้าที่เป็นฝั่งไคลเอ็นต์ซึ่งส่งคำขอและรับผลลัพธ์ในขณะที่ฐานข้อมูลหลัก (และอินเทอร์เฟซหากคุณใช้เบราว์เซอร์เพื่อนำทางผ่านเว็บไซต์) ตั้งอยู่บนเซิร์ฟเวอร์ที่เชื่อมต่อ ดังนั้นความท้าทายด้านความปลอดภัยจึงแบ่งออกเป็นสามส่วน:
- ด้านลูกค้า.
- ฝั่งเซิร์ฟเวอร์
- กระบวนการแลกเปลี่ยนข้อมูล
ปัญหาที่อันตรายที่สุดเกี่ยวข้องกับซอฟต์แวร์รุ่นเก่า เนื่องจากโจรออนไลน์สามารถเจาะเข้าไปในอินเทอร์เฟซเก่าซึ่งไม่ได้รับการปกป้องโดยระบบที่อัปเดตแล้ว เช่นกัน การแคชหน้า บริการเข้ารหัสที่ไม่ดี และที่อยู่/ข้อมูลที่ละเอียดอ่อนที่เปิดเผยโดยคุกกี้ อาจเป็นลิงก์ที่อ่อนแอซึ่งแฮกเกอร์สามารถใช้ได้

การพัฒนาซอฟต์แวร์ที่ปลอดภัย
ตอนนี้ คำถามคือ: จะสร้างระบบที่เชื่อถือได้สำหรับทั้งสองแพลตฟอร์มได้อย่างไรหากมีจุดอ่อนต่างกัน? โดยทั่วไปมีสามวิธี คุณสามารถเลือกสิ่งที่เหมาะสมที่สุดได้ แต่ต้องคำนึงถึงข้อดีและข้อเสียของแต่ละตัวอย่าง
มือถือและเดสก์ท็อป
ในกรณีนี้ นักพัฒนาควรสร้างสองผลิตภัณฑ์ (สำหรับแพลตฟอร์มมือถือและสำหรับเบราว์เซอร์/เดสก์ท็อป) แยกจากกัน แอพไม่ได้เชื่อมต่อถึงกันหรือซิงโครไนซ์ ดังนั้นจงเตรียมพร้อมสำหรับค่าใช้จ่ายที่สูงทั้งในด้านเงินและในเวลา เพราะทีมของคุณจะต้องลงทุนทรัพยากรเพิ่มเป็นสองเท่า ด้วยเหตุนี้ จะมีการเปิดตัวแอปสองแอปแยกกัน โดยแต่ละแอปมีการป้องกันของตัวเองซึ่งออกแบบมาสำหรับแพลตฟอร์มเป้าหมายโดยเฉพาะ
มือถือพร้อมเดสก์ท็อป
ตัวเลือกนี้มีไว้สำหรับการเปิดตัวเว็บไซต์ที่มีการปรับตัวสูง ดังนั้นจะแสดงองค์ประกอบทั้งหมดอย่างเหมาะสมสำหรับผู้ใช้เว็บและมือถือ เป็นผลให้คุณได้รับแพลตฟอร์มเดียวที่มีจุดอ่อนเพียงจุดเดียวตามช่องโหว่ของเว็บที่อธิบายไว้ข้างต้น อย่างไรก็ตาม ผลิตภัณฑ์ขั้นสุดท้ายจะทำงานได้น้อยกว่าแพลตฟอร์มมือถือทั่วไป เนื้อหาจะโหลดช้าลง และคุณลักษณะโดยรวมจะถูกจำกัด
Mobile PLUS Desktop
แทนที่จะสร้างโปรเจ็กต์แยกกันหรือออกแบบเว็บไซต์ที่เข้ากันได้กับมือถือ มีตัวเลือกที่มีประสิทธิภาพและปลอดภัยที่สุด ทีมต่างๆ รวมถึงนักพัฒนา Diceus.com ใช้แนวทางนี้ จำเป็นต้องสร้างแพลตฟอร์มแบ็คเอนด์เพียงแพลตฟอร์มเดียว แต่ติดตั้งระบบฟรอนต์เอนด์สองระบบที่ต่างกัน
ตัวอย่างเช่น ซอฟต์แวร์พื้นฐานสามารถรับรู้ได้โดยใช้ RESTful API ซึ่งรองรับสถาปัตยกรรมที่ปรับขนาดได้สำหรับทั้งมือถือและเดสก์ท็อป นอกจากนี้ React.js เป็นตัวเลือกที่ดีสำหรับเว็บฟรอนต์เอนด์ ในขณะที่เฟรมเวิร์ก Xamarin หรือ Cordova จะเหมาะกับความต้องการของนักพัฒนาข้ามแพลตฟอร์มบนมือถือ
เมื่อเปลี่ยนไปใช้มาตรการรักษาความปลอดภัย มีวิธีการที่พิสูจน์แล้วในเวลาสองสามวิธีสำหรับแนวทางเดสก์ท็อปมือถือ:
- มอบการเข้ารหัสระดับแนวหน้า สำหรับเวอร์ชันเว็บ จำเป็นต้องมีเทคโนโลยีการเข้ารหัสที่ป้องกันการแฮ็ก
- รวมการตรวจจับ คุณจะตรวจพบมัลแวร์ได้ทุกเมื่อหากระบบส่วนหน้ามีการเชื่อมต่อที่แข็งแกร่งกับแพลตฟอร์มส่วนหลัง
- รวมถึงการป้องกันตนเอง แอปพลิเคชันสามารถใช้คุณลักษณะรันไทม์ได้ เช่น การละทิ้งเซสชันที่ไม่ได้ใช้งานหรือการแจ้งเตือนความล้มเหลว
- ทดสอบซอฟต์แวร์อย่างสม่ำเสมอ ใช้ SAST สำหรับการทดสอบโค้ด DAST สำหรับแอปและโครงสร้างพื้นฐาน และ IAST สำหรับการตรวจสอบข้อมูล
- อัพเดทและสนับสนุนสินค้า ในขณะที่พวกอันธพาลคิดค้นการโจมตีใหม่ๆ จะดีกว่าที่จะตอบสนองอย่างรวดเร็วด้วยมาตรการป้องกันแบบใหม่
แบบจำลองการพัฒนาที่อธิบายไว้มีความสมดุลที่สุดในแง่ของทรัพยากร คุณลักษณะ และความปลอดภัย คุณต้องสร้างและปกป้องสามจุด (ส่วนหลังหนึ่งส่วนและส่วนหน้าสองส่วน) แทนที่จะใช้องค์ประกอบสี่อย่างของผลิตภัณฑ์แยกจากกัน แต่คุณจะได้ฟังก์ชันการทำงานที่เกือบเหมือนกัน
การปกป้องที่ขับเคลื่อนโดยผู้ใช้
ท้ายที่สุดแล้ว อย่าลืมเรื่องการรักษาความปลอดภัยฝั่งไคลเอ็นต์ นักพัฒนาสามารถสร้างระบบที่ดีที่สุดได้ แต่ความประมาทของผู้ใช้ทำลายทุกอย่าง เมื่อใช้ซอฟต์แวร์เฉพาะโดยไม่คำนึงถึงประเภทของซอฟต์แวร์ โปรดอย่าลืมเกี่ยวกับสุขอนามัยของอินเทอร์เน็ต: อย่าเชื่อถืออีเมลที่น่าสงสัย ตรวจสอบใบรับรองการเข้ารหัสของเว็บไซต์อีกครั้ง ใช้โปรแกรมป้องกันไวรัส ฯลฯ เปิดใช้งาน 2FA เสมอเพื่อรับรหัสยืนยันเพิ่มเติมผ่าน SMS หรือแอปตรวจสอบสิทธิ์ ใช้เครื่องมือระบุตัวตนไบโอเมตริกซ์ เช่น ลายนิ้วมือหรือการตรวจจับใบหน้าสำหรับสมาร์ทโฟนและแท็บเล็ต
โดยรวมแล้ว การปกป้องข้อมูลได้ไม่ยากเมื่อทั้งนักพัฒนาซอฟต์แวร์และผู้ใช้ทราบวิธีการทำ แฮกเกอร์จะตกงานถ้าพวกเราทุกคนปฏิบัติตามกฎความปลอดภัยอย่างเคร่งครัด
มีความคิดเกี่ยวกับเรื่องนี้หรือไม่? แจ้งให้เราทราบด้านล่างในความคิดเห็นหรือดำเนินการสนทนาไปที่ Twitter หรือ Facebook ของเรา
คำแนะนำของบรรณาธิการ:
- สัมภาษณ์กับ Stu Grubbs ซีอีโอของบริษัทซอฟต์แวร์สตรีมมิ่ง Lightstream
- 10 นักพัฒนาซอฟต์แวร์ที่คุณควรติดตามในปี 2019
- 5 ผู้ให้บริการซอฟต์แวร์เกมยอดนิยม
- นี่คือผู้ให้บริการซอฟต์แวร์ iGaming ที่ใหญ่ที่สุดและประสบความสำเร็จมากที่สุด
- ซอฟต์แวร์ป้องกันไวรัสของคุณสามารถทำให้ความเร็วอินเทอร์เน็ตของคุณช้าลงได้หรือไม่?