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

10
แฮ็คคอมไพเลอร์ของ Ken Thompson ยังคงเป็นภัยคุกคามหรือไม่?
แฮ็คทอม ธ อมป์สัน (1984) Ken Thompson ได้สรุปวิธีการที่จะคอมไพล์ไบนารีคอมไพเลอร์ (และซอฟต์แวร์ที่คอมไพล์อื่น ๆ เช่นสคริปต์การเข้าสู่ระบบในระบบ * nix) ในปี 1984 ฉันอยากรู้ว่าการคอมไพล์สมัยใหม่ได้แก้ไขข้อบกพร่องด้านความปลอดภัยนี้หรือไม่ คำอธิบายสั้น: เขียนรหัสคอมไพเลอร์ใหม่เพื่อให้มีข้อบกพร่อง 2 ข้อ: เมื่อรวบรวมไบนารีของตัวเองคอมไพเลอร์จะต้องรวบรวมข้อบกพร่องเหล่านี้ เมื่อรวบรวมรหัสที่เลือกล่วงหน้าอื่น ๆ (ฟังก์ชั่นเข้าสู่ระบบ) จะต้องรวบรวมลับๆโดยพลการ ดังนั้นคอมไพเลอร์ก็ทำงานได้ตามปกติ - เมื่อคอมไพล์สคริปต์ล็อกอินหรือคล้ายกันมันสามารถสร้างแบ็คดอร์ความปลอดภัยและเมื่อคอมไพล์เวอร์ชั่นใหม่ของตัวเองในอนาคตมันจะเก็บข้อบกพร่องก่อนหน้า - และข้อบกพร่องจะมีอยู่ในคอมไพเลอร์เท่านั้น ไบนารีดังนั้นจึงเป็นเรื่องยากมากที่จะตรวจจับ คำถาม: ฉันไม่สามารถหาคำตอบสำหรับสิ่งเหล่านี้บนเว็บ: สิ่งนี้เกี่ยวข้องกับการรวบรวมแบบทันเวลาได้อย่างไร ฟังก์ชั่นเหมือนกับการเข้าสู่ระบบการจัดการโปรแกรมบนระบบ * nix ถูกคอมไพล์เมื่อรันหรือไม่? สิ่งนี้ยังคงเป็นภัยคุกคามที่ถูกต้องหรือมีการพัฒนาด้านความปลอดภัยในการรวบรวมตั้งแต่ปี 1984 ที่ป้องกันไม่ให้เกิดปัญหาร้ายแรง สิ่งนี้มีผลกระทบต่อทุกภาษาหรือไม่ ทำไมฉันถึงอยากรู้? ฉันเจอสิ่งนี้ขณะทำการบ้านและมันก็น่าสนใจ แต่ฉันก็ขาดภูมิหลังที่จะเข้าใจอย่างเป็นรูปธรรมไม่ว่าจะเป็นปัญหาปัจจุบันหรือปัญหาที่แก้ไขแล้ว วัสดุอ้างอิง ภาพรวม บางรหัส
156 linux  unix  compiler  hacking 

14
ทำไมกลไกการป้องกันการฉีด SQL ถึงวิวัฒนาการไปในทิศทางของการใช้คิวรีแบบพารามิเตอร์
วิธีที่ฉันเห็นการโจมตีด้วยการฉีด SQL สามารถป้องกันได้โดย: คัดกรองกรองเข้ารหัสการป้อนข้อมูลอย่างระมัดระวัง (ก่อนแทรกลงใน SQL) การใช้คำสั่งที่เตรียมไว้ / แบบสอบถามแบบใช้พารามิเตอร์ ฉันคิดว่ามีข้อดีข้อเสียสำหรับแต่ละข้อ แต่เหตุใด # 2 จึงถูกถอดออกและได้รับการพิจารณาว่ามีวิธีการป้องกันการฉีดยามากหรือน้อย มันปลอดภัยกว่าและมีแนวโน้มที่จะเกิดข้อผิดพลาดน้อยลงหรือมีปัจจัยอื่น ๆ อีกหรือไม่? ตามที่ฉันเข้าใจถ้าใช้ # 1 อย่างถูกต้องและข้อควรระวังทั้งหมดได้รับการดูแลมันจะมีประสิทธิภาพเท่ากับ # 2 ฆ่าเชื้อโรคกรองและเข้ารหัส มีความสับสนในส่วนของฉันระหว่างสิ่งที่เป็นฆ่าเชื้อ , การกรองและการเข้ารหัสความหมาย ฉันจะบอกว่าสำหรับวัตถุประสงค์ของฉันทั้งหมดข้างต้นสามารถพิจารณาตัวเลือก 1. ในกรณีนี้ผมเข้าใจว่าการฆ่าเชื้อและการกรองมีศักยภาพในการแก้ไขหรือยกเลิกการป้อนข้อมูลในขณะที่การเข้ารหัสจะเก็บรักษาข้อมูลตามที่เป็นแต่ถอดรหัส อย่างถูกต้องเพื่อหลีกเลี่ยงการโจมตีของการฉีด ฉันเชื่อว่าการหลีกเลี่ยงข้อมูลถือได้ว่าเป็นวิธีการเข้ารหัส พารามิเตอร์การสืบค้นเทียบกับการเข้ารหัสห้องสมุด มีคำตอบที่แนวคิดของparameterized queriesและencoding librariesที่ได้รับการปฏิบัติแทนกันได้ แก้ไขฉันถ้าฉันผิด แต่ฉันรู้สึกว่าแตกต่างกัน ความเข้าใจของฉันคือว่าencoding librariesไม่ว่าพวกเขาจะมีศักยภาพในการปรับเปลี่ยน SQL "โปรแกรม" ได้ดีเพียงใดเพราะพวกเขากำลังทำการเปลี่ยนแปลง SQL เองก่อนที่มันจะถูกส่งไปยัง RDBMS Parameterized queries ในอีกทางหนึ่งส่งโปรแกรม SQL …

