반응형
NSIS 고급 활용 시리즈 ⑰ – 배포용 설치기 서명과 보안 적용 전략
배포용 설치기는 일반적인 설치기와 달리 운영체제 보안 정책, 사용자 UAC 동의, 악성코드 탐지 회피 등을 고려해야 합니다.
✅ 핵심 보안 항목 요약
항목 | 설명 |
디지털 서명 | Windows SmartScreen 우회 및 배포자 신뢰 확보 |
관리자 권한 요청 | 시스템 폴더 설치, 레지스트리 설정 시 필수 |
무결성 보호 | 설치기 위변조 방지 |
실행 파일 제한 | 경로 및 해시 기반 화이트리스트 확보 |
🔏 ① 디지털 서명 (코드 서명)
설치 프로그램에 디지털 서명을 하면 다음과 같은 효과가 있습니다:
- Windows SmartScreen 필터를 우회
- 실행 시 “신뢰할 수 없는 배포자” 경고 제거
- 실행 이력 추적 가능
예: SignTool.exe로 서명하기
signtool sign /f "mycert.pfx" /p [비밀번호] /tr http://timestamp.digicert.com /td sha256 /fd sha256 MyInstaller.exe
옵션 설명:
- /f: 인증서 경로 (예: PFX 형식)
- /p: 인증서 비밀번호
- /tr: 타임스탬프 서버 주소
- /fd: 해시 알고리즘
인증서는 [Digicert, Sectigo, GlobalSign] 등에서 구매 가능
🛡️ ② UAC 관리자 권한 요청
NSIS에서 기본 설정만으로 관리자 권한 요청이 가능:
RequestExecutionLevel admin
옵션 | 설명 |
user | 현재 사용자 권한으로 설치 (제한적) |
highest | 가능한 한 높은 권한 요청 |
admin | UAC 요청 후 관리자 권한으로 설치 |
프로그램이 Program Files, HKLM, System32에 접근한다면 반드시 admin 필요
반응형
🔐 ③ 무결성 확인 (SHA256 해시)
배포 파일에 해시 정보를 제공하면 사용자가 위변조 여부를 검증할 수 있습니다.
해시 생성 예시:
certutil -hashfile MyInstaller.exe SHA256
출력 예:
9a34ab7e83c3c45fa7b7a21329d34c73458e2e3b720b194a86aa5babe8e4c491
이 해시값을 배포 페이지에 함께 기재
📌 ④ 실행 위치 제한 (경로 검증)
설치기가 특정 경로 외에서 실행되는 것을 제한:
Function .onInit
StrCpy $0 "$EXEDIR"
${IfNot} ${FileExists} "$0\whitelist.txt"
MessageBox MB_ICONSTOP "지정된 위치 외에서는 설치할 수 없습니다."
Abort
${EndIf}
FunctionEnd
복사 유통/위변조 방지용
📁 ⑤ 설치기 압축 후 Integrity 검증 기능 추가 (NSIS 내장)
NSIS는 설치기에 자동 무결성 체크를 포함:
CRCCheck on
기본값은 on이며, 설치기 실행 시 자동 검증 수행됨
🧰 보안 최종 팁 요약
- NSIS 설치기 제작 후 반드시 SignTool로 서명
- /S 자동 설치 기능은 신뢰된 경로에서만 허용
- UAC 사용자는 사용자 안내 텍스트 제공
- 가능하면 NSIS UI 내 배포자 정보 표시
반응형
'코딩취미 > 프로그램 지식' 카테고리의 다른 글
NSIS 고급 활용 시리즈 ⑯ – 설치기 디버깅과 배포 최적화: 로그, 경량화, 테스트 자동화 (0) | 2025.06.09 |
---|---|
NSIS 고급 활용 시리즈 ⑮ – 설치 환경 진단 페이지 만들기 (필수 구성 요소 자동 검사) (0) | 2025.06.09 |
NSIS 고급 활용 시리즈 ⑭ – 설치 실패 복구 전략: 롤백, 오류 알림, 진단 로그 (0) | 2025.06.09 |
NSIS 고급 활용 시리즈 ⑬ – 자동 업데이트 설치기 만들기: 버전 체크 및 차등 패치 구성 (0) | 2025.06.09 |
NSIS 고급 활용 시리즈 ⑫ – 설치 종료 후 자동 실행 및 피드백 수집 흐름 자동화 (0) | 2025.06.09 |