요즘 발견되는 악성코드 중에는 특정 프로그램의 실행을 방지하는 것들이 많습니다.
( 모르는 상태에서 감염되어보면 심히... 당황스럽습니다..ㅋ )
악성코드를 진단/치료하는 안티-바이러스 프로그램들부터 시작해서...
악성코드 분석에 도움이 될만한 각종 툴들(디버거, 디스어셈블러, 모니터링 툴 등...)이 그 대상인데요.
프로그램의 실행을 방지하는 방법 중 비교적 간단한(?) 방법에 대한 소개를 해볼까 합니다.
바로 '레지스트리'를 이용한 방법인데요.
HKEY_LOCAL_MACHINE
\SOFTWARE
\Microsoft
\WindowsNT
\CurrentVersion
\Image File Execution Option
IFEO 레지스트리를 이용하면 됩니다.
해당 레지스트리는 하위에 키값으로 지정된 파일들이 실행될 때의 몇몇 옵션을 임의로 적용을 할 수 있는데요.
보통은 실행파일을 디버거로 연결하거나, 다른 실행파일로 리다이렉션 시킬 때 많이 사용합니다.
레지스트리에 원하는 실행파일의 이름으로 새로운 키를 만들고, Debugger 라는 값을 만들어서,
디버거의 경로를 지정하면 그 실행파일이 실행될 때는 자동으로 지정한 경로의 디버거로 연결이 되는데,
악성코드에서는 이런 특성을 악용하고 있습니다.
만약, Debugger 값으로 지정한 경로가 잘못된 경로라면 어떻게 될까요...?
해당 파일을 찾을 수 없다며 프로그램 실행이 되지 않습니다.
저 레지스트리의 하위키로 각종 안티-바이러스 프로그램의 실행파일과 기타 툴들의 파일이름을 추가한 다음,
Debugger 값을 살짝 바꿔버리면... 그 모든 파일들은 실행이 되지 않는거죠;;
아마도, 이 방법이 비교적 구현하기 쉬우면서도 파급효과가 꽤 큰(?) 방법이라서 자주 이용되는게 아닌가 싶네요;ㅋ
여기서 간단한 꼼수를 밝히자면...
어차피 실행파일의 이름으로 막은 것이기 때문에, 실행파일의 이름을 다르게 바꿔주면 실행이 가능합니다.
( 물론 몇몇 파일들의 경우, 파일이름을 바꿨을 때 정상적으로 실행이 되지않는 경우도 있을 수 있습니다. )
그리고 레지스트리에 추가된 파일이름을 직접 지워줘도 실행이 가능하구요.
( 원래 등록되어있던 파일들도 있기 때문에, 지울때는 조심해서 지우셔야 합니다. )
.
.
혹시라도 기존에 실행이 잘 되던 파일이 갑자기 파일이 없다면서 실행이 안된다...
그런데.. 실제로 파일은 있다;;; 그러면 요런 경우를 의심해보시기 바랍니다. ㅋ
ps...
좀 잘 만들어진 악성코드들은 레지스트리 변조유무를 체크하기 때문에 심히 피곤해질 수 있습니다.
그런 경우는 샘플을 보안업체 보내고 느긋이(?) 기다리는 것을 추천합니다.
( 그 전에 할 수 있는 걸 해보는 것도 나쁘지는 않겠죠..ㅋ )
'Security > Virus / Malcode' 카테고리의 다른 글
| 델파이 라이브러리 감염 바이러스 Win32.induc.a (5) | 2009/08/23 |
|---|---|
| 악성코드가 사용하는 간단한 프로그램 실행방지 기법. (0) | 2009/05/13 |
| Win32/Conficker.worm (0) | 2009/04/01 |
| V.WOM.Aimbot.cc ( 2090 악성코드 ? ) (2) | 2009/02/11 |
이올린에 북마크하기
이올린에 추천하기
