HARIS SHIELD

Haris Shield 작동 방식

앱이 휴대폰에서 무엇을 읽는지, 무엇을 위협으로 판단하는지, 어떤 연결을 맺는지, 그리고 저희 말만 믿지 않고 이 모든 것을 확인하는 방법을 알려 드려요.

현재 버전 1.0.13 기준이에요.

앱이 케이블로 읽는 정보

휴대폰은 USB 케이블로 컴퓨터에 연결돼요. Haris Shield는 포렌식 연구자들이 사용하는 것과 같은 오픈소스 도구인 libimobiledevice(iPhone)와 Android의 adb로 휴대폰을 읽어요. 휴대폰에는 아무것도 설치되지 않고, 검사는 읽기만 해요. 휴대폰에서 무엇도 삭제하거나 옮기거나 바꾸지 않아요. 복사한 모든 것은 컴퓨터의 앱 폴더에 남아요.

iPhone

  • 기기 정보

    모델, iOS 버전과 빌드, 일련번호, 암호 설정 여부, 활성화 상태, 기기 이름, 시간대.

  • 충돌 보고서

    컴퓨터로 복사한 후 거기서 읽어요. 원본은 휴대폰에 그대로 남아요. 앱은 복사만 하고, 옮기거나 삭제하지 않아요.

  • 구성 프로필

    설치된 프로필, MDM 등록, 감독 모드, VPN 프로필. 휴대폰을 관리하거나 통신을 다른 곳으로 돌릴 수 있는 방법들이에요.

  • 프로비저닝 프로필

    휴대폰에 있는 개발자용 앱과 기업용 앱에 누가 서명했는지 확인하고, 알려진 스파이웨어 업체 이름과 비교해요.

  • 보안 상태

    차단 모드, 개발자 모드, 그리고 iOS 버전이 악용된 것으로 알려진 버전인지 여부.

  • 직접 가져온 sysdiagnose (선택 사항)

    휴대폰에서 sysdiagnose를 만들어 압축 파일을 가져오면, 앱이 그 안의 네트워크 사용 데이터베이스, 프로세스 실행 기록, 앱 사용 및 권한 데이터베이스, 네트워크 및 프로세스 로그도 읽어요.

Android

  • 기기 정보

    모델, 브랜드, Android 버전, 보안 패치 수준, 일련번호.

  • 설치된 앱

    패키지 이름을 알려진 스토커웨어와 비교하고, 런처에서 숨겨진 앱과 각 앱의 설치 경로(Play 스토어 또는 외부 설치)를 확인해요.

  • 권한

    어떤 앱이 문자 메시지, 통화 기록, 위치, 카메라, 마이크처럼 감시에 쓰일 수 있는 권한을 가졌는지, 위험한 권한 조합이 있는지, 그리고 다른 앱을 설치할 수 있도록 허용된 앱이 있는지 확인해요.

  • 접근성, 기기 관리자, 알림 리스너

    스토커웨어가 화면을 읽고, 제거를 막고, 알림을 복사하기 위해 보통 필요로 하는 세 가지 장치예요.

  • 프로세스와 네트워크

    실행 중인 프로세스, 지금 열려 있는 연결, DNS 확인 캐시를 알려진 스파이웨어 서버 및 IP 주소와 비교해요.

  • 인증서

    암호화된 통신을 읽는 데 쓰일 수 있는 사용자 설치 루트 인증서, 그리고 디버그용이나 테스트용 인증서로 서명된 앱.

  • 배터리, 데이터, 센서 사용

    밤에 깨어나거나, 백그라운드에서 데이터를 많이 주고받거나, 화면에 표시되지 않는데도 카메라와 마이크를 사용하는 앱.

  • 설정과 시스템 로그

    USB 디버깅과 무선 디버깅, 출처를 알 수 없는 앱, Play 프로텍트, 그리고 알려진 스파이웨어와 관련된 몇 가지 특정 시스템 로그 항목.

