본문 바로가기

모의해킹 직업 윤리와 책임 기준

법은 행위의 최저선입니다. "여기서부터는 처벌한다"는 선이지, "여기까지는 해도 괜찮다"는 선이 아닙니다. 보안 업무에서 자주 마주치는 어려운 결정들은 대개 법은 안 어겼는데 무엇을 해야 할지 알 수 없는 자리에 있습니다. 이번 회차의 주제는 그 자리에서 무엇을 기준으로 판단할 것인가입니다.

왜 윤리를 따로 다루는가

보안 분야는 다른 직군에 비해 개인의 판단이 큰 결과로 이어지는 빈도가 높습니다. 발견한 취약점을 누구에게, 언제, 어떻게 알릴지. 회사가 사고를 은폐하려 할 때 무엇을 할지. 모의해킹 중 알게 된 정보를 어떻게 다룰지. 이런 결정에 법이 직접 답을 주지 않는 경우가 많고, 그래서 직업 윤리가 작동해야 합니다.

1. 보안 전문가의 직업 윤리란

윤리는 도덕 강의가 아니라 직업적 판단의 일관성을 만드는 도구입니다. 같은 상황에서 같은 결정을 내릴 수 있게 해 주고, 그 결정의 근거를 외부에 설명할 수 있게 해 주는 장치입니다.

법과 계약을 통과한 행위라도 윤리 프레임에서 한 번 더 점검해야 하는 이유는, 법과 계약이 미처 정의하지 못한 영역이 항상 남기 때문입니다. 그 자리에서의 결정이 회사·고객·사회의 신뢰를 결정합니다.

2. 국제 직업 윤리 강령

보안 분야에는 여러 윤리 강령이 있습니다. 표현은 조금씩 다르지만 공통된 5개의 기둥이 보입니다.

강령발행핵심 항목
(ISC)² Code of Ethics(ISC)² (CISSP 발행기관)4개 원칙: 사회 보호, 정직·책임 행동, 본인 의무 충실, 직무 발전
EC-Council Code of EthicsEC-Council (CEH 발행)19개 항목: 비밀유지, 미인가 침입 금지, 결함 공개
SANS GIAC EthicsSANS Institute신뢰·존중·공정·정직
국제표준 ISO/IEC 27001 부록ISO기술적 통제 + 관리적 통제
한국 정보보안기사 윤리 강령한국정보보호학회 등국제 강령 반영, 한국 특수성 추가

2.1 다섯 개의 공통 기둥

이 강령들을 가로질러 자주 등장하는 다섯 가지 원칙입니다.

원칙의미보안 업무에서의 모습
합법성·계약 준수법과 계약을 어기지 않는다망법 제48조, 계약·승인서
비밀유지알게 된 정보를 함부로 누설하지 않는다NDA, 49조 비밀 보호
이해관계 충돌 회피본인·관계자의 이익이 직무에 영향을 주지 않게 한다점검 대상 회사 주식 미보유 등
책임 있는 공개발견한 취약점은 정해진 절차로 공개한다Responsible Disclosure
사회적 책임보안 활동의 영향이 사회에 미치는 결과를 고려한다위협 도구의 공개 수준 결정

이 다섯 개를 본인의 사고 체크리스트에 새겨 두면, 어려운 결정 앞에서 무엇을 점검할지 흐름이 잡힙니다.

3. (ISC)² Code of Ethics

CISSP·CCSP를 발행하는 (ISC)²의 윤리 강령은 단 4개 항목으로 구성됩니다. 짧고 강력해서 자주 인용됩니다. 의역하면 다음과 같습니다.

  1. 사회, 공공의 이익, 그리고 인프라를 보호하라.
  2. 정직하고, 공정하며, 책임감 있고, 합법적으로 행동하라.
  3. 본인의 의무에 성실하고, 효과적으로 봉사하라.
  4. 직업의 발전과 보호에 기여하라.

