논리 폭탄
약속된 시간이나 조건이 맞아떨어질 때까지 숨죽여 기다리다 터지는 디지털 시한폭탄이에요.
정의 특정한 조건이 갖춰질 때까지 몰래 숨어 있다가 작동하는 악성 프로그램 코드예요. 평소에는 문제없이 돌아가다가, 약속된 날짜가 되거나 특정 파일이 삭제되는 등 미리 정해 둔 상황이 벌어지는 순간 시스템을 마비시키거나 중요한 자료를 지워버려요.
평소에는 얌전하게 숨어 있는 시한폭탄
벽장 깊은 곳에 몰래 넣어 둔 시한폭탄을 떠올려 보세요. 폭탄에 맞추어 둔 시계 바늘이 특정 시각을 가리키기 전까지는 집 안에서 아무런 소리도 나지 않고 모든 일상이 평화롭게 흘러가요.
컴퓨터 프로그램 속에 숨겨진 논리 폭탄도 완전히 똑같은 방식으로 작동해요. 악의를 품은 내부 개발자나 외부 침입자가 정상적인 소프트웨어 코드 한구석에 몰래 숨겨 두죠. 평상시에는 다른 일반적인 코드와 똑같이 실행되기 때문에 보안 검사를 눈속임으로 통과하는 경우가 대부분이에요.
겉보기에는 아무 문제가 없는 안전한 프로그램처럼 매일 실행되므로, 일반 사용자는 물론이고 전문 보안 관리자조차 이상을 눈치채지 못해요. 사고가 터지기 전까지는 위험이 존재하는지조차 알아차리기 어렵다는 점이 가장 큰 위협이에요.
이러한 은밀함 때문에 논리 폭탄은 수개월에서 수년 동안 아무런 문제를 일으키지 않고 서버 한구석에 숨어 조용히 때를 기다릴 수 있어요.
어떤 방아쇠를 당겨야 작동할까요?
논리 폭탄을 깨우는 특정한 조건을 컴퓨터 분야에서는 '트리거(방아쇠)'라고 불러요. 가장 널리 쓰이는 방아쇠는 특정한 날짜나 시간이에요. 예를 들어 공격자가 지정한 특정 기념일이나 주말 새벽 0시가 되면 갑자기 회사의 핵심 데이터베이스를 삭제하도록 만드는 식이에요.
시간뿐만 아니라 특정한 사람의 행동이나 시스템 내부 변화도 방아쇠가 될 수 있어요. 회사에 불만을 품은 직원이 '인사 시스템 명단에서 내 사번이 지워지면'이라는 조건을 걸어둘 수도 있죠. 자신이 해고되는 순간 자동으로 시스템을 파괴하는 보복 장치를 심어두는 거예요.
반대로 '특정 관리자 계정으로 매달 로그인하지 않으면' 터지도록 설정하는 경우도 있어요. 자신이 계속 회사에 근무하면서 암호를 입력해야만 폭발을 막는 일종의 협박 수단으로 악용되는 방식이에요.
이처럼 방아쇠의 형태는 프로그래머가 상상할 수 있는 모든 조건문으로 만들 수 있어서, 사전에 어떤 형태로 숨어 있는지 찾아내기가 무척 까다로워요.
조금 더 정확히 말하면: 다른 악성코드와 무엇이 다를까요?
많은 분이 논리 폭탄을 네트워크를 타고 돌아다니는 일반적인 유해 소프트웨어와 같은 것으로 오해하곤 해요. 하지만 논리 폭탄은 스스로 다른 컴퓨터를 찾아다니며 감염시키는 자가 복제 능력이 전혀 없어요.
네트워크를 타고 번식하기보다는, 특정 시스템이나 소프트웨어 내부에 조용히 자리 잡은 채 조건에 따라 움직이는 조건부 실행 코드에 가까워요. 그렇기 때문에 외부의 낯선 공격자보다는 시스템 구조와 권한을 훤히 꿰뚫고 있는 내부 직원의 일탈로 일어나는 경우가 훨씬 많아요.
논리 폭탄의 피해를 막으려면 단순한 보안 프로그램 검사 하나에만 의존해서는 부족해요. 한 사람이 작성한 코드를 여러 동료가 함께 꼼꼼하게 검토하는 코드 리뷰(코드 검토) 과정이 필수적이에요.
또한 직원이 퇴사하거나 부서를 옮길 때 시스템 접근 권한을 즉시 회수하는 철저한 접근 통제 관리를 갖추어야만 내부로부터의 위협을 안전하게 차단할 수 있어요.
🤔 흔한 오해
논리 폭탄은 스스로 다른 컴퓨터를 감염시키며 퍼져나가는 프로그램이다.
논리 폭탄은 스스로 복제하거나 퍼지는 능력이 없어요. 특정 시스템이나 소프트웨어 안에 직접 심어 둔 뒤 정해진 조건이 맞을 때만 실행되는 코드예요.
🧺 일상에서 만나요
특정 날짜나 조건이 충족될 때까지 조용히 숨어 있다가 시스템을 망가뜨리는 시한폭탄 같은 악성 코드예요.