전체 검사에서는 개인정보 점검, 하드웨어 진단, 그리고 iPhone의 경우 부품 확인도 함께 실행해요. 암호화된 iPhone 백업 분석과 Android 앱 파일의 지문 대조 기능은 개발 중이며, 현재 버전에는 포함되어 있지 않아요.

발견 내용 판단 방식

검사는 세 가지 결과 중 하나로 끝나요. 각 결과의 차이가 중요하기 때문에, 각각 어떤 조건에서 나오는지 정확히 알려 드려요.

스파이웨어 탐지됨

구체적인 흔적이 있을 때만 표시돼요. 실행 기록에 남은 알려진 스파이웨어 프로세스, 알려진 스파이웨어 서버로의 연결이나 DNS 조회, 접근 권한을 받은 알려진 스토커웨어, 알려진 스파이웨어 업체의 프로필 같은 것이에요.

의심스러운 활동

자세히 살펴볼 가치는 있지만 증거는 아닌 것들이에요. 취약한 상태도 여기에 포함돼요. 오래된 iOS 버전이나 누락된 보안 패치는 휴대폰을 공격하기 쉽게 만들기 때문에 여기에 표시되며, 감염으로 표시되지는 않아요. 버전 1.0.11 이전에는 오래된 iOS 버전이 감염으로 잘못 표시되었는데, 이 문제는 수정되었어요.

위협이 발견되지 않음

앱이 알고 있는 흔적이 하나도 발견되지 않았다는 뜻이에요. 휴대폰이 깨끗하다고 보장하는 것은 아니에요. 아래의 '어떤 도구도 약속할 수 없는 것'을 참고하세요.

앱이 비교하는 대상

앱에는 스파이웨어 프로세스 이름, 서버, IP 주소, 스토커웨어 앱의 내장 목록이 포함되어 있어요. 여기에 더해 Pegasus, Predator 및 비슷한 도구를 조사하는 Amnesty International, Citizen Lab 및 다른 연구자들이 공개한 MVT 프로젝트의 지표를 사용해요.

이름은 로그에 완전한 이름으로 나타날 때만 인정돼요. 예전에는 “bh” 같은 짧은 Pegasus 프로세스 이름이 “github” 같은 단어와 일치했지만, 지금은 그렇지 않아요. 일반적인 iOS 시스템 프로세스와 이름이 같은 것은 제외해요. 그런 것을 찾아도 아무것도 증명되지 않기 때문이에요.

지표 목록을 변조할 수 없는 이유

  1. 1. 매일 밤 저희 서버가 MVT 지표 색인으로 묶음을 만들어요.
  2. 2. 서버에만 있는 Ed25519 개인 키로 그 묶음에 서명해요.
  3. 3. 앱은 내장된 공개 키로 서명을 확인하고, 일치할 때만 묶음을 사용해요. 일치하지 않으면 마지막으로 일치했던 지표를 계속 사용해요.

그래서 해킹된 네트워크든 다른 누구든 가짜 묶음으로 지표를 추가하거나 삭제할 수 없어요. 발견 내용도 공유 목록에 업로드하지 않아요. 사용자들의 검증되지 않은 보고는 위협 목록을 오염시키는 대표적인 경로이기 때문이에요.

컴퓨터 밖으로 나가는 정보

앱의 코드에서 가져온, 앱이 맺을 수 있는 모든 연결이에요. 앱의 트래픽을 지켜보면(아래 '직접 확인해 보세요' 참고) 이 목록과 하나하나 맞춰 볼 수 있어야 해요.

