개발자 / 보안

소프트웨어 공급망 위험에 대처하는 맞춤형 개발자 보안 교육

Michael Hill | CSO 2021.05.27
소프트웨어 개발팀과 사이버 보안 부서 사이의 결속의 부재는 기업이 직면한 소프트웨어 공급망 위험을 악화시킨다. 따라서 사이버보안 리더와 팀이 개발자와 더욱 원활하게 교류하고 이들을 교육시키는 것이 시급하다. 
 
ⓒ Getty Images Bank

표준적인 사이버보안 인식 교육은 개발자에게 효과가 없을 것이라고 전문가들은 말한다. 교육은 소프트웨어 개발 수명주기(Software Development LifeCycle, SDLC)를 둘러싼 고유의 사이버 위험에 대처할 수 있도록 만들어져야 한다. 

불안전한 소프트웨어의 위험은 2021년 초 선버스트(Sunburst) 공급망 공격에 의해 극명하게 드러났다. 여기서 위협 행위자는 솔라윈즈(SolarWinds)가 만든 상용 소프트웨어 애플리케이션에 침투해 다수의 기업과 개인, 정부기관을 공격했다. 

공격은 복잡하고 탐지하기 어려울 뿐 아니라 광범위하기까지 해서 수많은 피해자가 발생했다. 이로 인해 사이버 범죄자들은 소프트웨어 공급망을 둘러싼 취약점, 그리고 개발자를 포함한 특정한 개발 수명주기를 노리게 됐다.


소프트웨어 개발 사이버 위협 

솔라윈즈 공격이 있은 후 몇 개월이 지났지만, 오스터만 리서치(Osterman Research)의 신규 보고서에 따르면, 기관과 기업은 소프트웨어 공급망 손상으로 이어질 수 있는 기저의 인간 관련 문제에 아직까지 제대로 대처하지 못하고 있다. 

<불완전한 인간, 취약한 애플리케이션(Imperfect People, Vulnerable Applications)> 보고서는 미국과 영국의 애플리케이션 개발 및 보안 담당자 260명의 응답을 기반으로 SDLC에서 인간 요소가 사이버 위험에 기여하는 바를 설명한다. 

이 보고서는 개발팀의 45%가 최신 애플리케이션 공격에 대한 이해가 부족하다고 느끼는 것으로 드러났고, 무려 81%가 취약한 코드임을 알고 있으면서도 이를 실무에 투입하고 있음을 인정했다. 더 심각한 점은 불과 27%의 최전방 개발 전문가가 애플리케이션 보안을 자신의 책임으로 생각하는 반면, 개발 관리자의 80%가 이를 개발 전문가의 책임으로 생각한다. 

이런 조사 결과는 사이버보안 전문가의 생각과 별로 차이가 없다. CISO의 불과 50%만이 안전한 애플리케이션이 개발될 수 있다는 확신을 가지고 있고, 보안 담당자의 45%는 개발자가 최신 애플리케이션 보안 위협을 이해하지 못한다고 믿는다. 실제로, 56%의 보안팀이 자사가 소프트웨어 개발 환경에 대한 솔라윈즈 유형의 공격에 버티지 못할 것이라고 믿는다.

 
소프트웨어 공급망 위험을 악화시키는 불충분한 사이버보안 교육

이 보고서의 추론에 따르면, 협력과 이해의 부재는 개발자를 위한 낡고 불충분하고 불규칙한 사이버보안 정보 공유, 교육 및 훈련 때문에 악화된다. 전통적인 강의실 기반 접근법은 개발자의 참여를 이끌어 내지 못하거나 SDLC의 역동적인 기술 기반과 빠른 속도의 위협 지형에 대처하는 데 유효한 지식을 전달하지 못한다.
  
미국의 자동화된 보안 및 인식 교육 제공업체인 핵웨어(HacWare) CEO이자 설립자인 티파니 릭크스는 보안 인식 교육이 오랫동안 소프트웨어 개발자에게 도움이 되지 않았다고 지적했다. 릭크스는 “개발자 보안 교육이 까다로운 이유는 교육이 적시에 혁신을 촉진할 수 있는 유효한 콘텐츠여야 한다는 점이다”라고 말했다.  

또 다른 까다로운 점은 신규 개발자의 다양한 교육 배경이라고 릭크스는 덧붙였다. 그는 “이들은 안전한 코딩으로 시작하는 법을 모른다. 이들은 지도가 필요하다”라고 말했다. 

