macOS에서 국내 금융/공공 사이트 이용 과정에서 설치된 보안 모듈, 런처, 보조 프로그램 흔적을 탐지하고 정리하기 위한 CLI 도구입니다.
🚨 탐지 시그니처와 제거 로직이 계속 바뀌고 있으며, 오탐 또는 과삭제 가능성이 아직 있습니다.
🧪 실제 삭제 작업 전에는 반드시--dry-run으로 먼저 확인하고, 백업 세션이 생성되는지 검토한 뒤 진행하세요.
이 프로젝트는 Windows용 구라제거기/구라탐지기에서 영감을 받아 시작했습니다. 다만 목표는 단순 포팅이 아니라, macOS 환경에 맞는 탐지·백업·복구 흐름을 갖춘 CLI 운영 도구를 만드는 것입니다.
scan,list: 현재 시스템에서 탐지된 항목 조회doctor: 권한, 백업, 시그니처, 시스템 명령 상태 점검remove,remove-safe: 선택 항목 또는 안전한 항목 제거restore: 백업 세션 복구history: 삭제/복구 이력 조회signatures update: 원격 시그니처 번들 업데이트
- SwiftPM 기반 macOS CLI 알파 버전입니다.
Wizvera,AhnLab ASTx,nProtect Online Security V1,CrossCert계열 흔적을 우선 탐지합니다.remove는 파일 삭제뿐 아니라 관련 프로세스 종료,launchd등록 해제,pkg receipt정리, 시스템 확장 제거 시도까지 수행합니다.- 실제 운영 중 확인된 범위에서
Wizvera,AhnLab,nProtect제거 흐름을 점검했습니다. - 아직 시그니처 정밀도, 시스템 확장 처리, 벤더별 특수 제거 경로는 계속 보강 중입니다.
make build
make scan ARGS='--json'
make doctor ARGS='--json'
make remove ARGS='--id wizvera.delfino --yes --dry-run'고위험 항목은 --force-high-risk가 필요하고, 시스템 범위 삭제는 보통 sudo가 필요합니다.
소스에서 직접 빌드하려면 기존처럼 make build를 사용할 수 있습니다.
GitHub Release 바이너리로 설치하려면:
- Releases에서 현재 환경에 맞는
gura-macos-arm64.tar.gz를 내려받습니다. - 압축을 해제합니다.
- 실행 파일을 PATH에 넣습니다.
tar -xzf gura-macos-arm64.tar.gz
chmod +x gura
sudo mv gura /usr/local/bin/gura
gura --help릴리즈에는 무결성 확인용 gura-macos-arm64.sha256와 시그니처 번들 signatures.json도 함께 포함됩니다.
전체 명령 구조 확인:
gura --help
gura help remove현재 시스템 스캔:
gura scan
gura scan --json
gura scan --hide-low-confidence현재 환경 점검:
gura doctor
gura doctor --json탐지 결과를 읽기 전용으로 다시 확인:
gura list
gura list --json특정 항목 제거 계획만 먼저 확인:
gura remove --id wizvera.delfino --yes --dry-run
gura remove --id ahnlab.astx --yes --force-high-risk --dry-run실제 제거:
sudo gura remove --id wizvera.delfino --yes
sudo gura remove --id ahnlab.astx --yes --force-high-risk
sudo gura remove --all-safe --yes백업 세션 복구 및 이력 확인:
gura history
gura history --json
gura restore
gura restore --session <session-id>GitHub Release에서 최신 시그니처 번들 갱신:
gura signatures update
gura signatures update --repo roboco-io/gura-remover-mac --asset signatures.json운영 팁:
- 삭제 전에는 먼저
--dry-run으로 계획을 확인합니다. high risk항목은--force-high-risk없이는 삭제되지 않습니다.- 시스템 범위 파일,
launchd, 시스템 확장 정리에는sudo가 필요할 수 있습니다. - 저신뢰 항목 삭제가 필요하면
--allow-low-confidence를 명시합니다.
예시:
sudo make remove ARGS='--id ahnlab.astx --yes --force-high-risk'
sudo make remove ARGS='--id inca.nprotectonlinesecurity --yes --force-high-risk'한 번에 스캔부터 전체 제거까지 진행하려면 아래 명령을 사용할 수 있습니다.
먼저 계획 확인:
sudo make remove-all-dry-run실제 실행:
sudo make remove-all내부적으로는 안전한 항목과 고위험 항목을 나눠 처리합니다. 현재 기준으로 AhnLab ASTx, nProtect Online Security V1은 high risk라서 remove-all이 별도 단계로 함께 처리합니다.
수동으로 나눠 실행하려면 아래 순서를 사용할 수 있습니다.
먼저 계획 확인:
sudo make remove-safe ARGS='--yes --dry-run'
sudo make remove ARGS='--id ahnlab.astx --yes --force-high-risk --dry-run'
sudo make remove ARGS='--id inca.nprotectonlinesecurity --yes --force-high-risk --dry-run'실제 실행:
sudo make remove-safe ARGS='--yes'
sudo make remove ARGS='--id ahnlab.astx --yes --force-high-risk'
sudo make remove ARGS='--id inca.nprotectonlinesecurity --yes --force-high-risk'중요:
remove-safe는 기본적으로high risk항목을 포함하지 않습니다.- 현재
AhnLab ASTx,nProtect Online Security V1은high risk라 별도 명령이 필요합니다. - 현재
remove는 파일 경로 삭제뿐 아니라 관련 프로세스 종료,launchd등록 해제,pkg receipt정리,nProtect시스템 확장 제거 시도까지 함께 수행합니다. systemextensionsctl uninstall은 macOS 상태에 따라 사용자 승인 또는 재부팅이 추가로 필요할 수 있습니다.sudo make ...로 실행해도 빌드는 원래 사용자 권한으로 수행되도록 조정되어 있습니다.
실제 운영 중 nProtect는 CLI 제거 후에도 com.nprotect.nosfw 시스템 확장이 남을 수 있었습니다. 이 경우 아래 경로에서 수동 정리가 가능했습니다.
시스템 설정 > 일반 > 로그인 항목 및 확장 프로그램- 아래쪽
Extensions영역에서i버튼 또는 세부 보기 진입 Network Extensions항목 확인nosfw또는nProtect관련 토글/항목이 있으면 끄고 제거
이 방법으로 현재 환경에서는 잔여 nProtect 시스템 확장을 정리할 수 있었습니다.
doctor와scan에서 고아 시스템 확장과 사용자 개입 필요 상태를 더 명확히 표시- 벤더별 특수 제거 경로를 시그니처와 제거 로직에 단계적으로 반영
nProtect처럼 UI 확인이 필요한 항목에 대해 후속 안내 메시지 강화- README와 운영 문서를 실제 제거 사례 중심으로 계속 업데이트
make help로 전체 운영 명령을 볼 수 있습니다.- 기획/조사 문서는 docs/PRD.md, docs/stack-and-target-research.md에 있습니다.