본문 바로가기

위협·취약점·위험·통제

잠기지 않은 창문은 약점이지만 아무도 접근할 수 없는 곳이라면 당장 위험은 작을 수 있다. 반대로 공격자가 있어도 이용할 약점과 가치 있는 대상이 없다면 피해경로가 끊긴다. 보안 판단은 위협과 취약점을 자산·영향·통제와 연결해야 한다.

약점이 있다고 항상 사고가 나는 것은 아니다

잠기지 않은 창문은 약점이지만 아무도 접근할 수 없는 곳이라면 당장 위험은 작을 수 있다. 반대로 공격자가 있어도 이용할 약점과 가치 있는 대상이 없다면 피해경로가 끊긴다. 보안 판단은 위협과 취약점을 자산·영향·통제와 연결해야 한다.

위협과 취약점

위협(threat)은 자산을 해칠 수 있는 원인, 사건 또는 행위자와 그 가능한 행위다. 취약점(vulnerability)은 설계·구현·설정·절차·사람에 존재해 위협이 악용할 수 있는 약점이다. 취약점의 존재와 실제 위험은 같지 않다. 노출 정도, 악용 가능성, 자산 가치, 피해와 기존 통제를 함께 판단해야 한다.

위협경로를 문장으로 잇는다

외부 공격자가 탈취한 계정으로 관리 API를 호출해 고객정보를 내려받는다처럼 행위자, 진입점, 약점, 행위, 자산과 결과를 잇는다. 각 연결에서 인증 강화, 최소권한, 호출 제한, 이상탐지와 대응처럼 예방·탐지·대응 통제를 배치한다. 남은 경로와 통제 실패 가능성도 기록한다.

목록을 복사하면 우선순위를 잃는다

유명한 공격명만 나열하면 자신의 자산과 경계에서 가능한 경로인지 알 수 없다. 점수가 높은 취약점을 무조건 먼저 고치면 노출되지 않은 약점에 자원을 쓰고 치명적 업무경로를 놓칠 수 있다. 판단 시점의 구조·노출·공격능력과 피해를 근거로 우선순위를 정하고 변화 뒤 다시 평가한다.

의도적 공격 위협이 실제 피해로 이어지는 경로

외부 접속을 막아도 조직망의 인가 누락은 남는다

상자 안의 대상과 화살표의 조건을 함께 읽으세요. 좁은 화면에서는 같은 관계를 세로로 재배치한 도식을 보여 줍니다.

외부 접속을 막아도 조직망의 인가 누락은 남는다관리 API를 조직망으로 제한한 변경 조건이다. 외부 접속 거부는 한 경로를 줄인다. 조직망 일반계정도 접속할 수 있으면 객체별 인가 누락을 거쳐 다른 고객정보를 조회하는 경로가 남는다. 내부 오용·탈취 위협과 고객정보 피해를 연결해 같은 우회·탐지 시험을 한다.outside → blocked: 차단inside → entry: 접속 가능entry → vulnerability: 악용 가능vulnerability → abuse: 인가 없음abuse → damage: 훼손·영향차단접속 가능악용 가능인가 없음훼손·영향조직망 관리 API · 접속 가능한 일반계정 포함외부 계정·공격자: 직접 접속 시도외부 계정·공격자직접 접속 시도외부 접속 거부: 조직망 제한 통제외부 접속 거부조직망 제한 통제조직망 일반계정: 오용·탈취 가능 위협조직망 일반계정오용·탈취 가능 위협노출된 관리 API: 조직망에서는 접속 허용노출된 관리 API조직망에서는 접속 허용취약점: 객체별 권한검사 누락취약점객체별 권한검사 누락허용되지 않은 행위: 다른 고객번호로 조회허용되지 않은 행위다른 고객번호로 조회자산·업무 피해: 대량 고객정보 조회 기밀성·신뢰·업무 피해자산·업무 피해대량 고객정보 조회기밀성·신뢰·업무 피해
외부 접속을 막아도 조직망의 인가 누락은 남는다관리 API를 조직망으로 제한한 변경 조건이다. 외부 접속 거부는 한 경로를 줄인다. 조직망 일반계정도 접속할 수 있으면 객체별 인가 누락을 거쳐 다른 고객정보를 조회하는 경로가 남는다. 내부 오용·탈취 위협과 고객정보 피해를 연결해 같은 우회·탐지 시험을 한다.outside → blocked: 차단inside → entry: 접속 가능entry → vulnerability: 악용 가능vulnerability → abuse: 인가 없음abuse → damage: 훼손·영향차단접속 가능악용 가능인가 없음훼손·영향조직망 관리 API ·접속 가능한 일반계정포함외부 계정·공격자: 직접 접속 시도외부계정·공격자직접 접속 시도외부 접속 거부: 조직망 제한 통제외부 접속 거부조직망 제한 통제조직망 일반계정: 오용·탈취 가능 위협조직망 일반계정오용·탈취 가능 위협노출된 관리 API: 조직망에서는 접속 허용노출된 관리 API조직망에서는 접속허용취약점: 객체별 권한검사 누락취약점객체별 권한검사 누락허용되지 않은 행위: 다른 고객번호로 조회허용되지 않은행위다른 고객번호로 조회자산·업무 피해: 대량 고객정보 조회 기밀성·신뢰·업무 피해자산·업무 피해대량 고객정보 조회기밀성·신뢰·업무피해

