Home > 전체기사
보안 강화하려는 개발팀을 위한 8가지 질문
  |  입력 : 2015-06-22 17:04
페이스북 보내기 트위터 보내기 네이버 밴드 보내기 카카오 스토리 보내기

보안은 습관의 문제, 익히기 어렵지만 행하긴 쉬워

자동화 기능도 필요하고 인간의 분석능력도 필요하고


[보안뉴스 문가용] 소프트웨어 개발자로서 사회에 첫 발을 내딛었던 필자가 정보보안으로 옮기게 된 가장 큰 이유는 스택 오버플로우(Stack Overflow)로 유명한 조엘 스폴스키(Joel Spolsky)의 어떤 글이었다. 제목은 ‘조엘식 테스트’로 개발팀이 앞으로 성공할 것인지 실패할 것인지를 빠르게 가늠해볼 수 있는 지표들을 나열한 내용이었다. 나름 간결하고 명료했지만 전체 맥락은 강경하고 분명했다. 그 지표들은 여전히 내 뇌리에 남아 개발자들과 보안을 논할 때 항상 남몰래 꺼내보곤 한다.

 


하지만 놀라운 건 조엘 스폴스키와 같은 인물뿐 아니라 여러 위대한 선진들이 소프트웨어 개발과 보안에 대해 그렇게나 여러 번 강조했음에도 여전히 개발자들은 정보보안의 기본개념조차 받아들이려 하지 않는다는 것이다. 개발의 여건과 환경을 만드는 데에는 크게 기능적인 사항과 비기능적인 사항이 있는데, 보안을 비기능적인 사항 중 하나로 여기는 데에 문제가 있다. 그런 개발팀을 맞닥트리면 나는 조엘식 테스트를 떠올리고 안전한 소프트웨어 개발을 할 수 있도록 최대한 돕는다. 이때 내가 이들에게 묻는 건 다음과 같다.


1. 애플리케이션을 목록화하고 있는가?

여러 개의 애플리케이션을 개발하거나 사용하는 조직이라면 애플리케이션들에 대한 메타데이터를 한 곳에 보관할 필요가 있다. “애플리케이션과 관련해 연락할 사람은 누구인가?”, “어떤 앱이나 기능, 하드웨어와 상호작용하는가?”, “어디에 주로 활용되는가?”, “시스템과 데이터가 가진 중요도는 어느 정도인가?”, “어디에 종속되어 있는가?” 등의 질문을 물어봐가며 정리하면 도움이 될 것이다. 이런 질문들은 개발부서 외부 인원이지만 개발 프로젝트와 연관이 있는 사람들이 궁금해 할만한 내용이다. 즉, 이렇게 애플리케이션 및 관련 정보를 보기 좋게 정리해두는 건 이들이 개발자 한 명 한 명 붙잡고 얘기해서 쓸 데 없는 정보가 새나가지 않도록 하기 위함이다.


2. 환경을 짧은 시간 안에 구축하는 게 가능한가?

보안 실험은 보통 대단히 복잡하다. 로그 분량을 다 잡아먹고 트래픽까지 느려터지게 만드는 것에 그치면 ‘깔끔했다’는 평을 들을 정도니 최악의 경우는 어떻겠는가? 네트워크 환경 전체가 통째로 마비되기 일쑤다. 즉 업무자체가 마비된다는 것이다. 그러므로 이런 대단위 실험을 위한 완벽한 환경을 뚝딱 만들어낼 수 있다면 실험결과의 신뢰도도 훨씬 높아질 뿐 아니라 보안성도 더 높아진다. 또한 실험하면서 흔히 발생하는 환경설정 오류 및 취약점도 크게 줄일 수 있다.


3. 위협 모델링 작업을 하는가?

보안을 위주로 하는 사고방식이란 개발자들의 보통 사고방식과 크게 다르다. 개발을 진행하는 과정 중에 이런저런 위협 요소가 있을 수 있다고 미리 예측해 문서로 꾸리는 작업인 위협 모델링은 보안을 염두에 둔 개발 과정에서 아주 큰 부분을 차지하는데, 위협 모델링을 작업 계획에 넣는다는 것 자체가 최초 아키텍처와 초기 구성 단계에서부터 보안을 중요하게 생각하겠다는 뜻이 된다. 게다가 이 문서에 나와 있는 위협 요소들이 실제로 발생한다면 시작단계의 ‘염려’가 건강한 ‘의식’으로 바뀌는 걸 경험할 수 있다.


4. 안전한 개발의 라이프사이클이라는 개념이 확립되어 있는가?