앱이 온라인일 때마다

  • 라이선스 및 잔여 횟수 확인

    harisshield.com

    라이선스 키와 컴퓨터 ID(컴퓨터 이름, 사용자 이름, 프로세서, 아키텍처, 메모리 크기로 만든 짧은 해시). 응답으로 저희 서버가 서명한 잔여 횟수 증명을 받으며, 이 증명 덕분에 앱이 14일 동안 오프라인으로 계속 검사할 수 있어요.

  • 검사 후 검사 횟수 보고

    harisshield.com

    라이선스 키, 컴퓨터 ID, iOS 또는 Android 여부, 발견 항목 수, 무작위 검사 ID, 시각. 이렇게 해서 검사가 잔여 횟수에서 차감돼요. 무엇이 발견되었는지와 휴대폰의 정보는 보내지 않아요. 연결이 없으면 보고는 대기했다가 나중에 전송돼요.

  • 서명된 지표 묶음

    harisshield.com

    최신 스파이웨어 지표 다운로드(위 참고). 이때 사용자나 휴대폰에 관한 정보는 보내지 않아요.

  • 업데이트 확인

    harisshield.com

    라이선스 키가 활성화되어 있으면, 앱은 실행할 때와 네 시간마다 업데이트를 확인하고 새 버전을 다운로드해요. 서버가 파일을 내려 줄 수 있도록 라이선스 키를 함께 보내요.

  • 라이선스에 컴퓨터 연결

    harisshield.com

    새 컴퓨터를 연결할 때: 확인 메일에 어떤 컴퓨터가 요청하는지 표시할 수 있도록 컴퓨터 ID와 컴퓨터 이름을 보내요.

기능을 사용할 때만

  • 부품 확인 (iPhone 전체 검사의 일부)

    checkcoverage.apple.com, support-sp.apple.com

    Apple에서 모델과 보증 상태를 조회하기 위한 iPhone의 일련번호.

  • Android 검사 중 인증서 확인

    Android 휴대폰이 통신 중인 서버

    휴대폰이 HTTPS 연결을 열어 둔 공개 서버 중 일부에 컴퓨터에서 짧은 TLS 핸드셰이크를 시도해(검사당 최대 18회) 인증서를 확인해요. 해당 서버는 컴퓨터의 IP 주소를 볼 수 있어요. 네트워크 모니터에서는 openssl 프로세스로 표시돼요.

  • 실시간 네트워크 모니터

    ipinfo.io

    모니터가 실행되는 동안 휴대폰이 연결하는 IP 주소(내 주소가 아니라 서버의 주소)를 보내 국가와 소유자를 표시해요. 직접 발급받은 ipinfo 토큰을 입력했다면 그것도 함께 전송돼요.

  • 유출 확인

    haveibeenpwned.com

    입력한 이메일 주소. 이 확인에는 직접 발급받은 Have I Been Pwned API 키가 필요해요. 키가 없어도 요청은 전송되지만 결과는 나오지 않아요.

  • 오류 보고 — 확인란을 선택하지 않으면 꺼져 있어요

    harisshield.com

    정해진 항목만 보내요. 앱 버전, 운영체제, 아키텍처, 실패한 단계, 오류 유형과 코드, 함수 이름, iOS 또는 Android 여부, 라이선스 키의 8자리 해시. 오류 메시지, 파일 경로, 휴대폰 정보, 발견 내용, 라이선스 키, 이메일 주소는 절대 보내지 않아요.

  • 이전 라이선스 키만 해당

    api.lemonsqueezy.com

    HRS-로 시작하지 않는 키는 Lemon Squeezy를 통해 판매된 것이며, 키와 컴퓨터 ID로 그곳에서 활성화되고 확인돼요.

  • 활성화에 반복해서 실패한 후

    harisshield.com

    무차별 대입으로 키를 알아낼 수 없도록 컴퓨터 ID와 실패한 시도 횟수를 보내요.

절대 보내지 않는 것

  • 메시지, 사진, 연락처, 통화 기록, 이메일
  • 휴대폰에 있는 앱 목록
  • 충돌 보고서나 sysdiagnose
  • 검사에서 발견된 내용이나 검사 보고서 자체

검사 결과와 보고서는 직접 삭제하거나 PDF를 공유하기로 선택할 때까지 컴퓨터의 앱 폴더에 남아 있어요.

오프라인 모드와 그 범위에 포함되지 않는 것

앱 설정의 오프라인 모드는 지표 다운로드, 네트워크 모니터의 IP 조회, 유출 확인을 중단해요. 라이선스 및 잔여 횟수 확인, 업데이트 확인, 일련번호 조회, Android 인증서 확인은 중단하지 않아요.

