'커널'에 해당되는 글 14건

  1. 2009.09.01 DLL Injection 은 어떻게 이루어지는가? (1)
  2. 2009.06.25 커널 모듈 관리 명령어
  3. 2009.06.10 Microsoft 보안업데이트(MS09-018 ~ MS09-027)
2009.09.01 09:37

DLL Injection 은 어떻게 이루어지는가?

루트킷을 비롯하여 바이러스, 악성코드 등 여러 분야에 두루 쓰이는 기법이 DLL Injection입니다. 윈도우즈 OS에 한정되어 적용되는 것이지만, 윈도우즈 자체의 점유율이 높은 이유로 아주 효과적으로 공격자가 원하는 작업을 수행할 수 있는 방법이죠. 최근 루트킷에 대해 공부하면서 이 DLL Injection이 어떻게 이루어지는 알게 된 것을 정리해봅니다.

DLL? 그게 뭐야?

DLL은 윈도우즈 OS에서 사용되는 동적 연결 라이브러리 실행 파일입니다. 말이 어렵죠? 간단하게 말해서, 실행할 수 있는 아주 작은 프로그램의 단위라고 이해하시면 되겠습니다.

라이브러리라는 말은 아시나요? 영어로 Library, 도서관이라는 뜻이죠? 프로그램이 작업을 수행할 때 이 라이브러리를 참조하게 됩니다. 라이브러리에 포함된 함수, 구조체, (추천하는 방법은 아니지만) 변수 등등을 이용하는 것이죠. 우리가 프로그래밍을 할 때 (C 언어 기준으로) 헤더 파일을 집어넣습니다. stdio.h, string.h 같은 표준 헤더부터, cimg.h, curl.h 같은 사용자 정의 헤더까지 다양하죠. 이런 것을 정적 라이브러리라고 합니다. 프로그램 자체에 포함되는 라이브러리죠.

[그림 1] RocketDock 이 이용하는 많은 DLL 파일들

이에 반해 동적 연결 라이브러리는 [그림 1]에서처럼 프로그램과는 별도로 존재합니다. 가장 많이 볼 수 있는 kernel32.dll, user32.dll, gdi32.dll 등이 동적 연결 라이브러리 파일입니다. 프로그램은 필요할 때 이 DLL을 호출해서 그 안에 있는 함수를 이용하지요.

왜 이렇게 따로 하냐구요? 이렇게 함으로써 두 가지 이익을 얻을 수 있기 때문입니다.

첫 째는 프로그램이 메모리에 적재되는 용량을 줄일 수 있다는 점입니다. 프로그램 자체에 처음부터 들어 있는 게 아니라, 필요할 때 호출하는 방식이기 때문에 메모리에 항상 적재되어 있을 필요가 없지요.

두 번째는 DLL의 코드가 변경되어도 원래의 함수 이름이나 인자가 그대로라면, 프로그램을 다시 컴파일하거나 링킹을 할 필요가 없다는 점입니다. 정적 라이브러리는 변경될 때마다 매번 컴파일하고 링킹을 새로 해야하니 DLL은 정말 편리한 녀석이죠. [그림 1]에서 StackDocklet.dll을 이용하는 것을 볼 수 있죠? 플러그인을 이렇게 DLL 파일로 지원할 수도 있습니다. StackDocklet.dll의 내부 코드가 변경되어도 함수의 형태만 유지된다면 RocketDock 자체를 새로 컴파일할 필요는 없겠죠?

간단하게 DLL이 무엇인지 알아보았는데요. 다음에는 DLL이 어떻게 호출되는지, DLL Injection이 어떻게 이루어지는지를 정리해보겠습니다.

참고 문헌

Visual C++ DLL :: http://msdn.microsoft.com/ko-kr/library/1ez7dh12(VS.80).aspx
Dynamic-link library :: http://en.wikipedia.org/wiki/Dynamic-link_library

AppInit_DLLs 값 조작

DLL Injection에는 여러 방법이 있습니다. 그중 루트킷에 이용되는 세 가지 방법을 알아보겠는데요. 첫 번째로 레지스트리를 조작하는 방법입니다.

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Windows\AppInit_DLLs

regedit에서 위 주소의 레지스트리 값을 확인해보면, 보통은 값이 비어있습니다. 그런데 어떠한 값이 들어있다면, 그리고 그것이 자신이 모르는 어떤 파일이라면, 그것은 악성 코드일 가능성이 있습니다. 이 레지스트리 값이 무엇이냐구요? 바로 이 값이 DLL Injection에 참조되는 레즈스트리 값입니다.

윈도우즈의 많은 어플리케이션들이 user32.dll을 호출합니다. 이 DLL에는 창관리자를 호출하는 API 함수들이 있습니다. 윈도우즈가 기본적으로 GUI 환경이고 그 때문에 어플리케이션들도 user32.dll을 호출하기 마련이죠.

[그림 1] user32.dll이 AppInit_DLLs를 참조하는 개요

그런데 이 user32.dll은 특별한 기능을 가지고 있습니다. [그림 1]에서처럼 user32.dll은 LoadLibrary() 함수를 이용하여 AppInit_DLLs 안에 지정된 DLL들을 호출합니다. 이 때 LoadLibrary()의 인자값으로 DLL_PROCESS_ATTACH를 지정해주기 때문에 프로세스 중간에 DLL이 들어갈 수 있는 것입니다.

