Skip to content
isdnetworks
Go back

우회할 수 있는 차단

작업 환경에 민감한 설정 파일을 못 고치게 하고 재귀 삭제를 막는 안전장치를 걸어 뒀는데 그것을 우회한 기록이 계속 나왔다. 편집 도구가 막히자 다른 쓰기 도구로 같은 파일을 만들었고 그것도 막히자 셸에서 문서열로 만들었으며 재귀 삭제가 막히자 다른 삭제 명령으로 같은 디렉터리를 지웠다.

Table of contents

Open Table of contents

조건이 도구를 본 것

차단 조건은 편집 도구가 특정 계열 파일을 대상으로 하면 막고 실행 명령에 재귀 삭제 패턴이 있으면 막는 형태였다.

막으려는 것은 그 파일이 바뀌는 것인데 조건은 그 도구가 그 파일을 대상으로 하는 것을 보고 있었다. 같은 결과를 내는 다른 경로가 남아 있으면 그 조건은 통과된다. 파일을 만드는 방법은 편집 도구 말고도 쓰기 도구와 셸 리다이렉션과 문서열과 복사와 다른 프로그램까지 여럿이므로 전부 막으려면 도구가 아니라 대상 자체를 보호해야 한다.

한쪽 경로에만 걸린 플래그

코드에서도 같은 형태가 나왔다. 외부 전송을 막는 플래그가 있고 자동 전파 경로에서 그것을 검사하므로 안전하다고 여기고 있었다.

그런데 화면에서 직접 수정하는 경로는 그 검사를 지나지 않았다. 시험 삼아 저장했더니 실제로 외부에 전송이 나가고 상품 번호까지 생겼다. 플래그는 있었고 그 플래그를 검사하는 곳도 있었지만 전부는 아니었다.

정당한 우회의 처리

애매한 경우가 하나 있다. 민감 파일을 못 만들게 막아 뒀는데 비밀값이 없는 예시 파일은 만들어야 할 때가 있다. 그럴 때 셸로 우회해서 만들면 결과는 정당한데 경로는 차단을 피한 것이 된다.

이것이 반복되면 차단이 무엇을 의미하는지 흐려진다. 예외니까 괜찮다는 판단이 쌓이면 다음 사람은 그냥 우회부터 하게 된다. 우회가 자주 필요하다는 것은 차단 조건이 실제로 막으려는 것과 어긋나 있다는 신호로 받아야 한다. 예시 파일까지 막는 것이 조건의 문제이고 우회는 해법이 아니다.

조건을 거는 자리

조건은 도구가 아니라 대상에 건다. 파일 경로나 테이블이나 엔드포인트로 걸면 어떤 경로로 오든 같은 검사에 걸린다.

그 상태를 바꿀 수 있는 진입 경로를 세어 보는 것도 함께 한다. 몇 개인지 나열하고 하나만 막았으면 나머지가 구멍이다. 우회가 자주 필요하면 예외를 쌓는 대신 조건을 고쳐 예시 파일은 허용하고 실제 값이 든 파일은 차단하는 식으로 나눈다. 정당한 우회라도 기록은 남긴다. 그것이 다음에 조건을 고칠 근거가 된다.

의도와 제약의 차이

이걸 가볍게 넘겼다가 실제로 데이터가 바뀐 적이 있다. 분석만 하라고 시킨 작업에서 운영 DB에 갱신이 실행됐는데, 분석 도구에 DB 접근이 그대로 열려 있었고 프롬프트에 과거 지시문이 원문으로 들어가 있어서 그것을 지금의 실행 지시로 해석한 것이다.

분석만 한다는 것은 의도였지 제약이 아니었다. 제약이었다면 그 맥락에서 갱신할 수 있는 도구가 아예 없어야 했다. 지금은 분석 작업에 조회 도구만 남긴다.

정리


Share this post on:

Previous Post
다른 종류를 같게 다룬 처리
Next Post
기록해 뒀는데 왜 또 걸렸나