본문 바로가기

Let's Study/Cybersecurity Evaluation

보안점검을 위한 체크리스트에 대하여(2)

요즘 책 집필, 출판을 위해 이것저것 알아보고 사전 작업을 하느라 정신없었던 것 같다. (제가 글을 잘 못 써가지고..ㅋㅋㅋ 출판사에 샘플원고 투고하기 전에 미리 책 내용을 다 채워놓으려구요.. ㅠ)

오늘은 살짝 여유로우니 보안점검을 위한 체크리스트에 대해 이어서 써보려고 한다.

 

 

글에서 최종적으로 말하고자 하는 바를 요약하자면,

"대학원에서 배우고 연구한 '체크리스트'와 실제 기관, 기업 등에서 연구하고 사용하는 '체크리스트'는 어떤 차이가 있을까?"

 

얘기하고 싶은게 많다보니 시리즈별로 내용을 구분하고자 한다.

'보안점검을 위한 체크리스트에 대하여(1)' 에서는 대학원에서 연구한 AI 스피커의 체크리스트에 관한 내용을 다루겠다.

'보안점검을 위한 체크리스트에 대하여(2)' 에서는 기업의 체크리스트와 대학원에서 연구한 체크리스트는 어떻게 다른지 차이점을 얘기하고 싶다.

 

===========================================================================================

 

 '보안점검을 위한 체크리스트에 대하여(1)' 글에서는 AI 스피커를 대상(Target)으로 정하고, 체크리스트를 만드는 과정을 설명하였다. 이 과정은 내가 실제로 연구한 결과를 기반으로 작성하였다. 나는 STRIDE, LINDDUN 위협모델링 방법론을 대상에게 적용하여 AI 스피커를 위한 보안 체크리스트를 도출하였고, 이를 이용해 실제로 보안점검을 수행하였다. 또한 점검 결과를 기반으로 'AI 스피커의 보안성 평가 및 대응방안 연구'라는 주제의 논문을 작성하였다. 그러나 이전 글에서는 대학원에서 AI 스피커와 관련한 체크리스트를 도출하고, 실제 적용하는 과정에서 몇 가지 얘기하지 못한 사실이 있다. 도출한 결과가 너무 아카데믹(Academic)한 특성이 있는 것이다. 즉 너무 학문적이고 이론적이랄까. 이런 느낌일 것이다. '적용되면 너~~무 좋겠지만, 과연 실제 현장에서는 아카데믹한 연구 결과를 이용할 수 있을까?'

 

1. 대학원의 보안 체크리스트

 대학원에서 연구한 이론을 실제 현장에서 적용하기에는 약간의 갭(gap)이 존재한다.(좀 거리감이 있다랄까..) 이론적으로는 이러이러하게 할 수 있는데, 실제 현장에서는 저러저러한 제약사항이 있어서 연구한 결과를 적용하기 어렵다거나? 혹은, (예를 들어 대학원에서 연구하는 주제 중에서) 제품의 보안성 향상을 위한 연구나 특정 환경(Infrastructure)의 보안내재화(Security by Design) 적용을 위한 연구 등은 비용, 연구 환경(Test Bed) 구축의 어려움으로 인해 연구하는 대상을 제대로 경험하지 못한 채 이론적으로만 연구할 수밖에 없다.(모든 경우가 그렇다는 건 아니고 대부분 그렇다) 그렇기에 대학원에서는 특정 제품, 환경에 특화한 구체적인 연구 결과가 나오기 어렵다.

 

 그럼 대학원에서 연구하는 학문(논문을..위한?)이 쓸데없느냐? 그건 절대 아니다. 대학원에서 연구하는 주제들은 학문적이지만 이상을 추구한다. 현재보다 더 나은 미래 기술을 위해서 많은 학생들이 수많은 아이디어를 떠올리고(아이디어를 떠올리기 위해 수없이 교수님들께 갈려나가고 ㅠㅠㅠㅠㅠ), 연구를 수행한다. 그리고 연구를 통해 '논문'이라는 결과물이 완성된다.

 @ '논문'은 자신의 연구가 이전의 연구 결과보다 더 낫다는 것을 입증하고, 자신이 작성한 모든 글에 대해 근거를 제시한다. 그래서 잘 쓴 논문일수록 좋은 참고자료(reference)가 많고, 모든 문장에 의문이 생기지 않는다.

 이 결과는 학문적이지만 중요한 참고자료가 될 수 있다. 참신한 아이디어가 모일수록(참신한 논문이 많을수록) 더욱 참신한 아이디어가 도출될 수 있기 때문이다. 근거에 기반한 참신한 아이디어들이 모이면 현장에서 연구하는 보안 전문가들을 통해 더욱 안전한 보안 제품, 보안 환경이 탄생할 수 있다. 대학원의 연구 결과물인 '논문'은 현실과 거리감이 살짝 있는.. 이상을 추구하는 연구 결과이더라도, 결국은 실제 현장에서도(특정 제약이 존재하더라도) 추구해야 하는 방향이기도 하다.

 

 요약하자면, 대학원에서 연구한 보안체크리스트의 특징은 내 주관적인 생각으로는 이렇다.

 1) (비용, 연구 환경 구축의 어려움으로 인해) 특정 제품, 환경에 특화한 구체적인 결과가 작성되지 않는다.

 2) 보안 체크리스트의 범위가 좁다면 너무 좁게(특정 연구 방향에 기반하기 때문), 그게 아니라면 (연구 대상을 실제로 경험해보지 못하여)너무 포괄적으로 작성될 수 있다.

 3) 학문적이며, 이상을 추구한다.

 4) 체크리스트를 연구하고 나면 그걸로 땡이다. 더이상 개선하지 않는다. (만약 개선할 경우가 생긴다면.. 아마 다음 논문을 쓰기 위해서가 아닐까?)

 5) 시간에 쫓겨 연구를 수행한다. (대학원생이 논문만 쓰는건 아니고 연구실 내에 일이 엄청 많기 때문이다. 시간에 쫓길수록 품질 높은 연구 결과가 나오기 어렵다.)

 6) 연구결과물인 체크리스트를 이용해 모든 전문가들이 동일한 점검 결과를 도출하기 어렵다. (이건 case by case이지만 보통은 이렇다. 구체적이고 상세하게 연구하기 어렵기 때문이다)

 7) 보통은 한명이고 (아주 가끔)많으면 두~세 명 정도 모여서 연구를 수행한다.

 