공격자가 이 레지스트리 값을 악의적으로 변경한다면 악성코드를 프로세스에 심을 수 있죠. 대신 이것이 적용될려면 재부팅이 필요합니다. 그러나 레지스트리 값이 변경되기 이전에 메모리에 적재된 프로세스일 경우에 재부팅이 필요한 것이지, 변경 된 이후에 메모리에 적재될 프로세스라면 굳이 재부팅이 안 되더라도 DLL이 삽입됩니다.

Email-Worm.Win32.Warezov.nf 이라는 웜이 AppInit_DLLs 값을 변경하여 DLL Injection을 시도하는 한 예입니다. 이것은 이메일의 첨부파일이 실행되면 악성 DLL을 C:\WINDOWS\system32에 생성합니다. 그리고 AppInit_DLLs 값을 변경하여 이후에 user32.dll을 호출하는 프로세스에 악성 DLL을 삽입하죠. 이 웜에 대한 자세한 내용은 아래 참고 문헌을 읽어주세요.

하지만 이 방법은 해당 레지스트리 값만 조사하면 금방 탐지될 수 있는 단점이 있습니다. 보통 정상적인 경우라면 위에서도 언급했듯이 값이 비어있기 때문이죠. 그렇더라도 레지스트리가 무엇인지 모르는 윈도우즈 사용자가 대부분이기 때문에 이것만으로도 꽤 치명적이라 할 수 있습니다.

참고 문헌

루트킷 : 윈도우 커널 조작의 미학, Greg Hoglund, James Butler, 2007, 에이콘
부팅할때 읽는 주요 파일 :: http://fd.igrus.kr/?mid=Study&document_srl=1013
Email-Worm.Win32.Warezov.nf 정보 :: http://blog.daum.net/virusmyths/6041710

SetWindowsHookEx ()

이번에는 윈도우즈에서 정상적으로 지원하는 후킹 함수를 이용하는 방법을 알아보겠습니다. 윈도우즈는 OS와 프로세스 간에 메시지를 주고받는데요. 키보드를 누른다던지, 마우스를 클릭한다던지, 디버깅에 관한 메시지라던지 그런 것들을요. 그리고 그렇게 주고받는 메시지를 후킹할 수 있는 함수도 제공하고 있습니다.

[그림 1] SetWindowsHookEx() 함수의 개요

SetWindowsHookEx() 함수가 그것이죠. [그림 1]처럼 이 함수에 삽입할 DLL의 Handler, 즉 주소와 함수의 주소를 인자로 넣음으로써 메모리에 올라간 프로세스에 삽입하게 됩니다.

SetWindowsHookEx (WH_KEYBOARD, KeyHookProc, hModule, NULL);

위 예처럼 함수를 작성합니다. hModule은 삽입할 DLL의 주소입니다. 이것은 LoadLibrary() 함수로 구할 수 있죠.

그리고 KeyHookProc은 DLL의 함수인데, GetProcAddress() 함수로 구할 수 있고, CallBack 함수로 등록할 수도 있습니다. 주의할 것은 KeyHookProc는 CallNextHookEx() 함수를 반환해야 한다는 것입니다. 후킹이 끝나고 나서 원래의 작업을 하기 위해서죠. 만약, 원래의 작업을 하지 않는다면, 사용자는 무엇인가가 잘목되었다는 것을 알 수 있고 자칫하면 블루스크린을 띄울 수도 있거든요.

[그림 1]에서 보면 네 번째 인자로 dwThreadId가 지정되어 있는데, 이것은 DLL을 삽입하려는 쓰레드의 ID입니다. GetCurrentThreadId() 함수로 구할 수 있습니다. 이 값이 0이라면, 현재 윈도우즈 데스크탑의 모든 쓰레드가 대상이 되죠.

[그림 2] idHook 테이블

첫 번째 인자가 남았는데 이것이 후킹할 메시지입니다. OS와 여기에 지정된 메시지를 주고받는 쓰레드를 후킹하지요. 이 인자에 들어갈 수 있는 값은 [그림 2]에 정리되어 있습니다. 키보드, 마우스, 디버깅, 쉘과 관련된 15개의 메시지들이 있습니다. 이 메시지들에 대해 더 자세한 내용은 아래 참고 문헌에 나와 있으니 여기서는 생략하겠습니다.

마지막으로 작업이 모두 끝나면 메모리 반환을 위해서 UnhookWindowsHookEx() 함수로 후킹을 풀어줘야 합니다.

아래는 SetWindowsHookEx() 함수를 이용하는 예제 소스입니다.

#include <windows.h>

#pragma data_seg(".npdata")     HINSTANCE hModule=NULL;     HHOOK hKeyHook=NULL;     HWND hWndBeeper=NULL; #pragma data_seg() #pragma comment (linker, "/SECTION:.npdata,RWS")
LRESULT CALLBACK
KeyHookProc(int nCode, WPARAM wParam, LPARAM lParam) {     if (nCode>=0)     {         SendMessage(hWndBeeper,WM_USER+1,wParam,lParam);     }     return CallNextHookEx(hKeyHook,nCode,wParam,lParam); }

