이번에 보실 시스템은 백신도 있고, 방화벽도 있고 보안패치도 잘 되어 있는 시스템입니다. 전에 언급했던 서버와는 다른 서버 입니다. 하지만, 다음과 같은 파일이 생성되어져 있었습니다.

꽤나 많은 파일이 보이지만, 내용은 거의 엇비슷합니다. 위에 나열한 소스 중에서 두개 정도만 보여드릴까 합니다.

 3번째 줄에서 5번째 줄까지 주석 이후에 #####가 있고 이 이후의 내용을 읽으실 수 있는 분 계십니까? 그리고 소스 한페이지에 사용자 비밀번호까지 다 적는 분이 계시는지요? 더구나 중간 조금 밑에 보이는 암호가 틀렸을 때 보이는 문장을 response.write로 보여주는데, 이 부분에 대해서 읽으일 수 있는 분 계시는가요? 적어도 이를 읽으실 수 있으시다면, 일반적인 분이라고는 생각되지 않습니다. 단지 추측할 수 있는건 중간중간에 한자가 보이는 것 뿐이라는 것이지요.

이것만으로는 조금 부족한거 같아서 위에 있는 파일의 목록 중에 있는 파일 하나를 더 보도록 하겠습니다.

 아까 보던 것 보다 더 많이 깨져있는 글자를 볼 수 있습니다. 뭐, 그럴 수 있는 일입니다. 하지만, 맨 밑에 있는 5줄에 주목해보시기 바랍니다. <iframe src=....> 이 많이 적혀 있음을 볼 수 있습니다. 또한, 밑에서 6번째 줄<%=server createobject("wscript.shell")....을 보면, 이는 변조된 페이지의 소스가 아닌, 변조를 하게끔 만들어진 스크립트라는 것을 본능적으로 알 수 있습니다.

그렇다면 다시 처음의 사진을 보시면 느끼셨을겁니다. 지금까지 보신건 웹에서 흔히 볼 수 있는 .asp나 .asa같은 웹페이지의 소스입니다. 사용자가 직접 만들었다면 분명히 정상적인 페이지 입니다. 물론 이러한 것이 비 정상적이라면, 백신에서 잡기도 합니다(실제로 몇몇 백신은 일부 잡아냅니다) 하지만, 걸린다면 글짜를 대소문자를 바꾼다거나 변수를 조금 바꿔 작성한다던가, 순서를 바꾼다던가 하는 식으로 얼마든지 백신을 피해서 동작시킬 수 있습니다.

백신도 듣지 않는 백도어를 찾는 것도 어렵다면, 예방만이 최선의 길 아닐까요? 상황에 맞는 예방책이 어떤 것인지는 생각해봐야겠지만 말이죠. (이 예제에 나온 서버의 경우에는 웹방화벽 설치였습니다)

+ Recent posts