Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Enable Data Execution Protection and Address Space Layout Randomization on Windows #134

Closed
wants to merge 2 commits into from

Conversation

dscho
Copy link
Member

@dscho dscho commented Feb 24, 2019

These two techniques make it harder to come up with exploits, by reducing what is commonly called the "attack surface" in security circles: by making the addresses less predictable, and by making it harder to inject data that is then (mis-)interpreted as code, this hardens Git's executables on Windows.

These patches have been carried in Git for Windows for over 3 years, and should therefore be considered battle-tested.

Changes since v1:

  • When determining whether we build with optimization, -O0 and -Og are explicitly ignored.

@dscho dscho added the ready to submit Has commits that have not been submitted yet label Feb 24, 2019
@dscho
Copy link
Member Author

dscho commented Feb 24, 2019

This supersedes #48

@dscho
Copy link
Member Author

dscho commented Apr 29, 2019

/submit

@gitgitgadget
Copy link

gitgitgadget bot commented Apr 29, 2019

Submitted as pull.134.git.gitgitgadget@gmail.com

@dscho dscho removed the ready to submit Has commits that have not been submitted yet label Apr 29, 2019
config.mak.uname Outdated Show resolved Hide resolved
ismail added 2 commits May 6, 2019 14:24
This is the first step for enabling ASLR (Address Space Layout
Randomization) support. We want to enable ASLR for better protection
against exploiting security holes in Git: it makes it harder to attack
software by making code addresses unpredictable.

The problem fixed by this commit is that `ld.exe` seems to be stripping
relocations which in turn will break ASLR support. We just make sure
it's not stripping the main executable entry.

Signed-off-by: İsmail Dönmez <ismail@i10z.com>
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Enable DEP (Data Execution Prevention) and ASLR (Address Space Layout
Randomization) support. This applies to both 32bit and 64bit builds
and makes it substantially harder to exploit security holes in Git by
offering a much more unpredictable attack surface.

ASLR interferes with GDB's ability to set breakpoints. A similar issue
holds true when compiling with -O2 (in which case single-stepping is
messed up because GDB cannot map the code back to the original source
code properly). Therefore we simply enable ASLR only when an
optimization flag is present in the CFLAGS, using it as an indicator
that the developer does not want to debug in GDB anyway.

Signed-off-by: İsmail Dönmez <ismail@i10z.com>
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
@dscho
Copy link
Member Author

dscho commented May 8, 2019

/submit

@gitgitgadget
Copy link

gitgitgadget bot commented May 8, 2019

Submitted as pull.134.v2.git.gitgitgadget@gmail.com

@gitgitgadget
Copy link

gitgitgadget bot commented May 13, 2019

This branch is now known as id/windows-dep-aslr.

@gitgitgadget
Copy link

gitgitgadget bot commented May 13, 2019

This patch series was integrated into pu via git@8a59c5f.

@gitgitgadget gitgitgadget bot added the pu label May 13, 2019
@gitgitgadget
Copy link

gitgitgadget bot commented May 13, 2019

This patch series was integrated into pu via git@d69114e.

@gitgitgadget
Copy link

gitgitgadget bot commented May 13, 2019

This patch series was integrated into next via git@33d5706.

@gitgitgadget gitgitgadget bot added the next label May 13, 2019
@gitgitgadget
Copy link

gitgitgadget bot commented May 15, 2019

This patch series was integrated into pu via git@b56da75.

@gitgitgadget
Copy link

gitgitgadget bot commented May 16, 2019

This patch series was integrated into pu via git@9e8d424.

@gitgitgadget
Copy link

gitgitgadget bot commented May 19, 2019

This patch series was integrated into pu via git@f42bee7.

@gitgitgadget
Copy link

gitgitgadget bot commented May 19, 2019

This patch series was integrated into next via git@f42bee7.

@gitgitgadget
Copy link

gitgitgadget bot commented May 19, 2019

This patch series was integrated into master via git@f42bee7.

@gitgitgadget gitgitgadget bot added the master label May 19, 2019
@gitgitgadget gitgitgadget bot closed this May 19, 2019
@gitgitgadget
Copy link

gitgitgadget bot commented May 19, 2019

Closed via f42bee7.

@dscho dscho deleted the aslr branch May 20, 2019 10:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants