직원 PC에 남아 있는 개인정보 파일을 찾고, 정리한 결과까지 확인하는 무료 오픈소스입니다.
안녕하세요, MoricWorld의 Eric Kim입니다.
오늘은 제가 직접 만들어 오픈소스로 공개한 프로젝트, 테크랩스 디스커버리(Techlabs Discovery)를 소개하려고 합니다. 이름 그대로 회사 PC 곳곳에 흩어진 개인정보 파일을 찾아내고(Discovery), 직원이 정리한 결과를 다시 검사해서 확인하고, 그 과정을 기록으로 남기는 도구입니다.
소스와 설치 파일은 모두 제 Git 서버에 공개되어 있습니다.
- 저장소: https://git.tla.so/erickim/techlabs-discovery
- 라이선스: MIT
- 현재 공개 버전: Windows 타워 0.1.1(시험판), 에이전트 0.2.40(Windows·macOS·Linux)
제품 소개 글처럼 장점만 늘어놓을 생각은 없습니다. 무엇을 할 수 있는지, 아직 무엇이 부족한지, 비싼 상용 제품과 비교하면 어디가 모자라고 그래도 왜 써 볼 만한지 개발자 입장에서 솔직하게 정리해 보겠습니다.
1. 왜 만들었나: 개인정보는 생각보다 많이 흩어져 있습니다
파일은 계속 복사됩니다
회사에서 개인정보가 어디에 있느냐고 물으면 보통 “인사 시스템”, “고객 DB”라고 답합니다. 그런데 실제로 점검해 보면 이야기가 다릅니다.
- 채용 때 메일로 받은 이력서 PDF가 담당자의 다운로드 폴더에 몇 년째 남아 있고,
- 급여 담당자가 만든 급여대장 엑셀이 결재 과정에서 여러 사람의 바탕화면으로 복사되고,
- 영업팀이 행사 때 정리한 고객 명단 CSV가 “최종_진짜최종_v3.xlsx” 같은 이름으로 여러 개 생기고,
- 신분증 사본을 스캔한 이미지나 한글(HWP) 문서는 메신저와 메일 첨부를 거쳐 계속 퍼집니다.
DB는 접근 통제를 하고 로그도 남기지만, 이렇게 PC 안 파일로 빠져나온 개인정보는 아무도 모르는 사이 쌓입니다. 이런 데이터를 업계에서는 흔히 “다크 데이터”라고 부르죠.
법은 “어디에 있는지 모른다”를 봐주지 않습니다
국내에서는 「개인정보 보호법」이 개인정보처리자에게 분명한 의무를 지웁니다. 실제로 제 에이전트 설치 안내문에도 점검 근거를 아래처럼 적어 두었습니다.
- 제29조(안전조치의무): 개인정보가 분실·도난·유출되지 않도록 기술적·관리적 보호조치를 해야 합니다. 세부 내용은 「개인정보의 안전성 확보조치 기준」에 나옵니다.
- 제21조(개인정보의 파기): 보유 기간이 지나거나 처리 목적을 이룬 개인정보는 지체 없이 파기해야 합니다.
- ISMS-P 인증기준: 인증을 준비하거나 갱신하는 조직이라면 개인정보의 위치와 흐름을 알고 관리하고 있는지 심사에서 확인받습니다.
유출 사고가 나면 손해는 커집니다. 2023년 개정법이 시행된 뒤 과징금 상한은 전체 매출액의 3% 이하로 바뀌었습니다(위반과 관련 없는 매출은 빼고 산정합니다). 과태료, 손해배상, 신뢰 하락까지 생각하면 작은 회사에는 치명적일 수 있습니다. 정확한 조문과 금액 기준은 개인정보보호위원회와 국가법령정보센터에서 최신 내용을 꼭 확인해 주세요.
문제는 “파기하라”는 의무를 지키려면 먼저 “어디에 있는지”를 알아야 한다는 점입니다. 직원 PC 수십, 수백 대를 사람이 하나씩 열어 볼 수는 없습니다.
그런데 도구는 비싸고 무겁습니다
대기업이나 공공기관은 상용 개인정보 검출 솔루션을 도입합니다. 소규모 사업장도 법적 의무는 똑같이 지지만, 비싼 보안 제품과 전용 서버까지 준비하기는 쉽지 않습니다. README에도 적었듯이 테크랩스 디스커버리를 공개한 이유가 바로 이것입니다.
소규모 사업장도 개인정보를 관리해야 하지만, 비싼 보안 제품이나 전용 서버를 준비하기는 어려울 수 있습니다. 회사 안의 일반 PC 한 대로 점검을 시작할 수 있도록 공개합니다.
2. 테크랩스 디스커버리는 어떻게 생겼나
구성은 단순합니다.
| 구성 | 역할 |
|---|---|
| 타워(Tower) | 회사 서버 PC 한 대에 설치하는 관리 서버. 직원 PC의 점검 결과와 처리 이력을 모아 보여 줍니다. |
| 에이전트(Agent) | 직원 PC마다 설치하는 검사 프로그램. 파일을 검사하고 결과를 타워로 보냅니다. |
| 사내 AI (선택) | 탐지 결과를 먼저 1차 판독하고 문서 종류를 분류합니다. 없어도 됩니다. |
사용 흐름은 다섯 단계입니다.
- 에이전트가 직원 PC의 파일을 검사합니다.
- 담당자가 타워에서 탐지 결과를 검토합니다(정탐/오탐/보류).
- 직원이 회사 기준에 따라 파일을 삭제하거나 수정·암호화합니다.
- 에이전트가 해당 파일을 다시 검사합니다.
- 타워에 검사 결과와 처리 기록을 보관합니다.
제가 가장 신경 쓴 부분은 4번과 5번입니다. 많은 점검이 “직원이 지웠다고 보고함”에서 끝나는데, 이 도구는 직원이 ‘정리했음’을 눌러도 바로 완료 처리하지 않습니다. 그 버튼은 재검사 요청일 뿐이고, 실제로 다시 읽은 결과에 따라 상태가 정해집니다.


