기업은 정보 유출과 같은 보안 사고를 방지하고 자사의 데이터, 네트워크를 보호하기 위해 인프라에 많은 투자를 합니다. 그러나 아직도 기업 규모가 매우 크지 않은 기업들은 또 하나의 중요한 보안 위험 요소를 간과하거나, 과소평가 하는 것으로 보입니다. 그것은 바로 회사의 임직원입니다.
"소셜 엔지니어링", 한 번쯤은 들어보셨을 단어입니다. 단순 직역하면 사회공학 정도의 단어가 됩니다. 그러나 해킹 기술의 맥락에서는 번역 없이 '소셜 엔지니어링'을 그대로 사용함으로써 다음과 같은 의미를 표현합니다.
사람의 심리를 악용해 시스템 또는 데이터, 건물에 대한 출입 권한을 확보하는 기술, 사회공학적 공격(Social Engineering Attacks)
이번 포스팅에서는 소셜 엔지니어링의 의미, 악용 사례 그리고 기업의 대처법을 간략하게 살핍니다. 그 다음에 블록체인이 이러한 보안 리스크에 어떻게 기여할 수 있는지를 생각해 볼 겁니다.
영어라서 왠지 대단해 보이는 소셜 엔지니어링은 일반적인 사례로 금방 이해될 수 있을 것 같습니다.
우리가 흔히 알고 있는 피싱과 다를 바 없습니다. 그 대상이 기업이라는 점이 다를 뿐이죠. 소셜 엔지니어링 공격은 인간이라는 취약점을 교묘하게 공격함으로써, 기업이 돈을 쏟아부어 구축한 보안 체계를 아주 적은 비용으로 무력화시킬 수 있습니다.
소셜 엔지니어는 사람의 본성과 감정을 공략하기 위해 다양한 수단을 복합적으로 사용하며, 필요하다면 오랜 시간동안 사칭 신분으로 직원과 친분을 쌓기도 합니다. 사례만 보았을 때는 매우 뻔한 수법처럼 보이지만, 관련된 교육을 받은 적이 없고 평소에 소셜 엔지니어링을 염두에 두지 않는다면 언제든지 우리도 그 당사자가 될 수 있습니다.
소셜 엔지니어링 방어 및 대처 능력을 기르기 위해 많은 기업들이 침투 테스트를 시행합니다. 이러한 침투 테스트의 대표적 사례로는 사이버 보안 및 기밀 유지에 전문화된 모 정부기관을 대상으로 진행된 "에밀리 윌리엄스" 침투 테스트가 있습니다.
위의 사례에서 사용된 해킹 기법은 사실은 매우 잘 알려진 것들입니다. 그러나 회사의 동료라는 신뢰 관계가 섬뜩하리만치 잘 작동할 경우, 얼마나 단순한 방법으로 소셜 엔지니어링 공격을 성공시킬 수 있는 지 잘 보여주는 사례이지요.
"인간의 어리석음에 대해서는 패치가 없다"라는 소제목과 같이, 직원은 인간이기에 보안 인프라와 같이 많은 돈을 투자하여 반복적인 패치를 할 수는 없습니다. 대신, 기업은 교육과 문화라는 측면에서 이러한 리스크를 관리하고자 노력하고 있습니다.
소셜 엔지니어링 공격은 악의를 가진 내부 직원의 범죄와는 그 성격이 정반대로, 임직원의 무지로 인해서 기업이 손실을 입게 되는 케이스입니다. 따라서 '취약점'으로 공격당한 임직원에게 책임을 지우는 일은 그다지 합리적이고 효과적인 방법은 아닐 겁니다.
그럼에도 불구하고, 피싱 이메일을 클릭한 직원이 불이익 또는 처벌을 받는 경우도 심심치 않게 찾아볼 수 있습니다. 피시미(PhishMe)의 2016년 보고서에 따르면 사이버 공격의 91%와 그로 인해 발생한 데이터 유출은 피싱 이메일의 클릭에서 시작되기 때문이죠.
그래서 임직원을 대상으로 하는 보안 교육의 필요성이 높아지고 있습니다. 사이버보안 벤처스(Cybersecurity Ventures)는 보안 인식 교육 시장이 2014년 10억 달러에서 2027년 100억 달러로 성장할 것으로 전망했습니다. 마이크로소프트는 소셜 엔지니어링의 공격 대상 규모가 2021년까지 40억 명을 넘길 것으로 예측했습니다.
기업은 사전 예방책으로서의 교육을 통해, 소셜 엔지니어링에 대한 항시 경계태세(?)를 기업의 문화로 정착시키기를 원합니다. 시스코, 페이스북, 구글, 인텔, MS 등 주요 기술 기업들이 참여하는 NCSA(National Cyber Security Alliance) 디렉터 마이클 케이서는 "모든 규모의 기업들이 업무 공간의 안전과 보호를 위해 직원들의 역할이 중요하다는 것을 주입해야만 한다"면서, "사이버 보안 교육은 일회성 교육이나 세미나를 듣는 것을 이야기하는 것이 아니다. 보안을 협업적이고 지속적인 문화로 만드는 것"이라고 강조한 것처럼요.
이에 따라 수많은 보안 교육 업체들이 다양한 기법을 적용한 독특한 보안 교육 서비스를 제공하고 있습니다. 교육에 대한 직원들의 참여 수준을 높이고 동기를 부여하기 위해, 기획의 중요 요소로서 "스토리텔링" 또는 "게이미피케이션"을 적용한 것이 특징입니다.
특정 애플리케이션의 실행 또는 어떤 행동을 유도하기 위해서, 행동에 대해 심리적 보상을 제공하는 게임 플레이 기법을 적용하는 것. [도전과제 제시] - [학습 및 행동] - [보상 획득] 프로세스를 반복하고자 하는 인간 경향을 이용해 특정한 행동을 조장하는 방식으로 동작한다. 마케팅 분야에서 활발하게 적용되고 있으며, 그 외에도 헬스케어, 쇼핑, 교육, 스포츠의 분야에서도 일부 적용
왜 임직원 대상 보안 교육이 게이미피케이션 디자인을 도입하고, "재미"와 "흥미"를 자극하는 접근방식을 취하는 것일까요? 우선 첫째로, 흥미없는 분야를 학습하는 것은 언제나 지루한 일이기 때문입니다.
그러나 조금 더 생각해 보면, 기업이 소셜 엔지니어링 리스크를 막기 위해서 보안 교육 서비스를 구입하는 것 이상의 지출을 꺼리기 때문이라고도 생각할 수 있어요. 달리 말하면 임직원이 교육에서 배운 사항을 잘 이행하는 것에 계속 보상을 지급하기보다는, "재미"를 통한 "무의식적 내면화 = 문화의 형성"이 훨씬 남는 장사라는 거죠.
임직원 입장에서 보안 교육이란 일종의 업무 지시와 같습니다. 추가 보상 없이 기존 업무에 새로운 일이 더해지는 것과 같죠. 이 새로운 임무의 특성은 계량화하기가 다소 어려워 보입니다. 소셜 엔지니어링 공격이 들어오지 않는다면 아무것도 하지 않아도 되지만, 뒤집어 생각해 보면 "언제든 발생 가능한 일"에 대해서 "항시 준비 자세를 취해야 하는" 형태의 업무.
5분대기조 비스무리한 느낌의 속성을 갖는 업무에 대해서 기업 입장에서도 금전적인 보상이나 인센티브 정책을 세우는 데 곤란한 점이 존재하는 것이지요.
여기까지 살펴본 내용으로부터, 우리는 소셜 엔지니어링으로 인한 보안 리스크의 예방책에서 "신의성실의 원칙"같은 사람 냄새가 물씬 풍긴다는 점을 알 수 있습니다.
기업은 임직원에게 기업 보안을 지키는 일련의 행위를 하나의 문화로 받아들이고 일상화, 내면화, 습관화하기를 바랍니다. 그래서 그러한 내용을 교육하고, 직원이 교육받은 내용을 성실하게 이행할 것을 "믿습니다". 그러한 성실한 이행이 지속되고 집단화하여 하나의 "문화"로 자리잡을 것을 "기대합니다".
이러한 신뢰는 그러나 악의없는 한 번의 실수로 인해서 쉽게 깨질 수 있습니다. 그 이후에는 "기대를 저버린" 직원에게 기업이 철퇴를 내리고, 해고하지 않았다면 이후로는 소셜 엔지니어링 공격에 당하지 않을 것이라고 다시금 "믿습니다".
위에서 살펴 본 많은 기업들의 대처 방식은 어딘가 대한민국의 악명높은 액티브 X를 떠오르게 합니다. 부가적인 프로그램을 강제로 설치시키고 이후에 발생하는 모든 책임과 문제에 대한 면죄부가 되는 것이지요. 이것은 사용자로선 억울할 수 있지만 기업 입장에서 정당화될 수 있는 방법입니다.
그렇지만 액티브 X와는 다르게, 소셜 엔지니어링 공격이 성공했을 때 실제로 피해를 입는 것은 기업입니다. 그렇기에 액티브 X 같은 접근방식은 기업 스스로에게도 그다지 좋은 방향이 아닙니다. 스피어NY(SphereNY) 정보보안 부사장 스트리트는 바람직한 방향성에 관하여 아래와 같이 언급한 바 있습니다.
"기술이 모든 것을 해결할 것처럼 보안인식 교육을 바라보고 있는데, 이는 기술적인 문제다. 하지만 우리가 직면한 문제는 기술적인 게 아니라 인간의 문제다"
"그러나 이런 사건이 일어나기 전에 직원들은 교육을 받아야 하며, 보안팀은 어떻게 해야 하는지 직원에게 가르쳐줘야 한다. 보안은 필수 사항이며, 보안 정책을 따르지 않으면 모든 직원이 염려하는 부정적인 사태가 발생할 수 있다는 사실을 알고 있어야 한다"
"직원을 지나치게 압박하는 느낌을 주지 않으면서 직원의 안전을 유지하는 (보안) 인식 프로그램을 구축해야 한다. 해답은 바로 게이미피케이션과 열린 커뮤니케이션이다"
"이 프로그램의 핵심은 인간은 누구나 실수를 하는 것이기에 직원들이 피해자로 처벌받지 않도록 보장하는 것이다. 전체적인 목표는 탐지 및 인식을 높이는 동시에 대응력을 향상시키는 것이다"
"이제 인간을 자산처럼 다루기 시작해야 한다. 정보보안 팀의 실제적인 부분처럼 말이다. 직원에게는 장기적인 목표를 위해 보안의 일부가 되는 것이 더 낫다는 것을 이해시켜야 한다"
스트리트가 제시한 바람직한 방향은 현재 가능한 최선에 가깝다고 보여집니다. 임직원 모두를 정보보안 팀의 일부로서, 전사적인 소셜 엔지니어링 공격 탐지 및 대응력 향상을 목표로 "실수롤 허용하는" 인센티브 시스템을 만드는 것이죠. 스트리트가 언급한 인센티브/보상이란 게이미피케이션과 커뮤니케이션에서 비롯되는 심리적 가치로 보여집니다만, 경제적 인센티브가 더 확실한 방법임은 굳이 말할 필요가 없을 것입니다.
스트리트의 이야기에 블록체인 기술을 전제한다면 조금 더 욕심을 낼 수도 있겠습니다. 인간을 믿지 않아도 되는 시스템(trustless)의 구축이죠. 정확히 말하자면, 신뢰에 덜 의존하는 방향으로 나아가는 겁니다.
신뢰에 불가피하게 의존해야 하는 것은 우선 "직원이 악의를 가지고 있지 않을 것" 입니다. 이것은 별도 프로세스를 통해 검증될 수 있지만, 어찌 되었든 외부 프로세스 또는 프로세스를 실행한 주체를 믿는다는 전제를 내포합니다. 오프라인을 통한 소셜 엔지니어의 접근 또한 직원에 대한 신뢰에 크게 의존해야 합니다.
집중해야 할 곳은 시스템 차원의 자동화를 통해 신뢰 의존성을 없앨 수 있는 부분입니다. 소셜 엔지니어링 방지를 위한 정보보안 사항, 구체적으로는 외부로부터 사내 네트워크로 들어오는 정보(이메일 등)를 임직원들이 어떻게 취급하는가, 즉 보안 준수사항을 잘 이행하는지 확인하는 것이죠. 그 전에 더욱 중요한 것은, 하나하나 암기하기 힘든 보안 준수사항에서 자동적 또는 사전적으로 처리할 수 있는 부분은 모두 자동화/사전처리 하는 것입니다.
이러한 목적을 달성하기 위해서 사내 커뮤니케이션을 위한 커뮤니케이션을 프라이빗 블록체인 위에서 동작하는 dApp으로 진행한다면 어떨까요? 이전 포스팅 블록체인은 언제 도입해도 되는 것일까?에 따르면, 소셜 엔지니어링 방어를 위한 사내 커뮤니케이션 dApp은 아래와 같은 조건을 충족한다고 보여집니다.
또한 블록체인을 적용하면 안 되는 4가지 사항과 관련해서는 아래와 같습니다.
이러한 블록체인 dApp을 도입함에 따라 기대되는 긍정적 효과는 다음과 같습니다.
한편 예상되는 부정적인 효과는 다음과 같습니다.
교육이 유효하지 않은 수단이라는 것은 아닙니다. 소셜 엔지니어링이 오프라인에서 발생할 가능성을 결코 배제할 수 없으며, 따라서 흥미롭게 잘 디자인 된 교육 프로그램도 필수적인 하나의 축입니다.
그러나 블록체인은 인간의 예측 불가능성을 시스템적으로 보완할 수 있고, 이 블록체인 데이터베이스를 전사적인 정보보안 문화 구축의 시발점으로 삼는 것도 가능하다고 생각합니다. 사장님도 말단 신입과 동일한 블록체인 위에서 같은 규칙을 지키며 커뮤니케이션을 하고 있다면, 이것도 훌륭한 동기부여가 되지 않을까 하는 생각도 듭니다.
여기까지 작성해 놓고 보니, "좋긴 좋을 텐데 굳이 블록체인을 써야 하나" 라는 (슬픈) 생각이 듭니다. 사실은 요즘 생각해 왔던, 블록체인이 필요해 보이는 분야 다수가 그렇습니다. 블록체인이 한계를 극복해 나가면서 적용 가능한 분야가 계속해서 넓어지겠지만요. 아직도 발전 중인 블록체인 기술과 제가 가진 지식의 모자름이 더해져 한층 더 블록체인이 활약할 수 있는 새로운 무대를 찾는 것이 어렵게 느껴집니다.
최근 블록체인 플랫폼 개발사에서의 면접을 보고 난 뒤, 저는 굳이 공정성 일변도로만 블록체인을 바라보는 건 아까운 일이라는 생각을 했습니다. 블록체인을 바라보는 수많은 관점이 있을 겁니다. 돈도 좋습니다. 신뢰모델의 대안도 좋습니다. 사기가 거의 불가능한 데이터베이스도 좋습니다. 이것이 이제 걸음마를 시작한 블록체인의 가능성을 믿고 탐구하는 사람의 올바른 생각이 아닐까 합니다.
이 포스팅이 미숙하지만 재미삼아 읽기에 적당한 글이 되었으면 합니다.
긴 글 읽어주셔서 감사합니다.