관리 API를 조직망으로 제한한 변경 조건이다. 외부 접속 거부는 한 경로를 줄인다. 조직망 일반계정도 접속할 수 있으면 객체별 인가 누락을 거쳐 다른 고객정보를 조회하는 경로가 남는다. 내부 오용·탈취 위협과 고객정보 피해를 연결해 같은 우회·탐지 시험을 한다.

의도적 공격에서는 위협원·사건의 능력·의도·발생조건 → 노출된 진입점 → 악용 가능한 취약점 → 허용되지 않은 행위 → 자산 훼손·업무 피해를 잇는다. 예방은 진입·악용을 막고, 탐지는 행위를 알아채며, 대응은 진행을 제한하고 복구는 자산·업무를 되찾는다.

이 공격 시나리오에서 위협과 취약점 사이에는 실제 악용 가능한 연결이 있어야 한다. 약점이 있지만 외부에서 도달하지 못하고 내부 사용자에게도 필요한 권한이 없다면 현재 경로의 가능성은 낮아질 수 있다. 반대로 작은 설정오류라도 인터넷에 노출된 중요 관리기능과 연결되면 피해경로가 짧다. 통제 뒤에도 남은 경로와 실패 시 피해를 기록해야 우선순위가 설명된다.

이 그림은 의도적 공격의 경로를 설명한다. 일반적인 위협은 공격자만을 뜻하지 않는다. 잘못된 운영 명령이라는 비의도적 오류, 저장장치 고장, 침수 같은 환경사건도 자산·업무를 해칠 수 있다. 이때는 악용 의도를 억지로 넣지 않고 “발생조건→취약한 보호/복구 구조→영향”을 대조한다. 예컨대 실수로 삭제할 가능성에는 승인·복구본·복원시험이, 침수에는 위치·방수·분산복구가 어떤 영향을 줄이는지 평가한다.

위협·취약점·위험·통제를 섞지 않는다

구분답하는 질문주문 관리 예
위협무엇이 자산을 해칠 수 있는가탈취 계정을 이용하는 외부 공격자
취약점악용 가능한 약점은 무엇인가관리 기능에 객체별 권한검사가 없음
위협경로어떤 순서로 자산에 도달하는가로그인 → 다른 고객번호 입력 → 주문정보 조회
위험그 경로로 피해가 발생할 가능성과 영향은 무엇인가대량 개인정보 유출과 신뢰·업무 피해
통제경로·가능성·영향을 어떻게 바꾸는가서버 인가, 호출제한, 탐지, 계정차단과 통지

취약점 개수는 위험 크기와 같지 않고, 통제 개수도 위험 감소량과 같지 않다. 실제 경로에서 통제가 어느 연결을 끊고 실패하면 무엇이 남는지를 설명해야 한다.

모든 약점을 동시에 고칠 수 없을 때

