การสแกนอัจฉริยะ การระบุซอฟต์แวร์ที่มีช่องโหว่บนคอมพิวเตอร์ไคลเอนต์ ซอฟต์แวร์ที่มีช่องโหว่หมายความว่าอย่างไร

ปัจจุบันมีการพัฒนาเครื่องมือจำนวนมากเพื่อทำให้การค้นหาช่องโหว่ของโปรแกรมเป็นแบบอัตโนมัติ บทความนี้จะกล่าวถึงบางส่วนของพวกเขา

การแนะนำ

การวิเคราะห์โค้ดแบบคงที่คือการวิเคราะห์ ซอฟต์แวร์ซึ่งสร้างขึ้นจากซอร์สโค้ดของโปรแกรมและนำไปใช้โดยไม่ต้องมีการดำเนินการจริงของโปรแกรมภายใต้การศึกษา

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

มีการใช้วิธีการต่างๆ เพื่อระบุช่องโหว่ เครื่องมือตัวอย่างเช่น เครื่องวิเคราะห์แบบคงที่ ซอร์สโค้ดโปรแกรมต่างๆ ซึ่งมีภาพรวมอยู่ในบทความนี้

การจำแนกประเภทของช่องโหว่ด้านความปลอดภัย

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

การจำแนกประเภทของช่องโหว่ด้านความปลอดภัยขึ้นอยู่กับข้อผิดพลาดของซอฟต์แวร์:

  • บัฟเฟอร์ล้น ช่องโหว่นี้เกิดขึ้นเนื่องจากขาดการควบคุมอาร์เรย์ที่อยู่นอกขอบเขตในหน่วยความจำระหว่างการทำงานของโปรแกรม เมื่อแพ็คเก็ตข้อมูลที่มีขนาดใหญ่เกินไปล้นบัฟเฟอร์ขนาดจำกัด เนื้อหาของตำแหน่งหน่วยความจำภายนอกจะถูกเขียนทับ ส่งผลให้โปรแกรมหยุดทำงานและออก ขึ้นอยู่กับตำแหน่งของบัฟเฟอร์ในหน่วยความจำกระบวนการ บัฟเฟอร์โอเวอร์โฟลว์จะแตกต่างกันบนสแต็ก (บัฟเฟอร์โอเวอร์โฟลว์สแต็ก), ฮีป (บัฟเฟอร์โอเวอร์โฟลว์ฮีป) และพื้นที่ข้อมูลคงที่ (บัฟเฟอร์โอเวอร์โฟลว์ bss)
  • ช่องโหว่อินพุตที่ไม่บริสุทธิ์ ช่องโหว่อินพุตที่เสียหายสามารถเกิดขึ้นได้เมื่ออินพุตของผู้ใช้ถูกส่งโดยไม่มีการควบคุมที่เพียงพอไปยังล่ามของภาษาภายนอกบางภาษา (โดยปกติจะเป็น Unix shell หรือภาษา SQL) ในกรณีนี้ ผู้ใช้สามารถระบุข้อมูลอินพุตในลักษณะที่ล่ามที่เรียกใช้งานจะรันคำสั่งที่แตกต่างอย่างสิ้นเชิงจากที่ผู้เขียนโปรแกรมที่มีช่องโหว่ตั้งใจไว้โดยสิ้นเชิง
  • จัดรูปแบบช่องโหว่ของสตริง ประเภทนี้ช่องโหว่ด้านความปลอดภัยเป็นคลาสย่อยของช่องโหว่ "อินพุตที่ไม่บริสุทธิ์" เกิดขึ้นเนื่องจากการควบคุมพารามิเตอร์ไม่เพียงพอเมื่อใช้ฟังก์ชัน I/O รูปแบบ printf, fprintf, scanf ฯลฯ ห้องสมุดมาตรฐานภาษาซี ฟังก์ชันเหล่านี้ใช้สตริงอักขระเป็นหนึ่งในพารามิเตอร์ที่ระบุรูปแบบอินพุตหรือเอาต์พุตของอาร์กิวเมนต์ของฟังก์ชันที่ตามมา หากผู้ใช้สามารถระบุประเภทของการจัดรูปแบบได้ ช่องโหว่นี้อาจเป็นผลมาจากการใช้ฟังก์ชันการจัดรูปแบบสตริงไม่สำเร็จ
  • ช่องโหว่อันเป็นผลมาจากข้อผิดพลาดในการซิงโครไนซ์ (สภาพการแข่งขัน) ปัญหาที่เกี่ยวข้องกับการทำงานหลายอย่างพร้อมกันนำไปสู่สถานการณ์ที่เรียกว่า "สภาวะการแข่งขัน": โปรแกรมที่ไม่ได้ออกแบบมาให้ทำงานในสภาพแวดล้อมการทำงานหลายอย่างพร้อมกันอาจเชื่อว่า ตัวอย่างเช่น ไฟล์ที่ใช้ไม่สามารถเปลี่ยนแปลงโดยโปรแกรมอื่นได้ เป็นผลให้ผู้โจมตีที่แทนที่เนื้อหาของไฟล์ทำงานเหล่านี้ในเวลาที่เหมาะสมสามารถบังคับให้โปรแกรมดำเนินการบางอย่างได้

