We modified the FreeBSD C library so that the heap al- locator functio การแปล - We modified the FreeBSD C library so that the heap al- locator functio ไทย วิธีการพูด

We modified the FreeBSD C library s

We modified the FreeBSD C library so that the heap al- locator functions (malloc(), calloc(), realloc()) allo- cate heap objects in ghost memory instead of in traditional memory; the changes generate a 216 line patch. To ease port- ing, we wrote a 667-line system call wrapper library that copies data between ghost memory and traditional mem- ory as necessary. This wrapper library also provides wrap- pers for signal() and sigaction() that register the signal handler functions with Virtual Ghost before calling the ker- nel’s signal() and sigaction() system calls. The com- piler and linker did not always resolve system calls to our wrapper functions properly, so we made some manual mod- ifications to the programs. We also modified the programs to use traditional memory (allocated via mmap()) to store the results of data to be sent to stdout and stderr to reduce copying overhead. In total, our changes to OpenSSH can be applied with a patch that adds 812 and deletes 68 lines of code (OpenSSH contains 9,230 source lines of code).
We tested our applications on the system used for our ex- periments (see Section 8). We used ssh-keygen to generate a new private and public key for DSA authentication; the generated private key was encrypted while the public key was not encrypted. We then installed the public key on an- other system and used ssh to log into that system using DSA authentication.
For ssh-agent, we added code to place a secret string within a heap-allocated memory buffer. The rootkit attacks described in Section 7 attempt to read this secret string. The goal of adding this secret string is that ssh-agent treats it identically to an encryption key (it can use the string internally but never outputs it to another program). We used a secret string as it is easier to find in memory and easier to identify as the data for which our attack searches.
Our enhanced OpenSSH application suite demonstrates that Virtual Ghost can provide security-critical applications with in-memory secrets (e.g., the keys held by ssh-agent) and secure, long-term storage (e.g., the authentication keys created by ssh-keygen and read by ssh). It also demon- strates that a suite of cooperating applications can securely share data on a hostile operating system via a shared appli- cation key.
7. Security Experiments
To evaluate the security of our system, we built a malicious kernel module that attempts to steal sensitive information from a victim process. This module, based on the code from Joseph Kong’s book [18], can be configured by a non- privileged user to mount one of two possible attacks – direct memory access or code injection – on a given victim process. The malicious module replaces the function that handles the read() system call and executes the attack as the victim process reads data from a file descriptor.
In the first attack, the malicious module attempts to di- rectly read the data from the victim memory and print it to the system log.
In the second attack, the malicious module attempts to make the victim process write the confidential data out to a file. The attack first opens the file to which the data should be written, allocates memory in the process’s address space via mmap(), and copies exploit code into the memory buffer. The attack then sets up a signal handler for the victim pro- cess that calls the exploit code. The malicious module then sends a signal to the victim process, triggering the exploit code to run in the signal handler. The exploit code copies the data into the mmap’ed memory and executes a write() sys- tem call to write the secret data out to the file opened by the malicious module.
We used both attacks on our ssh-agent program, described in Section 6. When we install the malicious module with- out instrumenting its code and run ssh-agent with malloc() configured to allocate memory objects in traditional mem- ory, both attacks succeed.
We then recompiled our malicious module using our modified Clang compiler to insert the instrumentation re- quired for Virtual Ghost. We reran both attacks on ssh-agent with malloc() configured to allocate memory objects in ghost memory. The first attack fails because the load/store instrumentation changes the pointer in the malicious mod- ule to point outside of ghost memory; the kernel simply reads unknown data out of its own address space. The sec- ond attack is thwarted because sva.ipush.function() recognizes that the exploit code isn’t one of the functions registered as a valid target of sva.ipush.function().
Note that a number of other possible attacks from within kernel code are simply not expressible in our system, e.g., anything that requires using assembly code in the kernel (such as to access CPU registers), or manipulating the ap- plication stack frames, or modifying interrupted application state when saved in memory. The second attack above illus- trates that much more sophisticated multi-step exploits are needed to get past the basic protections against using assem- bly code or accessing values saved in SVA VM memory or directly reading or writing application code and data (as in the first attack). Virtual Ghost is successfully able to thwart even this sophisticated attack.
8. Performance Experiments
We ran our performance experiments on a Dell Precision T1650 workstation with an Intel⃝R CoreTM i7-3770 proces- sor at 3.4 GHz with 8 MB of cache, 16 GB of RAM, an inte- grated PCIE Gigabit Ethernet card, a 7200 RPM 6 Gb/s 500 GB SATA hard drive, and a 256 GB Solid State Drive (SSD). Files in /usr were stored on the SSD. For network experi- ments, we used a dedicated Gigabit Ethernet network. The client machine was an iMac with a 4-core hyper-threaded Intel⃝R CoreTM i7 processor at 2.6 GHz with 8 GB of RAM.
0/5000
จาก: -
เป็น: -
ผลลัพธ์ (ไทย) 1: [สำเนา]
คัดลอก!
เราปรับเปลี่ยนไลบรารี FreeBSD C นั้นกองอัลตำแหน่งหน้าที่ (malloc(), calloc(), realloc()) allo cate กองวัตถุในหน่วยความจำผีแทนในหน่วยความจำแบบดั้งเดิม การเปลี่ยนแปลงสร้างแพทช์ 216 รายการ ให้ท่า-ไอเอ็นจี เราเขียนระบบ 667 สายเรียกกระดาษห่อรีที่คัดลอกข้อมูลระหว่างหน่วยความจำผีและแบบหน่วยความจำ-ory ตามความจำเป็น ไลบรารีนี้กระดาษห่อยังให้ตัด-pers สำหรับ signal() และ sigaction() ที่ลงทะเบียนฟังก์ชันตัวจัดการสัญญาณเสมือนผีก่อนเรียกโคเคอร์เนลของ signal() และ sigaction() ระบบโทรศัพท์ Com สุมและตัวเชื่อมโยงข้อมูลไม่เสมอสามารถแก้ระบบเรียกฟังก์ชันของกระดาษห่อได้อย่างถูกต้อง เพื่อให้เราทำบาง mod-ifications คู่มือโปรแกรม เราก็ปรับเปลี่ยนโปรแกรมใช้หน่วยความจำแบบดั้งเดิม (จัดสรรผ่าน mmap()) เพื่อเก็บผลลัพธ์ของข้อมูลที่จะส่งการ stdout stderr เพื่อลดค่าใช้จ่ายในการคัดลอก รวม สามารถใช้การเปลี่ยนแปลงของ OpenSSH กับแพทช์ที่เพิ่ม 812 และลบบรรทัด 68 รหัส (OpenSSH ประกอบด้วย 9,230 บรรทัดแหล่งที่มาของรหัส)เราทดสอบโปรแกรมประยุกต์ของเราบนระบบที่ใช้สำหรับเราแฟนเก่า-periments (ดูหัวข้อ 8) เราใช้ ssh keygen เพื่อสร้างใหม่ส่วนตัว และสาธารณะคีย์สำหรับการรับรองความถูกต้องของ DSA คีย์ส่วนตัวที่สร้างขึ้นถูกเข้ารหัสลับในขณะไม่มีการเข้ารหัสคีย์สาธารณะ เราแล้วติดตั้งคีย์สาธารณะการอื่น ๆ ระบบ และใช้ ssh ในการเข้าสู่ระบบที่ใช้การรับรองความถูกต้องของ DSAสำหรับ ssh แทน เราเพิ่มรหัสวางสายลับภายในกองการจัดสรรหน่วยความจำบัฟเฟอร์ Rootkit โจมตีอธิบายไว้ในส่วน 7 พยายามอ่านข้อความลับนี้ เป้าหมายของการเพิ่มข้อความลับนี้คือ ที่ ssh แทนปฏิบัติมันเหมือนกันกับคีย์การเข้ารหัสลับ (สามารถใช้สายอักขระภายใน แต่ไม่แสดงผลไปยังโปรแกรมอื่น) เราใช้สายอักขระลับง่ายต่อการค้นหาในหน่วยความจำ และง่ายต่อการระบุเป็นที่โจมตีของเราค้นหาข้อมูลSuite ของเราใช้ OpenSSH พิเศษแสดงให้เห็นว่า ผีเสมือนสามารถให้โปรแกรมประยุกต์ความปลอดภัยที่สำคัญ มีความลับในหน่วยความจำ (เช่น คีย์การ ssh แทน) และรักษาความ ปลอดภัย จัดเก็บข้อมูลระยะยาว (เช่น คีย์รับรองโดย ssh keygen และอ่านโดย ssh) มันยังปีศาจ-strates ว่า ชุดโปรแกรมประยุกต์ฟลอริปลอดภัยสามารถใช้ข้อมูลบนระบบปฏิบัติการเป็นศัตรูผ่านคีย์ appli cation ที่ใช้ร่วมกัน7. รักษาความปลอดภัยการทดลองการประเมินความปลอดภัยของระบบของเรา เราสร้างโมดูเคอร์เนลที่เป็นอันตรายที่พยายามขโมยข้อมูลเหยื่อกระบวนการ โมดูลนี้ ตามรหัสจากสมุดโจเซฟอินเตอร์เนชั่นแนล [18], สามารถกำหนดค่า โดยผู้ใช้ไม่มีสิทธิ์เขาหนึ่งสองได้โจมตี –หน่วยความจำโดยตรงเข้าหรือรหัสฉีด – ในกระบวนการให้เหยื่อ โมดูอันตรายแทนฟังก์ชันที่จัดการกับการเรียกระบบ read() และดำเนินการโจมตีเป็นเหยื่อกระบวนการอ่านข้อมูลจากตัวแสดงรายละเอียดแฟ้มในการโจมตีครั้งแรก พยายามอันตรายโมดิ rectly อ่านข้อมูลจากหน่วยความจำเหยื่อ และพิมพ์ลงในบันทึกของระบบในการโจมตีที่สอง โมอันตรายพยายามให้เหยื่อกระบวนการเขียนข้อมูลเป็นความลับออกไปยังแฟ้ม การโจมตีก่อนเปิดแฟ้มที่จะเขียนข้อมูล จัดสรรหน่วยความจำในพื้นที่ของกระบวนการผ่าน mmap() และคัดลอกรหัสโกงในบัฟเฟอร์หน่วยความจำ การโจมตีแล้วตั้งค่าตัวจัดการสัญญาณสำหรับการเหยื่อโป-cess ที่เรียกรหัสโกง โมดูลที่เป็นอันตรายแล้วส่งสัญญาณไปยังกระบวนการเหยื่อ การทริกเกอร์รหัสโกงทำงานในตัวจัดการสัญญาณ โกงรหัสคัดลอกข้อมูลในหน่วยความจำ mmap'ed และดำเนินการเรียกยการ sys write() เขียนข้อมูลลับออกไปยังแฟ้มที่เปิด โดยโมดูลที่เป็นอันตรายเราใช้การโจมตีทั้งบนโปรแกรม ssh แทนเรา ในส่วน 6 เมื่อเราติดตั้งโมดูลที่เป็นอันตรายกับออก instrumenting รหัส และเรียกใช้ ssh แทน ด้วย malloc() ที่ตั้งค่าคอนฟิกการปันส่วนหน่วยความจำวัตถุในแบบหน่วยความจำ-ory โจมตีทั้งสองประสบความสำเร็จแล้วเรา recompiled โมของเราที่เป็นอันตรายโดยใช้คอมไพเลอร์ของ Clang แก้ไขแทรกการใช้เครื่องมือใหม่-quired สำหรับเสมือนผี เรา reran ทั้งโจมตี ssh แทน ด้วย malloc() ที่ตั้งค่าคอนฟิกการปันส่วนหน่วยความจำวัตถุในหน่วยความจำผี การโจมตีครั้งแรกล้มเหลวเนื่องจากเครื่องมือโหลด/ร้านเปลี่ยนตัวชี้ใน mod-ule อันตรายชี้นอกผีจำ เคอร์เนลเพียงแค่อ่านข้อมูลที่ไม่รู้จักออกจากพื้นที่ที่อยู่ของตนเอง โจมตี sec ond เป็น thwarted เนื่องจาก sva.ipush.function() ตระหนักว่า รหัสโกงไม่หนึ่งฟังก์ชันที่เป็นเป้าหมายที่ถูกต้องของ sva.ipush.function()โปรดสังเกตว่า จำนวนอื่นโจมตีได้จากภายในเคอร์เนลรหัสไม่เพียง expressible ในระบบของเรา เช่น สิ่งที่ต้องการใช้รหัสแอสเซมบลีในเคอร์เนล (เช่นการเข้าถึงทะเบียน CPU), จัดการเฟรมสแตก ap plication หรือปรับเปลี่ยน จังหวะรัฐแอพลิเคชันเมื่อบันทึกในหน่วยความจำ ที่สองที่โจมตีด้านบน illus trates ที่มีความซับซ้อนมากขั้นตอนหลายประโยชน์จำเป็นต้องได้รับความคุ้มครองพื้นฐานโดยใช้รหัส assem bly หรือเข้าถึงค่าที่บันทึกไว้ในหน่วยความจำ SVA VM โดยตรงอ่าน หรือเขียนโค้ดโปรแกรมประยุกต์และข้อมูล (ในการโจมตีครั้งแรก) ที่ผ่านมา เสมือนผีจะสามารถสำเร็จการแม้กระทั่งโจมตีทันสมัย8. ทดลองประสิทธิภาพเราวิ่งทดลองประสิทธิภาพการทำงานของเราบนเวิร์กสเตชัน Dell T1650 ความแม่นยำด้วยการ Intel⃝R CoreTM i7-3770 ทาซอที่ 3.4 GHz กับ 8 MB ของแคช 16 GB RAM ในการ - ยังการ์ด PCIE Gigabit Ethernet เป็น 7200 RPM 6 Gb/s ฮาร์ดดิสก์ 500 GB SATA และ 256 GB แข็งรัฐขับรถ (SSD) แฟ้ม ใน/usr ถูกเก็บไว้ใน SSD เครือข่าย experi-ments เราใช้เครือข่ายกิกะบิตอีเทอร์เน็ตเฉพาะ เครื่องไคลเอ็นต์มี iMac กับที่ 4-ไฮเปอร์เธรด Intel⃝R CoreTM i7 หน่วยประมวลผลหลักที่ 2.6 GHz กับ 8 GB ของ RAM นั้น
การแปล กรุณารอสักครู่..
ผลลัพธ์ (ไทย) 2:[สำเนา]
คัดลอก!
เราปรับเปลี่ยนห้องสมุด FreeBSD C เพื่อให้กองฟังก์ชั่นตรวจอัล (malloc () calloc () realloc ()) วัตถุกอง Cate allo- ในหน่วยความจำผีแทนในหน่วยความจำแบบดั้งเดิม; การเปลี่ยนแปลงที่สร้างแพทช์ 216 เส้น เพื่อบรรเทาไอเอ็นจี Port- เราเขียน 667 เส้นห้องสมุดห่อสายระบบที่คัดลอกข้อมูลระหว่างหน่วยความจำผีและหน่วยความจาแบบดั้งเดิมตามความจำเป็น ห้องสมุดห่อนี้ยังให้ข่าวสาร wrap- สัญญาณ () และ sigaction () ที่ลงทะเบียนฟังก์ชั่นการจัดการสัญญาณที่มีผีเสมือนจริงก่อนที่จะเรียกสัญญาณเคอร์เนลของ () และ sigaction () โทรระบบ คีมปากสมบูรณ์และลิงเกอร์ไม่สามารถแก้ไขเสมอระบบการเรียกฟังก์ชั่นเสื้อคลุมของเราอย่างถูกต้องดังนั้นเราจึงทำให้บาง ifications เรียบร้อยคู่มือการใช้งานโปรแกรม นอกจากนี้เรายังปรับเปลี่ยนโปรแกรมการใช้หน่วยความจำแบบเดิม (ที่จัดสรรผ่าน mmap ()) ในการจัดเก็บผลของข้อมูลที่จะถูกส่งไป stdout และ stderr เพื่อลดค่าใช้จ่ายการคัดลอก รวมการเปลี่ยนแปลงของเราที่จะ OpenSSH สามารถนำไปใช้กับแพทช์ที่เพิ่ม 812 และลบ 68 สายรหัส (OpenSSH มี 9,230 เส้นแหล่งที่มาของรหัส)
เราได้ทดสอบการใช้งานของเราในระบบที่ใช้สำหรับการ periments อดีตของเรา (ดูมาตรา 8) . เราใช้ SSH-keygen เพื่อสร้างคีย์ส่วนตัวและสาธารณะใหม่สำหรับการตรวจสอบ DSA; คีย์ส่วนตัวที่สร้างขึ้นในขณะที่ได้รับการเข้ารหัสคีย์สาธารณะไม่ได้ถูกเข้ารหัสลับ จากนั้นเราจะติดตั้งกุญแจสาธารณะใน An- ระบบอื่น ๆ และใช้ SSH ในการเข้าสู่ระบบการใช้การตรวจสอบว่า DSA
สำหรับตัวแทน ssh เราเพิ่มโค้ดที่จะวางสายความลับที่อยู่ในหน่วยความจำบัฟเฟอร์กองการจัดสรร การโจมตี rootkit อธิบายไว้ในมาตรา 7 ความพยายามที่จะอ่านสตริงความลับนี้ เป้าหมายของการเพิ่มสตริงลับนี้ก็คือตัวแทน ssh ถือว่าเดียวกันกับคีย์การเข้ารหัสลับ (สามารถใช้สตริงภายใน แต่ไม่เคยออกไปยังโปรแกรมอื่น) เราใช้สตริงเป็นความลับก็คือการหาในหน่วยความจำได้ง่ายขึ้นและง่ายต่อการระบุเป็นข้อมูลที่การโจมตีของเราค้นหา
ชุดโปรแกรม OpenSSH ของเราที่เพิ่มขึ้นแสดงให้เห็นว่าผีเสมือนจริงสามารถให้โปรแกรมรักษาความปลอดภัยที่มีความสำคัญกับความลับในหน่วยความจำ (เช่น กุญแจที่ถือโดยตัวแทน ssh) และเก็บรักษาความปลอดภัยในระยะยาว (เช่นปุ่มตรวจสอบที่สร้างขึ้นโดย SSH-keygen และอ่านโดย SSH) นอกจากนี้ยัง demon- strates ว่าชุดโปรแกรมความร่วมมืออย่างปลอดภัยสามารถแบ่งปันข้อมูลบนระบบปฏิบัติการที่ไม่เป็นมิตรผ่านไอออนบวกพลิเคชั่นที่ใช้ร่วมกันที่สำคัญ
7 การทดลองการรักษาความปลอดภัย
ในการประเมินความปลอดภัยของระบบของเราเราสร้างเคอร์เนลโมดูลที่เป็นอันตรายที่พยายามขโมยข้อมูลที่สำคัญจากกระบวนการเหยื่อ โมดูลนี้จะอยู่บนพื้นฐานของรหัสจากหนังสือโจเซฟของฮ่องกง [18] สามารถกำหนดค่าโดยผู้ใช้ที่ได้รับการยกเว้นไม่ต้องติดหนึ่งในสองของการโจมตีที่เป็นไปได้ - การเข้าถึงหน่วยความจำโดยตรงหรือการฉีดรหัส - กระบวนการเหยื่อได้รับ โมดูลที่เป็นอันตรายแทนฟังก์ชั่นที่จัดการอ่าน () สายระบบและดำเนินการโจมตีเป็นกระบวนการเหยื่ออ่านข้อมูลจากไฟล์อธิบาย
ในการโจมตีครั้งแรกโมดูลที่เป็นอันตรายพยายามที่จะ DI- rectly อ่านข้อมูลจากหน่วยความจำเหยื่อและ พิมพ์ที่จะเข้าสู่ระบบ
ในการโจมตีครั้งที่สองโมดูลที่เป็นอันตรายพยายามที่จะทำให้กระบวนการเหยื่อเขียนข้อมูลที่เป็นความลับออกไปยังแฟ้ม การโจมตีครั้งแรกที่เปิดแฟ้มข้อมูลที่ควรจะเขียน, จัดสรรหน่วยความจำในพื้นที่ที่อยู่ของกระบวนการผ่าน mmap () และสำเนาใช้ประโยชน์จากรหัสลงในหน่วยความจำบัฟเฟอร์ การโจมตีจากนั้นตั้งค่าตัวจัดการสัญญาณสำหรับเงินอุดหนุนเหยื่อโปรที่เรียกใช้ประโยชน์จากรหัส โมดูลที่เป็นอันตรายแล้วส่งสัญญาณไปยังกระบวนการเหยื่อวิกฤติรหัสใช้ประโยชน์เพื่อใช้ในการจัดการสัญญาณ ใช้ประโยชน์จากสำเนารหัสข้อมูลในหน่วยความจำ mmap'ed และดำเนินการเขียน () โทร TEM งานระบบในการเขียนข้อมูลที่เป็นความลับออกไปยังแฟ้มเปิดโดยโมดูลที่เป็นอันตราย
เราใช้การโจมตีทั้งบนโปรแกรมตัวแทน ssh ของเราอธิบายไว้ใน มาตรา 6 เมื่อเราติดตั้งโมดูลที่เป็นอันตรายปราศจาก instrumenting รหัสและเรียกตัวแทน ssh กับ malloc () การกำหนดค่าให้จัดสรรวัตถุหน่วยความจำในหน่วยความจาแบบดั้งเดิมทั้งการโจมตีประสบความสำเร็จ
จากนั้นเราจะคอมไพล์โมดูลที่เป็นอันตรายของเราโดยใช้คอมไพเลอร์ของเราเสียงดังกราวแก้ไข ที่จะแทรกเครื่องมืออีกครั้ง quired สำหรับผีเสมือนจริง เรา reran การโจมตีทั้งบนตัวแทน ssh กับ malloc () การกำหนดค่าให้จัดสรรวัตถุหน่วยความจำในหน่วยความจำผี การโจมตีครั้งแรกล้มเหลวเนื่องจากการวัดความเร็วในการโหลด / ร้านมีการเปลี่ยนแปลงตัวชี้ใน ULE สุภาพที่เป็นอันตรายที่จะชี้ออกไปข้างนอกของหน่วยความจำผี; เคอร์เนลเพียงแค่อ่านข้อมูลที่ไม่รู้จักออกมาจากพื้นที่ที่อยู่ของตัวเอง โจมตี ond าทีถูกขัดขวางเพราะ sva.ipush.function () ตระหนักดีว่าใช้ประโยชน์จากรหัสไม่ได้เป็นหนึ่งในฟังก์ชั่นการจดทะเบียนเป็นเป้าหมายที่ถูกต้องของ sva.ipush.function ()
โปรดสังเกตว่าจำนวนของการโจมตีที่เป็นไปได้อื่น ๆ ภายในรหัสเคอร์เนลมีเพียงไม่แสดงออกในระบบของเราเช่นอะไรที่ต้องใช้รหัสการชุมนุมใน kernel (เช่นการเข้าถึงการลงทะเบียนของ CPU) หรือการจัดการ AP- เฟรม plication กองหรือแก้ไขขัดจังหวะสถานะโปรแกรมเมื่อบันทึกไว้ในหน่วยความจำ โจมตีครั้งที่สองดังกล่าวข้างต้น illus- trates ที่ซับซ้อนมากขึ้นหาประโยชน์หลายขั้นตอนมีความจำเป็นที่จะได้รับที่ผ่านมาความคุ้มครองขั้นพื้นฐานกับการใช้รหัส bly assem- หรือการเข้าถึงค่าที่บันทึกไว้ในหน่วยความจำ SVA VM หรือโดยตรงอ่านหรือเขียนรหัสโปรแกรมและข้อมูล (เช่นใน โจมตีครั้งแรก) ผีเสมือนเป็นที่ประสบความสำเร็จสามารถที่จะป้องกันได้นี้การโจมตีที่ซับซ้อน
8 การทดลองประสิทธิภาพการทำงาน
เราวิ่งทดสอบประสิทธิภาพการทำงานของเราในเวิร์กสเตชัน Dell Precision T1650 กับIntel⃝R CoreTM i7-3770 วผลสที่ 3.4 GHz กับ 8 MB ​​แคช, 16 GB RAM, ผสานเข้าบัตร PCIE Gigabit Ethernet, 7200 RPM 6 Gb / s 500 GB SATA ฮาร์ดไดรฟ์และ 256 GB ฟ์ Solid State (SSD) ไฟล์ใน / usr ถูกเก็บไว้ใน SSD สำหรับ ments ประสบการณ์เครือข่ายเราใช้เฉพาะเครือข่ายกิกะบิตอีเธอร์เน็ต เครื่องไคลเอ็นต์เป็น iMac กับ hyper เธรดIntel⃝R CoreTM i7 โปรเซสเซอร์ 4-core 2.6 GHz ที่มี 8 GB RAM
การแปล กรุณารอสักครู่..
ผลลัพธ์ (ไทย) 3:[สำเนา]
คัดลอก!
เราปรับเปลี่ยน FreeBSD c ห้องสมุดเพื่อให้กองอัล - ฟังก์ชันที่ตั้ง ( malloc() calloc() realloc() , , ) ฮัลโหล - เคท กองวัตถุในหน่วยความจำผีแทนในหน่วยความจำแบบดั้งเดิม ; การเปลี่ยนแปลงสร้าง 216 สาย Patch เพื่อความสะดวกในพอร์ต - ไอเอ็นจี เราเขียนพวกระบบสายเรียกห่อที่สำเนาข้อมูลระหว่างหน่วยความจำห้องสมุดผีแบบดั้งเดิม และแหม่ม สถานที่เป็นสิ่งจำเป็นห้องสมุดนี้มีห่อห่อ - ข่าวสารสำหรับ signal() sigaction() ที่ลงทะเบียนและสัญญาณผู้ดูแลการทำงานกับผีเสมือนก่อนเรียกเคอร์เนลและระบบของ signal() sigaction() โทร ดอทคอม - piler และ ลิงเกอร์ ไม่เสมอแก้ไขระบบเรียกฟังก์ชันห่อของเราได้อย่างถูกต้อง เพื่อให้เราได้ทำคู่มือ mod - ifications ไปยังโปรแกรมเรายังแก้ไขโปรแกรมที่ใช้หน่วยความจำแบบดั้งเดิม ( การจัดสรรผ่านทาง mmap() ) เพื่อเก็บผลลัพธ์ของข้อมูลที่จะถูกส่งไปยัง stdout ต่างและการแจ้งข้อความผิดพลาดลดค่าใช้จ่ายในการคัดลอก รวมการเปลี่ยนแปลงของเรา openssh สามารถใช้แพทช์ที่เพิ่มและลบ 68 สายรหัส ( openssh ประกอบด้วย 9230 สายแหล่งที่มาของรหัส ) .
เราได้ทดสอบการใช้งานบนระบบที่ใช้สำหรับอดีต periments ( ดูมาตรา 8 ) เราใช้ Keygen SSH เพื่อสร้างใหม่ส่วนตัวและกุญแจสาธารณะสำหรับ DSA รับรองความถูกต้อง ; สร้างคีย์ส่วนตัวถูกเข้ารหัสในขณะที่คีย์สาธารณะไม่ได้เข้ารหัส จากนั้นเราก็ติดตั้งกุญแจสาธารณะในระบบอื่น ๆและใช้ SSH เพื่อเข้าสู่ระบบโดยใช้ DSA ตรวจสอบ
สำหรับตัวแทน ssh ,เราได้เพิ่มรหัสที่ข้อความลับภายในกองจัดสรรบัฟเฟอร์หน่วยความจำ rootkit โจมตีที่อธิบายไว้ในมาตรา 7 พยายามอ่านข้อความลับนี้ เป้าหมายของการเพิ่มข้อความลับนี้คือตัวแทน ssh ก็ถือเหมือนกันกุญแจการเข้ารหัส ( สามารถใช้สายภายใน แต่ไม่เคยมีผลกับโปรแกรมอื่น )เราใช้สายลับมันเป็นเรื่องง่ายที่จะหาในหน่วยความจำ และง่ายที่จะระบุว่าเป็นข้อมูลที่ค้นหาในการโจมตีของเรา openssh
เพิ่มขึ้นของเราประยุกต์ใช้ชุดสาธิตผีเสมือนสามารถให้ความปลอดภัยกับการใช้งานที่สําคัญในความลับของหน่วยความจำ ( เช่นปุ่มที่จัดขึ้นโดยตัวแทน ssh ) และการจัดเก็บข้อมูลระยะยาว ( เช่น การตรวจสอบปุ่มที่สร้างขึ้นโดยโปรแกรม SSH และ SSH อ่านด้วย )มันก็ปีศาจ - strates ที่ชุดประสานงานการใช้งานอย่างปลอดภัยสามารถแบ่งปันข้อมูลบนระบบปฏิบัติการแบบผ่านการใช้คีย์ที่ใช้ร่วมกัน - ไอออนบวก .
7 การทดลองความปลอดภัย
เพื่อประเมินความปลอดภัยของระบบของเรา เราสร้างโมดูลเคอร์เนลที่เป็นอันตรายที่พยายามที่จะขโมยข้อมูลที่สำคัญจากกระบวนการที่เหยื่อ โมดูลนี้จะขึ้นอยู่กับรหัส จากหนังสือของ โจเซฟ ฮ่องกง [ 18 ]สามารถปรับแต่งได้โดยไม่ใช้สิทธิพิเศษที่จะติดหนึ่งในสองที่เป็นไปได้และหน่วยความจำเข้าถึงโดยตรงไปยังรหัสโจมตีหรือฉีดให้เหยื่อ–ในกระบวนการ โมดูลที่เป็นอันตรายแทนฟังก์ชันที่จัดการระบบเรียก read() และรันเป็นเหยื่อการโจมตีกระบวนการอ่านข้อมูลจากแฟ้มหัวเรื่อง .
ในการโจมตีครั้งแรกโมดูลที่เป็นอันตรายพยายามดิ - rectly ให้อ่านข้อมูลจากเหยื่อหน่วยความจำและพิมพ์เพื่อล็อกระบบ .
ในการโจมตีครั้งที่สอง ความพยายามที่จะทำให้กระบวนการโมดูลเหยื่อเขียนข้อมูลที่เป็นความลับจากแฟ้ม การโจมตีครั้งแรกจะเปิดแฟ้มเพื่อข้อมูลที่ควรจะเขียน การจัดสรรหน่วยความจำในกระบวนการทาง mmap() ที่อยู่พื้นที่ ,ใช้ประโยชน์จากรหัสและสำเนาลงในหน่วยความจำบัฟเฟอร์ โจมตีแล้วติดตั้งสัญญาณจัดการเหยื่อโปรเซสที่เรียกใช้รหัส โมดูลที่เป็นอันตรายแล้วส่งสัญญาณไปยังกระบวนการเหยื่อ กระตุ้นการใช้ประโยชน์จากรหัสเพื่อใช้ในสัญญาณผู้ดูแลรหัสใช้สำเนาข้อมูลลงใน mmap'ed หน่วยความจำและรัน write() sys TEM โทร - เขียนข้อมูลที่เป็นความลับให้ไฟล์เปิดโดยโปรแกรมที่เป็นอันตราย
เราใช้ทั้งการโจมตีโปรแกรมตัวแทน ssh ของเรา อธิบายไว้ในมาตรา 6เมื่อเราติดตั้งโมดูลที่เป็นอันตรายกับ - ออก instrumenting รหัสและใช้ SSH agent malloc() กําหนดจัดสรรวัตถุหน่วยความจำแบบแหม่ม สถานที่ ทั้งการโจมตีสำเร็จ
เราแล้ว recompiled โมดูลที่เป็นอันตรายของเราใช้แคร๊งเรียบเรียงดัดแปลงใส่เครื่องมือ Re - quired สำหรับวิญญาณเสมือนเรา reran ทั้งการโจมตี SSH agent ใน malloc() กําหนดจัดสรรวัตถุหน่วยความจำในหน่วยความจำของผี การโจมตีครั้งแรกล้มเหลวเนื่องจากโหลด / ร้านเครื่องมือวัดการเปลี่ยนแปลงตัวชี้ใน mod - เป็นอันตราย ule จุดภายนอกหน่วยความจำผี ; kernel ก็อ่านข้อมูลที่ออกจากพื้นที่ที่อยู่ของตัวเอง ก.ล.ต. - แต่โจมตีขัดขวาง เพราะ sva.ipush .function() รับรู้ว่ารหัสใช้ประโยชน์ไม่ได้ หนึ่งในหน้าที่จดทะเบียนเป็นเป้าหมายที่ถูกต้องของ SVA . ipush . function() .
ทราบว่าจำนวนของการโจมตีที่เป็นไปได้อื่น ๆจากภายในรหัสโปรแกรม เป็นเพียงไม่ expressible ในระบบ เช่น อะไรที่ต้องใช้ประกอบในรหัส kernel ( เช่นการลงทะเบียน CPU ) หรือการจัดการ AP - รอยจีบซ้อนเฟรมหรือการขัดจังหวะโปรแกรมรัฐเมื่อบันทึกไว้ในความทรงจำ วินาทีโจมตีข้างต้นลลัส - trates มากซับซ้อนมากขึ้น ใช้ต้นทุนจะต้องผ่านการป้องกันขั้นพื้นฐานกับการใช้ assem - รหัสบลายหรือการเข้าถึงค่าที่บันทึกไว้ในหน่วยความจำ VM SVA หรือโดยตรงการอ่านหรือเขียนรหัสโปรแกรมและข้อมูล ( เช่นในการโจมตีครั้งแรก )ผีเสมือนความสามารถที่จะขัดขวางแม้แต่การโจมตีที่ซับซ้อนนี้ .
8 การปฏิบัติการทดลอง
เราวิ่งทดลองประสิทธิภาพของเราบน Dell Precision t1650 เวิร์กสเตชันกับ Intel ⃝ R coretm i7-3770 Proces - ส. ที่ 3.4 GHz กับ 8 MB ของแคช 16 GB of RAM , inte - Gigabit Ethernet - บัตรขูด , 7200 RPM SATA 6 GB / s 500 GB ฮาร์ดไดรฟ์และ 256 GB ของแข็งรัฐไดรฟ์ ( SSD )ไฟล์ใน / usr ก็เก็บไว้บน SSD . สำหรับเครือข่ายประสบการ - มินท์นะ เราใช้เฉพาะ Gigabit Ethernet เครือข่าย เครื่องลูกค้าเป็น iMac กับ 4-core ไฮเปอร์เธรด⃝ R i7 โปรเซสเซอร์ Intel coretm ที่ 2.6 GHz พร้อม RAM 8 GB .
การแปล กรุณารอสักครู่..
 
