Evolution of Log-Based Detection Rules in Public Repositories
이 논문은 공개 저장소 내 로그 기반 탐지 규칙 진화에 대한 최초의 종단적 분석을 제시하며, 규칙의 변화가 주로 비단조적이며 안정적인 형태로의 꾸준한 수렴보다는 탐지 범위와 오탐 사이의 지속적인 운영상 절충 관계를 반영한다는 것을 밝힌다.
원본 논문은 CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) 라이선스로 제공됩니다. 이것은 아래 논문에 대한 AI 생성 설명입니다. 저자가 작성하거나 승인한 것이 아닙니다. 기술적 정확성을 위해서는 원본 논문을 참조하세요. 전체 면책 조항 읽기
당신이 특정 유형의 범죄자를 잡으려는 형사라고 상상해 보세요. 당신은 그들을 식별하기 위한 일련의 지침, 즉 '규칙'을 작성합니다. 예를 들어, 규칙이 다음과 같을 수 있습니다: "빨간 모자를 쓰고 파란 가방을 들고 있는 사람을 보면 경보를 울려라."
사이버 보안의 세계에서 이러한 "규칙"은 **로그 기반 탐지 규칙(log-based detection rules)**이라고 불립니다. 이는 보안 전문가들이 수백만 개의 컴퓨터 기록(로그)을 스캔하여 나쁜 놈들을 찾아내는 데 사용하는 지침입니다.
이 논문은 이러한 형사의 지침이 시간이 흐름에 따라 어떻게 변하는지에 대한 장기 연구입니다. 연구진은 보안 전문가들이 규칙을 공유하는 두 개의 거대한 공개 도서관인 Sigma 프로젝트(커뮤니티 주도 그룹)와 Splunk Security Content(선별된 전문 컬렉션)를 조사했습니다. 그들은 규칙의 진화를 관찰하기 위해 거의 10년 동안 수천 개의 규칙을 추적했습니다.
연구 결과는 다음과 같습니다. 이해를 돕기 위해 쉬운 비유를 사용했습니다.
1. 규칙은 결코 "완성"되지 않는다
한 번 형사가 규칙을 쓰면 그것이 영원히 그대로 유지될 것이라고 생각할 수도 있습니다. 하지만 연구진은 56%의 규칙이 적어도 한 번은 다시 작성된다는 것을 발견했습니다.
이 규칙들을 수프의 레시피라고 생각해 보세요.
- 처음에는 레시피를 씁니다: "소금과 후추를 넣으세요."
- 나중에 너무 짜다는 것을 깨닫고 이렇게 바꿉니다: "소금을 적게 넣으세요."
- 그다음 마늘을 빠뜨렸다는 것을 깨닫고 다시 추가합니다: "마늘을 넣으세요."
- 그러다 마늘 때문에 너무 매워졌다는 것을 깨닫고 다시 제거합니다: "마늘을 빼세요."
연구 결과, 규칙은 끊임없이 수정됩니다. 규칙은 단순히 직선적으로 "나아지는" 것이 아니라, 재료를 더하고 빼면서 계속 오르락내리락합니다.
2. "시소" 효과
가장 놀라운 발견은 이 규칙들이 좀처럼 안착하지 못한다는 점입니다. 대신, 이들은 시소처럼 작동합니다.
- A측 (커버리지/범위): 때때로 형사는 더 많은 범죄자를 잡고 싶어 합니다. 그래서 규칙을 더 넓게 만듭니다: "빨간 모자를 쓰거나, 파란 가방을 들거나, 초록색 스카프를 두르고 있다면 경보를 울려라!" 이것은 더 많은 나쁜 놈들을 잡을 수 있지만, 무고한 사람들까지 실수로 잡아낼 수도 있습니다(오탐/False Alarms).
- B측 (오탐/False Positives): 그러다 형사는 무고한 사람들이 잡히는 것에 짜증이 납니다. 그래서 규칙을 더 엄격하게 만듭니다: "빨간 모자를 쓰고 '동시에' 파란 가방을 들고 있을 때만 경보를 울려라." 이것은 오탐을 막아주지만, 이제 진짜 범죄자를 놓칠 수도 있습니다.
연구에 따르면 약 3분의 1의 규칙이 수년간 이 두 측면 사이를 왔다 갔다 합니다. 이들은 완벽한 중간 지점을 찾아 그곳에 머무는 것이 아니라, 계속해서 요동칩니다. 나쁜 놈을 잡는 것과 보안 팀을 오탐으로 괴롭히지 않는 것 사이의 균형을 맞추기 위해 끊임없이 시도하는 것입니다.
3. 변화를 연구하는 방법
연구진은 단순히 텍스트만 보고는 변화를 이해할 수 없었습니다. 왜냐하면 보안 전문가들이 같은 로직을 다른 방식으로(예: 문장을 더 격식 있게 다시 쓰는 방식) 자주 다시 쓰기 때문입니다.
그들은 **"프레디케이트 그래프(Predicate Graph)"**라는 특별한 도구를 발명했습니다.
- 비유: 복잡한 문장을 가져와서 가족 계보도(가계도) 다이어그램으로 만드는 것을 상상해 보세요.
- "AND"와 "OR" 같은 단어들은 가지(branches)가 됩니다.
- "빨간 모자"나 "파란 가방" 같은 구체적인 세부 사항들은 잎(leaves)이 됩니다.
- 이 나무 구조들을 비교함으로써, 그들은 텍스트의 지저분한 부분은 무시하고 규칙의 구조를 볼 수 있었습니다. 이를 통해 언제 새로운 가지가 추가되었는지, 잎이 제거되었는지, 혹은 전체 구조가 재배치되었는지를 정확히 파악할 수 있었습니다.
4. 변화 뒤에 숨겨진 "이유"
연구진은 AI(대규모 언어 모델)를 사용하여 변화를 읽고 전문가들이 왜 그런 변화를 주었는지 추측했습니다. 그들은 규칙이 계속 변하는 세 가지 주요 이유를 발견했습니다.
- "줄다리기" (진동/Oscillation): 때때로 팀은 더 많은 사람을 잡는 것과 오탐을 줄이는 것 사이에서 결정을 내리지 못합니다. 한 버전을 시도해 보고, 마음에 안 들어서 다른 버전으로 바꾸고, 다시 그 결과가 마음에 안 들어서 원래대로 되돌리는 식입니다. 이는 마치 온도가 계속 변하는 샤워기에서 완벽한 온도를 찾으려고 애쓰는 것과 같습니다.
- "패키지 딜" (결합된 변화/Coupled Changes): 때로는 새로운 것을 잡기 위해 무언가를 추가하는 행위가, 무언가를 제외하기 위한 새로운 규칙을 강제하기도 합니다.
- 예시: 새로운 유형의 바이러스를 잡기로 결정했다면, 실수로 그와 비슷해 보이는 무해한 프로그램까지 잡을 수 있습니다. 따라서 그 무해한 프로그램을 제외하는 규칙을 동시에 추가해야만 합니다. 하나를 추가할 때 다른 하나가 반드시 따라와야 합니다.
- "번역 오류" (불충분한 증거/Insufficient Evidence): 때때로 규칙이 변하는 이유는 그것이 감시하고 있는 컴퓨터 시스템의 언어가 바뀌었기 때문입니다(예: 필드 이름이 "user_name"에서 "username"으로 변경됨). 규칙은 제대로 작동하지만, 텍스트만 봐서는 이것이 더 많은 사람을 잡고 있는지 적게 잡고 있는지 알 수 없습니다. 이는 책의 언어를 바꾸는 것과 같습니다. 이야기는 같지만 단어가 달라진 것입니다.
5. 핵심 결론
이 논문의 주요 결론은 보안 규칙은 정적인 설계도가 아니라, 살아 움직이는 생명체라는 것입니다.
규칙은 완벽하고 안정적인 형태를 향해 진화하는 것이 아닙니다. 대신, 보안 팀의 지속적인 투쟁을 반영합니다. 그들은 다음 두 가지 사이에서 끊임없이 저울질을 합니다:
- 나쁜 놈을 놓치지 않는 것.
- 오탐으로 모든 사람을 귀찮게 하지 않는 것.
논문은 이러한 규칙들이 매우 복잡하고 끊임없이 변하기 때문에, 보안 팀을 도울 더 나은 도구가 필요하다고 주장합니다. 우리는 단순히 텍의 내용을 이해하는 것이 아니라 규칙의 로직을 이해하는 시스템이 필요하며, 매번 규칙 전체를 처음부터 다시 작성하지 않고도 이러한 어려운 절충안을 만들 수 있도록 도와주는 도구가 필요합니다.
요약하자면: 보안 규칙을 작성하는 것은 라디오 주파수를 맞추는 것과 같습니다. 가장 선명한 신호를 찾기 위해 다이얼을 계속 앞뒤로 돌리지만, 방송국 자체가 계속 이동하기 때문에 당신은 계속해서 조정해야만 합니다.
연구 분야의 논문에 파묻히고 계신가요?
연구 키워드에 맞는 최신 논문의 일일 다이제스트를 받아보세요 — 기술 요약 포함, 당신의 언어로.