LU500621B1 - Enhancing shadow stack enforcement after process creation - Google Patents

Enhancing shadow stack enforcement after process creation Download PDF

Info

Publication number
LU500621B1
LU500621B1 LU500621A LU500621A LU500621B1 LU 500621 B1 LU500621 B1 LU 500621B1 LU 500621 A LU500621 A LU 500621A LU 500621 A LU500621 A LU 500621A LU 500621 B1 LU500621 B1 LU 500621B1
Authority
LU
Luxembourg
Prior art keywords
mode
shadow stack
stack
enforcement
shadow
Prior art date
Application number
LU500621A
Other languages
English (en)
Inventor
Matthew John Woolman
Jin Lin
Mehmet Iyigun
Jason Lin
Original Assignee
Microsoft Technology Licensing Llc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Technology Licensing Llc filed Critical Microsoft Technology Licensing Llc
Priority to LU500621A priority Critical patent/LU500621B1/en
Priority to PCT/US2022/075970 priority patent/WO2023035006A1/fr
Application granted granted Critical
Publication of LU500621B1 publication Critical patent/LU500621B1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring 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

Claims (15)

410345-LU-NP REVENDICATIONS LU500621 Il est revendiqué ce qui suit :
1. Procédé (400), mis en œuvre au niveau d’un système informatique (101) présentant un processeur (102), pour améliorer la mise en application de pile fantôme après une création de processus, le procédé comprenant : la création (116) d’un processus à partir d’un binaire d’application (109), y compris la création (120) d’une pile d’appels (113) associée au processus ; l'exposition (115) d’une interface de programmation d'application (API) d’amélioration de pile fantôme (123) au processus ; après la création du processus à partir du binaire d’application, la réception d’un appel d’API d'amélioration de pile fantôme (122) en provenance du processus ; et en fonction au moins de la réception de l’appel d’API d’amélioration de pile fantôme, l’amélioration (122) d’un mode de mise en application de pile fantôme pour le processus.
2. Procédé selon la revendication 1, dans lequel, au moment de la création du processus à partir du binaire d’application, le mode de mise en application de pile fantôme pour le processus est un mode de désactivation.
3. Procédé selon la revendication 2, dans lequel l’amélioration du mode de mise en application de pile fantôme pour le processus comprend au moins l’une des opérations suivantes : la mise à niveau du mode de mise en application de pile fantôme pour le processus en passant du mode de désactivation à un mode d’audit ; la mise à niveau du mode de mise en application de pile fantôme pour le processus en passant du mode de désactivation à un mode de compatibilité ; ou la mise à niveau du mode de mise en application de pile fantôme pour le processus en passant du mode de désactivation à un mode strict.
4. Procédé selon l’une quelconque des revendications 2 et 3, dans lequel l’amélioration du mode de mise en application de pile fantôme pour le processus comprend l’ensemencement(121) d’une pile fantôme (114) associée au processus à partir de la pile d’appels.
5. Procédé selon la revendication 4, dans lequel l’ensemencement de la pile fantôme à partir de la pile d’appels comprend : l’identification d’un ensemble d’adresses de retour sur la pile d’appels ; et la copie de l’ensemble d’adresses de retour dans la pile fantôme.
6. Procédé selon la revendication 5, dans lequel chaque adresse de retour présente dans l’ensemble d’adresses de retour est identifiée à partir d’une trame de pile différente. 1
410345-LU-NP
7. Procédé selon l’une quelconque des revendications 5 et 6, dans lequel chaque LU500621 adresse de retour présente dans l’ensemble d’adresses de retour est vérifiée pour pointer vers un binaire présent dans un ensemble de binaires sûrs.
8. Procédé selon la revendication 7, dans lequel l’ensemble de binaires sûrs comprend : un ou plusieurs binaires de système d'exploitation ; et/ou un ou plusieurs binaires ayant un indicateur demandant la mise en application de piles fantômes.
9. Procédé selon la revendication 1, dans lequel, au moment de la création du processus à partir du binaire d’application, le mode de mise en application de pile fantôme pour le processus est un mode d'audit, un mode de compatibilité ou un mode strict.
10. Procédé selon la revendication 9, dans lequel l’amélioration du mode de mise en application de pile fantômepour le processus comprend au moins l’une des opérations suivantes : la mise à niveau du mode de mise en application de pile fantôme pour le processus en passant du mode d’audit au mode de compatibilité ; la mise à niveau du mode de mise en application de pile fantôme pour le processus en passant du mode d’audit au mode strict ; ou la mise à niveau du mode de mise en application de pile fantôme pour le processus en passant du mode de compatibilité au mode strict.
11. Procédé selon la revendication 9, dans lequel le binaire d'application présente un indicateur demandant la mise en application de piles fantômes ; et en fonction au moins de l'indicateur, la création du processus à partir du binaire d’application comprend également la création d’une pile fantôme associée au processus.
12. Procédé selon la revendication 9, dans lequel la création du processus à partir d’un binaire d’application est provoquée par un appel à destination d’une API de création de processus qui lance la mise en application d’une pile fantôme au moment de la création du processus ; et en fonction au moins de l’appel à destination d’une API de création de processus, la création du processus à partir du binaire d’application comprend également la création d’une pile fantôme associée au processus.
13. Procédé selon l’une quelconque des revendications précédentes, dans lequel la réception de l’appel d’API d’amélioration de pile fantôme comprend la réception d’un mode de mise en application de pile fantôme demandé. 2
410345-LU-NP
14. Procédé selon l’une quelconque des revendications précédentes, dans lequel la LU500621 réception de l’appel d’API d’amélioration de pile fantôme comprend la réception d’une demande d'amélioration inconditionnelle du mode de mise en application de pile fantôme.
15. Procédé selon l’une quelconque des revendications 1 à 13, dans lequel la réception de l’appel d’API d'amélioration de pile fantôme comprend la réception d’une demande d’amélioration conditionnelle du mode de mise en application de pile fantôme qui est conditionnée par une vérification de l’état de compatibilité de système informatique ; et le procédé comprend en outre : sur la base au moins de la réception de l’appel d’API d’amélioration de pile fantôme, le fait de déterminer si un état de compatibilité au niveau du système informatique est satisfait ; et en fonction de la satisfaction de l’état de compatibilité au niveau du système informatique, la détermination du fait que le mode de mise en application de pile fantôme pour le processus peut être amélioré. 3
LU500621A 2021-09-06 2021-09-06 Enhancing shadow stack enforcement after process creation LU500621B1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
LU500621A LU500621B1 (en) 2021-09-06 2021-09-06 Enhancing shadow stack enforcement after process creation
PCT/US2022/075970 WO2023035006A1 (fr) 2021-09-06 2022-09-06 Amélioration de l'exécution d'une pile fantôme après la création de processus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
LU500621A LU500621B1 (en) 2021-09-06 2021-09-06 Enhancing shadow stack enforcement after process creation