ภาษาอื่น ๆ
การสนับสนุนเครื่องมือแปลภาษา: กรีก, กันนาดา, กาลิเชียน, คลิงออน, คอร์สิกา, คาซัค, คาตาลัน, คินยารวันดา, คีร์กิซ, คุชราต, จอร์เจีย, จีน, จีนดั้งเดิม, ชวา, ชิเชวา, ซามัว, ซีบัวโน, ซุนดา, ซูลู, ญี่ปุ่น, ดัตช์, ตรวจหาภาษา, ตุรกี, ทมิฬ, ทาจิก, ทาทาร์, นอร์เวย์, บอสเนีย, บัลแกเรีย, บาสก์, ปัญจาป, ฝรั่งเศส, พาชตู, ฟริเชียน, ฟินแลนด์, ฟิลิปปินส์, ภาษาอินโดนีเซี, มองโกเลีย, มัลทีส, มาซีโดเนีย, มาราฐี, มาลากาซี, มาลายาลัม, มาเลย์, ม้ง, ยิดดิช, ยูเครน, รัสเซีย, ละติน, ลักเซมเบิร์ก, ลัตเวีย, ลาว, ลิทัวเนีย, สวาฮิลี, สวีเดน, สิงหล, สินธี, สเปน, สโลวัก, สโลวีเนีย, อังกฤษ, อัมฮาริก, อาร์เซอร์ไบจัน, อาร์เมเนีย, อาหรับ, อิกโบ, อิตาลี, อุยกูร์, อุสเบกิสถาน, อูรดู, ฮังการี, ฮัวซา, ฮาวาย, ฮินดี, ฮีบรู, เกลิกสกอต, เกาหลี, เขมร, เคิร์ด, เช็ก, เซอร์เบียน, เซโซโท, เดนมาร์ก, เตลูกู, เติร์กเมน, เนปาล, เบงกอล, เบลารุส, เปอร์เซีย, เมารี, เมียนมา (พม่า), เยอรมัน, เวลส์, เวียดนาม, เอสเปอแรนโต, เอสโทเนีย, เฮติครีโอล, แอฟริกา, แอลเบเนีย, โคซา, โครเอเชีย, โชนา, โซมาลี, โปรตุเกส, โปแลนด์, โยรูบา, โรมาเนีย, โอเดีย (โอริยา), ไทย, ไอซ์แลนด์, ไอร์แลนด์, การแปลภาษา.

Copyright ©2025 I Love Translation. All reserved.

E-mail: