วิธีสร้างซอฟต์แวร์ที่ปลอดภัยทั้งบนมือถือและเดสก์ท็อป

เผยแพร่แล้ว: 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 ที่ใหญ่ที่สุดและประสบความสำเร็จมากที่สุด
  • ซอฟต์แวร์ป้องกันไวรัสของคุณสามารถทำให้ความเร็วอินเทอร์เน็ตของคุณช้าลงได้หรือไม่?