권한 · App Signatures

Mac 앱이 서명 및 공증되었는지 확인하기

App Signatures는 응용 프로그램 폴더에 있는 모든 앱의 코드 서명을 검사해, 서명되지 않은 앱, 개발자 ID 없이 서명된 앱, Apple의 공증을 받지 않은 앱, 서명 이후 변경된 앱을 찾아내고 각 발견 항목의 의미를 설명합니다. codesign 및 Gatekeeper와 같은 검사를 모든 앱에 한꺼번에 수행하는 것입니다.

macOS 26 Tahoe 이상 · 신용카드 불필요 · 모든 작업은 사용자의 Mac에서 실행

코드 서명으로 알 수 있는 것

Mac 앱의 코드 서명은 두 가지 역할을 합니다. Apple이 개발자에게 발급한 인증서를 통해 누가 앱을 만들었는지 알려 주고, 앱의 내용을 봉인하므로 서명 후 변경된 파일이 있으면 봉인이 깨집니다. 공증은 세 번째 역할을 더합니다. 개발자가 바로 그 빌드를 Apple에 보냈고, Apple이 배포 전에 악성 코드를 검사했다는 뜻입니다.

Gatekeeper는 다운로드한 앱을 처음 열 때 이 모든 것을 사용하며, 브라우저가 다운로드에 추가하는 격리 표시로 그런 앱을 알아봅니다. 디스크에서 복사했거나 표시를 지우는 도구로 압축을 푼 앱은 이 검사를 한 번도 거치지 않았을 수 있습니다.

앱의 코드 서명을 직접 확인하는 방법

터미널에서 다음 명령으로 앱 하나를 검사할 수 있습니다.

  • codesign --verify --verbose=2 /Applications/Example.app은 서명이 유효하고 앱이 변경되지 않았는지 확인합니다.
  • codesign -dvv /Applications/Example.app은 개발자의 Team ID를 포함해 누가 서명했는지 보여 줍니다.
  • spctl --assess --type execute -vv /Applications/Example.app은 Gatekeeper가 해당 앱을 허용할지와 그 이유를 묻습니다. source=Notarized Developer ID 줄이 있으면 앱이 공증된 것입니다.

이 방법은 앱 하나에 대해서만 가능합니다. App Signatures는 모든 앱에 대해 이를 수행합니다.

App Signatures가 검사하는 것

Check Apps를 클릭하면 Tidy My Mac이 /Applications와 사용자의 ~/Applications 폴더에 있는 모든 앱을 읽습니다. 유틸리티처럼 한 단계 아래 폴더에 있는 앱도 포함합니다. 서명 후 변경된 앱을 잡아내려면 모든 아키텍처와 모든 리소스 파일까지 각 서명을 전부 검증해야 하므로 그렇게 합니다. 약 1분 걸립니다.

Safari처럼 macOS의 일부인 앱은 제외됩니다. 봉인된 시스템 볼륨이 이미 변경되지 않았음을 보장하기 때문입니다.

각 앱은 하나의 범주에 속합니다. 주의해서 볼 만한 범주는 다음과 같습니다.

발견 항목의미
Broken signature앱이 개발자의 서명 이후 변경되었거나, 서명 형식이 잘못되었습니다. 앱에 주입된 악성 코드가 이런 모습이며, 크랙 복사본도 마찬가지입니다. 앱 내부에 파일을 기록하는 일부 앱도 무해하게 이런 모습을 보이는데, 이 경우에는 개발자에게서 다시 설치하면 해결됩니다.
Not signed누가 만들었는지, 변경되지 않았는지 알려 주는 것이 아무것도 없습니다.
No developer identity개발자 인증서 없이 애드혹(ad hoc)으로 서명되어 누가 만들었는지 알 수 없습니다. 오픈 소스 빌드와 유료 앱의 크랙 복사본에서 흔합니다.
Not notarizedDeveloper ID로 서명되어 개발자는 Apple에 알려져 있지만, Apple이 이 빌드의 악성 코드 여부를 검사한 적은 없습니다.
Unusual signature개발 인증서처럼 Apple이 앱 배포에 사용하지 않는 인증서로 서명되었습니다.

나머지는 요약 줄에 집계됩니다. Apple에서 나온 앱, Mac App Store에서 받은 앱, Apple이 빌드를 공증한 개발자의 앱입니다. 주의할 항목이 없으면 카드에 그렇게 표시됩니다.

이 다섯 범주 중 하나에 속하면서 격리 표시도 없는 앱에는 Never checked by Gatekeeper 태그가 붙습니다. Gatekeeper가 보지 못한 경로로 Mac에 들어왔다는 뜻입니다. 서명이 깨진 경우에는 무엇이 잘못되었는지에 대한 macOS 자체의 설명도 해당 행에 함께 표시됩니다.

발견 항목이 나왔을 때 할 일

발견 항목은 살펴봐야 할 이유이지 악성 코드의 증거는 아닙니다. 모르는 앱이거나 개발자가 아닌 다른 곳에서 받은 앱이라면, Scan with Antivirus가 해당 행에서 바로 그 앱에 백신을 실행하며, 돋보기 아이콘은 Finder에서 앱을 보여 줍니다. 신뢰하는 앱의 서명이 깨졌다면 개발자에게서 다시 내려받으세요. 앱을 제거하려면 Uninstaller가 남은 파일까지 함께 가져갑니다.

Gatekeeper 자체 설정은 Security Settings 점수의 일부입니다.

App Signatures에 관한 질문

터미널에서 spctl --assess --type execute -vv 뒤에 앱 경로를 붙여 실행하고 source=Notarized Developer ID를 찾아보세요. App Signatures는 Mac의 모든 Developer ID 앱에 같은 검사를 실행해 공증되지 않은 앱을 나열합니다.

꼭 그렇지는 않습니다. 앱이 서명된 후 변경되었다는 뜻입니다. 주입된 악성 코드와 크랙 복사본이 그런 모습이지만, 일부 정상 앱도 자체 파일을 바꿉니다. 개발자에게서 받았고 신뢰하는 앱이라면 다시 설치하고, 그렇지 않다면 백신으로 검사하세요.

인증서 없이 만든 서명으로, 예를 들어 codesign -s -로 만듭니다. 앱의 내용을 봉인하지만 누가 만들었는지는 알려 주지 않습니다. 많은 오픈 소스 앱과 직접 빌드한 앱이 이렇게 서명되며, 원래 서명을 제거한 유료 앱의 크랙 복사본도 마찬가지입니다.

macOS의 일부인 앱은 macOS가 직접 검증하는 봉인된 시스템 볼륨에 있으므로 제외됩니다. App Store에서 받은 앱처럼 응용 프로그램 폴더에 설치한 Apple 앱은 검사되고 집계됩니다.

모든 섹션을 7일 동안 무료로 사용해 보세요.

이메일만 있으면 되고 신용카드는 필요 없습니다. 이후 첫해 $19.99, 그다음부터 연 $59.99입니다.

무료 체험 시작하기