3. 주요 기능과 강점
3-1. 한국 실정에 맞춘 탐지 엔진
탐지 엔진은 Marker-Inc-Korea의 Python 프로젝트 ko-pii에서 출발했습니다. 직원 PC에 상주시키려면 가볍고 빨라야 해서 Go 언어로 새로 포팅했고, 지금은 이 Go 엔진(agent-go/internal/detect)만 씁니다. 원 저작권과 MIT 라이선스는 그대로 보존했습니다.
소스에 등록된 탐지기를 정리하면 다음과 같습니다.
| 분류 | 탐지 항목(코드 기준) |
|---|---|
| 고유식별정보 | 주민등록번호, 외국인등록번호, 여권번호, 운전면허번호 |
| 연락처 | 전화번호, 팩스번호, 이메일, 주소·우편번호 |
| 금융 | 신용카드번호, 계좌번호(예금주가 끼어 있는 표기 포함) |
| 사람·조직 | 이름, 사원번호, 생년월일, 사업자등록번호, 법인등록번호 |
| 의료 | 건강보험증 번호, 처방전 관련 번호, 의약품 표준코드 |
| 기타 | 차량번호, 법원 사건번호, 공문서 문서번호, 민원 번호, 필지고유번호(PNU), IP 주소, URL |
| 속성 정보 | 학력·나이·국적 등 (같은 파일에 직접 식별자가 있을 때만 보고) |
단순한 정규식 매칭에서 그치지 않도록 신경 썼습니다. 코드를 보면 이런 처리가 들어 있습니다.
- 주민등록번호: 체크섬을 검증하되, 체크섬이 맞지 않는 번호(2020년 10월 이후 발급분 등)도 문맥 근거가 있으면 잡습니다. 계좌번호의 일부가 주민번호처럼 보이는 경우는 걸러냅니다.
- 카드번호: Luhn 검사에 더해 “1111-2222-3333-4444” 같은 반복 숫자나 바코드(EAN-13)·IMEI 모양의 우연한 통과를 거릅니다.
- 건강보험증 번호: 11자리라 휴대전화번호와 겹치므로 앞쪽에 ‘건강보험’ 같은 키워드가 있어야 잡습니다.
- 이름: 성씨·직함·조사·표의 열 제목 같은 한국어 사전과 문맥 규칙을 씁니다.
- 위험 등급: 탐지 결과를 INFO부터 CRITICAL까지 5단계로 나누고, 판단 근거(evidence)를 함께 남깁니다.
이렇게 탐지기가 수십 개라도 PC 전체를 검사할 수 있게, 정규식을 본문 전체에 돌리지 않고 숫자·한글 덩어리처럼 매치될 수 있는 구간만 골라 검사하도록 엔진을 설계했습니다.
3-2. 한국 회사에서 실제로 쓰는 파일 형식
한국 사무실의 현실을 반영해 한글(HWP, HWPX)을 기본으로 지원합니다. 코드에 등록된 형식은 다음과 같습니다.
| 종류 | 확장자 |
|---|---|
| 한글 | .hwp, .hwpx |
| MS Office (신형) | .docx .docm .dotx, .xlsx .xlsm .xltx, .pptx .pptm .potx |
| MS Office (구형) | .doc, .xls, .ppt |
.pdf (스캔 PDF는 OCR로) |
|
| 메일 | .eml, .msg (첨부까지) |
| 표·텍스트 | .csv .tsv, .txt .md .log .yaml .yml, .html .htm |
| 덤프·백업 | .json, .xml, .sql, .dump, .bak |
| 압축 | .zip(및 .jar 등 ZIP 계열), .alz |
| 이미지 (OCR) | .png .jpg .jpeg .gif .bmp .tif .tiff .webp |
솔직히 덧붙이면 .7z, .rar, .tar, .gz 같은 형식은 현재 내용을 풀어 읽지 않고 읽지 못한 파일로 따로 분류합니다.
3-3. 이미지·스캔 문서도 읽는 OCR
신분증 사본이나 스캔한 계약서처럼 이미지 속 글자도 놓치지 않게 OCR을 넣었습니다. RapidOCR v3.9.2가 쓰는 PP-OCRv5 계열 ONNX 모델(글자 영역 찾기, 한국어 인식, 방향 판별)을 ONNX Runtime으로 PC 안에서 직접 실행합니다. 외부 OCR 서비스로 이미지를 보내지 않습니다.
OCR은 무거운 작업이라 예산 정책을 두었습니다. 기본값은 점검 한 번에 그림 파일 2,000개, 문서 하나에 15초, 점검 전체에 30분이고 정책에서 바꿀 수 있습니다. 예산을 넘긴 파일은 버리지 않고 대기열에 남겨 다음에 이어서 읽습니다.
3-4. “읽지 못함”을 “문제없음”으로 치지 않습니다
이 원칙은 문서와 코드 곳곳에 일관되게 들어가 있습니다.
- 암호가 걸린 파일, 권한이 없는 파일, 시간이 초과된 파일은 이유별로 따로 표시합니다.
- OneDrive 파일 주문형처럼 내용이 PC에 없는 클라우드 전용 파일은 기본값으로 내려받지 않고 ‘읽지 못함’으로 셉니다. 정책을 바꾸면 내려받아 검사한 뒤 다시 클라우드 전용 상태로 되돌립니다.
- 재검사 결과는 탐지 없음, 여전히 탐지됨, 파일 없음, 보호 조치 확인, 읽기 실패로 나눠 기록합니다. ‘파일 없음’은 그 위치에서 사라졌다는 뜻일 뿐이고 다른 복사본까지 지웠다는 뜻이 아니라는 점도 화면에서 분명히 알려 줍니다.
감사 대응에서는 “무엇을 확인했고 무엇을 확인하지 못했는지”를 정직하게 보여 주는 쪽이 오히려 강점이라고 생각했습니다.

