OS X 악성코드 정의 데이터베이스 'XProtect'의 업데이트 여부를 알림센터로 모니터링하는 방법

2014. 10. 7. 01:14    작성자: ONE™

요며칠 백도어 악성코드 'iWorm'이 활개치면서 맥 커뮤니티가 시끌벅적했는데요, 애플이 급히 진화에 나서면서 논란이 일단락되고 있는 분위기입니다. 하지만 언제 또 변종 악성코드가 슬그머니 등장할지 모르므로 긴장의 끈을 놓기에는 이르다는 지적도 나오고 있습니다. 아직 윈도에 비하면 조족지혈이지만, 맥을 표적으로 하는 악성코드 출현 빈도가 점차 증가하는 추세라는 것은 분명한 사실인 듯합니다. 확실히 예전보다 맥 사용자가 많아지긴 많아졌나 봅니다.

본론으로 돌아와, 어제 애플이 악성코드를 차단하기 위해 내놓은 'XProtect' 업데이트는 일반 소프트웨어 업데이트와는 달리 백그라운드에서 다운로드가 이뤄집니다. 별도의 확인 메시지도 뜨지 않으므로 번거롭게 시스템 폴더를 들쳐보지 않는 이상 사용자가 업데이트 여부를 인지하기가 매우 어려운 편입니다.

인터넷을 검색하니 미국 CNET의 테크니컬 에디터인 '토퍼 케슬러'가 'XProtect 업데이트를 모니터링 하는 방법'이라는 제목으로 기사를 게재한 것을 발견했는데, 보안에 민감한 분들에게 유용한 정보가 될 것 같아 내용을 번역해 블로그에 옮겨와 봤습니다. 덧붙여 XProtect에 자세한 메커니즘과 작동 방식은 별도로 올린 '잘 알려지지 않은 OS X 보안 체계의 한 기둥 XProtect' 포스트를 통해 살펴보실 수 있습니다.

원리

1. XProtect의 변경사항을 기록한 'XProtect.meta.plist' 파일의 복제본을 생성
2. 1시간마다 'XProtect.meta.plist'과 복제본의 해시 값을 비교
3 해시 값이 다르면 OS X의 알림 센터를 통해 사용자에게 통보

1. Terminal Notifier 설치

1. ➥ 링크에 접속하여 Terminal Notifier 최신 버전을 내려 받습니다.(이 포스트를 작성하는 현재 v1.4.2가 최신 버전입니다) Terminal Notifier는 알림센터를 지원하지 않는 응용 프로그램이나 스크립트도 알림 메시지를 띄울 수 있도록 도와주는 유틸리티입니다. ▼

2. 'terminal-notifier'라는 이름의 실행 파일을 응용 프로그램 ▸ 유틸리티 폴더에 넣어줍니다. 사용자의 승인을 요청하는 대화상자가 나타나면 계정 암호를 입력합니다. ▼

3. 앱이 잘 설치되었는지 확인하기 위해 응용 프로그램 ▸ 유틸리티 폴더에 있는 '터미널(Terminal)'을 실행하고 다음 명령어를 넣어봅니다. ▼

/Applications/Utilities/terminal-notifier.app/Contents/MacOS/terminal-notifier -title "XProtect Updated" -message "메시지 이상 무"

4. 화면에 다음과 같은 알림 메시지가 나오면 정상적으로 설치된 것입니다. ▼

2. 스크립트 설치

1. 계속해서, 링크를 통해 파일을 내려받고 압축을 풀어주면 두 종류의 파일을 볼 수 있습니다.

'xprotectnotify.sh'는 지정한 주기마다 XProtect가 갱신되었는지 확인하고, 만약 변경사항이 있으면 알림 메시지를 띄워주는 스크립트입니다. 주기는 1시간(3600초)로 설정되어 있는데, 임의로 수정할 수 있기는 하지만 인터넷에 접속한다거나 자원을 많이 사용하지 않으므로 딱히 건드릴 필요는 없습니다. ▼

