본문 바로가기

Self-improvement/연구&개발

[파크야의 연구생활]10. 바이러스토탈 만들기

[파크야의 연구생활] 10. 바이러스토탈 만들기




 보 보안업계에 종사하시는 분들중에 '바이러스토탈'을 모르시는 분은 아마 없을 것입니다.

굉장히 간편하게 바이러스 파일을 업로드 하는 것만으로도 분석을 해주기 떄문에 '악성코드 분석가'를 

비롯하여 보안쪽 일을 하는 사람에게는 필수적인 서비스 이죠.


그런데 일반 사용자 입장에서 바이러스토탈 까지는 아니더라도 '불필요하게 광고창'이 뜨는 경우

이것을 분석해 주는 서비스가 없었습니다.


이러한 것을 전문용어로 PUP라고 합니다.

그래서 바이러스토탈 을 벤치마킹 하여 만들어 본 것입니다.




PUP란 무엇인가요?




 PUP란?  Probably Unwanted Program 의 약어 입니다. 

즉, 잠재적으로 원하지 않는 프로그램 이라는 뜻이죠.


사용자 입장에서는 프로그램을 설치할떄 직ㆍ간접적으로 동의를 구하기는 하나 쉽게 용도를 파악하기

어려운 상태에서 설치되는 프로그램을 말합니다.

바로 위의 형태와 같습니다.


한국인 특성상 '빨리빨리'문화가 스며들어 있기 떄문에 저런거 그냥 바로 '다음' 버튼 누르는데

자세히 읽어보면 '광고프로그램 설치'에 동의를 하게 되는 꼴입니다.


저런 프로그램이 광고만 내보내는 것도 짜증나지만, 일부광고 프로그램에 '바이러스'같은것이 심어져

있을 경우 '해킹'의 위험까지도 도사리고 있는 것이지요.


만약, 저위의 사진과 같이 광고프로그램이 설치되면 나타나는 전형적인 증상에는 무엇이

있을까요?





바로 위의 사진처럼 '수많은 팝업과 원치 않는 프로그램 실행'이 됩니다.

이러한 모습을 보게 되면 사용자들은 일종의 '변신'을 하게 됩니다.




바로 1차적인 증세로 멘붕이 옵니다.


그리고 곧이어 2차적인 증세로 이어집니다.





2차증세는 바로 분노의 고함 입니다. 

여기서 마지막 단계인 제 3차 변신이 시작 되는 겁니다.




마지막 변신단계인 '헐크'로 변하며 주변의 사물들을 파괴하게 됩니다.



이러한 연유로 이 프로젝트가 시작 된 것입니다.

완성된 웹의 대략적인 모습은 아래와 같습니다.



pup 분석 웹















처음에 나왔던 프로토타입 디자인이 주변 사람들에게 구리다고(?) 욕을 많이 먹어서 

불필요한 프로그램(쓰레기 프로그램)을 분석한다는 의미의 '쓰레기통'을 어울리게 디자인 했습니다.

디자이너가 아니라서 저한테는 저정도 퀄리티가 나오더군요 ㅎㅎ



분석 과정 중 알게된 특이한 사항



 pup 프로그램을 vm웨어 에서 가상 윈도우xp 로 접속하여 설치를 수백번 하면서 알게 된 사실은

일부 pup설치되는 프로그램 이 '해킹' 당했는지 , '고의'로 했는지 위의 화면과 같이 '가짜 네이버사이트'로

유도하고 '금감원파밍' 으로 사용자의 금융정보를 뺴내는 수법입니다.


제가 직접 분석을 하면서 별의 법 수법을 다 보았지만 가장 무서운게 바로 위와 같은 파밍방식 입니다.

지금도 나이많은 신 분들은 계속 속고 계신다고 합니다.


몇일전 제가 다니는 도장의 팀원 어머니도 이러한 수법에 당하셨다고 하네요..



▲ pup 설치후 피들러로 '패킷'을 캡쳐 해보면 위와 같이 'GetTo' 라고 써있는 것도 보았는데요



▲  데일리시큐 기사에 의하면 PC방 좀비화 가능한 취약점이 발견된 '게토골드' 라고

기사가 떴는데 PC방 관리 프로그램 이더군요.



▲  그리고 기본적으로 클라이언트의 MAC주소 수집은 거의 모든 PUP프로그램이 다 한다고 보시면 됩니다.






웹 서비스 구조



 큰 그림은 위와 같습니다.  클라이언트가 웹에 분석할 대상파일을 업로드 하면 기존에 분석되어 있는

데이터일 경우에는 분석이 되었다는 것을 표시 해줍니다.

만약, 처음 분석 하는 파일일 경우에는 파일이 분석서버에서 VMware를 자동으로 작동시켜서 분석을 해주게 됩니다. 이떄 파일크기와 무결성입증을 위해 MD5 HASH 값을 구하고, 분석시작 시과 분석종료시간을 구하게 되죠. 분석에는 약간의 시간이 걸리기 마련입니다. pup 파일을 자동으로 설치한 이후에

광고프로그램을 동작해서 팝업유형인지 까지 체크를 하기 떄문인데요. 이러한 시간을 기다리지 못할경우에는

'E-메일'로 리포트를 받아 볼 수 있게 한후 종료 되는것이죠.






프로그램 언어는 C,파이썬 위주로 작성 되었습니다.

이 프로젝트 하면서 멘붕 왔던 점은, 광고프로그램을 자동으로 시작해야 되는데 그것을 구현하려면

어떻게 해야할까 하다가 '머신러닝' 까지 해야되는줄 알고 머리가 아팠는데, 다행히 그렇게 하지 않아도

구현 할 수 있는 방법이 있었습니다. 그래서 잘 마무리 됬구요 끝으로 이러한 과정을 동영상으로 한번

감상해 보시죠. ㅎㅎ



동영상 시연