패치가 있는 약점부터 기계적으로 고르면 측정은 쉽지만 중요한 노출경로를 놓칠 수 있다. 반대로 치명적 시나리오만 보다가 넓게 퍼진 기본설정 오류를 방치할 수도 있다. 우선순위는 자산 피해, 외부·내부 노출, 악용에 필요한 조건, 이미 배치된 통제, 발견 가능성, 복구 난이도와 수정에 따른 중단비용을 함께 본다.

즉시 수정이 어려우면 접근차단·기능중지·감시 강화처럼 경로를 임시로 줄일 수 있지만, 임시통제에는 책임자·만료일·원래 수정계획을 붙인다. 위험을 수용한다는 말은 방치가 아니라 남은 경로와 피해, 결정권자, 재검토 조건을 알고 선택했다는 뜻이다.

실무 사례: 관리 API의 세 경로를 비교한다

고객관리 기능에 다음 세 후보가 발견됐다고 하자.

후보노출·악용조건예상 피해판단
오래된 시험페이지외부에서는 차단, 운영망 읽기만 가능제한된 내부정보 노출접근기록을 보며 계획에 따라 수정
객체별 인가 누락일반 고객 계정으로 다른 고객번호 조회 가능대량 개인정보 조회즉시 서버 인가 추가, 호출제한·탐지 병행
관리화면 표시 오류관리자만 접근, 저장값은 정상운영 혼선검증 후 다음 배포에서 수정

두 번째 후보는 기술 이름이 화려해서가 아니라 낮은 권한으로 중요 자산에 곧바로 도달하기 때문에 우선한다. 수정 뒤에는 자신의 정보 조회는 성공하고 다른 고객 조회는 거부되는지, 반복 시도가 탐지되는지, 이미 발생한 조회를 기록으로 찾을 수 있는지 시험한다. 이것이 약점 목록을 통제와 증거로 바꾸는 과정이다.

조건변경 문제로 서버 인가는 아직 고치지 않고 관리 API의 접속을 조직망으로만 제한했다고 하자. 조직망에서는 일반 계정도 이 API에 접속할 수 있다는 가정이다. 이제 외부 접속이 거부되었다는 시험 하나로 두 번째 취약점을 해결했다고 판단할 수 있는가? 아니다. 외부에서 바로 들어오는 경로는 줄었지만, 조직망 안의 일반 계정이 다른 고객번호로 조회하는 경로에는 여전히 객체별 인가가 없다. 내부 계정의 오용이나 탈취라는 위협과 고객정보라는 자산을 연결해 같은 우회 시험을 해야 한다. 접속제한 통제 하나 추가=취약점 제거라는 오답은 통제가 실제로 끊은 연결과 남은 연결을 구분하지 않은 결과다. 위협경로 그림과 기존통제 평가로 돌아가 남은 위험을 다시 기록한다.

접속·인증·인가를 같은 조회에서 차례로 확인한다

조직망 제한은 API까지 접속할 수 있는가, 인증은 요청자가 누구인가, 인가는 그 요청자가 이 고객정보를 읽어도 되는가를 각각 묻는다. 조직망에서 로그인에 성공했다는 사실만으로 모든 고객정보의 조회 권한이 생기지 않는다. 위 그림의 조직망 일반계정 → 노출된 관리 API와 객체별 권한검사 누락 → 다른 고객번호로 조회는 서로 다른 연결이다.

기존 사례에 시험 조건을 명시하자. 일반 계정 A는 고객 101만, 일반 계정 B는 고객 202만 읽을 수 있고 두 계정 모두 관리자 역할은 없다. 이는 자체 교육용 권한정책이다. 서버는 검증된 로그인 신원과 서버에 저장한 고객별 읽기 권한을 사용해 요청한 고객 객체에 대한 읽기 허용을 판단한 뒤 데이터를 반환한다. 클라이언트가 보낸 계정명·권한표를 그대로 믿거나 사용자번호와 고객번호가 같은지만 비교하는 방식으로 일반화하지 않는다.