오스터먼의 보고서는 기업에 합류하는 신입 직원의 절반이 애플리케이션 보안 교육을 제대로 받지 못하고, 최전방 개발자의 45%만이 안전한 애플리케이션을 제작하는 법을 터득하는 데 필요한 시간을 제공받는다는 사실을 발견했다. 릭크스는 “따라서 지속적이고 맞춤화된 보안 인식 교육이 소프트웨어 개발자에게 필수적이다”라고 말했다.
 
그렇다면 기업과 이들의 보안 부서는 개발자를 위한 맞춤형 보안 인식 고취 노력에 어떻게 접근해야 할까? 


개발자, 사이버공격의 표적

럼블 네트워크 디스커버리(Rumble Network Discovery)의 CEO이자 메타스플로이트 프로젝트(Metasploit Project)의 설립자인 HD 무어는 "적절한 보안 인식의 출발점은 개발자 자신이 표적 공격의 대상임을 인식하는 것이다. 개발팀 보안 교육은 흔히 코드 안전에만 초점을 두고, 손상된 종속성(dependencies) 또는 개인 계정이 표적이 될 가능성을 다루지 않는다"라고 지적했다. 

개발자는 생계를 위해 코딩을 할 뿐 아니라 코드를 실행하기도 한다. 따라서 표적 공격의 대상이 될 위험이 커지고 있다. 공격 표면 측면에서 개발팀은 막대한 수의 서드파티 리소스 및 서비스에 노출되어 있고, 현재의 보안 교육 프로그램은 이를 거의 고려하지 않는다. 

무어는 "예를 들어 오픈소스 프로젝트에 대한 깃 허브 상의 악의적인 풀 리퀘스트(pull request)는 프로젝트 개발자의 인증 정보를 훔치는 신속한 방법일 수 있다. 다른 변화들로 적절히 위장된 경우라면 특히 그렇다”라고 말했다. 무어는 손상되거나 위조된 종속성을 통해 의도적으로 도입된 취약점을 평범한 리뷰 중에 발견하기는 어렵다고. 

따라서 기업은 개인 계정에 대한 표적 공격, 악의적이고 손상된 종속성, 일반적인 피싱 공격을 설명할 수 있도록 보안 인식 프로그램을 개선해야 한다. 무어는 "개발자 자격 증명의 비정상적 사용을 모니터링하는 보안 프로그램은 성공적인 공격에 대처하는 측면에서 한 발 앞서 있다"라고 말했다. 


고위험 소프트웨어 공급망 위협 

SANS 인스트럭터이자 바이오닉 사이버(Bionic Cyber) CEO인 마크 올랜도는 기업에 중대한 피해를 입힐 가능성이 가장 높은 소프트웨어 공급망 위험, 예를 들어 악의적인 서드파티 소프트웨어 업데이트, 손상된 오픈소스 코드 등에 관한 조기의 정기적인 인텔리전스를 제공하는 데 집중하라고 말했다.
 
올랜도는 “이들 프로그램과 패키지의 편재성은 이들을 매력적인 표적으로 만든다. 이를 통해 공격자는 대부분의 보안 통제수단을 우회할 수 있다”면서, “또한 일단 손상된 컴포넌트가 내부 시스템에 포함되면 이들을 교정하기 어렵다”라고 지적했다. 

올랜도는 코드코브(Codecov)와 솔라윈즈(SolarWinds)의 손상, 그리고 2018년 파이썬 패키지 인덱스에 업로드 된 악성 라이브러리를 향후에도 계속될 악성 업데이트의 실례로 제시했다.

 
개발 프로세스에 보안 제어수단과 모니터링을 구축  

보안팀은 개발팀과 협력해 개발 과정 안에 보안 제어수단과 모니터링을 구축하는 데, 이는 개발 후 잠금 조치와는 다르다. 올랜도는 “소프트웨어 개발을 보안하는 것은 다른 인프라를 보안하는 것과 다르다. 시스템이 실무에 투입된 후에 이를 이행할 수 없기 때문이다. 그러자면 개발팀과 협력하고 이들을 지원해야 하고 이에 의해 추가 작업으로 인한 지연을 방지할 수 있다. 협력의 목표는 평가 및 교정 과정을 개발 파이프라인에 최대한 조기에 편입시키는 것이다”라고 설명했다.
 