extern "C" __declspec(dllexport) void InstallHook(HWND hWnd) {     hWndBeeper=hWnd;     hKeyHook=SetWindowsHookEx(WH_KEYBOARD,KeyHookProc,hModule,NULL); }
extern "C" __declspec(dllexport) void UninstallHook() {     UnhookWindowsHookEx(hKeyHook); }
BOOL WINAPI
DllMain(HINSTANCE hInst, DWORD fdwReason, LPVOID lpRes) {     switch (fdwReason)     {         case DLL_PROCESS_ATTACH:             hModule=hInst;             break;         case DLL_PROCESS_DETACH:             break;     }     return TRUE; }

참고 문헌

루트킷 : 윈도우 커널 조작의 미학, Greg Hoglund, James Butler, 2007, 에이콘
SetWindowsHookEx Function :: http://msdn.microsoft.com/library/ms644990.aspx
SetWindowsHookEx() 함수를 이용한 방법 :: http://blog.naver.com/amanahnr/90032952064


CreatRomoteThread ()

DLL Injection의 마지막 세 번째 방법은 CreatRemoteThread() 함수를 이용하는 것입니다. 가장 많이 쓰이는 방법이라서 관련 문서도 쉽게 찾을 수 있죠.

[그림 1] CreatRemoteThread() 의 개요

CreatRemoteThread() 함수는 이름 그대로 쓰레드를 만드는 API 함수입니다. 원격은 다른 프로세스에서 쓰레드를 생성하기 때문에 붙은 것이죠. [그림 1]과 같은 구조로 구성되어 있고, 윈도우즈 NT 계열에서 지원합니다.

첫 번째 인자인 hProcess는 쓰레드를 생성할 프로세스를 가리킵니다. 윈도우즈에서 제공하는 OpenProcess()  API 함수를 이용해서 구할 수 있으며, PID(Process ID) 값을 이용합니다. OpenProcess()의 원형은 아래와 같습니다.

HANDLE WINAPI OpenProcess(
  __in  DWORD dwDesiredAccess,
  __in  BOOL bInheritHandle,
  __in  DWORD dwProcessId
);

네 번째 인자, lpStartAddress는 LoadLibrary() 함수를 가리킵니다. LoadLibray()를 이용하여 DLL을 삽입하기 때문이죠. 원래는 쓰레드를 생성할 프로세스에서의 LoadLibray()를 가리켜야 하지만, 윈도우즈는 각 프로세스의 kernel32.dll의 베이스주소를 일정하게 관리하기 때문에 DLL Loader에서 사용하는 kernel32.dll의 LoadLibray()를 가리키더라도 문제 없다고 합니다. LoadLibray()의 주소는 GetProcAddress()를 이용합니다. 원형은 아래와 같습니다.

FARPROC WINAPI GetProcAddress(
  __in  HMODULE hModule,
  __in  LPCSTR lpProcName
);

다섯 번째 인자인 lpParameter는 프로세스 안에서 쓰레드가 위치할 메모리 영역을 가리킵니다. CreateRemoteThread()는 프로세스 안에 쓰레드를 생성하는 것이므로 쓰레드를 위한 메모리를 별도로 생성해주어야 하지요. 이 때 사용하는 API 함수가 VirtualAllockEx()와 WriteProcessMemory()입니다. VirtualAllockEx()가 메모리를 할당하면, WriteProcessMemory()로 쓰는 것이죠. 각각의 원형은 아래와 같습니다.

LPVOID WINAPI VirtualAllocEx(
  __in      HANDLE hProcess,
  __in_opt  LPVOID lpAddress,
  __in      SIZE_T dwSize,
  __in      DWORD flAllocationType,
  __in      DWORD flProtect
);

BOOL WINAPI WriteProcessMemory(
  __in   HANDLE hProcess
,
  __in   LPVOID lpBaseAddress
,
  __in   LPCVOID lpBuffer
,
  __in   SIZE_T nSize
,
  __out  SIZE_T
*lpNumberOfBytesWritten
);

나머지 인자들은 lp*는 NULL로, dw*는 0으로 넣습니다. 이 중에서 dwCreationFlags에 0을 넣는 것은 쓰레드가 생성되는 즉시 실행하라는 뜻입니다.

전체적으로 정리해보죠. OpenProcess()로 DLL을 집어넣을 프로세스를 구합니다. 그리고 GetProcAddress()로 DLL을 로드하는 LoadLibrary()의 주소를 구합니다. 마지막으로 VirtualAllockEx()로 DLL이 위치할 메모리를 할당하고 WriteProcessMemory()로 쓰게 됩니다. 이 모든 것들을 CreateRemoteThread()의 인자값으로 넣어서 DLL Loader에서 실행합니다. 이러면 DLL Injection이 된 것입니다. 간단하죠?

하지만 이 방법은 간단한 대신 쉽게 탐지되기도 합니다. CreateRemoteThread()를 호출하면 CreatThreat()가 호출되고, 그 안에서 다시 BaseThreadStartThunk()가 호출된다고 합니다. 이 BaseThreadStartThunk()를 후킹해서 lpStartAddress가 위에서 설명한 대로 LoadLibray()나 GetProcAddress()를 가리킨다면 DLL Injection이라고 간주하는 것이죠.

