ไฟล์ EXE ที่ซิปเป็นอันตรายสำหรับเซิร์ฟเวอร์ Linux หรือไม่


49

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

ดังนั้นไฟล์ ZIP ไม่ควรมีความเสี่ยงสำหรับเว็บเซิร์ฟเวอร์ของฉันใช่ไหม


1
ฟังดูเหมือนสแกนเนอร์มัลแวร์ขยะ
Nick T

11
คุณรู้ว่าคุณสามารถทดสอบว่าพวกเขาอยู่ในรูปแบบ ZIP ด้วยfile foo.zipหรือแม้กระทั่งการทดสอบว่าพวกเขาใช้ได้กับ7z t foo.zipการทดสอบหรือไม่ (เช่นคลายการบีบอัดและตรวจสอบการตรวจสอบ CRC โดยไม่ต้องแตกไฟล์ลงในเครื่อง) ( 7zใช้ไวยากรณ์ค่อนข้างคล้ายกับtar.) หรือunzip -l foo.zipเพื่อแสดงเนื้อหา อย่างไรก็ตามฉันคิดว่ามันแปลกที่คุณพูดถึงการตรวจสอบไฟล์ในคอมพิวเตอร์เครื่องอื่นเมื่อคุณสามารถตรวจสอบได้อย่างง่ายดายบนเซิร์ฟเวอร์
Peter Cordes

6
คุณเป็นโฮสต์เว็บไซต์ประเภทใด ดูเหมือนจะเป็นการดีที่จะให้ผู้ใช้ส่งเนื้อหาและเว็บเซิร์ฟเวอร์ของคุณไปข้างหน้าในช่องเดียวกัน
oldmud0

@NickT ไฟล์ ZIP ที่แตกไฟล์เองอาจมีรหัสที่เป็นอันตรายเพิ่มเติมแนบมากับส่วนที่ปฏิบัติการได้
chrylis -on strike-

คำตอบ:


85

หากไฟล์เหล่านั้นถูกบีบอัดด้วยไฟล์ exe Windows ไฟล์เหล่านั้นควรจะไม่เป็นอันตรายต่อระบบลีนุกซ์ของคุณเว้นแต่คุณจะมีบางอย่างเช่น Wine ที่สามารถลองใช้งานได้

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


3
ฉันสงสัยว่าการโฮสต์ขยะที่อัปโหลดโดยผู้ใช้อาจทำให้ Google สร้างตราสินค้าให้กับเว็บไซต์ของคุณว่า "ไซต์นี้อาจถูกแฮ็ก" หรือเรียก Chrome ให้แสดงหน้าคำเตือนสีแดงขนาดใหญ่ "ไม่เป็นอันตราย" อาจเป็นชื่อที่เรียกชื่อผิด
Nick T

11
@NickT: แน่นอนที่สุดสามารถและนั่นคือสิ่งที่ฉันหมายถึงในวรรคที่สองของฉัน
สเวน

4
ในทางทฤษฎีแล้วบางคนสามารถสร้าง.zipไฟล์ที่มีรูปแบบไม่ถูกต้องซึ่งพยายามกำหนดเป้าหมายข้อบกพร่องในการเปิดใช้งานซิปเฉพาะ
jamesdlin

3
Mono มีแนวโน้มที่จะติดตั้งบนเซิร์ฟเวอร์มากกว่า Wine และสามารถเรียกใช้ไฟล์ CLR .exe
Rhymoid

62

เนื่องจากฉันสามารถคลายการบีบอัดไฟล์ใน mac ของฉันได้ฉันคิดว่านี่เป็นไฟล์ zip จริงและไม่ใช่แค่ไฟล์ php ที่ถูกเปลี่ยนชื่อ

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

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

การใช้เทคนิคที่เป็นอันตรายที่พบบ่อยกว่านี้คือการปลอมแปลงรหัสช่องโหว่ในภาชนะที่ใช้ ZIP (เช่นไฟล์ JAR) เป็นสิ่งที่ไม่เป็นอันตราย (เช่นภาพ GIF เช่นเดียวกับในการหาประโยชน์GIFAR ) แต่ก็ไม่มีเหตุผลใด ๆ ใช้ในทิศทางอื่นเช่นกันเพื่อข้ามตัวกรองการอัปโหลดไฟล์ไร้เดียงสาที่ห้ามการอัปโหลดสคริปต์ PHP แต่อนุญาตให้ใช้ไฟล์ ZIP โดยไม่ตรวจสอบว่าไฟล์ที่อัปโหลดอาจมีทั้งสองไฟล์พร้อมกันหรือไม่


+1 สำหรับ GIFAR น่าสนใจที่จะรู้เกี่ยวกับตัวอย่างที่เฉพาะเจาะจงของการหาประโยชน์ในทางปฏิบัติ
caesay

11

