방화벽은 무엇을 막고 무엇을 못 막나
네트워크 보안의 첫 문이라 불리는 방화벽이 실제로 판단하는 것과, 그 판단으로는 걸러지지 않는 위협을 구분해 봅니다.
경계를 만들어 주는 장비
회사 네트워크 구성도를 펼쳐 보면 대개 가운데쯤에 네모 하나가 있고 그 위에 방화벽이라고 적혀 있습니다. 내부망과 바깥 인터넷 사이에 세워둔 검문소라는 뜻입니다. 하는 일 자체는 단순합니다. 오가는 통신을 하나씩 들여다보고, 미리 정해둔 규칙에 맞으면 통과시키고 맞지 않으면 조용히 버립니다.
보안 장비를 이야기할 때 방화벽이 가장 먼저 등장하는 이유는 성능이 뛰어나서가 아니라, 이 장비가 '경계'를 만들어 주기 때문입니다. 경계가 없으면 안과 밖의 구분이 없고, 구분이 없으면 무엇을 어디까지 지켜야 하는지도 정할 수 없습니다. 방화벽은 위협을 없애 주는 장비라기보다 지켜야 할 선을 눈에 보이게 만들어 주는 장비에 가깝습니다.
방화벽은 무엇을 보고 판단하는가
네트워크를 오가는 데이터는 패킷이라는 작은 조각 단위로 움직입니다. 각 패킷의 머리 부분에는 어디에서 출발해 어디로 가는지(주소), 어떤 서비스에 해당하는지(포트), 어떤 통신 방식인지(프로토콜)가 적혀 있습니다. 전통적인 패킷 필터 방식의 방화벽은 이 정보만 보고 규칙표와 대조합니다. 편지 봉투의 겉면만 보고 배달 여부를 정하는 셈입니다.
여기서 한 걸음 나아간 것이 연결의 상태를 함께 기억하는 방식입니다. 내부에서 먼저 요청해서 시작된 대화의 응답인지, 아니면 바깥에서 불쑥 들어온 첫 접촉인지를 구분합니다. 이 구분 하나만으로도 '우리가 부르지 않았는데 찾아온 통신'을 대부분 정리할 수 있어서, 오늘날 방화벽의 기본 동작으로 자리 잡았습니다.
최근의 장비들은 여기에 더해 애플리케이션 수준까지 들여다보거나 다른 보안 기능을 함께 묶어 제공하기도 합니다. 다만 기능이 늘어나도 방화벽의 뼈대는 그대로입니다. 규칙을 정하고, 대조하고, 통과 또는 차단을 결정합니다.
허용·차단 정책을 세우는 사고방식
정책을 만드는 방법에는 두 가지 방향이 있습니다. 위험해 보이는 것을 하나씩 막아 나가는 방향과, 기본적으로 전부 막아 두고 업무에 꼭 필요한 것만 하나씩 여는 방향입니다. 보안에서 권장되는 쪽은 후자입니다. 세상의 위험을 전부 나열하는 일은 끝나지 않지만, 우리 업무에 필요한 통로를 나열하는 일은 유한하기 때문입니다.
규칙표에는 순서가 있고, 대개 위에서부터 차례로 대조하다가 처음 일치하는 규칙에서 판단이 끝납니다. 그래서 넓게 허용하는 규칙이 위쪽에 있으면 아래에 아무리 촘촘한 차단 규칙을 써 두어도 소용이 없습니다. 현장 점검에서 자주 지적되는 항목이 바로 이 순서 문제, 그리고 '누가 왜 열었는지 아무도 모르는' 오래된 허용 규칙입니다.
그래서 실무에서는 규칙을 추가하는 절차보다 정리하는 절차가 더 중요하다고 이야기합니다. 규칙마다 요청자와 사유, 기한을 남겨 두면 몇 년 뒤에 그 줄을 지울 수 있는지 판단할 수 있습니다. 기록이 없는 규칙은 무서워서 아무도 손대지 못한 채 계속 남고, 그렇게 남은 구멍이 쌓입니다.
정상 통로로 들어오는 것은 막지 못한다
방화벽의 한계는 그 강점에서 곧바로 따라 나옵니다. 방화벽은 '이 통로를 지나가도 되는가'를 판단할 뿐, '이 통로로 지나가는 내용이 안전한가'를 판단하도록 만들어진 장비가 아닙니다. 회사 홈페이지를 운영하려면 웹 통로를 열어야 하고, 메일을 주고받으려면 메일 통로를 열어야 합니다. 그리고 오늘날 문제가 되는 상당수의 위협은 바로 그 열어둔 정상 통로를 타고 들어옵니다.
직원이 받은 메일의 첨부파일을 여는 순간, 내부에서 바깥으로 나가는 통신이 시작됩니다. 방화벽 입장에서는 안에서 먼저 요청한 정상적인 대화입니다. 웹 서비스 자체에 취약점이 있다면 그 취약점을 건드리는 요청도 방화벽에게는 평범한 웹 요청으로 보입니다. 통신이 암호화되어 있으면 내용은 더더욱 보이지 않습니다.
내부에서 벌어지는 일도 마찬가지입니다. 경계에 서 있는 장비는 이미 안쪽에 들어와 있는 단말끼리의 통신이나, 권한을 가진 사람이 권한 범위 안에서 하는 행동을 대상으로 삼지 않습니다. '방화벽이 있는데 어떻게 뚫렸나'라는 질문이 반복되는 이유는 대부분 이 지점에 있습니다. 뚫린 것이 아니라, 애초에 그 장비가 볼 수 없는 영역에서 일어난 일인 경우가 많습니다.
그래서 여러 겹으로 쌓는다
이 한계는 방화벽의 결함이 아니라 역할의 범위입니다. 한 장비가 모든 위협을 담당하도록 만들 수는 없기 때문에, 보안은 성격이 다른 방어 수단을 여러 겹으로 겹쳐 놓는 방식으로 설계됩니다. 경계에서 통로를 통제하고, 통로를 지나온 내용은 다른 수단으로 검사하고, 단말에서 실행되는 행위는 또 다른 수단으로 관찰하고, 그럼에도 지나간 흔적은 기록으로 남겨 나중에 추적합니다. 이것이 다층 방어(심층 방어)라고 부르는 사고방식입니다.
여러 겹을 쌓는 목적은 완벽한 차단이 아니라 확률과 시간을 버는 데 있습니다. 각 겹은 저마다 빈틈이 있지만 빈틈의 위치가 서로 다르기 때문에, 겹쳐 놓으면 한 번에 전부 통과할 가능성이 낮아집니다. 또 어느 한 겹이 뚫려도 다음 겹에서 신호가 남아 대응을 시작할 수 있습니다.
그래서 방화벽을 이해하는 좋은 방법은 '무엇을 막아 주는 장비인가'와 '무엇은 다른 곳에 맡겨야 하는가'를 함께 적어 보는 것입니다. 두 목록이 명확해지면, 우리 조직에 지금 비어 있는 겹이 어디인지가 자연스럽게 드러납니다.
초보자가 자주 하는 실수
- 방화벽을 최종 방어선으로 여기기 — 통로 통과 여부만 판단하는 장비여서 열어둔 통로로 들어오는 위협은 볼 수 없습니다.
- 필요할 때마다 허용 규칙만 추가하기 — 사유와 기한을 남기지 않으면 아무도 지우지 못하는 구멍으로 남습니다.
- 규칙 순서를 신경 쓰지 않기 — 위쪽의 넓은 허용 규칙 하나가 아래의 촘촘한 차단 규칙 전부를 무력화합니다.
읽고 나서 체크리스트
- 방화벽이 판단 근거로 삼는 정보가 무엇인지 말할 수 있다
- 기본 차단 후 필요한 것만 여는 방식이 왜 권장되는지 설명할 수 있다
- 방화벽이 막지 못하는 위협 유형을 두 가지 이상 들 수 있다
- 다층 방어가 무엇을 목표로 하는 설계인지 안다
- 허용 규칙에 사유·기한 기록이 왜 필요한지 설명할 수 있다
자주 묻는 질문
방화벽만 잘 설정하면 웬만한 공격은 막을 수 있나요?
그렇지 않습니다. 방화벽은 통로 단위의 통제를 담당할 뿐, 열어둔 통로를 타고 오는 메일 첨부·웹 요청·내부 단말의 행위는 판단 범위 밖입니다. 성격이 다른 방어 수단을 함께 두는 것이 전제입니다.
개인 PC의 방화벽도 같은 원리인가요?
원리는 같습니다. 규칙에 따라 통신을 허용하거나 차단합니다. 다만 보호 대상이 네트워크 전체가 아니라 그 PC 한 대라는 점, 그리고 사용자가 실행한 프로그램의 통신을 기준으로 판단하는 경우가 많다는 점이 다릅니다.
규칙이 너무 많아졌는데 어디부터 손대야 하나요?
일반적으로는 가장 넓게 허용하는 규칙, 사용 흔적이 없는 규칙, 사유가 기록되지 않은 오래된 규칙 순으로 살펴봅니다. 삭제 전에 영향 범위를 확인하고 되돌릴 수 있는 절차를 준비해 두는 것이 안전합니다.
이 글은 입문자 기준으로 이해하기 쉽게 정리한 일반 정보이며, 내용은 운영 과정에서 순차적으로 점검·보완될 수 있습니다. 구체적인 절차나 수치는 해당 기관의 공식 안내를 기준으로 확인해주세요.