참고 문헌

루트킷 : 윈도우 커널 조작의 미학, Greg Hoglund, James Butler, 2007, 에이콘
CreateRemoteThread Function :: http://msdn.microsoft.com/en-us/library/ms682437(VS.85).aspx
OpenProcess Function :: http://msdn.microsoft.com/en-us/library/ms684320(VS.85).aspx
GetProcAddress Function :: http://msdn.microsoft.com/en-us/library/ms683212(VS.85).aspx
VirtualAllocEx Function :: http://msdn.microsoft.com/en-us/library/aa366890(VS.85).aspx
WriteProcessMemory Function :: http://msdn.microsoft.com/en-us/library/ms681674(VS.85).aspx
Shield from DLL-Injection :: http://nerd.egloos.com/2940078


출처 : http://hisjournal.net/blog


Trackback 0 Comment 1
  1. DLL Injection 2009.09.01 09:42 address edit & del reply

    LoadLibraryA 와 CreateRemoteThreadㅁ API 를 이용한 DLL Injection 방법이 있고
    SetWindowsHookExA 로도 DLL Injection 이 가능합니다
    CreateRemoteThread 를 이용한 DLL Injection 방법 : << 해보세요 즉석에서 대충만들어서 안될수도 있따만 ㅎㄷ;;;


    Public Function Inject_Dll(Strdll As String, StrProcID As String)
    Dim LoadlibAdr As Long, RemThread As Long, LngModule As Long, LngProcess As Long, LngBytes As Long, LngThreadID As Long
    On Error GoTo ErrTrap
    LngProcess = OpenProcess(PROCESS_ALL_ACCESS, False, CLng(StrProcID)) '프로세스를 엽니다
    LoadlibAdr = GetProcAddress(GetModuleHandle("kernel32.dll";), "LoadLibraryA";) 'dll 주소 가져옴
    LngModule = VirtualAllocEx(LngProcess, 0, Len(Strdll), MEM_COMMIT, PAGE_READWRITE) '메모리를 읽고 쓰기가 가능하게 만듦
    WriteProcessMemory LngProcess, ByVal LngModule, ByVal Strdll, Len(Strdll), LngBytes ' 메모리를 씁니다(dll 공간)
    RemThread = CreateRemoteThread(LngProcess, ByVal 0, 0, ByVal LoadlibAdr, ByVal LngModule, 0, LngThreadID) 'DLL Injecting
    WaitForSingleObject RemThread, INFINITE
    CloseHandle LngProcess ' 핸들 닫아야함 안그럼 Memory Leak 현상이 일어날거임.
    CloseHandle RemThread ' 역시 이것도 뭐..
    MsgBox "성공 - 작업을 완료햇습니다.", vbInformation, "완료"
    Exit Function
    ErrTrap:
    MsgBox "실패.", vbCritical, "오류"
    End Function

2009.06.25 09:36

커널 모듈 관리 명령어

- insmod

: 모듈 추가. 커널 디렉토리를 찾아서 해당 모듈을 추가한다.
■ 형식 : insmod [옵션] [오브젝트파일]
■ 옵션
  -k : autoclean 을 사용하여 적재

- rmmod

: 모듈 삭제

■ 형식 : rmmod [옵션] [모듈]

■ 옵션
  -r : 의존관계에 있는 모듈을 한번에 삭제

- lsmod

 : 추가된 모듈 출력(/proc/modules 를 참조한다)
■ 형식 : lsmod [옵션]

■ 옵션
  -V : lsmod 버전 출력

- modprobe

: 모듈 추가. depmod에 의해 갱신된 modules.dep에서 찾아 추가한다. insmod와 달리 해당 커널 디렉토리로 갈 필요없이 아무위치에서나 모듈을 추가할수 있다. 또한 의존성이 필요한 모듈이나 먼저 실행되어야 할 모듈이 있다면 그 모듈부터 추가하고 해당 모듈을 추가한다

■ 형식 : modprobe [옵션] [오브젝트파일]

■ 옵션
  -k : autoclean 을 사용하여 추가
  -r : 모듈 삭제

- depmod

: 의존성 검사를 한뒤 modules.dep 파일을 갱신한다. kernald나 modprobe를 실행하기 전엔 꼭 depmod -a를 사용하는 습관을 들인다
■ 형식 : depmod [옵션]
■ 옵션
  -a :

- modinfo

: 모듈 정보 확인
■ 형식 : modinfo [모듈명]

※ autoclean

autoclean라는 플레그를 사용하면 커널 데몬(kerneld)에 의해 일정시간 사용하지 않는 모듈을 삭제한다. 단 커널 컴파일시 kerneld 지원 여부를 물을때 Y를 해야 사용 가능

 

※ 참고사항