3-5. 중앙 관리 콘솔(타워)
오픈소스라고 해서 명령줄 도구만 있는 것은 아닙니다. 타워는 웹 관리 콘솔을 제공합니다.
- 운영 개요: 검토 대기, 기한 초과 조치, 온라인 PC를 한 화면에서 봅니다.
- 자산 관리: PC별 연결 상태, 마지막 신호, OS, 에이전트 버전을 보여 줍니다. 오프라인 PC를 정상 완료로 치지 않습니다.
- 정책: 검사 대상, 주기, 개인정보 유형, 발췌 문맥 길이, 제외 경로를 정합니다.
- 점검 회차: “2026 하반기 정기 점검”처럼 대상과 기한을 묶어 관리합니다.
- 탐지 검토 → 조치 이행 → 증적: 정탐/오탐 판정, 조치 기한과 담당자, 재검증 결과를 이어서 관리합니다.
- 역할 구분: 열람자(조회), 검토자(판정·조치), 관리자(전체)로 권한을 나눕니다.
- 오탐 억제: 사람이 오탐으로 확정하면 경로·값 지문·파일 해시 기준으로 반복 탐지를 줄입니다. 파일 내용이 바뀌면 다시 검사합니다.




3-6. ISMS-P 심사용 증적 내보내기
타워의 증적 내보내기 화면은 처음부터 ISMS-P 심사 제출을 염두에 두고 만들었습니다.
- 회차 요약 PDF: 표지, 점검률, 등급 분포, 미실행 PC, 조치 현황
- 미실행 자산(xlsx): 점검을 끝내지 못한 PC와 그 사유(미접속·실패·대기)
- 조치 이행대장(xlsx): 정탐 건별 조치, 담당자, 기한, 완료, 검증 결과
- 자산 인벤토리(xlsx): 모든 PC의 호스트, 계정, OS, 에이전트 버전, 마지막 점검, 미결 탐지
- 회차별 추이(xlsx): 회차마다 점검률과 등급별 탐지 건수
- 반출 기록(xlsx): USB 복사, 인쇄, 메일 반출 이력
내려받은 기록 자체도 감사 로그에 남습니다.