순서가 의미를 가집니다. 사회 보호 > 행동의 도덕성 > 의무 수행 > 직업 발전. 만약 의뢰인의 요구와 사회의 이익이 충돌한다면, 1번이 2~4번보다 우선합니다. 가령 의뢰인이 "이 취약점은 우리만 알고 있으니 영원히 비밀로 해달라"고 요구해도, 그 취약점이 다른 회사·시민에게 광범위한 위험을 끼친다면 1번이 작동합니다.

3.1 EC-Council의 더 구체적인 항목

CEH 발행기관인 EC-Council의 강령은 더 구체적입니다. 자주 인용되는 항목 몇 개입니다.

항목핵심
본인의 자격을 부풀리지 말 것자격증·경력 위조 금지
의뢰인의 비밀을 유지할 것발견 사항을 외부 누설 금지
미인가 시스템에 침입하지 말 것권한 없는 접근 금지
발견한 취약점은 적절한 시점·절차로 공개할 것Responsible Disclosure
악성코드 작성·배포에 관여하지 말 것도구 개발의 사회적 책임
본인의 활동이 다른 사람에게 미칠 영향을 고려할 것위협 모델링

4. 취약점 공개

발견한 취약점을 어떻게 알릴지는 보안 업무에서 가장 자주 마주치는 윤리 결정입니다. 세 가지 모델이 있습니다.

4.1 풀 디스클로저

발견 즉시 모든 정보(상세 분석, PoC 코드)를 공개하는 방식입니다. 1990년대 보안 커뮤니티에서 자주 쓰인 방식이지만, 지금은 마지막 수단으로 보는 시각이 우세합니다.

장점단점
벤더가 빨리 패치하도록 압박미패치 사용자가 즉시 위험에 노출
보안 커뮤니티 학습 자료공격자가 즉시 활용 가능
정보 비대칭 해소벤더와의 협력 관계 단절

4.2 코디네이티드 디스클로저

지금의 표준입니다. 발견자는 먼저 벤더에 통보하고, 양측이 패치 일정과 공개 시점을 협의해 같이 공개합니다.

단계무엇을 하는가
1. 발견 통보벤더의 보안 이메일(보통 security@)로 상세 보고
2. 접수 확인보통 5영업일 이내
3. 분석·패치통상 90일
4. 공동 공개패치 출시 + 발견자·CVE 정보 동시 공개
5. 사후 평가다른 영향 자산 점검

90일은 Google Project Zero가 정착시킨 표준입니다. 의료기기·산업제어 같은 일부 영역은 더 긴 기간(120일~365일)을 적용하기도 합니다.

4.3 논 디스클로저

벤더 내부 또는 의뢰인과 발견자 사이에서만 처리하고 외부 공개를 하지 않는 방식입니다. 모의해킹 위탁 결과 보고서가 여기에 해당합니다.

적용 자리비고
위탁 모의해킹 결과의뢰인 자산만 영향
사내 점검 결과동일
패치 불가 자산EOL(End of Life) 제품 등

4.4 어느 모델을 언제 쓰는가

상황권장 모델
한 벤더의 한 제품코디네이티드
광범위 영향(공개 라이브러리, OS)코디네이티드 + CVE 등록
벤더 무응답 또는 협조 거부90일 후 풀 디스클로저 검토
위탁 점검 결과논 디스클로저(의뢰인 보고서)
현재 악용 중으로 확인된 0-day즉시 풀 디스클로저 또는 KISA 통보

마지막 행이 가장 어려운 결정입니다. 협의된 90일을 기다리는 동안 실제 피해자가 늘어나고 있다면, 코디네이티드 원칙을 깨고 즉시 공개하는 것이 사회 보호 원칙에 부합할 수 있습니다.

현실 사례: Log4Shell 코디네이티드 공개와 강제 공개 (2021)