แน่นอนว่า นอกเหนือจากที่ระบุไว้แล้ว ยังมีช่องโหว่ด้านความปลอดภัยประเภทอื่นๆ ด้วย

การตรวจสอบเครื่องวิเคราะห์ที่มีอยู่

เครื่องมือต่อไปนี้ใช้เพื่อตรวจจับช่องโหว่ด้านความปลอดภัยในโปรแกรม:

  • ดีบักเกอร์แบบไดนามิก เครื่องมือที่ช่วยให้คุณสามารถดีบักโปรแกรมระหว่างการดำเนินการได้
  • เครื่องวิเคราะห์แบบคงที่ (ตัวดีบักเกอร์แบบคงที่) เครื่องมือที่ใช้ข้อมูลที่สะสมระหว่างการวิเคราะห์แบบคงที่ของโปรแกรม

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

บทความนี้จะให้ภาพรวมของเครื่องวิเคราะห์แบบคงที่ที่มีอยู่หลายตัว เรามาดูแต่ละรายการกันดีกว่า

ในบางกรณี ช่องโหว่เกิดขึ้นเนื่องจากการใช้เครื่องมือการพัฒนาจากแหล่งที่มาต่างๆ ซึ่งเพิ่มความเสี่ยงของข้อบกพร่องประเภทการก่อวินาศกรรมที่ปรากฏในโค้ดโปรแกรม

ช่องโหว่ปรากฏขึ้นเนื่องจากมีการเพิ่มส่วนประกอบของบุคคลที่สามหรือโค้ดที่แจกจ่ายอย่างอิสระ (โอเพ่นซอร์ส) ให้กับซอฟต์แวร์ โค้ดของผู้อื่นมักจะถูกใช้ "ตามสภาพ" โดยไม่มีการวิเคราะห์และการทดสอบความปลอดภัยอย่างละเอียด

เราไม่ควรแยกการมีอยู่ของโปรแกรมเมอร์วงในในทีมที่จงใจแนะนำ สร้างผลิตภัณฑ์ฟังก์ชันหรือองค์ประกอบเพิ่มเติมที่ไม่มีเอกสารประกอบ

การจำแนกช่องโหว่ของโปรแกรม

ช่องโหว่เกิดขึ้นจากข้อผิดพลาดที่เกิดขึ้นระหว่างขั้นตอนการออกแบบหรือการเขียนโค้ด