2. 기업, 기관의 체크리스트

 기업, 기관의 체크리스트는 .. 사실 기업, 기관마다 차이가 존재하겠지만 공통적으로 고려하는 필수 요소는 다음과 같을 것이다.

 '특정 제품, 환경군에 특화하였고, 현실적으로 적용 가능한지? 비용적인 면을 고려하여 우선순위를 두었는지? 모든 전문가가 동일한 점검 결과를 도출할 수 있는지?'

 위의 요소를 기반으로 점검 목적에 적합한 체크리스트를 도출한다. 예를 들자면 다음과 같다.

 - 아래 예를 통해 해커들과 보안 점검, 정책을 담당하는 전문가들 사이에서 이슈되는 주제인 "어차피 0-day 공격으로 제품을 다 뚫을 수 있을텐데, 체크리스트가 중요해? 고생해서 만들 필요 있어??" 라는 의문을 일부 덜어주길 희망한다.

 

(1) 대상 제품, 혹은 환경에 보안 취약점(Vulnerability)이 존재하는지?: 공격 벡터(Attack Vector)를 식별하고 취약점 공격을 수행하는 등의 보안 체크리스트가 있는가 하면.

(2) 대상 제품, 혹은 환경의 보안 설정이 잘 되어 있고, 관련한 보안 기능이 구현되어 있는지?: 제품의 (개발자의 실수, 혹은 제품의 설계 미스로 인한)보안 허점을 보는 게 아니라, 공개된 취약점(1-day) 공격을 예방하기 위해 충분히 구현 가능한 보안 기능이 존재하는지, 해당 보안 기능이 잘 동작하는지를 점검하는 보안 체크리스트가 존재할 수도 있다. 또한,

(3) 대상 제품, 혹은 환경이 기업 내 보안 정책을 통해 잘 관리되고 있는지?: 우수한 보안 기능이 존재하면 뭐하나? 설정을 적절하게 하지 않는다면 다 소용없을 뿐이다. 기업 내 보안 정책이 잘 구현되어 있지 않다면 스피어피싱을 통해 중요한 정보가 노출될 수 있고, 최악의 경우 기업의 정보시스템이 마비될 수도 있다. 스피어피싱 뿐만 아니라, USB, CD 등의 매체를 통해 악성코드가 감염될 수도 있고 개인 핸드폰의 카메라가 해킹되어 기업 내 중요한 부분이 해커에게 노출될 수도 있다. 즉, 보안 기능을 잘 설정하였는지, 보안 정책을 통해 직원의 보안 의식을 높이는지를 확인하는 관점으로 보안 체크리스트를 작성할 수도 있겠다.

 

 지금 딱 생각나는 3가지를 적어봤는데 추가적으로 무언가가 더 있을 수도 있겠다.(아마.. 위험관리(Risk Management) 관점으로?) 이러한 보안 체크리스트는 단일 제품에 특화하여 작성할 수도 있고, 점검 대상과 비슷한 여러 대상(예를 들면 현대차의 아반떼만 점검하지 않고 관련 대상인 소나타, 그랜저 등도 점검할 수 있게)을 고려하여 작성할 수도 있다. 그뿐만이 아니라 기업 내 작업 환경이 보안적으로 취약한지, 안전한지를 체크할 수도 있겠다.

 

 위의 3가지는 일반적인 보안 체크리스트 작성 예시이다. (갑자기 생각나서 적었다) 그럼 기업, 기관은 대학원과 어떤 차이가 있을까? 