insmod는 '/lib/modules/커널버전' 디렉토리를 뒤져 해당 모듈이 있으면 메모리에 올려준다.
modprobe는 depmod에 의해 생성된 modules.dep에서 모듈을 찾아 올린다. 그리고 해당 모듈에
의존성이 있거나 해당모듈보다 선행되어야 하는 모듈이 있으면 그 모듈도 같이 올려준다.
이 부분이 insmod와 가장 큰 차이점이다.
예를 들어 vfat란 모듈을 올리기 위해서는 fat란 모듈을 먼저 올려야 하는데, fat 모듈이 메모리에
올라가 있지 않은 상태에서
# insmod vfat 하면 fat에 대한 symbol을 찾지못해 vfat 모듈을 올리지 못하지만
# modprobe vfat 을 실행하면 자동으로 먼저 fat 모듈을 올리고, 그 다음으로 vfat 모듈을 올린다
(커널 컴파일시 fat, vfat을 모듈로 설정했다고 가정)
modprobe로 해당 모듈을 찾지 못하는 경우 modules.dep에 없을 가능성이 크므로
#depmod -a 해서 모듈 의존 관계를 새롭게 갱신시킬 필요가 있다.
 
참고로 의존 관계에 있는 모듈들을 한꺼번에 내리려면 rmmod -r 옵션을 하면 된다.


출처 : http://blog.daum.net/yong0319

Trackback 0 Comment 0
2009.06.10 11:43

Microsoft 보안업데이트(MS09-018 ~ MS09-027)

■ 개 요

MS社는 6월 10일 MS 윈도우 및 Office 등에서 시스템 장악 등 해킹에 악용 가능한 보안취약점 10건(긴급 6, 중요 3, 보통 1)을 발표하였는 바, 각급기관은 해당 시스템에 대한 MS社의 보안 업데이트를 조속히 설치하시기 바랍니다.

* 이번 업데이트에는 지난 5.29 공개된 MS DirectX의 취약점에 대한 패치가 포함되지 않았음에 따라 "이메일에 첨부 또는 링크된 QuickTime 동영상 파일(.mov)에 대해 작성자 확인후 열람" 등 유의하여 주시기 바랍니다.



■ 보안 업데이트에 포함된 취약점 및 관련 사이트

1
. Active Directory 취약점으로 인한 원격코드 실행 문제점(긴급, 971055)

o 설 명
Active Directory에 원격코드 실행 취약점이 존재하여 공격자는 취약한 시스템에 조작된 LDAP 또는 LDAPS 요청 패킷을 전송하여 해당 시스템에 대해 완전한 권한 획득이 가능하다.

* Active Directory : 사용자, 그룹, 보안 서비스, 네트워크 자원 등을 중앙에서 관리하는 기능을 제공
* LDAP(Lightweight Directory Access Protocol) : 인터넷 디렉토리를 연결, 검색, 수정하는데 사용하는 프로토콜
* LDAPS(LDAP over SSL) : SSL 채널을 이용하는 LDAP으로 암호화 통신시 사용

o 관련 취약점
  - Active Directory Invalid Free Vulnerability(CVE-2009-1138)
  - Active Directory Memory Leak Vulnerability(CVE-2009-1139)

o 영향 받는 소프트웨어
  - Active Directory on Microsoft Windows 2000 Server SP4
  - Active Directory Application Mode on Windows XP Professional SP2, SP3
  - Active Directory Application Mode on Windows XP Professional x64 Edition SP2
  - Active Directory on Windows Server 2003 SP2
  - Active Directory Application Mode on Windows Server 2003 SP2
  - Active Directory on Windows Server 2003 x64 Edition SP2
  - Active Directory Application Mode on Windows Server 2003 x64 Edition SP2
  - Active Directory on Windows Server 2003 SP2 for Itanium-based Systems

o 영향 받지 않는 소프트웨어
  - Active Directory on Windows Server 2008 for 32-bit Systems, SP2
  - Active Directory Lightweight Directory Service on Windows Server 2008 for 32-bit Systems, SP2
  - Active Directory on Windows Server 2008 for x64-based Systems, SP2
  - Active Directory Lightweight Directory Service on Windows Server 2008 for x64-based Systems, SP2

o 관련사이트
→ 영문 : http://www.microsoft.com/technet/security/Bulletin/MS09-018.mspx
→ 한글 : http://www.microsoft.com/korea/technet/security/bulletin/MS09-018.mspx

2. Internet Explorer 누적 보안업데이트(긴급, 969897)

o 설 명
Internet Explorer에 원격코드 실행 취약점이 존재하여 공격자는 해당 취약점을 이용한 악의적인 웹페이지를 구축한 후 사용자의 방문을 유도하여 취약시스템에 대해 완전한 권한 획득이 가능하다.

o 관련 취약점
  - Race Condition Cross-Domain Information Disclosure Vulnerability(CVE-2007-3091)
  - Cross-Domain Information Disclosure Vulnerability(CVE-2009-1140)
  - DHTML Object Memory Corruption(CVE-2009-1141)
  - HTML Object Memory Corruption(CVE-2009-1528)
  - Uninitialized Memory Corruption Vulnerability(CVE-2009-1529)
  - HTML Objects Memory Corruption Vulnerability(CVE-2009-1530)
  - HTML Object Memory Corruption Vulnerability(CVE-2009-1531)
  - HTML Object Memory Corruption Vulnerability(CVE-2009-1532)

