Lemmalog, 전제 바뀌면 영향받은 결론 자동 무효화

LLM 에이전트의 취약점 연구에서 기억을 프로그램 분석 방식으로 관리하는 Datalog 엔진 ‘Lemmalog’가 구현됐다. 관찰과 그로부터 도출된 결론을 구조화해, 전제가 바뀌면 영향을 받은 결론을 자동으로 무효화하는 방식이다.

이 내용은 8월 29일 개인 기술 pwning.systems에 게시된 소개됐다. 글에 따르면 LLM 에이전트는 대규모 코인베이스를 탐색하고 낯선 하위 시스템을 설명하며 잠재적인 공격 표면을 찾는 데 활용할 수 있지만, 조사가 몇 시간 이어지면 이미 배제한 접근법을 다시 제안하거나 거짓으로 판명된 가정에 근거해 추론하는 문제가 나타났다.

기존 메모리 시스템은 과거 대화나 관찰 내용을 저장한 뒤 임베딩하고, 필요할 때 관련성이 높은 일부 정보를 검색해 프롬프트에 넣는 방식이 일반적이다. 그러나 이 방식에서는 새로 확인된 사실이 과거 결론에 어떤 영향을 미치는지 LLM이 대화 기록을 다시 읽고 판단해야 한다. 관찰 하나가 틀렸다는 사실을 알려도 그 관찰에 의존한 모든 추론을 자동으로 철회한다는 보장은 없다.

Lemmalog는 이 문제를 프로그램 분석과 같은 방식으로 다룬다. 프로그램 분석에서는 프로그램에 관한 사실을 입력하고, 사실에서 새로운 사실을 도출하는 규칙을 적용해 더 이상 도출할 결과가 없을 때까지 상태를 계산한다. 입력 사실이 바뀌면 전체 분석을 처음부터 반복하지 않고 영향을 받은 결과만 갱신하는 기법도 활용된다. 취약점 조사에서 특정 객체 간 연결에 관한 관찰이 잘못된 것으로 확인되면, 그 관찰에서 도출된 공격 가능성 관련 결론만 무효화하는 식이다.

구조상 LLM은 자연어, 소스 코드, 디버거 출력처럼 불완전하고 모호한 정보를 해석해 구조화된 사실로 바꾸는 역할을 맡는다. 이후 사실 간 관계를 계산하고 결론을 유지하는 일은 Lemmalog의 Datalog 데이터베이스가 처리한다. Datalog는 계산 절차를 직접 지시하기보다 사실과 규칙을 선언하고, 기존 사실에서 새 사실을 도출하는 선언형 논리 프로그래밍 언어다.

사실을 추가하는 작업은 비교적 단순하지만 삭제는 더 복잡하다. 어떤 결론이 두 개의 독립적인 근거에서 도출됐다면 근거 하나가 사라져도 결론을 삭제해서는 안 된다. 두 근거가 모두 사라졌을 때만 결론을 없애야 하기 때문이다. Lemmalog는 각 사실이 어떤 경로로 도출됐는지와 이를 뒷받침하는 근거를 추적해 상태를 갱신하며, 이를 바탕으로 특정 사실이 왜 참인지도 설명할 수 있도록 설계됐다.

원문 보기 (pwning.systems)

RELATED ARTICLES