목록으로
업무 생산성 개선을 위한 AI 활용
일일 무인 보안 브리핑 — AI에게 파일 쓰기 권한을 주는 대신 검증과 실패 알림을 코드에 맡겨, 11일간 무인으로 굴린 이야기
👤 노란독수리252 📅 2026-09-09 👁 조회 24
보안전문가으로 일하면서 매체를 돌며 매일 1시간 이상 걸리던 보안 뉴스·CVE 확인을 무인 루틴으로 옮겼습니다. 아침 08:20에 취약점 3건과 보안 강화 개념 2건이 스스로 조사·검증되어 메일로 도착합니다. 사람이 지켜보지 않는 자리는 검증 게이트와 실패 알림으로 메웠습니다.
① 어떤 상황에서 AI를 활용했나요?

인프라와 보안을 함께 보는 저의 실무에서는 어제 공개된 취약점을 오늘 알고 있는지가 업무의 질을 가릅니다. 그런데 봐야 할 곳이 흩어져 있습니다. 해외 보안 매체, 미국 CISA의 악용 취약점 목록(KEV), 국내 KISA 보호나라, 연구팀 블로그, 그리고 NIST와 OWASP 같은 표준 문서까지 매체마다 다른 자리에 있습니다.

이 일에 매일 1시간 이상을 쓰고 있었습니다. 보안 뉴스와 IT 뉴스를 훑고, 신규 CVE 등록 현황을 따로 확인하고, 그중 내가 맡은 환경에 걸리는 것이 있는지 골라내는 데 그만큼 걸렸습니다.

그런데 더 큰 문제는 시간이 아니라 연속성이었습니다. 바쁜 날에는 건너뛰게 되고, 한 번 건너뛴 날은 영영 다시 보지 않습니다. 하필 그 빈 하루에 내가 쓰는 제품의 취약점이 공개되면, 한 칸의 공백이 그대로 위험이 됩니다. 그래서 목표를 "읽는 시간을 줄이는 것"이 아니라 "내가 잊어도 도착하게 만드는 것"으로 잡았습니다. 챗봇에 매일 아침 물어보는 방식은 이 목표를 풀지 못합니다. 물어보는 것을 잊는 날이 반드시 오기 때문입니다.


② 어떤 AI를 어떻게 활용했나요?

Claude Code를 헤드리스 모드(claude -p)로 Windows 작업 스케줄러에 물려, 매일 08:20에 사람 없이 실행되게 했습니다. 한 번 실행되면 아래 여섯 단계가 자동으로 지나갑니다.

1단계 중복 실행 가드 — 오늘 날짜로 이미 보낸 기록이 있으면 AI를 부르지 않고 즉시 끝냅니다.
2단계 지시문 조립 — 최근 30일간 다룬 제목 전부를 지시문에 끼워 넣습니다. 어제 쓴 주제를 오늘 또 쓰지 않게 하기 위해서입니다.
3단계 AI 실행 — 읽기 전용 도구(웹 검색, 원문 확인, 파일 읽기)만 허용하고, 1회 비용 상한 1.5달러와 20분 제한 시간을 걸어 실행합니다.
4단계 본문 회수 — AI의 응답을 표준 출력으로 받아 Python이 파일로 저장합니다. AI는 파일을 건드리지 않습니다.
5단계 기계 검증 — 아래 네 가지를 코드가 직접 셉니다. 하나라도 미달이면 발송하지 않습니다.
6단계 발송 또는 실패 알림 — 통과하면 브리핑을 첨부해 메일로 보내고, 실패하면 실패 사유와 실행 로그를 대신 메일로 보냅니다.

지시문 한 장이 편집 기준을 고정합니다. 매일 다섯 건을 만들되 구성은 신규 취약점 3건과 보안 강화 개념 2건으로 고정하고, 취약점은 최근 7일 이내에 공개된 것을 우선하며, 강화 개념 2건은 그날의 취약점과 이어지는 것으로 고릅니다. 인증 우회 취약점이 나온 날에는 세션 관리나 제로트러스트를 강화 개념으로 붙이는 식입니다. 항목마다 "무엇인가 / 왜 중요한가 / 확인·대응 포인트 / 출처" 네 칸을 채우게 했습니다.