o 영향 받는 소프트웨어
  - Internet Explorer 5.01 SP4 on Microsoft Windows 2000 SP4
  - Internet Explorer 6 SP1 on Microsoft Windows 2000 SP4
  - Internet Explorer 6 on Windows XP SP2, SP3
  - Internet Explorer 6 on Windows XP Professional x64 Edition SP2
  - Internet Explorer 6 on Windows Server 2003 SP2
  - Internet Explorer 6 on Windows Server 2003 x64 Edition SP2
  - Internet Explorer 6 on Windows Server 2003 SP2 for Itanium-based Systems
  - Internet Explorer 7 on Windows XP SP2, SP3
  - Internet Explorer 7 on Windows XP Professional x64 Edition SP2
  - Internet Explorer 7 on Windows Server 2003 SP2
  - Internet Explorer 7 on Windows Server 2003 x64 Edition SP2
  - Internet Explorer 7 on Windows Server 2003 SP2 for Itanium-based Systems
  - Internet Explorer 7 on Windows Vista, SP1, SP2
  - Internet Explorer 7 on Windows Vista x64 Edition, SP1, SP2
  - Internet Explorer 7 on Windows Server 2008 for 32-bit Systems, SP2
  - Internet Explorer 7 on Windows Server 2008 for x64-based Systems, SP2
  - Internet Explorer 7 on Windows Server 2008 for Itanium-based Systems, SP2
  - Internet Explorer 8 on Windows XP SP2, SP3
  - Internet Explorer 8 on Windows XP Professional x64 Edition SP2
  - Internet Explorer 8 on Windows Server 2003 SP2
  - Internet Explorer 8 on Windows Server 2003 x64 Edition SP2
  - Internet Explorer 8 on Windows Vista, SP1, SP2
  - Internet Explorer 8 on Windows Vista x64 Edition, SP1, SP2
  - Internet Explorer 8 on Windows Server 2008 for 32-bit Systems, SP2
  - Internet Explorer 8 on Windows Server 2008 for x64-based Systems, SP2

o 관련사이트
→ 영문 : http://www.microsoft.com/technet/security/Bulletin/MS09-019.mspx
→ 한글 : http://www.microsoft.com/korea/technet/security/bulletin/MS09-019.mspx

3. IIS 취약점으로 인한 권한상승 문제점(중요, 970483)

o 설 명
IIS에 원격코드 실행 취약점이 존재하여 공격자는 악의적으로 조작된 HTTP 요청을 전송하여 취약한 시스템에 접근할 수 있는 권한을 얻을 수 있다.

*
IIS(Internet Information Services) : MS社에서 제공하는 웹서버 프로그램

o 관련 취약점
  - IIS 5.0 WebDAV Authentication Bypass Vulnerability(CVE-2009-1122)
  - IIS 5.1 and 6.0 WebDAV Authentication Bypass Vulnerability(CVE-2009-1535)

o 영향 받는 소프트웨어
  - Internet Information Services 5.0 on Microsoft Windows 2000 Server SP4
  - Internet Information Services 5.1 on Windows XP Professional SP2, SP3
  - Internet Information Services 6.0 on Windows XP Professional x64 Edition SP2
  - Internet Information Services 6.0 on Windows Server 2003 SP2
  - Internet Information Services 6.0 on Windows Server 2003 x64 Edition SP2
  - Internet Information Services 6.0 on Windows Server 2003 SP2 for Itanium-based Systems

o 영향 받지 않는 소프트웨어
  - Internet Information Services 7.0 on Windows Vista, SP1, SP2
  - Internet Information Services 7.0 on Windows Vista x64 Edition, SP1, SP2
  - Internet Information Services 7.0 on Windows Server 2008 for 32-bit Systems, SP2
  - Internet Information Services 7.0 on Windows Server 2008 for x64-based Systems, SP2
  - Internet Information Services 7.0 on Windows Server 2008 for Itanium-based Systems, SP2

o 관련사이트
→ 영문 : http://www.microsoft.com/technet/security/Bulletin/MS09-020.mspx
→ 한글 : http://www.microsoft.com/korea/technet/security/bulletin/MS09-020.mspx

4. MS Office 엑셀 취약점으로 인한 원격코드실행 문제점(긴급, 969462)

o 설 명
MS Office 엑셀에서 비정상적인 레코드가 포함된 엑셀 파일을 처리하는 과정에 원격코드 실행 취약점이 존재하여 공격자는 조작된 엑셀 파일이 포함된 악의적인 웹페이지를 구축한 후 사용자의 방문을 유도하거나 이메일 첨부파일을 열어보도록 유도하여 취약 시스템에 대해 완전한 권한 획득이 가능하다.

o 관련 취약점
  - Record Pointer Corruption Vulnerability(CVE-2009-0549)
  - Object Record Corruption Vulnerability(CVE-2009-0557)
  - Array Indexing Memory Corruption Vulnerability(CVE-2009-0558)
  - String Copy Stack-Based Overrun Vulnerability(CVE-2009-0559)
  - Field Sanitization Memory Corruption Vulnerability(CVE-2009-0560)
  - Record Integer Overflow Vulnerability(CVE-2009-0561)
  - Record Pointer Corruption Vulnerability(CVE-2009-1134)