3-7. 원문은 기본적으로 가립니다
점검 도구가 오히려 개인정보를 한곳에 모으는 위험이 될 수 있다는 점을 늘 의식했습니다.
- 타워로는 파일 경로, 탐지 종류와 건수, 점검 결과, 처리 기록을 보냅니다. 정책에 따라 일부 발췌만 보내고, 문서 전체를 기본으로 올리지 않습니다.
- 발췌는 관리자에게도 마스킹된 상태로 보입니다. 원문이 필요하면 지정된 발급자가 내준 PIN을 입력해야 하고, PIN 발급과 열람, 실패 내역이 모두 감사 기록에 남습니다.
- 에이전트는 HTTPS와 PC별 인증 정보로 통신합니다. 일부 문서와 재검사 기록 본문은 AES-256-GCM으로 암호화합니다.
- Windows 타워 EXE는 EFS나 장치 암호화가 켜진 저장소에서만 실행됩니다. 보호가 꺼지면 서버를 멈춥니다.
3-8. 직원이 직접 정리하는 에이전트
직원 화면도 공들였습니다. 트레이 아이콘으로 열어 지금 점검을 누르면, 위험 등급별 파일과 가려진 예시를 보여 줍니다. 업무에 필요한 파일은 에이전트에서 바로 AES-256 암호 ZIP으로 보호하고 복호화할 수 있습니다. 바쁜 PC를 배려해 빠른 검사와 퇴근 후 검사(기본 오후 8시 시작)도 넣었습니다.
Windows 설치형은 SYSTEM 서비스로 동작합니다. 서비스 보호와 자동 복구, 타워에서 승인하는 원격 제거를 지원합니다. 설치 스크립트에는 /S /KEY=... 형태의 조용한 설치 옵션도 있어서, 사내 배포 도구로 한꺼번에 설치하는 데 쓸 수 있습니다.





3-9. 반출 기록과 일부 통제 (시험 단계)
PC에 남은 파일을 찾는 것에 더해, 개인정보 파일이 밖으로 나가는 일부 경로도 다룹니다.
- USB: 개인정보 파일이 USB로 복사되면 기록하거나, USB에 복사된 파일을 확인한 뒤 지웁니다. 별도로 Windows USB 쓰기 금지 정책을 타워에서 PC별로 걸 수도 있습니다.
- 인쇄: 개인정보 문서의 인쇄 작업을 기록하거나 취소합니다. 문서 이름으로 원본을 찾지 못하면 ‘내용 모름’으로 남깁니다.
- 메일: 릴리즈에는 Linux용 메일 게이트(SMTP 중계)가 들어 있습니다. 발신 메일을 검사해 끔·기록·차단(거절 또는 보류) 방식으로 처리합니다.
여기서 분명히 해 둘 점이 있습니다. 차단에 실패한 건은 차단 성공으로 표시하지 않습니다. 그리고 모든 웹 업로드, 메신저, 클립보드 경로를 막는 상용 DLP를 대신한다고 말하지 않습니다.