기업, 기관의 경우, 시간과 비용이 허용하는 선에서 위의 3가지 보안 체크리스트를 더욱 상세하게, 현실적으로 점검에 용이하도록  체크리스트를 작성한다. 작성한 후 그 분야와 관련한 보안 전문가들끼리 머리를 맞대어 보완하고, 실제로 대상에 체크리스트를 적용도 해보고, 미비한 점이 발견되면 체크리스트를 추가적으로 보완한다. 이러한 유지 보수 과정이 짧게 끝나는 게 아니라, 대상에게 더이상 보안 점검을 지원해주지 않을 때까지 한다. 쉬운 표현으로는 '대상의 서비스, 기술 지원이 종료되었을 때' 체크리스트의 유지 보수를 하지 않는 것이다. 

 한국이 국제적으로 잘 알려진(예를 들면 미국 NIST의 표준?) 정보 보안 표준을 따라가거나, 국제 표준을 국내 상황에 맞추어 변환하여 사용하는 것도 이런 이유 때문이다. 미국에서는 이미 1970년부터 모의해킹만으로는 제품의 보안 품질을 향상시킬 수 없다는 걸 인지하였고, 1980년부터 체계적으로 보안 품질을 관리하기 위한 연구를 현재까지 진행하고 있다. 무려 수십년동안 보안 전문가들이 고민하고 고민하여 표준을 개선하고 있다는 얘기이다. 뇌피셜로만 표준이 작성되는 게 아니라, 실제로 전문가들이 보안 표준을 이용해보고 추가, 수정한다. (표준이 어중간하고 포괄적으로 작성되는 건 위의 내용과는 약간 다른 얘기이다. 개발되는 제품마다 특이, 예외사항이 존재할 수 있으므로, 구체적으로 표준이 작성되기는 어렵다. 표준 문서는 모든 제품을 포괄할 수 있는 용어, 항목을 작성한다.)

 

 요약하자면, 기업, 기관의 보안체크리스트의 특징은 내 주관적인 생각으로는 이렇다.

 1) (비용, 시간이 허용하는 선에서) 특정 제품, 환경에 특화한 구체적인 보안 체크리스트를 작성한다.

 2) 점검 목적에 특화한 보안 체크리스트를 도출한다.

 3) 현실적으로 점검 가능하도록 유연하게 작성한다.

 4) 대상 제품, 환경의 기술 지원이 종료될 때까지 보안 체크리스트를 지속적으로 개선한다.

 5) 시간에 쫓겨 연구를 수행하는 건 대학원과 마찬가지이긴 하나, 대학원에 비해 시간적인 여유가 있다.

 6) 연구결과물인 체크리스트를 이용해 모든 전문가들이 동일한 점검 결과를 도출하도록 연구한다. 여러 보안 전문가들의 생각을 듣고, 각각의 보안 체크리스트 항목에 의문점이 들지 않도록 끊임없이 개선한다.

 7) 부서 내 보안 체크리스트를 담당하는 여러 보안전문가들과 머리를 맞대어 연구한다.

 

 

 이렇게 대학원, 기업의 보안 체크리스트 특징을 나열해보니 연구 환경, 상황을 다 고려하여 가장 큰 특징이 보였다. 결국 현실과 이상의 차이랄까. 내가 작성한 글이 뭔가.. 대학원생들을 이상론자로 만드는 것 같은데, 그런 의도가 절대 아니다 ㅋㅋㅋ 대학원생들은 자신들의 연구 결과를 실제로 현실에서 적용할 수 있는지를 근거나 실험 결과를 통해 입증한다. 그러나 연구 내용이 약간 아카데믹하다는 점을 강조하고 싶었다. 기업에서는 그러한 연구 결과를 참고하고, 기업 내 제품, 환경의 상황에 맞추어 활용한다. 

 

뛰어난 보안 전문가가 되기 위해서는 모든 사람의 아이디어(논문이나 연구 결과)를 참고하고, 관련 지식을 흡수하는 노력이 필요하다. 올 해에는 회사 분위기 적응, 코로나 전염병으로 인해 그런 노력이 살짝 부족하지 않았나 싶다.

에이, 모르겠고. 공부나 해야겠다.. 2021년도 화이팅!