ซอฟต์แวร์มีลักษณะพิเศษใดบ้างวงจรชีวิตของการโจมตี / เครื่องมือเกี่ยวกับช่องโหว่ของซอฟต์แวร์


10

ที่มหาวิทยาลัยในท้องถิ่นของฉันมีสโมสรคอมพิวเตอร์ขนาดเล็กสำหรับนักเรียนประมาณ 20 คน สโมสรมีทีมเล็ก ๆ หลายแห่งที่มุ่งเน้นเฉพาะด้านเช่นการพัฒนาอุปกรณ์เคลื่อนที่หุ่นยนต์การพัฒนาเกมและการแฮ็ค / การรักษาความปลอดภัย

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

ฉันคุ้นเคยกับวงจรชีวิตการพัฒนาขั้นพื้นฐานบางอย่างเช่น Waterfall, Spiral, RUP, เปรียว ฯลฯ แต่ฉันสงสัยว่ามีสิ่งใดที่เป็นวงจรการพัฒนาซอฟต์แวร์สำหรับการแฮ็ค / การเจาะระบบรักษาความปลอดภัย แน่นอนแฮกเกอร์กำลังเขียนรหัสคอมพิวเตอร์ แต่วงจรชีวิตของรหัสนั้นคืออะไร ฉันไม่คิดว่าพวกเขาจะกังวลเกี่ยวกับการบำรุงรักษามากเกินไปเมื่อพบการละเมิดและแก้ไขแล้วรหัสที่ใช้ประโยชน์จากการละเมิดนั้นไม่ได้ผล

ฉันคิดว่าวงจรชีวิตจะเป็นเช่น:

  1. ค้นหาช่องว่างในความปลอดภัย
  2. ใช้ประโยชน์จากช่องว่างในการรักษาความปลอดภัย
  3. จัดหา payload
  4. ใช้ประโยชน์จากส่วนของข้อมูล

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


4
ใครบอกว่ามีระเบียบในการแฮ็คใด ๆ
วงล้อประหลาด

1
แดงสี่คำตอบที่ดีอยู่แล้ว มันจะยากที่จะเลือกเพียงอันเดียว
David Kaczynski

@DavidKaczynski คุณสามารถลองถามเรื่องนี้กับความปลอดภัยของข้อมูลเพื่อรับมุมมองของผู้ที่ออกแบบซอฟต์แวร์ประเภทต่างๆ และมันก็มีความแตกต่างกันมากขึ้นอยู่กับข้อกำหนดด้านความปลอดภัย ...
AviD

@ AviD ขอบคุณฉันคิดว่าฉันได้รับการตอบกลับที่ยอดเยี่ยมที่นี่เกี่ยวกับความจริงที่ว่าวงจรชีวิตการพัฒนาซอฟต์แวร์ที่รุกรานนั้นไม่แตกต่างกันอย่างแท้จริง ฉันต้องการเรียนรู้เพิ่มเติมเกี่ยวกับเป้าหมายหรือตัวเลือกของซอฟต์แวร์ที่แพร่กระจายเมื่อมีการละเมิดความปลอดภัยเช่นติดไวรัสคอมพิวเตอร์สร้างแบ็คดอร์หรือเลียนแบบผู้ใช้เพื่อรับข้อมูล
David Kaczynski

1
@DavidKaczynski แต่จุดของฉันก็คือว่ามันเป็นที่แตกต่างกันโดยเนื้อแท้ - หรือมากกว่าการพัฒนาประเภทหนึ่งที่แตกต่างจากชนิดอื่น ดูตัวอย่างคำตอบของเทอร์รี่เป็นตัวอย่างและเปรียบเทียบสิ่งต่อไปนี้กับไวรัสและอีกครั้งกับศูนย์วันและอีกครั้งกับ Stuxnet และ ... บางอย่างจะได้รับการออกแบบอย่างเหมาะสมบางคนถูกโยนทิ้งข้ามคืนขึ้นอยู่กับบริบทและข้อกำหนดที่แตกต่างกัน .
AviD

คำตอบ:


7

คุณกำลังพูดถึงรหัสประเภทใด

มีเครื่องมือรักษาความปลอดภัยมากมายที่ใช้ในกระบวนการแฮ็ครวมถึงสแกนเนอร์เช่นnmap , sqlmap , Nessusและอื่น ๆ อีกมากมาย ฉันคิดว่าพวกเขามีวงจรชีวิตซอฟต์แวร์ชนิดเดียวกันกับแอปพลิเคชันอื่น ๆ

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


หลังจากการสนทนากับ @AviD ฉันต้องการเพิ่มในบางจุด

มันจะแตกต่างกันมากสำหรับสถานการณ์เฉพาะ

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

Weaponized Malware เช่น stuxnet หรือ FLAME ซอฟต์แวร์สำเร็จรูปเช่น Metasploit ทำ

ดังนั้นคำตอบที่ถูกต้องคือ ... มันขึ้นอยู่กับ


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

3

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

ซอฟต์แวร์ที่พัฒนาขึ้นเพื่อละเมิดความปลอดภัยอาจมีอายุการใช้งานเท่ากับซอฟต์แวร์ประเภทอื่น ๆ และจะต้องมีการบำรุงรักษาและการทำงานในจำนวนเท่ากัน

ผู้สร้างซอฟต์แวร์ต่าง ๆ จะใช้วงจรชีวิตที่แตกต่างกันขึ้นอยู่กับความต้องการของพวกเขา


3

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

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

ฉันสงสัยว่าตัวแบบวนซ้ำ / ส่วนเพิ่มเช่นวิธีการว่องไวและตัวแบบเกลียวจะมีประโยชน์มากที่สุดในการสร้างพื้นฐาน ในการทำซ้ำแต่ละครั้งคุณสามารถทำงานเพื่อตอบคำถามหรือกำหนดพารามิเตอร์เพิ่มเติมเพื่อทำงานกับซึ่งอาจหรือไม่รวมถึงการเขียนรหัสใด ๆ บางทีวิธีการวิจัยทางวิทยาศาสตร์ที่หลากหลายอาจเป็นรากฐานที่น่าสนใจ


1

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

นอกจากนี้ยังเห็นได้ชัดการพัฒนาตลาดสำหรับการหาประโยชน์ zero-day


1

Life-Cyle ไม่เคยขึ้นอยู่กับรหัส มันค่อนข้างขึ้นอยู่กับปัจจัยอื่น ๆ เช่น:

  1. เวลา
  2. งบ
  3. ลักษณะของลูกค้า
  4. ธรรมชาติของผลิตภัณฑ์

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


ดูเหมือนว่าจะเป็นเรื่องส่วนตัว คุณแนะนำวิธีการอื่น ๆ ในวงจรชีวิตไม่เกี่ยวข้องกับลูกค้าในระหว่างการพัฒนาหรือตรวจสอบพารามิเตอร์คุณภาพที่ยอมรับได้หรือไม่? แน่นอนว่าไม่ซ้ำกับ Agile
Jay Stevens
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.