ภัยคุกคามประเภทนี้แบ่งออกเป็นช่องโหว่ด้านการออกแบบ การใช้งาน และการกำหนดค่า ทั้งนี้ขึ้นอยู่กับระยะที่เกิดเหตุการณ์

  1. ข้อผิดพลาดที่เกิดขึ้นระหว่างการออกแบบเป็นสิ่งที่ตรวจพบและกำจัดได้ยากที่สุด สิ่งเหล่านี้คือความไม่ถูกต้องในอัลกอริธึม บุ๊กมาร์ก ความไม่สอดคล้องกันในอินเทอร์เฟซระหว่างโมดูลต่างๆ หรือในโปรโตคอลสำหรับการโต้ตอบกับฮาร์ดแวร์ และการแนะนำเทคโนโลยีที่ไม่เหมาะสม การกำจัดสิ่งเหล่านี้เป็นกระบวนการที่ต้องใช้แรงงานมาก ซึ่งรวมถึงเนื่องจากสามารถปรากฏได้ในกรณีที่ไม่ชัดเจน - ตัวอย่างเช่น เมื่อเกินปริมาณการรับส่งข้อมูลที่ต้องการหรือเมื่อเชื่อมต่อ ปริมาณมากอุปกรณ์เพิ่มเติมซึ่งทำให้การจัดเตรียมระดับความปลอดภัยที่ต้องการยุ่งยากและนำไปสู่การเกิดขึ้นของวิธีเลี่ยงไฟร์วอลล์
  2. ช่องโหว่ในการใช้งานจะปรากฏขึ้นในขั้นตอนของการเขียนโปรแกรมหรือใช้อัลกอริธึมความปลอดภัยลงไป นี่เป็นองค์กรที่ไม่ถูกต้องของกระบวนการคำนวณ ข้อบกพร่องทางวากยสัมพันธ์และตรรกะ มีความเสี่ยงที่ข้อบกพร่องจะนำไปสู่บัฟเฟอร์ล้นหรือปัญหาอื่นๆ การตรวจจับใช้เวลานาน และการกำจัดสิ่งเหล่านี้เกี่ยวข้องกับการแก้ไขบางส่วนของรหัสเครื่อง
  3. ข้อผิดพลาดในการกำหนดค่าฮาร์ดแวร์และซอฟต์แวร์เป็นเรื่องปกติ สาเหตุทั่วไปของพวกเขาคือการพัฒนาไม่เพียงพอและขาดการทดสอบ การดำเนินการที่ถูกต้อง ฟังก์ชั่นเพิ่มเติม- หมวดหมู่นี้ก็สามารถรวมได้เช่นกัน รหัสผ่านง่ายๆและบัญชีเริ่มต้นไม่เปลี่ยนแปลง

จากสถิติพบว่าช่องโหว่มักพบในผลิตภัณฑ์ยอดนิยมและผลิตภัณฑ์ทั่วไป - เดสก์ท็อปและอุปกรณ์เคลื่อนที่ ระบบปฏิบัติการ, เบราว์เซอร์

ความเสี่ยงจากการใช้โปรแกรมที่มีช่องโหว่

โปรแกรมที่ค้นหา จำนวนมากที่สุดมีการติดตั้งช่องโหว่ในคอมพิวเตอร์เกือบทุกเครื่อง ในส่วนของอาชญากรไซเบอร์ มีความสนใจโดยตรงในการค้นหาข้อบกพร่องดังกล่าวและเขียนหาข้อบกพร่องดังกล่าว

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

ในกรณีหลัง การติดเชื้อเกิดขึ้นตามอัลกอริทึมต่อไปนี้:

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

การวิจัยที่ดำเนินการโดยบริษัทต่างๆ (Kaspersky Lab, Positive Technologies) แสดงให้เห็นว่ามีช่องโหว่ในเกือบทุกแอปพลิเคชัน รวมถึงโปรแกรมป้องกันไวรัสด้วย ดังนั้นความเป็นไปได้ในการติดตั้งผลิตภัณฑ์ซอฟต์แวร์ที่มีข้อบกพร่องในระดับวิกฤตที่แตกต่างกันจึงสูงมาก

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

เพื่อลดผลกระทบของช่องโหว่และความเสียหายที่เกิดขึ้น คุณต้องปฏิบัติตามกฎบางประการ:

  • ติดตั้งโปรแกรมแก้ไข (แพตช์) ที่นักพัฒนาเผยแพร่ทันทีสำหรับแอปพลิเคชันหรือเปิดใช้งาน (ควรดีกว่า) โหมดอัตโนมัติอัปเดต
  • ถ้าเป็นไปได้ อย่าติดตั้งโปรแกรมที่น่าสงสัยซึ่งมีคุณภาพและ การสนับสนุนด้านเทคนิคตั้งคำถาม
  • ใช้เครื่องสแกนช่องโหว่พิเศษหรือฟังก์ชันพิเศษของผลิตภัณฑ์ป้องกันไวรัสที่ช่วยให้คุณสามารถค้นหาข้อผิดพลาดด้านความปลอดภัยและอัปเดตซอฟต์แวร์หากจำเป็น

