RU2015150173A - Системы и способы проверки адреса возврата процедуры - Google Patents
Системы и способы проверки адреса возврата процедуры Download PDFInfo
- Publication number
- RU2015150173A RU2015150173A RU2015150173A RU2015150173A RU2015150173A RU 2015150173 A RU2015150173 A RU 2015150173A RU 2015150173 A RU2015150173 A RU 2015150173A RU 2015150173 A RU2015150173 A RU 2015150173A RU 2015150173 A RU2015150173 A RU 2015150173A
- Authority
- RU
- Russia
- Prior art keywords
- return address
- buffer
- processor system
- return
- pointer
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims 7
- 230000004044 response Effects 0.000 claims 11
- 238000004891 communication Methods 0.000 claims 1
- 230000003247 decreasing effect Effects 0.000 claims 1
- 238000012986 modification Methods 0.000 claims 1
- 230000004048 modification Effects 0.000 claims 1
- 238000012795 verification Methods 0.000 claims 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/3012—Organisation of register space, e.g. banked or distributed register file
- G06F9/30134—Register stacks; shift registers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1458—Protection against unauthorised use of memory or access to memory by checking the subject access rights
- G06F12/1491—Protection against unauthorised use of memory or access to memory by checking the subject access rights in a hierarchical protection system, e.g. privilege levels, memory rings
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
- G06F9/3804—Instruction prefetching for branches, e.g. hedging, branch folding
- G06F9/3806—Instruction prefetching for branches, e.g. hedging, branch folding using address prediction, e.g. return stack, branch history buffer
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3861—Recovery, e.g. branch miss-prediction, exception handling
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Executing Machine-Instructions (AREA)
- Advance Control (AREA)
Claims (39)
1. Процессорная система, содержащая:
указатель стека для указания на первый адрес возврата, хранящийся в стеке;
указатель буфера адреса возврата для указания на второй адрес возврата, хранящийся в буфере адреса возврата; и
логическое устройство проверки адреса возврата для сравнения первого адреса возврата со вторым адресом возврата в ответ на прием команды возврата.
2. Процессорная система по п. 1, в которой логическое устройство проверки адреса возврата дополнительно выполнено с возможностью исполнения команды возврата в ответ на определение, что первый адрес возврата эквивалентен второму адресу возврата.
3. Процессорная система по п. 1, в которой логическое устройство проверки адреса возврата дополнительно выполнено с возможностью генерирования исключения из-за ошибки стека в ответ на определение, что первый адрес возврата отличается от второго адреса возврата.
4. Процессорная система по п. 1, в которой логическое устройство проверки адреса дополнительно выполнено с возможностью сохранения адреса возврата в стеке и в буфере адреса возврата в ответ на прием команды вызова.
5. Процессорная система по п. 1, в которой логическое устройство проверки адреса возврата дополнительно выполнено с возможностью исполнения, в ответ на прием команды модификации буфера адреса возврата, по меньшей мере одного действия из: сохранения адреса возврата в буфере адреса возврата или удаления адреса возврата из буфера адреса возврата.
6. Процессорная система по п. 5, в которой команда модификации буфера адреса возврата является привилегированной командой.
7. Процессорная система по п. 1, в которой логическое устройство проверки адреса возврата в процессорной системе дополнительно выполнено с возможностью исполнения, в ответ на прием команды модификации буфера адреса возврата, по меньшей мере одного действия из: увеличения указателя буфера адреса возврата или уменьшения указателя буфера адреса возврата.
8. Процессорная система по любому из п. 7, в которой команда модификации буфера адреса возврата является привилегированной командой.
9. Процессорная система по п. 1, в которой стек является резидентным в запоминающем устройстве, соединенном с возможностью связи с процессорной системой.
10. Процессорная система по любому из пп. 1-7, в которой буфер адреса возврата является по меньшей мере частично резидентным в запоминающем устройстве, встроенном в процессорную систему.
11. Процессорная система по п. 1, в которой буфер адреса возврата содержит первую часть, резидентную в запоминающем устройстве в составе процессорной системы, и вторую часть, резидентную во внешней памяти.
12. Процессорная система по п. 11, в которой внешнее запоминающее устройство реализовано посредством постоянного запоминающего устройства.
13. Процессорная система по п. 11, в которой вторая часть буфера адреса возврата выполнена с возможностью работы в качестве буфера переполнения относительно первой части.
14. Способ, содержащий этапы, на которых:
осуществляют модификацию, посредством процессорной системы, указателя стека;
осуществляют модификацию указателя буфера адреса возврата;
принимают команду возврата;
сравнивают первый адрес возврата, на который указывает указатель стека, со вторым адресом возврата, на который указывает указатель буфера адреса возврата; и
выполняют команду возврата в ответ на определение, что первый адрес возврата эквивалентен второму адресу возврата.
15. Способ по п. 14, дополнительно содержащий этап, на котором генерируют исключение ошибки стека в ответ на определение, что первый адрес возврата отличается от второго адреса возврата.
16. Способ по п. 14, дополнительно содержащий этап, на котором сохраняют адрес возврата в стеке и в буфере адреса возврата в ответ на прием команды вызова.
17. Способ по п. 14, дополнительно содержащий этапы, на которых:
принимают команду модификации буфера адреса возврата; и
выполняют по меньшей мере одно действие из: сохранения адреса возврата в буфере адреса возврата или удаления адреса возврата из буфера адреса возврата.
18. Способ по п. 14, дополнительно содержащий этапы, на которых:
инициируют указатель буфера адреса возврата, так что он указывает позицию во внутреннем буфере адреса возврата;
модифицируют указатель буфера адреса возврата;
определяют, достигнута ли граница внутреннего буфера адреса возврата; и
направляют указатель буфера адреса возврата в позицию во внешнем буфере адреса возврата.
19. Машиночитаемый энергонезависимый носитель информации, хранящий исполняемые команды, вызывающие при их исполнении процессорной системой, выполнение операций, содержащих этапы, на которых:
осуществляют модификацию указателя стека;
осуществляют модификацию указателя буфера адреса возврата;
принимают команду возврата;
сравнивают первый адрес возврата, на который указывает указатель стека, со вторым адресом возврата, на который указывает указатель буфера адреса возврата; и
выполняют команды возврата в ответ на определение, что первый адрес возврата эквивалентен второму адресу возврата.
20. Машиночитаемый энергонезависимый носитель информации по п. 19, дополнительно содержащий исполняемые команды, вызывающие при их исполнении компьютерной системой, выполнение этапа, на котором генерируют исключение ошибки стека в ответ на определение, что первый адрес возврата отличается от второго адреса возврата.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/924,591 | 2013-06-23 | ||
US13/924,591 US9015835B2 (en) | 2013-06-23 | 2013-06-23 | Systems and methods for procedure return address verification |
PCT/US2014/040223 WO2014209541A1 (en) | 2013-06-23 | 2014-05-30 | Systems and methods for procedure return address verification |
Publications (2)
Publication Number | Publication Date |
---|---|
RU2015150173A true RU2015150173A (ru) | 2017-05-26 |
RU2628163C2 RU2628163C2 (ru) | 2017-08-15 |
Family
ID=52112154
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
RU2015150173A RU2628163C2 (ru) | 2013-06-23 | 2014-05-30 | Системы и способы проверки адреса возврата процедуры |
Country Status (6)
Country | Link |
---|---|
US (1) | US9015835B2 (ru) |
EP (1) | EP3014461B1 (ru) |
CN (1) | CN105264513B (ru) |
BR (1) | BR112015029289B1 (ru) |
RU (1) | RU2628163C2 (ru) |
WO (1) | WO2014209541A1 (ru) |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9589133B2 (en) * | 2014-08-08 | 2017-03-07 | International Business Machines Corporation | Preventing return-oriented programming exploits |
US9767272B2 (en) * | 2014-10-20 | 2017-09-19 | Intel Corporation | Attack Protection for valid gadget control transfers |
EP3196794B1 (en) * | 2014-11-26 | 2021-09-29 | Yulong Computer Telecommunication Scientific (Shenzhen) Co., Ltd. | Multimedia file processing method, multimedia file processing apparatus and terminal |
US9646154B2 (en) * | 2014-12-12 | 2017-05-09 | Microsoft Technology Licensing, Llc | Return oriented programming (ROP) attack protection |
US20160381050A1 (en) | 2015-06-26 | 2016-12-29 | Intel Corporation | Processors, methods, systems, and instructions to protect shadow stacks |
US9965619B2 (en) * | 2015-07-13 | 2018-05-08 | Intel Corporation | Return address overflow buffer |
US10394556B2 (en) | 2015-12-20 | 2019-08-27 | Intel Corporation | Hardware apparatuses and methods to switch shadow stack pointers |
US10430580B2 (en) | 2016-02-04 | 2019-10-01 | Intel Corporation | Processor extensions to protect stacks during ring transitions |
US10223527B2 (en) | 2016-09-20 | 2019-03-05 | International Business Machines Corporation | Protecting computer code against ROP attacks |
US10157268B2 (en) | 2016-09-27 | 2018-12-18 | Microsoft Technology Licensing, Llc | Return flow guard using control stack identified by processor register |
CN107608905B (zh) * | 2017-09-11 | 2020-05-12 | 杭州中天微系统有限公司 | 擦写Flash数据的方法及装置 |
US10740452B2 (en) * | 2017-09-15 | 2020-08-11 | Arm Limited | Call path dependent authentication |
RU2666458C1 (ru) * | 2017-11-27 | 2018-09-07 | Акционерное общество "МЦСТ" | Микропроцессор |
US10606771B2 (en) * | 2018-01-22 | 2020-03-31 | Infineon Technologies Ag | Real time stack protection |
US10909046B2 (en) * | 2018-06-15 | 2021-02-02 | Micron Technology, Inc. | Memory access determination |
US11314855B2 (en) * | 2018-12-05 | 2022-04-26 | Webroot Inc. | Detecting stack pivots using stack artifact verification |
RU2724790C1 (ru) * | 2018-12-28 | 2020-06-25 | Акционерное общество "Лаборатория Касперского" | Система и способ формирования журнала при исполнении файла с уязвимостями в виртуальной машине |
CN110457744B (zh) * | 2019-06-27 | 2023-01-20 | 山东方寸微电子科技有限公司 | 一种sd/sdio设备仿真模型框架及其设计方法 |
CN112100686B (zh) * | 2020-08-28 | 2022-04-08 | 浙江大学 | 一种基于arm指针验证的内核代码指针完整性保护方法 |
CN112579176B (zh) * | 2020-12-17 | 2023-03-28 | 成都海光微电子技术有限公司 | 记录地址历史的装置和方法 |
CN115913683B (zh) * | 2022-11-07 | 2024-04-30 | 中国联合网络通信集团有限公司 | 风险访问记录生成方法、装置、设备及存储介质 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5604877A (en) * | 1994-01-04 | 1997-02-18 | Intel Corporation | Method and apparatus for resolving return from subroutine instructions in a computer processor |
US5964868A (en) * | 1996-05-15 | 1999-10-12 | Intel Corporation | Method and apparatus for implementing a speculative return stack buffer |
US5850543A (en) * | 1996-10-30 | 1998-12-15 | Texas Instruments Incorporated | Microprocessor with speculative instruction pipelining storing a speculative register value within branch target buffer for use in speculatively executing instructions after a return |
DE19701166A1 (de) * | 1997-01-15 | 1998-07-23 | Siemens Ag | Verfahren zur Überwachung der bestimmungsgemäßen Ausführung von Softwareprogrammen |
US7086088B2 (en) | 2002-05-15 | 2006-08-01 | Nokia, Inc. | Preventing stack buffer overflow attacks |
JP3856737B2 (ja) * | 2002-07-19 | 2006-12-13 | 株式会社ルネサステクノロジ | データ処理装置 |
US20040049666A1 (en) | 2002-09-11 | 2004-03-11 | Annavaram Murali M. | Method and apparatus for variable pop hardware return address stack |
US6996677B2 (en) | 2002-11-25 | 2006-02-07 | Nortel Networks Limited | Method and apparatus for protecting memory stacks |
US20040168078A1 (en) | 2002-12-04 | 2004-08-26 | Brodley Carla E. | Apparatus, system and method for protecting function return address |
US7287283B1 (en) * | 2003-09-25 | 2007-10-23 | Symantec Corporation | Return-to-LIBC attack blocking system and method |
US20050138263A1 (en) * | 2003-12-23 | 2005-06-23 | Mckeen Francis X. | Method and apparatus to retain system control when a buffer overflow attack occurs |
US20080148399A1 (en) | 2006-10-18 | 2008-06-19 | Microsoft Corporation | Protection against stack buffer overrun exploitation |
CN101241464B (zh) * | 2007-02-05 | 2010-08-18 | 中兴通讯股份有限公司 | 一种检测堆栈帧破坏的方法 |
JP2008299795A (ja) * | 2007-06-04 | 2008-12-11 | Nec Electronics Corp | 分岐予測制御装置及びその方法 |
-
2013
- 2013-06-23 US US13/924,591 patent/US9015835B2/en active Active
-
2014
- 2014-05-30 WO PCT/US2014/040223 patent/WO2014209541A1/en active Application Filing
- 2014-05-30 RU RU2015150173A patent/RU2628163C2/ru not_active IP Right Cessation
- 2014-05-30 CN CN201480029684.6A patent/CN105264513B/zh active Active
- 2014-05-30 BR BR112015029289-5A patent/BR112015029289B1/pt active IP Right Grant
- 2014-05-30 EP EP14818405.4A patent/EP3014461B1/en active Active
Also Published As
Publication number | Publication date |
---|---|
EP3014461A1 (en) | 2016-05-04 |
RU2628163C2 (ru) | 2017-08-15 |
WO2014209541A1 (en) | 2014-12-31 |
BR112015029289A2 (pt) | 2017-07-25 |
CN105264513B (zh) | 2018-01-23 |
EP3014461B1 (en) | 2021-04-07 |
EP3014461A4 (en) | 2017-03-01 |
BR112015029289B1 (pt) | 2022-01-11 |
US9015835B2 (en) | 2015-04-21 |
CN105264513A (zh) | 2016-01-20 |
US20140380468A1 (en) | 2014-12-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
RU2015150173A (ru) | Системы и способы проверки адреса возврата процедуры | |
US9530004B2 (en) | Secure boot method, semiconductor device and recording medium | |
JP2019535087A5 (ru) | ||
US9367328B2 (en) | Out-of-band host OS boot sequence verification | |
CN106062708B (zh) | 在具有地址空间布局随机化的系统中的二进制转化重用 | |
JP2015507310A5 (ru) | ||
JP2016535373A5 (ru) | ||
MX2017007094A (es) | Competencia del conductor durante traspaso autonomo. | |
BR112017027915A2 (pt) | método e aparelho de processamento de dados e dispositivo flash | |
RU2018136581A (ru) | Устройство обработки информации, способ для его управления и носитель хранения данных | |
RU2017126201A (ru) | Способы для понимания неполного запроса на естественном языке | |
RU2015147646A (ru) | Системы и способы предотвращения несанкционированного перемещения стека | |
RU2014133160A (ru) | Генерирование и кэширование кода программного обеспечения | |
JP2015534184A5 (ja) | コンピューティングデバイス、方法、プログラム、および機械可読ストレージ媒体 | |
IN2014CN04600A (ru) | ||
WO2007130932A3 (en) | Apparatus and method for booting a computing device from a nand memory device | |
RU2015134169A (ru) | Определение профиля пути, используя комбинацию аппаратных и программных средств | |
RU2015134172A (ru) | Общая распаковка приложений для обнаружения вредоносных программ | |
EP2587362A3 (en) | Systems and methods for obtaining and using nonvolatile memory health information | |
CN110457236A (zh) | 存储系统以及对存储系统执行和验证写保护的方法 | |
JP2015515694A5 (ru) | ||
RU2014118856A (ru) | Определение длины группы символьных данных, содержащей символ окончания | |
WO2013016567A3 (en) | System and method for virtual partition monitoring | |
RU2014150416A (ru) | Система и способ определения уклона дороги | |
JP2016515265A5 (ru) |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | The patent is invalid due to non-payment of fees |
Effective date: 20190531 |