คำถามติดแท็ก vulnerabilities

13
มีความปลอดภัยแค่ไหนในการรวบรวมซอร์สโค้ดจากคนแปลกหน้าแบบสุ่ม? [ปิด]
สมมติว่าฉันกำลังตรวจสอบรหัสที่ผู้สมัครงานส่งเพื่อพิสูจน์ทักษะของพวกเขา เห็นได้ชัดว่าฉันไม่ต้องการเรียกใช้โปรแกรมปฏิบัติการที่พวกเขาส่ง ไม่ชัดเจนฉันไม่ต้องการเรียกใช้ผลลัพธ์ของการคอมไพล์รหัสของพวกเขา (ตัวอย่างเช่นJava อนุญาตให้ซ่อนโค้ดที่รันได้ในความคิดเห็น ) สิ่งที่เกี่ยวกับการรวบรวมรหัสของพวกเขา? ฉันต้องการคอมไพเลอร์คำเตือนถ้ามี แต่จะเกิดอะไรขึ้นถ้ารหัสของพวกเขามีลำดับตัวละครที่ฉลาดซึ่งใช้ประโยชน์จากคอมไพเลอร์ของฉันและคอมไพเลอร์ของฉันประนีประนอมเครื่องของฉัน? เมื่อฉันใช้ Google สำหรับ "ช่องโหว่ของคอมไพเลอร์" ความนิยมที่ฉันได้รับนั้นเกี่ยวกับการเพิ่มประสิทธิภาพคอมไพเลอร์และการปล่อยโค้ดและว่าโค้ดที่ปล่อยออกมานั้นปลอดภัยพอ ๆ กับซอร์สโค้ดดั้งเดิมหรือไม่ โดยทั่วไปแล้วคอมไพเลอร์จะได้รับการตรวจสอบเพื่อให้แน่ใจว่าพวกเขาจะไม่ประนีประนอมเครื่องของผู้ใช้เมื่อทำการรวบรวมโค้ดที่ฉลาด การรวบรวมโค้ดจากคนแปลกหน้าปลอดภัยแค่ไหน?

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

9
เหตุใดจึงยากที่จะทำให้ C มีแนวโน้มน้อยลงในการบัฟเฟอร์ล้น?
ฉันกำลังทำหลักสูตรอยู่ในวิทยาลัยที่หนึ่งในห้องปฏิบัติการคือการใช้ประโยชน์จากบัฟเฟอร์โอเวอร์โฟลว์บนโค้ดที่พวกเขาให้เรา ช่วงนี้จากการหาประโยชน์ง่าย ๆ เช่นการเปลี่ยนที่อยู่ผู้ส่งคืนสำหรับฟังก์ชั่นในสแต็คเพื่อกลับไปที่ฟังก์ชั่นที่แตกต่างกันไปจนถึงรหัสที่เปลี่ยนสถานะการลงทะเบียน / หน่วยความจำของโปรแกรม ฟังก์ชั่นที่คุณเรียกว่าหลงลืมไปอย่างสิ้นเชิง ฉันได้ทำการวิจัยเกี่ยวกับเรื่องนี้และการใช้ประโยชน์จากการใช้ประโยชน์เหล่านี้ยังมีอยู่ทุกหนทุกแห่งแม้กระทั่งตอนนี้ในสิ่งต่าง ๆ เช่นการใช้ homebrew บน Wiiและการเจลเบรคที่ไม่มีการผูกมัดสำหรับ iOS 4.3.1 คำถามของฉันคือเหตุใดปัญหานี้จึงแก้ไขได้ยาก เห็นได้ชัดว่านี่เป็นช่องโหว่ที่สำคัญที่ใช้ในการแฮ็คหลายร้อยสิ่ง แต่ดูเหมือนว่ามันจะง่ายต่อการแก้ไขโดยการตัดทอนข้อมูลใด ๆ ที่ผ่านมาตามความยาวที่อนุญาตและกำจัดข้อมูลทั้งหมดที่คุณทำ แก้ไข: มุมมองอื่นที่ฉันต้องการคำตอบที่จะต้องพิจารณา - ทำไมผู้สร้างของ C ไม่สามารถแก้ไขปัญหาเหล่านี้ได้โดยการปรับใช้ห้องสมุดใหม่?

4
อะไรคือความเสี่ยง / ความเสี่ยงด้านความปลอดภัยของโปรแกรมเมอร์ C ทุกคนที่ต้องระวัง? [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน4 ปีที่แล้ว มีความเสี่ยงด้านความปลอดภัยมากมายจากการสัมผัสอย่างใกล้ชิดกับฮาร์ดแวร์ซึ่งต่างจากการใช้ API ที่ผ่านการทดสอบและผ่านการพิสูจน์แล้วจากภาษาโปรแกรมระดับสูง มันง่ายกว่ามากที่จะทำให้บัฟเฟอร์ล้นใน C กว่าในภาษาเช่น Java อะไรคือความเสี่ยงหรือช่องโหว่ (เช่น buffer overflow) ที่โปรแกรมเมอร์ C ทุกคนควรระวัง (ช่องโหว่ IE ที่เกี่ยวข้องกับโปรแกรมเมอร์ C) ปัญหาเหล่านี้นำไปสู่ปัญหาอะไร จะหลีกเลี่ยงพวกเขาได้อย่างไรและอะไรคือข้อผิดพลาดทั่วไปที่ทำให้สิ่งเหล่านี้เกิดขึ้นในโปรแกรม?

3
ตรวจสอบให้แน่ใจว่าไม่ได้ใช้รหัสที่ไม่ปลอดภัย
ฟังก์ชั่นf()ใช้eval()(หรือบางสิ่งที่อันตราย) กับข้อมูลที่ฉันสร้างและเก็บไว้ในlocal_fileเครื่องที่ใช้โปรแกรมของฉัน: import local_file def f(str_to_eval): # code.... # .... eval(str_to_eval) # .... # .... return None a = f(local_file.some_str) f() ปลอดภัยที่จะเรียกใช้เนื่องจากสตริงที่ฉันกำหนดให้เป็นของฉันเอง แต่ถ้าฉันเคยตัดสินใจที่จะใช้มันสำหรับบางสิ่งบางอย่างที่ไม่ปลอดภัย (เช่นผู้ใช้ป้อนข้อมูล) สิ่งที่จะไปผิดมหันต์ นอกจากนี้หากlocal_fileหยุดเป็นท้องถิ่นแล้วมันจะสร้างช่องโหว่เนื่องจากฉันจะต้องเชื่อถือเครื่องที่ให้ไฟล์นั้นเช่นกัน ฉันจะแน่ใจได้อย่างไรว่าฉันไม่เคย "ลืม" ว่าฟังก์ชั่นนี้ไม่ปลอดภัยที่จะใช้ (เว้นแต่ว่าตรงตามเกณฑ์ที่กำหนด) หมายเหตุ: eval()มีอันตรายและมักจะถูกแทนที่ด้วยสิ่งที่ปลอดภัย
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.