o 영향 받는 소프트웨어
  - Microsoft Office 2000 SP3
  - Microsoft Office XP SP3
  - Microsoft Office 2003 SP3
  - 2007 Microsoft Office System SP1, SP2
  - Microsoft Office 2004 for Mac
  - Microsoft Office 2008 for Mac
  - Open XML File Format Converter for Mac
  - Microsoft Office 엑셀 Viewer 2003 SP3
  - Microsoft Office 엑셀 Viewer
  - Microsoft Office Compatibility Pack for Word, 엑셀, and PowerPoint 2007 File Formats SP1, SP2
  - Microsoft Office SharePoint Server 2007 SP1, SP2 (32-bit editions)
  - Microsoft Office SharePoint Server 2007 SP1, SP2 (64-bit editions)

o 영향 받지 않는 소프트웨어
  - Microsoft Office Converter Pack
  - Works 8.5
  - Works 9

o 관련사이트
→ 영문 : http://www.microsoft.com/technet/security/Bulletin/MS09-021.mspx
→ 한글 : http://www.microsoft.com/korea/technet/security/bulletin/MS09-021.mspx

5. MS 윈도우 Print Spooler 취약점으로 인한 원격코드실행 문제점(긴급, 961501)

o 설 명
MS 윈도우의 Print Spooler에서 RPC 요청을 처리하는 과정에 원격코드 실행 취약점이 존재하여 공격자는 조작된 네트워크 패킷을 전송하여 취약 시스템에 대해 완전한 권한 획득이 가능하다.

o 관련 취약점
  - Buffer Overflow in Print Spooler Vulnerability(CVE-2009-0228)
  - Print Spooler Read File Vulnerability(CVE-2009-0229)
  - Print Spooler Load Library Vulnerability(CVE-2009-0230)

o 영향 받는 소프트웨어
  - Microsoft Windows 2000 Server SP4
  - Windows XP Professional SP2, SP3
  - Windows XP Professional x64 Edition SP2
  - Windows Server 2003 SP2
  - Windows Server 2003 x64 Edition SP2
  - Windows Server 2003 SP2 for Itanium-based Systems
  - Windows Vista, SP1, SP2
  - Windows Vista x64 Edition, SP1, SP2
  - Windows Server 2008 for 32-bit Systems, SP2
  - Windows Server 2008 for x64-based Systems, SP2
  - Windows Server 2008 for Itanium-based Systems, SP2

o 관련사이트
→ 영문 : http://www.microsoft.com/technet/security/Bulletin/MS09-022.mspx
→ 한글 : http://www.microsoft.com/korea/technet/security/bulletin/MS09-022.mspx

6. Windows Search 취약점으로 인한 정보유출 문제점(보통, 963093)

o 설 명
Windows Search 4.0의 파일 미리보기 기능에 취약점이 존재하여 공격자에 의해 악의적으로 제작된 HTML 파일이 검색 결과로 보여질 경우 취약한 시스템의 정보가 노출될 수 있다.

* Windows Search: PC에 저장되어 있는 문서 등 각종 파일을 검색하고 미리 볼 수 있도록 하는 기능을 제공

o 관련 취약점
  - Script Execution in Windows Search Vulnerability(CVE-2009-0239)

o 영향 받는 소프트웨어
  - Windows Search 4.0 on Windows XP SP2, SP3
  - Windows Search 4.0 on Windows XP Professional x64 Edition SP2
  - Windows Search 4.0 on Windows Server 2003 SP2
  - Windows Search 4.0 on Windows Server 2003 x64 Edition SP2

o 영향 받지 않는 소프트웨어
  - Windows Vista, SP1, SP2
  - Windows Vista x64 Edition, SP1, SP2
  - Windows Server 2008 for 32-bit Systems, SP2
  - Windows Server 2008 for x64-based Systems, SP2

o 관련사이트
→ 영문 : http://www.microsoft.com/technet/security/Bulletin/MS09-023.mspx
→ 한글 : http://www.microsoft.com/korea/technet/security/bulletin/MS09-023.mspx

7. MS Works 변환기 취약점으로 인한 원격코드실행 문제점(긴급, 957632)

o 설 명
MS Works 변환기에서 Works(.WPS) 파일을 처리하는 과정에 원격코드 실행 취약점이 존재하여 공격자는 조작된 Works 파일이 포함된 악의적인 웹페이지를 구축한 후 사용자의 방문을 유도하거나 이메일 첨부파일을 열어보도록 유도하여 취약 시스템에 대해 완전한 권한 획득이 가능하다.

* MS Works : MS Office에 포함된 문서 작성 프로그램(국내 未출시)

o 관련 취약점
  - File Converter Buffer Overflow Vulnerability(CVE-2009-1533)

o 영향 받는 소프트웨어
  - Microsoft Office Word 2000 SP3
  - Microsoft Office Word 2002 SP3
  - Microsoft Office Word 2003 SP3 with the Microsoft Works 6?9 File Converter
  - Microsoft Office Word 2007 SP1
  - Microsoft Works 8.5
  - Microsoft Works 9