같은 고객 조회 기능을 다음 입력으로 대조한다.

  1. 외부망에서 A가 고객 101을 요청하면 조직망 제한에서 거부된다. 뒤의 인증·인가 시험을 통과했다는 뜻은 아니다.
  2. 조직망에서 로그인 없이 고객 101을 요청하면 인증에서 거부된다. 조직망에 있다는 사실이 신원을 대신하지 않는다.
  3. 조직망에서 인증된 A가 고객 101을 요청하면 이 정책의 읽기 권한이 있어 허용된다. 응답에는 허용된 고객 101의 정보만 있어야 한다.
  4. 조직망에서 인증된 A가 고객 202를 요청하면 접속·인증은 통과해도 객체별 인가에서 거부된다. 고객 202의 데이터가 응답에 없어야 한다. 이 경우를 고객 101의 정상 조회와 짝지어야 인가 보완 뒤에도 필요한 업무가 가능한지 확인할 수 있다.

네 입력은 통제별 예상 판단을 설명하는 시험 설계이며 실제 API 실행 결과가 아니다. 어떤 응답코드를 쓸지는 서비스 정책으로 정하되, 거부 응답에서 다른 고객 데이터가 새지 않는지와 인가 결정·반복 시도 기록을 확인한다. 관리화면에서 버튼을 숨기거나 고객번호를 추측하기 어려운 UUID로 바꾸는 것만으로 4번의 서버 권한검사를 대신할 수 없다.

객체마다 요청자의 권한을 확인하는 원칙은 OWASP API1:2023의 객체 수준 인가 누락과 대조했다. 인증과 인가의 구분 및 요청마다 권한을 검사하는 원칙은 OWASP Authorization Cheat Sheet를 참고했다. 위 계정·고객번호·허용정책과 네 시험 입력은 원문 사례에 붙인 자체 교육 예다.

시험에서는 무엇을 요구하는가

위협과 취약점의 차이를 설명하고, 정보시스템의 위협경로 분석과 통제 우선순위 결정방안을 제시하시오.

차이는 원인·행위와 악용 가능한 약점을 분리하라는 요구다. 위협경로 분석에는 행위자–진입점–취약점–행위–자산–피해 순서가 필요하다. 우선순위에는 가능성과 영향뿐 아니라 노출·기존통제·복구성과 수정비용까지 판단근거가 있어야 한다.

풀이 방향과 모범답안 보기

답안 목차

  1. 위협·취약점·위험·통제의 경계
  2. 행위자에서 자산피해까지의 위협경로
  3. 자산·노출·악용조건·기존통제 평가
  4. 예방·탐지·대응·복구 통제 배치
  5. 우선순위·임시통제·잔여위험과 재평가

답안에 그릴 도식

공격 경로의 연결통제와 판단
위협원 → 진입점차단·노출·도달 가능성
진입점 → 취약점 → 악용행위예방·악용조건·기존통제
행위 → 자산 → 업무피해탐지·대응·복구
통제와 증거 → 잔여위험 결정가능성·영향·증거 재평가

남은 내부 경로 그림에서 어느 연결이 실제로 끊겼는지와 남았는지를 대조한다.

이 도식의 진입·악용행위는 공격 시나리오에 해당한다. 비의도적 오류·기술고장·환경사건은 별도의 발생 경로로 평가하며 공격자가 없다는 이유만으로 위험이 0이라고 판단하지 않는다.

모범답안

위협은 자산을 해칠 수 있는 원인·사건·행위자와 가능한 행위이고, 취약점은 설계·구현·설정·절차·사람에 존재해 위협이 악용할 수 있는 약점이다. 취약점이 있다는 사실만으로 실제 위험이 결정되지는 않는다. 행위자와 진입점에서 약점·행위·자산·업무피해까지 이어지는 경로, 노출과 악용조건, 기존통제를 함께 보아야 한다.

우선순위는 자산피해와 회복곤란성, 경로의 도달 가능성, 필요한 권한과 공격능력, 탐지 가능성, 통제 실패와 수정에 따른 중단비용으로 정한다. 각 경로에 예방·탐지·대응·복구 통제를 배치하고 정상·거부·우회 사례를 시험한다. 즉시 수정이 어려운 약점은 만료일이 있는 임시통제로 노출을 줄이며, 통제 뒤 남은 경로와 피해는 승인권자가 수용·추가감소·회피 여부를 결정하고 변화 뒤 재평가한다.

한 번에 되찾기

위협은 해칠 수 있는 원인·행위이고 취약점은 악용 가능한 약점이다. 실제 위험은 위협경로, 노출, 자산 피해와 통제를 연결해 판단한다.