3-10. 사내 AI 연동 (선택)
탐지 건수가 많으면 사람이 다 읽기 어렵습니다. 그래서 OpenAI 호환 API를 제공하는 사내 LLM 서버(vLLM 같은 자체 호스팅 서버)를 연결하는 기능을 넣었습니다.
- 1차 판독: 발췌를 보고 개인정보 의심, 오탐, 확인 필요로 나눕니다.
- 문서 자동 분류: 급여대장, 직원 명부, 고객 명단, 계약서 같은 문서 종류 태그를 붙입니다.
- 놓친 개인정보 찾기: 엔진이 놓친 것을 LLM이 찾고, 사람이 확인한 것만 엔진 개선 자료로 내보냅니다.
원칙은 하나입니다. AI 판단만으로는 아무것도 확정하지 않습니다. AI가 오탐이라고 해도 사람이 확정하기 전에는 검사에서 빠지지 않습니다. 원문 전송은 사내 주소로 확인된 AI 서버에서만 허용합니다. 기본 설치는 외부 AI 서비스를 자동으로 부르지 않습니다.
4. 실제로 이렇게 씁니다: 활용 시나리오
시나리오 ① 반기 정기 점검과 ISMS-P 대비
“반기마다 전 직원 PC를 점검하고 결과를 취합해야 합니다.”
타워의 정책에서 검사 범위와 일정을 정하고, 점검 회차에 “ISMS-P 갱신 심사 대비” 같은 메모를 달아 대상과 기한을 관리합니다. 자산 관리에서 아직 점검하지 않은 PC를 확인하고, 탐지 검토 → 조치 이행 → 증적 순서로 마무리합니다. 심사 때는 회차 요약 PDF, 미실행 자산, 조치 이행대장을 내려받아 제출 자료로 씁니다.
시나리오 ② 주민등록번호·카드번호가 든 파일 찾기
“고객 응대팀 PC에 주민번호, 휴대폰 번호, 카드번호가 적힌 엑셀이 있을지도 모릅니다.”
정책에서 개인정보 유형을 고르고 점검하면, 체크섬과 문맥으로 검증한 주민등록번호·카드번호·전화번호·계좌번호가 위험 등급과 함께 나옵니다. 엑셀뿐 아니라 HWP, PDF, 메일(.eml/.msg) 첨부, ZIP 안의 파일, 스캔 이미지까지 함께 봅니다.
시나리오 ③ 인사팀의 오래된 자료 정리 (파기 의무 이행)
“이력서, 직원 명부, 급여 자료가 여러 사람의 다운로드 폴더와 바탕화면에 남아 있습니다.”
해당 폴더를 점검한 뒤, 필요한 자료는 회사가 정한 위치에 옮기거나 에이전트로 암호화하고, 보관 기간이 지난 자료는 삭제합니다. 직원이 정리했음을 누르면 그 파일을 다시 검사하고, 결과가 타워에 남습니다. 제21조 파기 의무를 “했다”가 아니라 “했고, 확인됐다”로 남길 수 있습니다. 사내 AI를 연결하면 ‘이력서’, ‘급여대장’ 같은 문서 종류 태그로 찾기도 쉬워집니다.
시나리오 ④ 퇴사자·담당자 변경 때 PC 정리
“퇴사자 PC를 초기화하거나 다른 사람에게 넘기기 전에 개인정보가 남아 있는지 보고 싶습니다.”
퇴사자 전용 메뉴가 따로 있지는 않습니다. 대신 해당 PC에서 점검을 돌려 남은 개인정보 파일을 확인하고, 업무상 넘겨야 할 자료는 정해진 위치로 옮기고 나머지는 정리한 뒤, 재검사 결과로 “이 PC에는 더 이상 탐지되지 않음”을 기록으로 남기는 식으로 쓸 수 있습니다. PC를 반납한 뒤에는 타워의 제거 승인으로 Windows 에이전트를 원격 제거할 수 있습니다.
시나리오 ⑤ 파일 서버·NAS 공유 폴더
“공유 폴더에도 고객 자료가 쌓여 있습니다.”
코드에는 타워 정책에서 자산별로 추가 검사 경로를 지정하는 기능이 있습니다(예: NAS의 UNC 경로). 에이전트를 설치한 PC가 그 경로를 검사하는 방식입니다. 다만 대용량 파일 서버를 전수 검사하는 성능과 운영 절차는 아직 따로 검증하거나 문서화하지 않았습니다. 그래서 공유 폴더 일부부터 시험해 보시길 권합니다.
시나리오 ⑥ USB 반출·출력 관리
“고객 명단이 USB로 나가거나 출력되는지 알고 싶습니다.”
타워 → 정책 → 반출 통제에서 USB와 인쇄를 각각 끔·기록·차단으로 설정합니다. 업무에 영향을 줄 수 있으니 반드시 시험용 Windows PC에서 먼저 확인하고 적용해 주세요.
5. 상용 솔루션과 비교하면: 솔직한 한계
국내에는 오랫동안 시장에서 검증받은 개인정보 검출·DLP 상용 제품들이 있습니다(예: 이지스 엔터프라이즈, 소만사 Privacy-i, 지란지교 계열 제품 등). 특정 제품의 세부 사양을 여기서 평가할 생각은 없습니다. 일반적으로 상용 제품이 강한 지점과 테크랩스 디스커버리의 현재 상태를 공정하게 비교해 보겠습니다.
| 항목 | 일반적인 상용 제품 | 테크랩스 디스커버리 (현재) |
|---|---|---|
| 비용 | 라이선스·유지보수 비용 | 무료(MIT). PC 운영·저장공간 비용만 듭니다. |
| 소스 공개 | 비공개 | 전체 공개, 직접 감사·수정 가능 |
| 중앙 관리 | 성숙한 관리 콘솔, 대규모 운영 경험 | 타워 콘솔 제공. Windows 타워는 시험판 |
| 규모 검증 | 대규모 고객사 운영 실적 | 일반 PC 한 대로 1,000대 운영이 목표이며 장기 검증은 아직 미완료 |
| 기술지원·SLA | 전담 지원, 계약 기반 대응 시간 | 없음. 이슈 트래커 중심, 대응 시간 보장 없음 |
| 인증 | GS인증, CC인증 등을 갖춘 제품이 많고 공공 조달에 유리 | GS·CC 등 인증 없음 |
| 에이전트 배포 | 대규모 배포·업데이트 체계, 코드 서명 | 설치 EXE·조용한 설치 옵션은 있으나 코드 서명 없음(SmartScreen 경고 가능), OS별 신규 설치 전체 검증은 진행 중 |
| OS별 기능 | 플랫폼별 기능 정비 | Windows가 가장 완전. macOS·Linux는 서비스 보호·원격 제거가 Windows와 같지 않음 |
| 오탐 튜닝 | 전문 UI, 패턴 관리, 벤더 지원 | 사람 확정 기반 오탐 억제(경로·값·해시), 정책별 유형 선택. 탐지 규칙을 화면에서 직접 편집하는 기능은 없고 코드 수정이 필요 |
| DLP 통합 | 웹·메신저·클라우드·메일·매체 등 종합 통제 | USB·인쇄 기록·차단, 메일 게이트는 일부 경로만. 웹 업로드·메신저·클립보드는 미지원 |
| 압축 형식 | 다양한 형식 지원 | ZIP·ALZ만 읽고 7z·RAR·TAR 등은 ‘읽지 못함’으로 분류 |
| 운영 편의 | 이전·백업 도구, 설치 대행 | 백업·서버 이전 마법사 없음. 서버 보안·백업은 운영자 책임 |
| 정확도 자료 | 벤더가 제시하는 자료 | 저장소에 평가용 데이터와 테스트는 있으나, 공식 정확도 수치는 내세우지 않습니다 |
정리하면 이렇습니다. 공공기관 조달처럼 인증이 필수인 곳, 수천 대 이상을 SLA 계약으로 운영해야 하는 곳, 웹·메신저까지 막는 종합 DLP가 필요한 곳에는 지금 단계의 테크랩스 디스커버리가 상용 제품을 대신할 수 없습니다. 이 점은 문서에도 같은 취지로 적어 두었습니다.
파일 발견·검토·처리 기록을 돕는 도구입니다. 보관 기준과 접근 권한은 회사가 정해야 합니다. 모든 파일·모든 반출 경로를 검사하거나 차단하는 것을 보장하지 않습니다.
6. 그래도 써 볼 만한 이유
한계가 분명한데도 공개한 이유가 있습니다.
① 무료이고, 바로 시작할 수 있습니다.
MIT 라이선스라 상업적 사용, 수정, 재배포가 모두 됩니다. Windows 타워는 DB가 들어 있어 EXE 하나로 실행되고, 에이전트 설치 파일은 로그인 없이 받을 수 있습니다. 예산 승인을 기다리는 동안 오늘 바로 시험 점검을 해 볼 수 있습니다.
② 데이터가 회사 밖으로 나가지 않습니다.
타워는 사내 서버 PC 한 대에, 탐지와 OCR은 직원 PC 안에서 실행됩니다. 클라우드 서비스가 아니고, 기본 설치는 외부 AI도 부르지 않습니다. 개인정보를 찾으려고 개인정보를 외부로 보내는 모순이 없습니다.
③ 코드를 직접 확인할 수 있습니다.
“이 프로그램이 직원 PC에서 무엇을 읽고 무엇을 보내는가?”는 보안 담당자와 직원 모두에게 민감한 질문입니다. 테크랩스 디스커버리는 탐지 규칙, 전송 항목, 마스킹, 암호화 코드가 모두 공개되어 있어서 직접 읽고 검증할 수 있습니다.
④ 한국 업무 환경에 맞췄습니다.
HWP·HWPX, 주민번호 체크섬, 외국인등록번호, 사업자·법인등록번호, 건강보험증, 차량번호, 법원 사건번호 같은 국내 식별자를 다룹니다. 화면과 문서도 모두 한국어입니다.
⑤ 고칠 수 있습니다.
우리 회사만 쓰는 사번 형식이나 고객번호가 있다면 Go 탐지기를 추가하면 됩니다. 사내 LLM도 원하는 모델로 붙일 수 있습니다.
⑥ “확인된 처리”를 기록합니다.
재검사 기반 검증과 ‘읽지 못함’의 정직한 분리, ISMS-P용 증적 내보내기는 작은 조직이 감사를 준비할 때 실제로 도움이 되도록 설계했습니다.
⑦ 상용 도입 전 ‘현황 파악’ 도구로도 좋습니다.
상용 제품을 도입하기 전에 우리 회사 PC에 개인정보가 얼마나, 어떤 형태로 있는지 먼저 파악해 두면 요구사항을 훨씬 구체적으로 정할 수 있습니다.
7. 시작하기
7-1. 무엇을 받아야 하나
| 프로그램 | 다운로드 |
|---|---|
| Windows 타워 0.1.1 (시험판, 약 89 MiB) | https://git.tla.so/erickim/techlabs-discovery/releases/tag/v0.1.1-tower |
| 에이전트 0.2.40 (Windows·macOS·Linux) | https://git.tla.so/erickim/techlabs-discovery/releases/tag/v0.2.40-agent |
| Docker 타워 | 저장소 소스를 직접 받아 설치 |
타워는 서버 PC 한 대에, 에이전트는 점검할 직원 PC마다 설치합니다. 타워 EXE에 에이전트 설치 파일이 들어 있지는 않습니다.
7-2. 방법 A: Windows PC에서 타워 실행 (가장 쉬움)
준비물은 Windows 10/11 x64와 NTFS 저장공간입니다. Pro·Enterprise는 EFS를 쓰고, Home은 장치 암호화가 완료되고 보호가 켜져 있어야 합니다(Home 실제 PC 검증은 아직 끝나지 않았습니다).
TechlabsDiscoveryTower-0.1.1.exe를 내려받아 실행합니다.- 첫 실행 때 포함된 DB를 준비합니다.
- 인증서 확인 창에서 발급자가 Techlabs Discovery Tower Local CA인지 확인합니다.
- 열린 브라우저에서 첫 관리자
admin의 이름과 비밀번호를 정합니다. - 기본 관리 주소는
https://localhost:8443입니다. 직원 PC 연결은 트레이의 사내 PC 연결 허용에서 켭니다.
7-3. 방법 B: Linux 서버에서 Docker로 설치
Git, Python 3, OpenSSL, Docker Engine, Docker Compose v2가 필요합니다.
# 필요한 프로그램 확인
git --version
python3 --version
openssl version
docker --version
docker compose version
# 소스 받기
git clone https://git.tla.so/erickim/techlabs-discovery.git
cd techlabs-discovery
# 192.168.1.50은 예시입니다. 직원 PC가 접속할 실제 서버 IP나 사내 DNS 이름으로 바꾸세요.
python3 tools/configure.py --host 192.168.1.50 --bind 0.0.0.0
docker compose up -d --build
docker compose ps
db, api, web이 정상으로 뜨면 됩니다. 설정 도구가 설치마다 다른 비밀번호, 암호화 키, 인증서를 만들어 줍니다. 이어서 다음을 진행합니다.
.local/tls/ca.crt를 관리자 PC에 신뢰할 수 있는 인증서로 등록합니다.- 브라우저에서
https://<서버주소>:8443을 엽니다. - 최초 관리자 생성 화면에
.env의TOWER_ADMIN_KEY값을 넣고admin계정을 만듭니다. - 사내 방화벽은 직원 PC에서 오는 8443번 HTTPS만 열어 두고, DB 포트는 열지 않습니다.
.env 파일과 .local 폴더에는 DB와 암호화 키가 들어 있습니다. 지우면 재설치만으로는 복구할 수 없으니 꼭 따로 백업해 두세요.
7-4. 직원 PC 연결
- 에이전트 릴리즈의 첨부 파일 15개(
VERSION,SHA256SUMS포함)를 받아 체크섬을 확인합니다.
bash
# Linux
sha256sum -c SHA256SUMS
# macOS
shasum -a 256 -c SHA256SUMS
Windows에서는 PowerShell의 Get-FileHash <파일> -Algorithm SHA256 결과를 비교합니다.
2. 파일을 타워에 배치합니다. Docker는 저장소의 dist/agent에, Windows 타워는 트레이에서 연 데이터 폴더의 agent에 넣습니다.
3. 타워의 에이전트 등록 → 새 등록 키에서 사용 수, 만료, 네트워크 범위를 정해 키를 만듭니다.
4. 직원 PC에 타워의 공개 CA 인증서를 등록합니다. Windows는 반드시 로컬 컴퓨터의 ‘신뢰할 수 있는 루트 인증 기관’에 넣어야 합니다.
5. Windows는 설치 EXE를 실행해 타워 주소와 등록 키를 넣습니다. macOS·Linux는 타워에서 만든 등록 ZIP을 풀어 설치 실행기를 실행합니다.
6. 타워의 자산 관리에 PC가 나타나면 연결된 것입니다.