o 영향 받지 않는 소프트웨어
  - Microsoft Office 2007 SP2
  - Microsoft Office 2004 for Mac
  - Microsoft Office 2008 for Mac
  - Open XML File Format Converter for Mac
  - Microsoft Office Word Viewer 2003 SP3
  - Microsoft Office Word Viewer SP1, SP2
  - Microsoft Office Compatibility Pack SP1, SP2

o 관련사이트
→ 영문 : http://www.microsoft.com/technet/security/Bulletin/MS09-024.mspx
→ 한글 : http://www.microsoft.com/korea/technet/security/bulletin/MS09-024.mspx

8. 윈도우 커널 취약점으로 인한 권한상승 문제점(중요, 968537)

o 설 명
윈도우 커널에서 입력값을 검증하는 과정 등에 권한상승 취약점이 존재하여 해당 취약점 공격에 성공한 공격자는 취약한 시스템의 커널 모드에서 악성코드 등 임의의 코드를 실행시킬 수 있다.

o 관련 취약점
  - Windows Kernel Desktop Vulnerability(CVE-2009-1123)
  - Windows Kernel Pointer Validation Vulnerability(CVE-2009-1124)
  - Windows Driver Class Registration Vulnerability(CVE-2009-1125)
  - Windows Desktop Parameter Edit Vulnerability(CVE-2009-1126)

o 영향 받는 소프트웨어
  - Microsoft Windows 2000 SP4
  - Windows XP SP2, SP3
  - Windows XP Professional x64 Edition SP2
  - Windows Server 2003 SP2
  - Windows Server 2003 x64 Edition SP2
  - Windows Server 2003 for Itanium-based Systems SP2
  - Windows Vista, SP1, SP2
  - Windows Vista x64 Edition, SP1, SP2
  - Windows Server 2008 for 32-bit Systems, SP2
  - Windows Server 2008 for x64-based Systems, SP2
  - Windows Server 2008 for Itanium-based Systems, SP2

o 관련사이트
→ 영문 : http://www.microsoft.com/technet/security/Bulletin/MS09-025.mspx
→ 한글 : http://www.microsoft.com/korea/technet/security/bulletin/MS09-025.mspx

9. RPC 취약점으로 인한 권한상승 문제점(중요, 970238)

o 설 명
MS 윈도우의 RPC에서 내부 상태 정보를 업데이트하는 과정에 권한상승 취약점이 존재하여 해당 취약점 공격에 성공한 공격자는 악성코드 등을 실행시켜 취약한 시스템에 대해 완전한 권한획득이 가능하다.

* RPC(Remote Procedure Call) : 네트워크상의 다른 시스템에 있는 프로그램에 서비스를 요청할 때 사용하는 프로토콜

o 관련 취약점
  - RPC Marshalling Engine Vulnerability(CVE-2009-0568)

o 영향 받는 소프트웨어
  - Microsoft Windows 2000 SP4
  - Windows XP SP2, SP3
  - Windows XP Professional x64 Edition SP2
  - Windows Server 2003 SP2
  - Windows Server 2003 x64 Edition SP2
  - Windows Server 2003 for Itanium-based Systems SP2
  - Windows Vista, SP1, SP2
  - Windows Vista x64 Edition, SP1, SP2
  - Windows Server 2008 for 32-bit Systems, SP2
  - Windows Server 2008 for x64-based Systems, SP2
  - Windows Server 2008 for Itanium-based Systems, SP2

o 관련사이트
→ 영문 : http://www.microsoft.com/technet/security/Bulletin/MS09-026.mspx
→ 한글 : http://www.microsoft.com/korea/technet/security/bulletin/MS09-026.mspx

10. MS Office 워드 취약점으로 인한 원격코드실행 문제점(긴급, 969514)

o 설 명
MS 워드에서 워드 문서를 열람하는 과정에 원격코드 실행 취약점이 존재하여 공격자는 조작된 워드 파일이 포함된 악의적인 웹페이지를 구축한 후 사용자의 방문을 유도하거나 이메일 첨부파일을 열어보도록 유도하여 취약시스템에 대해 완전한 권한 획득이 가능하다.

o 관련 취약점
  - Word Buffer Overflow Vulnerability(CVE-2009-0563)
  - Word Buffer Overflow Vulnerability(CVE-2009-0565)

o 영향 받는 소프트웨어
  - Microsoft Office Word 2000 SP3
  - Microsoft Office Word 2002 SP3
  - Microsoft Office Word 2003 SP3
  - Microsoft Office Word 2007 SP1, SP2
  - Microsoft Office 2004 for Mac
  - Microsoft Office 2008 for Mac
  - Open XML File Format Converter for Mac
  - Microsoft Office Word Viewer 2003 SP3
  - Microsoft Office Word Viewer
  - Microsoft Office Compatibility Pack SP1, SP2

o 영향 받지 않는 소프트웨어
  - Microsoft Works 8.5
  - Microsoft Works 9

o 관련사이트
→ 영문 : http://www.microsoft.com/technet/security/Bulletin/MS09-027.mspx
→ 한글 : http://www.microsoft.com/korea/technet/security/bulletin/MS09-027.mspx


■ 참고정보
Microsoft Update
http://update.microsoft.com/microsoftupdate/v6/default.aspx?ln=ko


출처 : 국가사이버안전센터

Trackback 0 Comment 0