사실성 규칙은 지시문 안에서 다른 모든 지시보다 우선한다고 못박았습니다. 링크는 검색 결과에 실제로 등장한 것만 쓰고 주소를 조합해 만들지 않습니다. CVE 번호와 CWE 번호는 출처에 적힌 것만 쓰고, 확인되지 않으면 번호를 지어내는 대신 "CVE 미발급" 또는 "CVE 미확인"이라고 적습니다. 조사하다 근거가 부실하다고 판단되면 그 주제를 버리고 다른 주제로 바꿉니다. 틀린 내용을 담느니 항목 수가 줄어드는 편이 낫다고 명시했습니다.


③ 활용 결과 어떤 변화가 있었나요?

2026년 8월 28일에 첫 브리핑이 도착했고, 9월 8일까지 12일 중 11일 발송됐습니다. 누적 항목은 60건입니다. 빠진 하루는 PC를 꺼 둔 날이고, 그 다음 날 결함으로 두 통이 나간 일도 있었습니다(④에 적었습니다).

한 번 도는 데 걸리는 시간은 약 4분입니다. 9월 8일 실행 로그를 그대로 옮기면 이렇습니다.

08:20:02 시작
08:23:56 AI 종료, 검증 통과 (10,101바이트 / 항목 5건 / 출처 링크 9개)
08:24:01 발송 완료

이 4분 동안 제가 하는 일은 없습니다. 자고 있거나 출근 중입니다.

제가 들이는 시간은 하루 1시간 이상에서 0분이 됐습니다. 매체를 돌아다니며 훑고 신규 CVE를 확인하던 일이 위의 4분 안에 끝나 있고, 저에게 남은 것은 도착한 다섯 건을 읽는 시간뿐입니다. 여기서 줄어든 것이 "읽는 시간"이 아니라 "찾는 시간"이라는 점이 중요합니다. 읽는 일은 사람이 해야 하지만, 찾아 모으고 추려 형식을 맞추는 일은 사람이 하지 않아도 되는 일이었습니다.

그리고 시간보다 크게 달라진 것은 빠짐이 없어진 것입니다. 예전에는 여유 있는 날에만 챙겨 보다가 바쁜 주에는 통째로 비었습니다. 1시간을 낼 수 있는 날에만 하는 일은, 1시간을 낼 수 없는 주에는 0이 됩니다. 지금은 바쁜 날에도 08:24에 메일이 와 있고, 제목 다섯 줄만 봐도 오늘 남의 일이 아닌 것이 있는지 3초 만에 판단됩니다.

부수적으로 개인 아카이브가 생겼습니다. 60건이 날짜별 파일로 쌓여 있어서 나중에 검색이 됩니다. 실제로 다룬 항목을 몇 개만 옮기면 이렇습니다.

08-28 Citrix NetScaler 메모리 오버플로가 서비스 거부에서 root 권한 원격 실행으로 확대
09-06 인가 검사는 "포함"이 아니라 "정확한 일치"로 (Kestra 접두사 매칭 우회 사례와 연결)
09-07 MikroTik RouterOS 취약점 체인, 무인증 관리자 권한 탈취 실공격 확인
09-08 업로드 기능은 실행 경로다 — 파일 업로드 검증 원칙 (WordPress 44만 건 실공격과 연결)


④ 나만의 방식 또는 개선 포인트는 무엇인가요?

네 가지이고, 전부 "사람이 지켜보지 않는다"는 한 가지 전제에서 나왔습니다. 대화형으로 AI를 쓸 때는 이상한 답이 오면 사람이 그 자리에서 알아챕니다. 무인으로 돌리는 순간 그 눈이 사라집니다. 그 빈자리를 무엇으로 메우느냐가 이 사례의 전부입니다.

첫째, AI에게 파일 쓰기 권한을 주지 않았습니다.
처음에는 AI가 직접 파일을 저장하게 만들려 했습니다. 그런데 무인 실행 모드에서는 쓰기가 차단되어 있었고, 더 나쁜 것은 그 실패가 조용했다는 점입니다. AI는 종료코드 0, 즉 정상 종료를 보고했는데 파일만 없었습니다. 성공했다고 말하면서 아무것도 안 한 것입니다. 해결은 권한을 여는 것이 아니라 권한이 필요 없게 만드는 것이었습니다. AI는 읽기 전용으로 두고 본문을 화면에 뱉게 한 뒤, 저장은 Python이 합니다. 권한을 하나 줄였더니 실패 지점도 하나 사라졌습니다.