7-5. 첫 점검은 작게
제가 가장 권하는 순서입니다.
- 시험용 PC 한 대를 등록합니다.
- 개인정보가 없는 시험 문서로 검사, 검토, 정리, 재검사를 한 바퀴 돌려 봅니다.
- 재검사 결과가 타워에 기록되는지 확인합니다.
- 회사의 점검 범위와 보관 기준을 직원에게 먼저 안내한 뒤 부서별로 늘립니다.
- USB 쓰기 금지 같은 통제 기능은 업무 영향을 확인한 뒤에 켭니다.
그리고 실제 직원 PC를 연결하기 전에 꼭 서버 관리를 먼저 준비해 주세요. 타워에는 여러 직원의 점검 정보가 모이므로, 서버가 뚫리면 한꺼번에 노출될 수 있습니다. 서버 PC를 일상 업무와 분리하고, 업데이트와 백신을 유지하고, 관리자 권한은 최소한으로 주고, 포트는 인터넷에 직접 열지 마세요. 백업과 키는 따로 보호해야 합니다.
8. 마치며
개인정보 보호는 거창한 솔루션 도입이 아니라 “우리 회사 PC에 무엇이 있는지 아는 것”에서 시작한다고 생각합니다. 테크랩스 디스커버리는 그 첫걸음을 비용 걱정 없이 내딛게 해 주려고 만든 도구입니다.
아직 부족한 점이 많습니다. Windows 타워는 시험판이고, 대규모 장기 운영 검증, OS별 신규 설치 전체 검증, 코드 서명, 백업 마법사 같은 숙제가 남아 있습니다. 문서에도 “구현한 것”과 “검증한 것”을 구분해서 적어 두었으니, 도입 전에 지원 범위와 검증 기록을 꼭 읽어 주세요.
그래도 작은 회사, 스타트업, 학교와 비영리 단체, 또는 상용 제품을 검토하기 전에 현황부터 알고 싶은 담당자에게는 충분히 쓸모 있는 출발점이 되리라 믿습니다.
써 보시고 버그나 개선 아이디어가 있으면 이슈로 알려 주세요. 제보할 때 실제 개인정보나 DB, 키는 절대 첨부하지 말아 주세요. 기여도 언제든 환영합니다.
마지막으로, 출발점이 되어 준 Marker-Inc-Korea의 ko-pii 프로젝트에 감사드립니다.
- 저장소: https://git.tla.so/erickim/techlabs-discovery
- 문서 위키: https://git.tla.so/erickim/techlabs-discovery/wiki/Home
- 릴리즈: https://git.tla.so/erickim/techlabs-discovery/releases
읽어 주셔서 감사합니다. — Eric Kim, MoricWorld