자바 로깅 라이브러리 Log4j의 RCE 취약점 Log4Shell(CVE-2021-44228)은 코디네이티드 디스클로저가 어떻게 작동하고 또 어떻게 무너지는지를 가장 잘 보여준 사례입니다. 2021년 11월 24일 알리바바의 보안 연구원이 Apache 재단에 비공개로 보고했고, 2주가량 패치 작업이 진행되던 12월 9일에 깃허브와 트위터에서 PoC 코드가 돌기 시작하면서 실제 악용 정황이 포착되었습니다. Apache는 그날 공식 권고와 함께 2.15.0 패치를 긴급 배포했고, 이후에도 추가 우회 공격이 발견되어 2.16, 2.17까지 연쇄 패치가 이어졌습니다.

협의된 비공개 기간 안에서 출발한 공개가 "이미 악용 중"이라는 신호를 만나는 순간 강제 공개로 전환된다는 점, 본문 표의 마지막 행 "현재 악용 중으로 확인된 0-day"가 실제로 어떻게 작동하는지를 보여주는 사건입니다. 동시에 광범위한 영향을 가진 라이브러리에서는 코디네이티드 절차의 시간 마진이 매우 짧다는 점, 메인테이너의 신속한 대응이 곧 사회적 피해 규모를 결정한다는 점도 함께 남긴 사례입니다.

참고 자료: Apache Log4J 취약점이란? (Trend Micro) · What is Log4Shell? (IBM)

5. 취약점 공개의 한국적 맥락

한국에는 KrCERT/CC 취약점 신고 제도, KISA 화이트해커 사례 보호 같은 제도가 있습니다.

제도내용
KrCERT/CC 취약점 신고영향 사업자에게 통보, 협의 후 공개
화이트해커 면책 정책KISA 정책으로, 선의의 보안 연구자에 대한 형사처벌 자제 권고
버그 바운티 플랫폼핵클(Hackle), HackerOne·Bugcrowd 한국 진출

다만 한국 법은 선의의 모의해킹에 대한 명시적 면책 조항이 없습니다. KISA 정책은 행정 가이드라인이지 법적 면책이 아닙니다. 좋은 의도로 점검했더라도 사후에 동의가 없었다고 주장되면 망법 제48조 1항이 적용될 수 있습니다.

이 맥락에서 한국 보안 연구자가 외부 시스템을 점검할 때의 표준 절차는 다음과 같습니다.

  1. 점검 전 명시적 동의를 받거나, 공개 버그 바운티 프로그램에 등록된 자산에만 점검
  2. 동의가 없는 외부 자산은 포트 스캔 수준에서 멈추고, 그 결과를 KrCERT/CC에 신고
  3. 취약점 PoC를 직접 실행하지 않고 추정 단계에서 멈춤

6. 내부 고발

회사가 알면서도 사고를 숨기려 할 때, 또는 명백한 위법을 지시받을 때, 보안 담당자는 내부 고발을 해야 하는가. 이 자리는 윤리적으로 가장 어렵습니다.

6.1 한국의 내부 고발 보호

법령보호 대상
「공익신고자 보호법」공익 침해 행위 신고자
「부패방지권익위법」공직 부패 신고자
「개인정보보호법」 제62조개인정보 위반 신고자 (보복 금지)

내부 고발자는 법적으로 보호받지만, 실무적으로는 회사 내 불이익(평가·승진·재계약)이 빈번합니다. 그래서 고발이 정당한 윤리적 의무인 자리와 사내 절차로 해결할 수 있는 자리를 구분해야 합니다.

6.2 고발 전 점검 절차

6.3 무엇이 고발을 정당하게 만드는가

법적·윤리적으로 고발을 정당하게 만드는 4가지 요건입니다.

요건의미
공익성사적 보복이 아니라 사회 보호 목적
사실성고발 내용이 사실에 부합
내부 절차 선행사내 보고를 먼저 시도했는가
수단의 비례성외부 공개 방식이 과도하지 않은가

