티스토리 뷰

System/Windows

Windows 보안 기법

Tribal 2015. 12. 29. 13:09

http://www.bloter.net/archives/18590            윈도우 7

http://forensic-proof.com/archives/3871          윈도우 8

http://it.donga.com/21152/                               윈도우 10


날 잡아서 한 번에 별도로 정리를...




간략한 Windows 메모리 방어기법 정리

1. GS(특별한 약자 없는 듯 하다... Stack Cookie)


  Linux의 Stack Guard와 비슷하다. Buffer와 ret 사이에 특정 값을 넣고 체크하는데 이 때 Cookie가 변조될 경우 SEH를 통해 예외처리 실시 

  Visual Studio 2003 부터 적용되며 SEH Overwrite를 통해 우회 가능



2. SafeSEH (Safe Structured Exception Handling)


  Windows에서 지원하는 예외 처리 기법 SEH 시 SEH handler가 스택에 들어가기 때문에 handler Overwrite 주소 예외 처리

SEH handler에 아래 두 가지 중 하나의 주소가 들어갈 경우 handler를 호출하지 않고 그냥 종료

   1. 스택 주소

   2. MS에서 지정한 모듈(kernel32.dll, ntdll.dll 같은...)

  Visual Studio 2005 부터 적용된다는데 모르겠다... 위의 두 가지 주소만 주의하면 SEH Overwrite 시 우회 가능



3. ASLR(Address Space Layout Randomize)


  Linux와 조금 다르게 Stack · Heap · PEB(Process Environment Block) · TEB(Thread Environment Block) 랜덤화,

  Windows Vista부터 적용



4. DEP(Data Excution Prevention)


  메모리 영역에 실행 가능한 영역과 실행 불가능한 영역을 별도로 표시하는 방어기법

  Linux의 NX-bit와 비슷하지만 역시 조금 다름, Stack · Heap · Data 영역에서 코드 명령어(Shellcode 같은) 실행 불가

#--------------------------------------------------- DEP Type ---------------------------------------------------#

하드웨어 DEP - cpu 자체에서 지원, Page 파일 자체에 실행 권한 불가능
                       (arm의 NX(No eXecution page protection)와 intel의 XD(eXecute Disable))

소프트웨어 DEP - 소프트웨어 자체에서 DEP로 보호한다. 이 때, 메모리 페이지를 보호하는 것이 아니라 예외처리를 이용하는
                       악성 코드 실행 방지를 하거나, 데이터 실행 방지 보안 검사 기능을 수행하는 형태로 실행을 보호한다.


  DEP로 보호되고 있는 페이지에서 코드를 실행하려고 하는 경우 접근 위반(0xC0000005)이 발생


  - Opt-In - 지정된 바이너리와 프로세스만 보호

  - Opt-Out - 지정된 바이너리와 프로세스를 제외하고 시스템 모두 보호

  - AlwaysOn - 모든 시스템을 항상 보호

  - AlwaysOff - 모든 시스템을 항상 보호 안 함

  - Permanent DEP - 프로그램 자체에 영구적으로 DEP를 거는 것
                                (컴파일할 때 /NXCOMPAT 옵션 설정 시 SetProcessDEPPolicy() API 함수가 자동으로 사용되면서 걸림)

 

  강도 차이(개인적인 생각) : AlwaysOn >>> Opt-Out >>> Opt-In >>> AlwaysOff

#------------------------------------------- Windows Default DEP -------------------------------------------#

  - XP sp2 ~ Vista sp0 - Optin

  - XP sp3 - Optin + Permanent DEP(Vista sp0가 먼저 나왔기 때문에)

  - Vista sp1 ~ - Optin + Permanent DEP

  - Windows 7 ~ 10 - Optin + Permanent DEP


  - Windows Server 2003 sp1 ~ - OptOut

  - Windows Server 2008 ~ - OptOut + Permanent DEP

--------------------------------------------------------------------------------------------------------------------------------

  DEP를 호환하는 CPU를 사용한다고 해도 호환성 문제가 있기 때문에 XP sp2 또는 Windows Server 2003 부터 적용됨

'System > Windows' 카테고리의 다른 글

Windows ROP  (2) 2016.02.12
Windows SEH Overwrite  (0) 2016.02.11
Windows Stack OverFlow  (0) 2016.02.11
Windows Shellcode  (0) 2016.01.30
세그먼테이션(Segmentation) 정리  (2) 2016.01.30
댓글
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31