5
การแฮ็ค JavaScript ในเบราว์เซอร์ทำได้ง่ายขนาดไหน?
คำถามของฉันเกี่ยวกับความปลอดภัย JavaScript ลองนึกภาพระบบการรับรองความถูกต้องที่คุณใช้เฟรมเวิร์ก JavaScript เช่นBackboneหรือAngularJSและคุณต้องการจุดปลายที่ปลอดภัย นั่นไม่ใช่ปัญหาเนื่องจากเซิร์ฟเวอร์มีคำสุดท้ายเสมอและจะตรวจสอบว่าคุณได้รับอนุญาตให้ทำสิ่งที่คุณต้องการหรือไม่ แต่ถ้าคุณต้องการความปลอดภัยเล็กน้อยโดยไม่ต้องเกี่ยวข้องกับเซิร์ฟเวอร์ล่ะ เป็นไปได้ไหม ตัวอย่างเช่นสมมติว่าคุณมีระบบการกำหนดเส้นทางฝั่งไคลเอ็นต์และคุณต้องการให้มีการป้องกันเส้นทางที่เป็นรูปธรรมสำหรับผู้ใช้ที่เข้าสู่ระบบ ดังนั้นคุณจึง ping เซิร์ฟเวอร์ถามว่าคุณได้รับอนุญาตให้เยี่ยมชมเส้นทางที่มีการป้องกันและคุณไป ปัญหาคือเมื่อคุณ ping เซิร์ฟเวอร์คุณจัดเก็บการตอบสนองในตัวแปรดังนั้นในครั้งต่อไปที่คุณไปเส้นทางส่วนตัวจะตรวจสอบว่าคุณเข้าสู่ระบบแล้ว (ไม่ ping ไปยังเซิร์ฟเวอร์) และขึ้นอยู่กับ ในการตอบสนองมันจะไปหรือไม่ ผู้ใช้สามารถปรับเปลี่ยนตัวแปรนั้นและเข้าถึงได้ง่ายแค่ไหน? ความรู้เกี่ยวกับความปลอดภัย (และ JavaScript) ของฉันไม่ได้ยอดเยี่ยม แต่ถ้าตัวแปรไม่ได้อยู่ในขอบเขตทั่วโลกและอยู่ในส่วนส่วนตัวของรูปแบบโมดูลซึ่งมีเพียง getters แต่ไม่ใช่ setters แม้ในกรณีนั้นคุณสามารถแฮ็คสิ่งนั้นได้หรือไม่

10
หากการแข่งขันใช้ 'lingua obscura' เพื่อการพัฒนา (ทำไม) ฉันควรกังวล? [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน5 ปีที่ผ่านมา ฉันอ่านเรียงความของ Paul Graham - Beating The A ค่าเฉลี่ย (2003)และนี่คือสิ่งที่เขาต้องพูด: ยิ่งมีรสชาติด้านไอทีที่รายละเอียดของงานมากขึ้น บริษัท ก็ยิ่งอันตรายน้อยลงเท่านั้น ประเภทที่ปลอดภัยที่สุดคือประเภทที่ต้องการประสบการณ์ Oracle คุณไม่ต้องกังวลเกี่ยวกับสิ่งเหล่านั้น คุณยังปลอดภัยถ้าพวกเขาบอกว่าพวกเขาต้องการนักพัฒนา C ++ หรือ Java ถ้าพวกเขาต้องการโปรแกรมเมอร์ Perl หรือ Python มันจะน่ากลัวนิดหน่อย - นั่นเริ่มเป็นเสียงเหมือน บริษัท ที่ด้านเทคนิคอย่างน้อยก็ทำงานโดยแฮกเกอร์ตัวจริง ตอนนี้เป็นบทความวันที่ แต่ผมไม่เห็นว่าการใช้ภาษาที่ไม่ใช่ธรรมดา (C / C ++ / Java, C #) จะเป็น'อันตรายน้อย' หากโปรแกรมเมอร์ขององค์กรคล่องแคล่วในการใช้ภาษาเพื่อการพัฒนาพวกเขาควรมีความเชี่ยวชาญในการเขียนโค้ดที่เหมาะสม ในความเป็นจริงถ้าคุณใช้ภาษาที่ไม่ใช่เรื่องธรรมดาจะไม่เกิดปัญหาในการบำรุงรักษา / …

7
ภัยคุกคามความปลอดภัยทั้งหมดเกิดขึ้นจากข้อบกพร่องของซอฟต์แวร์หรือไม่
ภัยคุกคามความปลอดภัยส่วนใหญ่ที่ฉันเคยได้ยินเกิดขึ้นเนื่องจากข้อผิดพลาดในซอฟต์แวร์ (เช่นอินพุตทั้งหมดไม่ได้รับการตรวจสอบอย่างถูกต้องสติ, ล้นล้น ฯลฯ ) ดังนั้นหากเราไม่รวมการแฮ็กข้อมูลทางสังคมทั้งหมดภัยคุกคามความปลอดภัยทั้งหมดเกิดจากข้อบกพร่องหรือไม่ กล่าวอีกนัยหนึ่งหากไม่มีข้อบกพร่องจะไม่มีภัยคุกคามด้านความปลอดภัย (อีกครั้งยกเว้นความผิดพลาดของมนุษย์เช่นการเปิดเผยรหัสผ่านและอื่น ๆ ) หรือระบบสามารถใช้ประโยชน์ในรูปแบบที่ไม่ได้เกิดจากข้อบกพร่อง?
13 security  bug  hacking 

5
ซอฟต์แวร์มีลักษณะพิเศษใดบ้างวงจรชีวิตของการโจมตี / เครื่องมือเกี่ยวกับช่องโหว่ของซอฟต์แวร์
ที่มหาวิทยาลัยในท้องถิ่นของฉันมีสโมสรคอมพิวเตอร์ขนาดเล็กสำหรับนักเรียนประมาณ 20 คน สโมสรมีทีมเล็ก ๆ หลายแห่งที่มุ่งเน้นเฉพาะด้านเช่นการพัฒนาอุปกรณ์เคลื่อนที่หุ่นยนต์การพัฒนาเกมและการแฮ็ค / การรักษาความปลอดภัย ฉันแนะนำแนวคิดการพัฒนาแบบเปรียวเบื้องต้นให้กับทีมสองกลุ่มเช่นเรื่องราวของผู้ใช้การประเมินความซับซ้อนของงานและการรวมอย่างต่อเนื่องสำหรับการควบคุมเวอร์ชันและการสร้าง / ทดสอบอัตโนมัติ ฉันคุ้นเคยกับวงจรชีวิตการพัฒนาขั้นพื้นฐานบางอย่างเช่น Waterfall, Spiral, RUP, เปรียว ฯลฯ แต่ฉันสงสัยว่ามีสิ่งใดที่เป็นวงจรการพัฒนาซอฟต์แวร์สำหรับการแฮ็ค / การเจาะระบบรักษาความปลอดภัย แน่นอนแฮกเกอร์กำลังเขียนรหัสคอมพิวเตอร์ แต่วงจรชีวิตของรหัสนั้นคืออะไร ฉันไม่คิดว่าพวกเขาจะกังวลเกี่ยวกับการบำรุงรักษามากเกินไปเมื่อพบการละเมิดและแก้ไขแล้วรหัสที่ใช้ประโยชน์จากการละเมิดนั้นไม่ได้ผล ฉันคิดว่าวงจรชีวิตจะเป็นเช่น: ค้นหาช่องว่างในความปลอดภัย ใช้ประโยชน์จากช่องว่างในการรักษาความปลอดภัย จัดหา payload ใช้ประโยชน์จากส่วนของข้อมูล มีความแตกต่างอะไรบ้าง (ถ้ามี) สำหรับวงจรการพัฒนาของซอฟต์แวร์เมื่อจุดประสงค์ของผลิตภัณฑ์คือการละเมิดความปลอดภัย?
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.