มีข้อควรพิจารณาอย่างน้อยสองข้อที่ควรพิจารณา:

  1. หากไฟล์เหล่านี้มีการเผยแพร่ในเว็บไซต์ของคุณคุณอาจต้องรับผิดชอบหากมีผู้ได้รับมัลแวร์จากเว็บไซต์ของคุณ อย่างน้อยที่สุดเว็บไซต์ของคุณอาจถูกตั้งค่าสถานะว่ามีมัลแวร์ หากคุณตัดสินใจที่จะเพิกเฉยต่อคำเตือนของสแกนเนอร์มัลแวร์คุณควรแจ้งผู้อัปโหลดและผู้ดาวน์โหลดที่เป็นไปได้อย่างน้อยว่าไฟล์นั้นอาจเป็นอันตราย (บางครั้ง EXE ที่ดาวน์โหลดจากอินเทอร์เน็ต)
  2. คุณดำเนินการกับไฟล์เหล่านี้นอกเหนือจากการสแกนมัลแวร์หรือไม่? การดำเนินการกับสิ่งที่แนบมาโดยอัตโนมัติหรือการอัปโหลดอื่น ๆ นั้นอาจเป็นอันตรายได้เสมอเนื่องจากเนื้อหาของไฟล์อาจเป็นอะไรก็ได้ คุณไม่จำเป็นต้องเรียกใช้งานไฟล์ EXE หากซอฟต์แวร์ยูทิลิตี้ของคุณเสี่ยงต่อการถูกเอารัดเอาเปรียบและ zip / exe ที่ดูดีมีเนื้อหาที่เป็นอันตรายซึ่งกำหนดเป้าหมายยูทิลิตี้ของคุณ ฉันจะไม่ปล่อยให้เซิร์ฟเวอร์ของฉันประมวลผลสิ่งใดก็ตามที่ไม่สามารถสแกนมัลแวร์ได้

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


2

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


2

ฉันประหลาดใจที่ไม่มีใครพูดถึงว่าข้อมูลใด ๆ ที่อาจเกิดขึ้น (หรือถูกทำให้เป็น) เป็นอันตรายต่อโปรแกรม (บั๊ก) ใด ๆ นั่นคือพื้นฐานของการคลุมเครือ ตัวอย่างเช่นคุณอาจมีไฟล์ JPEG (หรือคล้าย JPEG) ที่ทำให้บัฟเฟอร์โอเวอร์โฟลว์ตัวถอดรหัส JPEG (เฉพาะเจาะจง) ทำให้เกิดสิ่งใด ๆ ตั้งแต่การปฏิเสธการบริการไปจนถึงการใช้รหัสโดยอำเภอใจ สิ่งนี้เกี่ยวกับการทำลายโปรแกรมการประมวลผลข้อมูลที่มีอยู่ ไม่จำเป็นต้องนำไฟล์ปฏิบัติการใหม่มาด้วย! และนี่คือเหตุผลว่าทำไมต้องใช้ sandboxing, การฆ่าเชื้ออินพุตและหลักการที่มีสิทธิ์น้อยที่สุด

ดังนั้นในกรณีของคุณคุณอาจมีไฟล์ ZIP ที่ก่อให้เกิดปัญหากับเอ็นจิ้นการถอดรหัส ZIP ไม่จำเป็นสำหรับไฟล์ ZIP ที่จะต้องมีไฟล์ที่สามารถเรียกคืนได้ซึ่งเป็นอันตราย

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


1

เนื่องจากฉันสามารถคลายการบีบอัดไฟล์ใน Mac ของฉันได้ฉันคิดว่านี่เป็นไฟล์ ZIP จริงและไม่ใช่แค่ไฟล์ PHP ที่ถูกเปลี่ยนชื่อ

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

ดังนั้นระวังด้วยเช่นกัน


0

การตรวจสอบเพิ่มเติมที่คุณควรทำคือวิธีphp finfoเพื่อตรวจสอบว่าไฟล์ที่ผู้ใช้อัพโหลดนั้นเป็นสิ่งที่คุณอนุญาตหรือไม่ไม่ใช่สิ่งที่ผู้ใช้เปลี่ยนชื่อไฟล์เพื่อหลอกระบบ


-6

การบีบอัด. exe นั้นไม่เป็นอันตรายสำหรับเซิร์ฟเวอร์ Linux


23
ไม่จำเป็นต้องเป็นอย่างนั้น - .exeไม่มีส่วนใดของชื่อไฟล์และอาจเลือกเป็นชื่อสำหรับไบนารีเอลฟ์
สเวน

นอกจากนี้อาจติดตั้งไวน์ ได้รับมัลแวร์ที่เป็นเป้าหมายของ Windows ส่วนใหญ่อาจไม่ทำงานภายใต้ WINE แต่มีความเสี่ยงอยู่ ที่ดีที่สุดการบีบอัด. exes บน Linux ส่วนใหญ่ไม่เป็นอันตราย
เรย์

@Ray ขึ้นอยู่กับการกำหนดค่า หากด้วยเหตุผลบางอย่างติดตั้ง Mono หรือ Wine ดังนั้นbinfmt_miscอาจถูกกำหนดค่าเพื่อให้. exe ทำงานได้จริง
Rhymoid
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.