이 네 가지를 모두 충족하지 못한 고발은 명예훼손·업무방해로 거꾸로 처벌받을 수 있습니다. 그래서 고발을 결심한 시점부터는 변호사·노무사 상담을 함께 진행하는 것이 표준입니다.

현실 사례: Frances Haugen 페이스북 내부 고발 (2021)

페이스북(현 메타)의 프로덕트 매니저였던 프랜시스 하우건은 회사가 자체적으로 보유한 내부 문서를 미국 증권거래위원회(SEC)와 월스트리트저널에 제공해, 페이스북이 알면서도 청소년 정신건강·증오 표현·민주주의 훼손 같은 사회적 위험을 방치했다는 의혹을 제기했습니다. 2021년 10월에는 미국 상원 통상위원회 청문회에 출석해 자신의 신원을 공개적으로 밝히며 증언했죠.

이 사건이 본문 4가지 요건과 어떻게 맞물리는지 보면 이해가 빠릅니다. 공익성(청소년·민주주의에 미치는 영향), 사실성(내부 문서 자료 기반), 내부 절차 선행(이미 회사 안에서 문제 제기를 했지만 묵살), 수단의 비례성(SEC 신고 → 언론 보도 → 공개 증언으로 단계적 진행). 그녀의 변호사들이 SEC에 8건 이상의 신고서를 별도로 제출한 점은 "고발을 결심한 시점부터 변호사 상담이 표준"이라는 본문의 마지막 문장이 실제로 어떻게 운영되는지를 보여줍니다. 이 사건 이후 미국·EU·한국 모두에서 빅테크 알고리즘 투명성 논의가 본격화되어, 7장에서 다룰 AI 기본법·EU AI Act까지 영향을 남깁니다.

참고 기사: Facebook Whistleblower Frances Haugen Testimony (NPR) · Frances Haugen 공식 청문 진술서 (US Senate)

7. 보안 사고 보고 시 윤리적 판단

내부 고발이 아니더라도, 일상적인 사고 보고에서도 윤리적 판단이 필요한 자리들이 있습니다.

7.1 사고 규모 축소 압력

상황: 회사가 "1만 명 유출"을 "기술적으로는 1만 명이지만 실제 영향은 100명 미만"으로 발표하고 싶어한다. 보안팀에 그 논리를 만들어 달라고 요구.

점검답
법적 정의"유출"은 영향받는 정보주체 수가 기준, 기술적 노출 수가 기준
보안팀의 위치사실에 부합하지 않는 보고서를 만들면 본인이 책임
윤리적 판단사실대로 보고하고, 회사가 다른 표현을 원한다면 그 결정의 책임을 의사결정자에게

7.2 사고 원인 묘사

같은 사고도 표현 방식으로 인상이 달라집니다.

표현평가
"외부 침입자의 정교한 공격"사실 호도 가능 (기본 SQLi였다면)
"관리자 비밀번호 평문 저장으로 인해"정확하지만 회사가 부담
"비밀번호 해시 알고리즘 취약 + 솔트 미적용"정확하고 객관적

윤리적으로 적절한 표현은 마지막입니다. 사실에 부합하면서 책임 소재가 명확한 표현을 쓰는 것이 보안 담당자의 일입니다.

7.3 외부 위탁사 책임 분배

위탁 개발사의 잘못으로 사고가 났는데, 회사가 "위탁사 책임이라 우리는 책임 없다"고 발표하려 한다.

점검답
법적 책임위탁사와 위탁자 모두 책임 (PIPA 양벌규정, 처리위탁 감독 의무)
윤리적 판단책임 회피 발표는 향후 더 큰 사고로 이어짐. 정직한 책임 분담을 권장

8. 윤리적 딜레마 시나리오 토론

이번 회차의 핵심 활동입니다. 정답이 없는 시나리오들을 두고 본인이라면 어떻게 판단할지 적어 보세요. 답을 한 가지로 좁히는 게 아니라, 판단 근거를 명시적으로 적어 보는 것이 목적입니다.