Publications (1)

Publication Number Publication Date
LU500621B1 true LU500621B1 (en) 2023-03-06

Family

ID=77655606

Family Applications (1)

Application Number Title Priority Date Filing Date
LU500621A LU500621B1 (en) 2021-09-06 2021-09-06 Enhancing shadow stack enforcement after process creation

Country Status (2)

Country Link
LU (1) LU500621B1 (fr)
WO (1) WO2023035006A1 (fr)

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
ANONYMOUS: "Intel CET in action", 29 April 2021 (2021-04-29), pages 1 - 12, XP055918505, Retrieved from the Internet <URL:https://web.archive.org/web/20210429140142/https://www.offensive-security.com/offsec/intel-cet-in-action/> [retrieved on 20220505] *
ANONYMOUS: "PROCESS_MITIGATION_USER_SHADOW_STACK_POLICY structure (winnt.h)", 21 February 2021 (2021-02-21), pages 1 - 4, XP055918508, Retrieved from the Internet <URL:https://web.archive.org/web/20210607230717/https://docs.microsoft.com/en-us/windows/win32/api/winnt/ns-winnt-process_mitigation_user_shadow_stack_policy> [retrieved on 20220505] *
ANONYMOUS: "SetProcessMitigationPolicy function (processthreadsapi.h)", 5 December 2018 (2018-12-05), pages 1 - 5, XP055918507, Retrieved from the Internet <URL:https://web.archive.org/web/20210101175120/https://docs.microsoft.com/en-us/windows/win32/api/processthreadsapi/nf-processthreadsapi-setprocessmitigationpolicy> [retrieved on 20220505] *
IONESCU ALEX: "Windows 8 Security and ARM", BREAKPOINT 2012, 31 December 2012 (2012-12-31), pages 1 - 50, XP055918509, Retrieved from the Internet <URL:http://ruxconbreakpoint.com/assets/Uploads/bpx/alex-breakpoint2012.pdf> [retrieved on 20220505] *
LIN JIN: "Developer Guidance for Hardware-enforced Stack Protection", 24 February 2021 (2021-02-24), pages 1 - 9, XP055918512, Retrieved from the Internet <URL:https://web.archive.org/web/20210504193405/https://techcommunity.microsoft.com/t5/windows-kernel-internals/developer-guidance-for-hardware-enforced-stack-protection/ba-p/2163340> [retrieved on 20220505] *

Also Published As

Publication number Publication date
WO2023035006A1 (fr) 2023-03-09

Similar Documents

Publication Publication Date Title
CN108475217B (zh) 用于审计虚拟机的系统及方法
US9904527B1 (en) Optimizing API implementer programs using fine-grained code analysis
EP2973179B1 (fr) Environnement mesuré et chargé dynamiquement pour le lancement d&#39;un code sécurisé
EP2950206B1 (fr) Extraction d&#39;un code source
US8489708B2 (en) Virtual application extension points
EP3035191B1 (fr) Identification d&#39;un code source utilisé pour construire des fichiers exécutables
US9378013B2 (en) Incremental source code analysis
US20100306766A1 (en) Adding aspects to virtual machine monitors
US11709931B2 (en) Shadow stack violation enforcement at module granularity
US20210232416A1 (en) Extension application mechanisms through intra-process operation systems
US20230266984A1 (en) Container-based operating system translation
EP2511820A1 (fr) Contournement de la redirection du mode utilisateur
US20100169308A1 (en) Dynamic translator for requests for system resources
EP3926470B1 (fr) Émulateur et procédé d&#39;émulation
US11500981B2 (en) Shadow stack enforcement range for dynamic code
WO2022017242A1 (fr) Procédé et appareil pour exécuter une application de second système dans un premier système, dispositif et support
LU500621B1 (en) Enhancing shadow stack enforcement after process creation
US11656888B2 (en) Performing an application snapshot using process virtual machine resources
US10742491B2 (en) Reducing initial network launch time of container applications
Goonasekera et al. A hardware virtualization based component sandboxing architecture
US20230350710A1 (en) Fast memory mapped io support by register switch
CN115756657A (zh) 基于java的智能合约加载器实现方法及智能合约加载器
CN116010100A (zh) 区块链系统中的合约调用方法、装置、设备及存储介质

Legal Events

Date Code Title Description
FG Patent granted

Effective date: 20230306