2. 파인더에서 command + shift + G 키를 사용하여 다음 경로를 입력하면 공용 라이브러리 폴더가 열립니다. 여기에 'xprotectnotify.sh' 파일을 넣어줍니다. ▼

/Library/

3. 두 번째 파일인 'local.XProtectNotify.plist'는 시스템이 시작할 때 위에서 작업한 스크립트를 자동으로 실행해주는 프로퍼티 파일입니다. ▼

4. 앞서와 마찬가지로 파인더에서 command + shift + G 키를 사용하여 다음 경로를 입력하고, 이곳으로 'local.XProtectNotify.plist' 파일을 옮겨줍니다. ▼

~/Library/LaunchAgents/

3. 스크립트 적용

시스템이 스크립트를 제대로 실행하기 위해서는 파일의 권한을 수정해주어야 합니다. ▼

sudo chmod +x /Library/xprotectnotify.sh

이제 맥을 다시 시작하면 스크립트가 정상적으로 작동하기 시작합니다. 그리고 애플이 XProtect를 업데이트하면 다음과 같은 알림 메시지가 화면에 표시됩니다. 참고로 말씀드리면 OS X 마운틴 라이언 및 그 이전 운영체제에서는 XProtect가 언제 업데이트되었는지 구체적인 날짜까지 표시해줍니다. 하지만 매버릭스와 요세미티는 메타 데이터에 갱신 날짜가 포함되지 않으므로 날짜는 표시하지 않고 업데이트 여부만 알려줍니다. ▼

설치 제거

시스템에서 스크립트를 제거하고 싶다면 터미널을 실행하고 다음 세 명령어를 차례대로 넣어주시면 됩니다. ▼

sudo rm /Library/xprotectnotify.sh
rm ~/Library/LaunchAgents/local.XProtectNotify.plist
rm ~/.XProtect.meta.plist


참조
CNET - How to monitor XProtect updates in OS X

관련 글
잘 알려지지 않은 OS X 보안 체계의 한 기둥 'XProtect'
애플, 맥을 대상으로 하는 악성코드 'iWorm'에 대한 보안 업데이트 실시
애플, 맥용 웹 브라우저에 광고 띄우는 트로이 목마 확산 조기진화


    
  1. Blog Icon
    꾸꾸

    누군가 이 모든 것을 한방에 실행하는 앱을 만들어주면 좋겠네요. ^^

  2. 이렇게 간단한 알림을 만들 수가 있군요

  3. Blog Icon
    마음의빈자리

    1. Terminal Notifier 설치
    링크 --> 요기에 링크 안걸린거 아닌가요?

  4. 말씀하신 대로 링크가 끊겨 있어서 부랴부랴 다시 연결했습니다.
    감사합니다 :-)

  5. Blog Icon
    마음의빈자리

    ㅎㅎ 엄청 빠르세요 ^^ 늘 수고 많으세요 ^^

  6. Blog Icon
    이성희

    멋지십니다.

  7. Blog Icon
    oyster

    와우!!
    대단하시네요^^

  8. Blog Icon
    ww

    엇.. 다들 잘 되시나요? Yosemite 최신 업뎃을 사용중인데
    /System/Library/CoreServices/CoreTypes.bundle/Contents/Resources/XProtect.meta.plist 이 지난 4일 이후 modify되지 않았네요.
    그리고 `defaults read /System/Library/CoreServices/CoreTypes.bundle/Contents/Resources/XProtect.meta.plist LastModification` 하면
    The domain/default pair of (/System/Library/CoreServices/CoreTypes.bundle/Contents/Resources/XProtect.meta.plist, LastModification) does not exist
    라고 에러가 나옵니다.

  9. Blog Icon
    yson

    하나 배우네요. 감사합니다 !

  10. 좋은 팁 감사합니다! :-)