이는 보안 요건을 개발 스프린트에 주입한다는 의미이다. 이는 버그에 관해 적시의 피드백을 제공하고, 보안을 희생하지 않으면서 개발 시한을 지키는 것을 가능하게 한다. 올랜도는 “보안팀은 또한 애플리케이션 및 인프라에 특정된 위협을 개발자에게 지속적으로 통지해야 하고 문제에 대처하는 법을 건설적으로 지도해야 한다”라고 말했다. 


소프트웨어 개발 교육 시 데이터 컴플라이언스는 필수 

릭크스는 “개발자 대상의 사이버 보안 교육에서 예를 들어 GDPR, PCI DSS 등의 규제 하의 개인식별정보(PII)에 대한 복잡한 데이터 스토리지 요건을 다루는 것이 갈수록 중요해지고 있다”면서, “데이터가 더 이상 식별 가능하지 않도록 코드를 제작하는 것은 개발자의 책임이다. 보안 인식 교육은 데이터 암호화 및 익명화의 모범 사례를 다뤄야 하고, 스토리지 컴플라이언스 표준을 따라야 한다. 최종 사용자가 자신의 데이터를 요구하거나 시스템으로부터 제거되기를 원한다면 엔지니어는 이런 기능을 코딩하는 모범 사례를 알고 있어야 한다”라고 권고했다.

 
참여적인 개발자 사이버보안 교육

보안팀이 어떤 형태의 사이버보안 훈련, 교육, 정보 공유를 선택하든지 가장 중요한 측면은 개발자를 위해 참여적인 환경을 조성하는 것이다. 이머시브 랩스(Immersive Labs)의 수석 애플리케이션 보안 주제전문가 션 라이트는 “효과적인 교육은 협업적이고 양방향의 스킬 구축 및 미시적 훈련을 포함해야 한다. 동영상, 선다형 문제, 책상 위 훈련이 아니다’면서, “또한 실용적이고 현실적인 훈련이 지극히 중요하다. 개발자는 코딩을 좋아한다. 따라서 훈련의 일환으로 실제로 코딩을 하면서 취약점을 직접 체험한다면 훨씬 더 참여적이 된다. 교육 효과가 높아지는 것이다”라고 설명했다. 

실제 비즈니스 사례를 연계시키는 것은 특별히 효과적이다. 라이트는 사이버보안 부서가 개발자에게 ‘왜’라는 사고방식을 주입하도록 장려한다. 라이트는 “왜 취약점에 신경을 써야 하는가? 취약점을 그대로 두는 것은 조직에게 무슨 의미인가? 거시적 영향은 무엇인가? 이러한 메시지를 효과적으로 전달하는 교육은 참여를 높일 가능성이 더 크다. 교육에 참여하려는 의지도 높아지고 교육으로부터 나온 정보를 흡수하는 속도도 빨라진다”라고 말했다. 

솔라윈즈 손상이 소프트웨어 개발팀, 공정, 공급망을 둘러싼 사이버 위협에 대한 인식을 전반적으로 증가시킨 것은 주지의 사실이다. 그러나 SQL 인젝션, 크로스사이트 스크립팅(XSS) 등의 보편적인 애플리케이션 공격 기법은 수십 년간 존재했고, 보안 프로그램의 감시망을 회피하면서 여전히 각종 최고 취약점 목록에 지속적으로 등장하고 있다. 

기업은 이들 손상으로 이어지는 인간 중심의 인식 기반 문제에 제대로 대처하는 데 여전히 실패하고 있는 듯하다. 올해 애플리케이션 공급망 취약점이 증명한 것처럼 이들은 위험에 처해 있다. 

보안팀 내의 시간 및 자원 문제는 더욱 협업적이고 정보를 공유하는 문화를 조성하는 데 있어 잠재적인 장애로 증명될 것이다(오스터먼의 보고서는 56%의 보안 응답자가 개발팀이 애플리케이션을 안전하게 만드는 데 도움을 줄 시간이 없음을 발견했다). 그러나 ‘물고기를 주는 대신 물고기를 잡는 법을 가르치라’는 오래된 격언은 현대의 기업 사이버보안 관점에서 더할 나위 없는 사실이다. editor@itworld.co.kr 
Sponsored

회사명 : 한국IDG | 제호: ITWorld | 주소 : 서울시 중구 세종대로 23, 4층 우)04512
| 등록번호 : 서울 아00743 등록발행일자 : 2009년 01월 19일

발행인 : 박형미 | 편집인 : 박재곤 | 청소년보호책임자 : 한정규
| 사업자 등록번호 : 214-87-22467 Tel : 02-558-6950

Copyright © 2024 International Data Group. All rights reserved.