둘째, 검증을 사람이 아니라 코드가 합니다.
많은 AI 활용 사례가 "AI는 초안을 쓰고 사람이 최종 확인한다"로 끝납니다. 무인 루틴에서는 그 문장을 쓸 수 없습니다. 확인할 사람이 그 시간에 없기 때문입니다. 그래서 사람이 확인하던 것 중 기계가 셀 수 있는 것만 골라 코드로 옮겼습니다. 최소 2,500바이트 이상일 것, 큰 제목으로 시작할 것, 항목이 4건 이상일 것, 출처 링크가 4개 이상일 것. 이 중 하나라도 미달이면 메일은 나가지 않습니다. 특히 출처 링크 개수를 세는 것이 값쌉니다. AI가 근거 없이 지어낸 글은 링크가 먼저 마르기 때문에, 링크 개수가 사실성의 대리 지표가 됩니다.

셋째, 실패가 소리를 냅니다.
검증에 걸리면 조용히 끝내지 않고, 실패 사유와 실행 로그를 담은 메일을 대신 보냅니다. 무인 작업에서 가장 위험한 상태는 고장이 아니라 침묵입니다. 실패 알림이 없으면 "메일이 안 온 날"과 "브리핑이 안 만들어진 날"을 구분할 수 없고, 며칠 지나도 멈춘 줄 모릅니다.

넷째, 어제까지 쓴 제목을 오늘 지시문에 되먹입니다.
매일 도는 작업에는 대화형에 없는 고유한 문제가 있습니다. 어제와 같은 것을 또 만든다는 것입니다. 최근 30일치 제목 전부를 지시문에 넣어 같은 주제를 다시 다루지 않게 했습니다. 어제의 출력이 오늘의 입력이 되는 구조입니다.

그리고 실제로 결함이 하나 더 났습니다. PC를 꺼 둔 날 걸렀던 실행이 다음 날 부팅 직후 대신 실행되는데, 그 밀린 실행도 "오늘 날짜"로 브리핑을 만듭니다. 그래서 부팅 직후 한 통, 정규 시각인 08:20에 또 한 통, 하루에 두 통이 나갔습니다. 오늘 날짜로 이미 보낸 기록이 있으면 AI를 부르지 않고 끝내는 가드를 넣어 고쳤습니다. 진단이 어려웠던 이유는 로그 파일 이름이 날짜뿐이라 나중 실행이 앞선 실행의 로그를 덮어썼기 때문입니다. 그래서 로그를 덮어쓰지 않고 이어 붙이도록 바꿨습니다. 무인 루틴에서는 흔적을 지우지 않는 것이 곧 진단 능력입니다.


⑤ 다른 사람도 따라 할 수 있나요?

따라 할 수 있습니다. 실제로 만들어야 하는 것은 파일 세 개뿐입니다. 무엇을 조사해 어떤 형식으로 낼지 적은 지시문 한 장, 실행과 검증과 발송을 맡는 Python 파일 하나, 작업 스케줄러에 등록하는 스크립트 하나입니다. 준비물은 Windows에 기본으로 들어 있는 작업 스케줄러, Python, 그리고 메일을 보낼 계정입니다. 코드를 새로 짤 필요는 없고, 만드는 과정 자체도 AI에게 시킬 수 있습니다.

주제를 바꾸는 것은 지시문의 표 한 줄을 고치는 일입니다. 저는 "신규 취약점 3건 + 보안 강화 개념 2건"으로 두었지만, 이 칸을 바꾸면 그대로 다른 사람의 아침 브리핑이 됩니다. 담당 분야의 법령 개정과 행정예고, 관심 분야의 신규 논문, 업종별 조달 공고, 경쟁사 동향처럼 매일 조금씩 바뀌면서 놓치면 손해인 것이면 무엇이든 들어갑니다. 도메인 지식이 필요한 부분은 코드가 아니라 "나는 매일 무엇을 받고 싶은가"와 "무엇이 채워져 있어야 제대로 만들어진 것인가" 두 가지뿐입니다.

옮기는 분께 순서를 하나 권합니다. 본체보다 검증 게이트와 실패 알림을 먼저 만드십시오. 무인 자동화는 잘 도는 동안에는 아무 일도 없다가, 조용히 멈춘 뒤에도 한동안 아무 일이 없습니다. 저는 AI가 성공했다고 말하면서 파일을 남기지 않는 것을 보고 이 순서를 배웠습니다.
← 목록