전혀 연결되지 않은 상태로 검사하려면 컴퓨터를 인터넷에서 분리하세요. 앱이 한 번 온라인에 연결된 후에는 마지막으로 서명된 잔여 횟수 증명과 이미 가지고 있는 지표로 최대 14일 동안 계속 검사할 수 있어요. 검사 횟수는 다시 연결할 때 전송돼요.

어떤 도구도 약속할 수 없는 것

어떤 도구도 휴대폰이 깨끗하다고 증명할 수 없어요

Haris Shield는 알려진 흔적을 찾아요. MVT 프로젝트도 자신들의 도구에 대해 같은 말을 해요. 공개된 지표만으로는 기기가 깨끗하다고 단정할 수 없다고요.

가장 고도화된 스파이웨어는 숨어 있을 수 있어요

Pegasus급 도구는 흔적을 최대한 남기지 않도록 만들어지고, 새 버전은 누군가 지표를 공개하기 전부터 사용돼요. 이런 도구는 이 검사를 포함해 어떤 검사도 피할 수 있어요.

“위협이 발견되지 않음”이 “안전함”은 아니에요

알려진 흔적이 하나도 나타나지 않았다는 뜻이에요. 실제로 위험한 상황이라면, 저희 결과와 관계없이 아래에 소개한 전문가에게 다시 확인을 받으세요.

현재 상황

아직 끝나지 않은 부분도 있어요. 무엇이 그런지 알려 드릴게요.

  • 아직 Apple 공증을 받지 않았어요

    그래서 macOS가 개발자를 확인할 수 없다고 표시하고, 처음 열 때 Open Anyway를 선택해야 해요. Apple Developer ID 서명과 공증을 준비하고 있어요.

  • 아직 Windows용 코드 서명이 되지 않았어요

    그래서 Windows에 “Windows의 PC 보호”가 표시돼요. 코드 서명을 준비하고 있어요. 두 가지가 모두 갖춰지기 전까지는 운영체제가 파일이 저희에게서 왔는지 확인할 수 없지만, 아래의 체크섬으로는 확인할 수 있어요.

  • 빌드

    Mac 빌드는 Apple Silicon에서만, Linux 빌드는 x86-64에서만 실행돼요. 다운로드 페이지를 참고하세요.

직접 확인해 보세요

보안 도구는 많은 신뢰를 요구해요. Haris Shield가 이 페이지에 쓰인 대로 작동하는지 확인하고, 저희가 아닌 다른 곳에서도 휴대폰을 점검받을 수 있는 실제적이고 독립적인 방법을 소개해요.

1. 설치 파일 확인하기

VirusTotal에 업로드하세요. 다운로드한 파일을 virustotal.com에 올리면 약 70개의 백신 엔진이 검사해요. 개수만 보지 말고 어떤 엔진이 무엇을 표시했는지, 그리고 그것을 무엇이라고 부르는지 읽어 보세요.

SHA-512 체크섬을 비교하세요. 파일의 체크섬이 아래 값과 일치하면 저희가 공개한 파일과 정확히 같은 파일이에요. 앱의 업데이트 기능이 확인하는 것과 같은 값이에요.

버전 1.0.13:

macOS · Haris Shield-1.0.13-arm64.dmg

128MB

4fe86b6fddb00fe3292be6dcb5facba1c18fc325e3a794005c083b01453593f4a92cf6e7531e3e2bf35e60fa5108f9ed7b5cb2422a3655741ca0043bf7c889e9

Windows · Haris Shield Setup 1.0.13.exe

110MB

8108d8091be32424877d796e99ac522a3ce7cf0599b6bb5d87ef175630ee811ee3d4921ea00ddad6b93fbf73bb064cdffc414fca9c4df310493b9e391e0278c1

Linux · Haris Shield-1.0.13.AppImage

124MB

2072f0f85bf1a9a013e9dbbced8b3184d6050fe86963808a831fa6f43e656ae1d29026f78ca2a9186eddad5ecf9d6ffc744b571ea576fa83db2ffc8666e51b7c