안전한 개발의 라이프사이클(secure development lifecycle)이란, 용어가 좀 거창한 느낌이 있긴 하지만 결국에는 개발의 모든 과정에 의도적으로 보안과 관련된 사고와 행동을 한다는 것이다. 즉 보안을 한 번에 덧입힐 수 있는 어떤 거대한 장치가 아니라 매일 조금씩 소스코드나 개발 과정에 집어넣어야 하는 영양소 같은 존재라고 봐야 한다는 게 포인트다.  이게 습관으로 굳어지지 않았다면 처음엔 필요한 사항들을 체크리스트로 만들어 확인하는 것도 좋다.


5. 개발자 훈련 및 교육에 보안도 들어있는가?

보안에 대한 인식을 가지고 개발한다는 게 꼭 어렵거나 머리가 좋아야만 되는 건 아니다. 보안과 개발은 완전히 다른 두 개의 독립된 분야이긴 하지만 법과 외국어를 동시에 공부하는 것만큼이나 어렵고 까다로운 건 아니다. 보안은 오히려 습관과 관계된 것이기 때문에 누구라도 익힐 수 있다. 나의 경우는 코딩을 한참 하다가 하루 정도 손을 놓고 다른 일을 한다. 내가 직접 짠 코드에 대한 내 자신의 선입견을 최대한 없애려는 것이다. 그런 후 코딩을 다시 검토하면 보안의 측면에서 고쳐야 할 것이 꽤나 많이 보일 때가 있다. 개발교육은 새로운 언어 하나 더 가르쳐주는 것이 아니라 이렇게 ‘정보보안을 최대한 단단하게 할 수 있는 태도’도 포함해야 한다.


6. 자동화된 스캐닝 및 실험 툴을 사용하는가?

보안 실험은 페이로드와 컨텍스트가 조합된 수많은 경우의 수를 모두 대입해보는 과정을 필요로 한다. 너무 많아서 수작업으로 대입하기에는 한계가 분명하다. 가능한 건 자동화뿐이고, 이 부분에 특화된 소프트웨어와 툴들도 시장에 다수 나와 있다. 사실 해커들도 비슷한 작업을 해서 취약점을 찾는다. 이들 역시 자동화된 툴을 사용해 여러 가지 경우의 수를 대입해본다. 방어하는 입장에서 공격자와 기술력의 수준을 맞추지 않는다면 해커에게 당할 수밖에 없다.


7. 침투 실험을 하는가?

자동화된 방법으로 꽤나 많은 경우의 수를 실험해볼 수 있다는 건 네트워크 내에서 광범위한 범위를 커버한다는 뜻도 된다. 그러나 가능성 높은 취약점을 ‘발견’하는 것과, 그것이 현실 속에서 구체화되는 걸 상상한다는 건 다른 문제다. 즉 툴이 발견한 취약점을 해커가 어떻게 활용할 것인지 곧바로 답이 나오지는 않는다는 것이다. 이럴 때는 목표물을 구체적으로 상정한 채 실시하는 침투 실험이 효과를 나타낸다. 해커의 입장에서 좀 더 생각해볼 수 있도록 하기 때문이다.


8. 임원들 중에 보안을 1순위로 놓고 있는 인물이 있는가?

개발부서는 기업이라는 큰 틀에서만 움직일 수 있을 뿐이다. 아무리 대단한 능력과 꼼꼼한 보안습관을 갖추고 있다고 해도 기업 전체가 가지고 있는 규칙이나 분위기에 따라 전혀 다른 결과가 나오기도 한다. 회사 임원들 중 보안을 고려하는 이가 한 명도 없다면 보안에 돈이고 인력이고 시간이고 투자되지 않을 것이고, 이는 곧 ‘시한부’ 보안을 의미한다. 보안에도 자원이 들기 때문이다.


글 : 패트릭 토마스(Patrick Thomas)

Copyrighted 2015. UBM-Tech. 117153:0515BC

[국제부 문가용 기자(globoan@boannews.com)]


<저작권자: 보안뉴스(http://www.boannews.com/) 무단전재-재배포금지>

  •  
  • 0
  • 페이스북 보내기 트위터 보내기 네이버 밴드 보내기 카카오 스토리 보내기


  •  SNS에서도 보안뉴스를 받아보세요!! 
넷앤드 파워비즈 진행 2020년1월8일 시작~2021년 1월8일까지IBM 파워비즈 배너 2019년2월8일~2020년2월7일까지/7월25일 수정위즈디엔에스 2018파워비즈배너 시작 11월6일 20181105-20200131
설문조사
2020년 경자년에 국내 주요 보안기업들과 보안관련 기관들이 공통적으로 꼽은 7가지 보안위협 가운데 가장 주목되는 분야는?
랜섬웨어
공급망 공격
클라우드
악성메일
IoT
다크웹
AI
기타(댓글로)