레이블이 취약점인 게시물을 표시합니다. 모든 게시물 표시
레이블이 취약점인 게시물을 표시합니다. 모든 게시물 표시
2021년 10월 30일 토요일

고도문명의 취약점


며칠 전, KT 전국망이 89분간 마비됐다. 유무선망이 모두 마비돼 통화는 물론 패킷을 이용하는 여러 서비스들도 일시적으로 이용불능상태가 되었다.

하필 점심 시간대라 문제는 더 컸다. 상점들의 카드 결제가 멈췄다. 질병청 서버도 멈춰서 백신 접종 확인 여부도 체크가 불가능 했고, 입구에서 찍고 들어가는 QR코드 증명시스템도 마비가 됐다. 단타 매매를 하는 주식투자자들도 HTS, MTS 이용이 불가능 해서 큰 불편을 호소했다.

처음에는 북한에서 DDOS 공격이 들어와서 전국 통신망이 마비됐다고 알려졌다. 그러나 나중에 KT에서 공식적으로 발표하길 부산국사에서 기업망 라우터를 교체하면서 EXIT 명령어 하나를 누락해서 발생한 일이라고 했다. 


이번 일은 물리적 라우터에서 벌어졌지만 요즘 세상은 대부분 소프트웨어 기반으로 돌아간다. 소프트웨어는 또 어떤가. 코드에 점 하나, 괄호하나, 띄어쓰기 하나만 틀려도 버그가 생기거나 오류를 뱉어낸다. 수만~수백만줄의 코드에 오타만 하나 있어도 그 코드는 사용불능이 된다.

물론, 그런 상황을 방지하기 위해 다양한 도구를 도입하여 사용하기는 한다. 개인 개발자 단계에서 코드를 잘 테스트 한 다음, 테스트 환경에서 코드를 돌리고, 실제 서비스에 내보내기 전과 동일한 환경에서 마지막 테스트를 한번 더 거친다. 그리고 다양한 오류 검출도구와 디버깅 도구를 사용한다. 마지막으로 사람 테스터들이 투입되어 최대한 오류가 없도록 테스트 단계를 거친다.

차라리 오류가 검출이라도 되면 다행이다. 검출되지 않지만 시스템에 잠재하는 리스크는 수도 없이 많다.

게다가 이번 KT사태와 같이 어느 한 부분에서 구멍이 뚫리면 이런 단계들은 얼마든지 무용지물이 될 수 있는 여지가 크다.

지금은 기본적으로 셀 수 없이 수 많은 코드와 통신망이 서로 긴요하게 맞물려 데이터를 주고 받으며 돌아가는 세상이다. 아주 사소한, 정말 사소한 오류 하나로 세상이 멈추거나 큰 사고로 이어질 수 있다.

물론, 내가 하드웨어를 잘 모르기 때문에 하드웨어에 대한 이야기는 하지 않았지만 하드웨어 분야도 비슷할 것이다. 전기, 전자분야든, 화학 분야든 안 그런 것이 없을 것이다. 정밀을 요하는 분야는 더욱 그럴것이고. 

전체 시스템의 99.99%가 옳게 만들어져 있어도 나머지 0.01%의 실수나 잘못으로 시스템은 엉망이 될수가 있다.

이것이 인간이 만든 고도문명의 큰 취약점 중 하나이다.

우리 몸도 여러 장기가 각자 역할을 충실히 한다. 그러면서 한명의 사람이 살아가는 것이다. 그러나 사람 몸은 어디 한 곳에 생채기가 난다거나 심지어 장기 한두개가 없다고 해서 죽지는 않는다. 그리고 자연치유 능력도 갖고 있다. 그러나 인간이 만든 문명과 기술은 그렇지 못하다. 거대한 기계의 나사 하나가 누락되어서, 큰 소프트웨어를 구성하는 코드의 점 하나 때문에 대참사가 일어날 수 있다.

약한 고리들이 느슨하게 연결되어 돌아가는게 현대사회다. 수 많은 고리 중 하나가 끊겨서도 안된다.

좀 생뚱맞은 이야기를 하자면 그러하기에 5단계 완전 자율주행은 과연 우리가 살아 있는 동안 구현이 가능할까 싶은 회의감이 크다. 비행기의 자동항법장치나 원자력 발전소를 운영하는 것과는 결이 다른 이야기다. 이번 KT망 오류에서 보듯이 자율주행차들이 5G망에 붙어서 상호통신을 하며 달려야 한다면 이번과 같은 통신장애 발생 시 도로위에 올라와 있는 모든 차량이 교통사고가 일어나는 초유의 상황을 맞이할 수도 있다.

물론, 그런 기초적인 것들이야 회피할 방법을 찾을 것이고 구더기 무서워서 장을 못 담그진 않을테니 인류는 어떤식으로든 진보는 하겠지만.

덧. 끊김없이 공급되는 전기와 그것을 관리하는 한전에 늘 감사하다. 사실 현대문명의 베이스는 전기라 해도 과언이 아닌데, 전기가 끊기면 정말 지옥문이 열리는 것이기에.