Linux · phoneguard_1.0.13_amd64.deb

98MB

e5e344a628c9e47ca6204c6493d05763eefff336c679675c9800646f7ba699edab9548d7fb7089c83983d3c1e9673f25d07ce9462391a547516767acdb7ab3cf

Mac (터미널)

shasum -a 512 <파일 이름>

Linux (터미널)

sha512sum <파일 이름>

Windows (PowerShell)

Get-FileHash -Algorithm SHA512 <파일 이름>

비교할 때 대문자와 소문자는 구분하지 않아도 돼요.

2. 앱의 네트워크 트래픽 지켜보기

검사하는 동안 다음 중 하나를 실행하세요. Haris Shield가 harisshield.com과 통신하는 것, 그리고 해당 기능을 사용할 때만 위 목록에 있는 서비스와 통신하는 것을 볼 수 있을 거예요. 휴대폰과의 연결은 USB로 이루어지므로 인터넷 트래픽으로 나타나지 않아요.

Mac

  • LuLu

    Objective-See에서 만든 무료 오픈소스 도구예요. 앱이 새로운 외부 연결을 맺기 전에 묻고, 어디로 연결되는지 보여 줘요.

  • Little Snitch

    Objective Development에서 만든 유료 도구예요. 앱별 모든 연결을 실시간으로, 지도 위에 보여 줘요.

Windows

  • TCPView

    Microsoft Sysinternals에서 만든 무료 도구예요. 열려 있는 모든 연결과 그 연결을 가진 프로세스를 보여 줘요.

  • GlassWire

    무료 버전이 있어요. 각 앱이 어떤 호스트에 연결하는지 보여 줘요.

  • Windows Defender Firewall

    Windows에 기본으로 들어 있어요. 네트워크 없이도 검사가 작동하는지 확인하고 싶다면 Haris Shield를 완전히 차단해 보세요.

Linux

  • OpenSnitch

    무료 오픈소스 도구예요. LuLu처럼 앱별로 외부 연결을 허용할지 물어요.

3. 휴대폰에 대해 다른 의견 듣기

아래 어느 곳도 저희와 관련이 없어요. 기자, 활동가 등 표적이 될 수 있는 분이라면 상담 창구에 직접 연락하세요. 매일 이런 일을 하는 곳이에요.

  • Mobile Verification Toolkit (MVT)

    Amnesty International Security Lab

    Pegasus 프로젝트 과정에서 만들어진 iPhone 및 Android용 무료 오픈소스 포렌식 도구예요. 명령줄에서 실행되며, 간단한 자가 점검용이 아니라 기술자와 조사자를 위한 도구예요. Haris Shield도 같은 공개 지표를 사용해요.

  • iVerify Basic

    iVerify

    독립 모바일 보안 회사가 만든 iPhone 및 Android용 앱이에요. 휴대폰 자체에서 Pegasus 유형 스파이웨어의 흔적을 확인해요. 다른 각도에서 살펴보는 유용한 두 번째 시각이에요.

  • Digital Security Helpline

    Access Now

    자신이 표적이 되었다고 생각하는 기자, 활동가, 인권 옹호자, 시민 사회 단체를 위해 여러 언어로 24시간 무료 도움을 제공해요.

  • Security Lab — 도움 요청

    Amnesty International

    Pegasus 같은 표적 디지털 공격의 위험에 처한 기자, 활동가, 시민 사회 단체를 지원해요.

  • Coalition Against Stalkerware

    stopstalkerware.org

    연인이나 가까운 사람이 휴대폰을 감시하고 있을까 봐 걱정하는 분들을 위해 국가별 상담 창구와 지원 단체를 모아 둔 목록이에요. 그 사람이 한 번도 접근한 적 없는 기기에서 찾아보세요.

이 페이지에서 앱의 실제 동작과 맞지 않는 내용을 발견했나요? support@harisshield.com으로 알려 주세요. 개인정보 처리방침도 참고하세요.