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


11

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

เมื่อฉันทำเช่นนั้น Avast รายงานว่าหนึ่งในนั้นมีโทรจัน "Win32: Hupigon-ONX" และกักกันไว้ในทันที ไม่ต้องการใช้โอกาสใด ๆ ฉันดาวน์โหลดสำเนาอื่นซึ่งรายงานว่าสะอาด

ตอนนี้เป็นเพียงความผิดพลาดเชิงบวกจาก Avast หรืออาจเป็นโทรจันใน jpg หรือไม่?

หากมีวิธีการที่จะได้รับการประหารชีวิต?

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

คำตอบ:


11

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

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

Modern CPUs มีการป้องกันที่จะหยุดการโจมตีส่วนใหญ่หากรหัสรองรับ สิ่งนี้ทำงานโดยโปรแกรม / ห้องสมุดที่ทำเครื่องหมายอย่างชัดเจนว่าหน้าใดเป็นข้อมูลและเป็นรหัส - CPU จะยกข้อยกเว้นหากมีสิ่งใดที่ควรเป็นข้อมูล (เช่นข้อมูลภาพ) พยายามเรียกใช้เป็นรหัส IIRC Vista และ. Net รุ่นที่ใหม่กว่าและมีไลบรารีทั้งหมดของพวกเขาได้รับการออกแบบใหม่เพื่อรองรับการป้องกันนี้และได้รับการสนับสนุนจากระบบปฏิบัติการอื่น ๆ ด้วย แต่สิ่งนี้ไม่ได้หยุดการหาประโยชน์ดังกล่าวทั้งหมดและจะทำงานได้ก็ต่อเมื่อเปิด รหัสเก่าจำนวนมากจะผิดพลาด)


9

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

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

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

ตัวอย่างเช่น:

http://www.microsoft.com/technet/security/bulletin/MS04-028.mspx

http://secunia.com/advisories/35216/

และสำหรับคำอธิบายวิธีการอนุญาตให้ใช้รหัสนี้:

/programming/460519/how-are-buffer-overflows-used-to-exploit-computers


ฉันรู้ว่ามันเกิดขึ้น - เป็นเพียงหนึ่งในการตรวจสอบขั้นพื้นฐานที่ฉันทำมาตลอดเวลาในการประมวลผลข้อมูล - ตรวจสอบว่าฉันมี / จัดสรรพื้นที่เพียงพอสำหรับข้อมูล
ChrisF

@ChrisF ความจริงที่ว่าคุณต้องให้แน่ใจว่าคุณตรวจสอบ (เมื่อเทียบกับ "คอมพิวเตอร์" ปัญหาของตัวเอง.
Zabba

@ Zabba สิ่งที่ฉันหมายถึงคือฉัน "รหัสโปรแกรมตรวจสอบ" เมื่อประมวลผลข้อมูล
ChrisF

3

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

http://www.microsoft.com/security/portal/Threat/Encyclopedia/Entry.aspx?name=Win32/Hupigon


2

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

บางทีคุณกำลังตรวจสอบพอยน์เตอร์, อาร์เรย์, และอื่น ๆ ทั้งหมด แต่คุณแน่ใจหรือไม่ว่าโปรแกรมเมอร์ทุกคนในไลบรารี่ที่ 3 ที่คุณใช้ (อาจ) ใช้ (สักวัน) ทำเช่นนั้นด้วย

ทางออกที่ง่ายที่สุดสำหรับสิ่งนี้คือการดาวน์โหลดไฟล์เช่น "image.jpg.exe" หรือสิ่งที่คล้ายกันแทนที่จะเป็นภาพจริง

วิธีการขั้นสูงในการติดเชื้อพีซีของคุณได้ถูกอธิบายไว้แล้วที่นี่ (เช่น. Buffer Overflow, ... )


1
จริง - แต่ฉันเปลี่ยนตัวเลือกโฟลเดอร์เพื่อแสดงส่วนขยาย ฉันแน่ใจว่าการซ่อนนามสกุลที่รู้จักทำให้เกิดปัญหามากขึ้น ในความเป็นจริงฉันไม่สามารถคิดปัญหาได้จริง ๆ มันแก้
ChrisF

ack เต็ม - เป็นหนึ่งในตัวเลือกแรกที่ฉันเปิดใช้งานเมื่อทำงานกับ windows
Elvith

@ChrisF: เห็นได้ชัดว่าปัญหาที่แก้ไขคือมิฉะนั้นผู้ใช้สามารถเปลี่ยนนามสกุลไฟล์โดยไม่ตั้งใจเมื่อพวกเขาเปลี่ยนชื่อ นี่เป็นสาเหตุของปัญหาที่คุ้นเคย "ไอคอนเอกสารของฉันดูตลกและฉันไม่สามารถเปิดได้อีกต่อไปช่วยเหลือ!" :-) (และใช่บางครั้งฉันสนับสนุนเทคโนโลยีสำหรับครอบครัวของฉัน)
sleske

@sleske - Windows 7 ไม่ได้เลือกนามสกุลเมื่อคุณเปลี่ยนชื่อไฟล์
ChrisF

1
@ChrisF: น่าสนใจไม่รู้ว่า มันเคยแตกต่างกัน - อย่างน้อย Windows Server 2003 จะเลือกชื่อทั้งหมดสำหรับการเปลี่ยนชื่อ และในอัตราใด ๆ หากผู้ใช้สามารถแก้ไขส่วนขยายพวกเขาจะ :-)
sleske
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.