เมื่อเริ่มต้น การสแกนอัจฉริยะ โปรแกรมอาวาสจะตรวจสอบพีซีของคุณเพื่อดูปัญหาประเภทต่อไปนี้ จากนั้นจึงเสนอวิธีแก้ปัญหา

  • ไวรัส: ไฟล์ที่มี รหัสที่เป็นอันตรายซึ่งอาจส่งผลต่อความปลอดภัยและประสิทธิภาพของพีซีของคุณ
  • ซอฟต์แวร์ที่มีช่องโหว่: โปรแกรมที่ต้องอัปเดตและผู้โจมตีสามารถใช้เพื่อเข้าถึงระบบของคุณได้
  • ส่วนขยายเบราว์เซอร์ที่มีชื่อเสียงไม่ดี: ส่วนขยายเบราว์เซอร์ที่ปกติจะติดตั้งโดยที่คุณไม่รู้และส่งผลต่อประสิทธิภาพของระบบ
  • รหัสผ่านที่อ่อนแอ: รหัสผ่านที่ใช้ในการเข้าถึงมากกว่าหนึ่ง บัญชีออนไลน์และสามารถถูกแฮ็กหรือบุกรุกได้ง่าย
  • ภัยคุกคามเครือข่าย: ช่องโหว่ในเครือข่ายของคุณที่อาจทำให้เกิดการโจมตีคุณได้ อุปกรณ์เครือข่ายและเราเตอร์
  • ปัญหาด้านประสิทธิภาพ: วัตถุ ( ไฟล์ที่ไม่จำเป็นและแอปพลิเคชัน ปัญหาที่เกี่ยวข้องกับการตั้งค่า) ที่อาจรบกวนการทำงานของพีซี
  • โปรแกรมป้องกันไวรัสที่ขัดแย้งกัน: โปรแกรมป้องกันไวรัสที่ติดตั้งบนพีซีของคุณด้วย Avast มีจำหน่ายหลายรายการ โปรแกรมป้องกันไวรัสทำให้พีซีของคุณช้าลงและลดประสิทธิภาพของการป้องกันไวรัส

บันทึก- ปัญหาบางอย่างที่ Smart Scan ตรวจพบอาจต้องใช้ใบอนุญาตแยกต่างหากเพื่อแก้ไข การตรวจหาประเภทปัญหาที่ไม่จำเป็นสามารถปิดใช้งานได้ใน

การแก้ปัญหาที่ตรวจพบ

เครื่องหมายถูกสีเขียวถัดจากพื้นที่สแกนแสดงว่าไม่พบปัญหาในพื้นที่นั้น กากบาทสีแดงหมายถึงการสแกนได้ระบุปัญหาที่เกี่ยวข้องอย่างน้อยหนึ่งปัญหา

หากต้องการดูรายละเอียดเฉพาะเกี่ยวกับปัญหาที่ตรวจพบ คลิก แก้ปัญหาทุกอย่าง- Smart Scan จะแสดงรายละเอียดของแต่ละปัญหาและเสนอตัวเลือกในการแก้ไขทันทีโดยคลิกที่รายการ ตัดสินใจหรือดำเนินการภายหลังโดยคลิก ข้ามขั้นตอนนี้.

บันทึก- สามารถดูบันทึกการสแกนไวรัสได้ในประวัติการสแกน ซึ่งสามารถเข้าถึงได้โดยการเลือก การป้องกันไวรัส.

จัดการการตั้งค่าการสแกนอัจฉริยะ

หากต้องการเปลี่ยนการตั้งค่า Smart Scan ให้เลือก การตั้งค่า ทั่วไป สแกนอัจฉริยะและระบุประเภทปัญหาต่อไปนี้ที่คุณต้องการสแกนอย่างชาญฉลาด

  • ไวรัส
  • ซอฟต์แวร์ที่ล้าสมัย
  • ส่วนเสริมของเบราว์เซอร์
  • ภัยคุกคามเครือข่าย
  • ปัญหาความเข้ากันได้
  • ปัญหาด้านประสิทธิภาพ
  • รหัสผ่านที่อ่อนแอ

ตามค่าเริ่มต้น ทุกประเภทปัญหาจะถูกเปิดใช้งาน หากต้องการหยุดการตรวจสอบปัญหาเฉพาะเมื่อเรียกใช้ Smart Scan ให้คลิกแถบเลื่อน รวมอยู่ด้วยถัดจากประเภทปัญหาเพื่อให้เปลี่ยนสถานะเป็น ปิด.

คลิก การตั้งค่าถัดจากคำจารึก การสแกนไวรัสเพื่อเปลี่ยนการตั้งค่าการสแกน