8.1 시나리오 A: 친구 회사의 데이터

당신은 모의해킹 회사 직원이다. 어느 날 친구가 운영하는 작은 SaaS 회사가 위탁 의뢰를 했다. 점검 중 친구 회사가 자기 회사 사용자의 비밀번호를 평문으로 저장하고 있는 것을 발견했다. 친구는 보고서에서 "비밀번호 저장 방식은 문제없음"으로 적어 달라고 부탁한다. ISMS 인증을 받기 위함이라고 한다.

질문본인 답
친구의 부탁을 들어줄 것인가?
무엇을 근거로 판단했는가?
거절한다면 어떻게 거절할 것인가?
사용자(친구 회사의 고객)에게는 알릴 것인가?

8.2 시나리오 B: 발견한 0-day

당신은 한 오픈소스 라이브러리에서 RCE 취약점을 발견했다. 이 라이브러리는 수천 개의 상용 제품에 쓰이고 있다. 메인테이너에게 통보했지만 3개월째 응답이 없다. 그러는 사이 다른 보안 연구자가 비슷한 영역을 탐색하고 있다는 트윗을 봤다.

질문본인 답
90일이 지났으니 풀 디스클로저할 것인가?
추가로 30일을 기다릴 것인가?
KISA 또는 CISA에 통보할 것인가?
패치 우회 방법까지 함께 제공할 것인가, 취약점 존재 사실만 알릴 것인가?

8.3 시나리오 C: 회사 SOC가 발견한 직원 사찰

당신은 회사 보안운영센터(SOC) 분석가다. 침해 의심 트래픽을 분석하던 중, 인사팀이 특정 노조 활동 직원의 메일을 별도 모니터링하고 있다는 사실을 발견했다. 이 모니터링은 회사 정책에 명시되어 있지 않고, 통신비밀보호법 위반 가능성이 있다.

질문본인 답
발견 사실을 누구에게 알릴 것인가?
인사팀에 직접 문제를 제기할 것인가, 다른 라인을 활용할 것인가?
외부 기관 신고를 검토하는 시점은?
본인이 해고될 위험을 어떻게 관리할 것인가?

8.4 시나리오 D: 모의해킹 중 발견한 본인의 정보

당신은 외부 위탁 모의해킹팀의 일원이다. SQL 인젝션이 성공해 회원 데이터베이스를 추출했더니, 본인의 개인정보(과거 이 회사 서비스 가입 기록)가 그 안에 있는 것을 발견했다.

질문본인 답
본인 정보를 별도로 봤다는 사실은 보고서에 적을 것인가?
본인이 가입자였다는 사실 자체가 이해관계 충돌인가?
점검을 계속할 것인가, 다른 팀원에게 인계할 것인가?
본인 데이터의 처리 방식은 일반 데이터와 같은가, 다른가?

8.5 시나리오 E: AI가 만들어 준 익스플로잇

당신은 모의해킹 중 어려운 표적을 만났다. Claude에게 "이 시스템에 대한 익스플로잇을 짜 달라"고 요청했더니, 매우 정교한 0-day 익스플로잇 코드를 만들어 줬다. 시도해 보니 작동한다.

질문본인 답
AI가 만든 코드도 모의해킹에 사용해도 되는가?
이 익스플로잇이 다른 시스템에도 영향을 주는 0-day일 가능성은?
사용 후 코드는 어떻게 처리할 것인가?
보고서에 "AI가 작성"임을 명시할 것인가?

마지막 질문(AI 사용 명시)이 중요합니다. 7장에서 다시 다루지만, AI 산출물은 본인이 만들었다고 표시하면 책임이 완전히 본인에게 옵니다. AI를 썼다는 사실은 숨기는 것이 아니라 명시하는 것이 윤리적 표준입니다.