Offcanvas
Some text as placeholder. In real life you can have the elements you have chosen. Like, text, images, lists, etc.
Offcanvas
1111Some text as placeholder. In real life you can have the elements you have chosen. Like, text, images, lists, etc.
IT 관리 / 개발자 / 보안

데브섹옵스팀에 카오스 엔지니어링이 꼭 필요한 이유

Peter Wayner | CSO 2022.01.24
‘카오스(chaos)’와 ‘엔지니어링’이라는 단어는 보통 잘 어울리지 않는다. 훌륭한 엔지니어는 결과적으로 혼란(chaos)스러운 상황을 멀리하기 때문이다. 그러나 최근에는 여러 소프트웨어 개발자가 숨겨진 결함을 드러냄으로써 컴퓨터 시스템을 강화하기 위해 적당한 수준의 ‘카오스’를 사용한다. 카오스 특성상 결과가 보장되지는 않으므로 완벽한 방법은 아니지만, 의외로 효과적인 경우가 많다.
 
ⓒ Getty Images Bank

카오스 엔지니어링은 문서화되지 않고 예측할 수 없는 백도어를 찾아야 하는 보안 애널리스트에게 특히 유용하다. 카오스 테스트로 모든 보안 문제를 찾을 수는 없지만, 개발자가 생각하지 못한 패치하지 않은 위험한 취약점을 발견할 수 있다. 좋은 카오스 엔지니어링은 데브섹옵스팀과 데브옵스팀에 모두 도움이 된다. 안정성 또는 탄력성 문제가 곧 보안 문제로 이어지는 경우도 있고, 동일한 코딩 실수가 전체 시스템 중단이나 사이버 공격자의 침입으로 이어질 수 있어서다.


카오스 엔지니어링이란?

‘카오스 엔지니어링’은 성공적인 결과가 입증된 여러 기법을 통칭하는 신조어다. 컴퓨터 시스템을 비틀어 균형을 무너뜨리고 멈추게 만들기도 하므로 ‘퍼징(fuzzing)’이나 ‘글리칭(glitching)’이라는 용어를 사용하기도 한다. 카오스 엔지니어링은 소프트웨어에 스트레스를 가하는 무작위 행동을 주입한 후 오작동이나 버그가 나타나는지 주의 깊게 관찰하는 방법이다. 정상적인 사용 환경에서는 발견까지 몇 년이 걸리는 문제를 카오스 엔지니어링으로 비교적 짧은 시간 안에 발견하는 경우가 많다. 

EFF(Electronic Freedom Foundation) 공동 설립자 존 길모어는 “코딩은 지속적인 개선 과정이며 카오스 엔지니어링은 가능한 모든 실행 경로를 찾는 속도를 높이는 대표적인 방법이다. 오랜 기간 실행되는 코드는 해당 코드를 처음 실행하는 1,000만 명의 사용자, 코드를 처음 컴파일하는 20개의 컴파일러, 그리고 코드를 처음 실행하는 5개의 운영체제를 통해 대부분의 버그가 드러나는 데 진정한 가치가 있다. 퍼징과 침투 테스트(예를 들어 구글 프로젝트 제로)를 거친 코드는 새로운 코드보다 미탐지 경로의 수가 훨씬 적다”라고 말했다.

길모어는 1970년대 초 미니컴퓨터 제조사인 데이터 제너럴(Data General) 재직 당시의 사례를 자주 인용한다. 당시 길모어는 전원 스위치를 무작위로 끄면 운영체제의 시스템 상태가 엉킨다는 사실을 발견했다. 길모어는 “운영체제 엔지니어는 문제를 고치기보다 전원 스위치 조작이 유효한 테스트가 아니라고 주장했다. 그 결과 데이터 제너럴이라는 기업이 사라지고 없는 것이다”라고 지적했다.

카오스 엔지니어링은 컴퓨터 제조 또는 다른 엔지니어링 분야에서도 새로운 개념이 아니다. 예를 들어 자동차 제조사는 여름에는 사막에서, 겨울에는 북쪽 지방에서 새로운 모델을 테스트한다. 건축가는 테스트 구조를 세운 다음 과부하를 가해 실패를 관찰한다.

다만 컴퓨터 과학은 전통적으로 수학적 영역에 가깝다. 많은 보안 연구원이 수학적인 확실성을 제공하는 정교한 논리적 증명을 만든다. 그러나 현대 소프트웨어의 복잡성은 논리 툴로 모델링할 수 있는 범위를 훨씬 넘어선다. 컴퓨터 보안 영역 대부분은 우리가 원하는 수준의 정밀성으로 이해할 수 없고, 따라서 무작위한 행동의 결과를 일일이 예측할 수도 없다. 

카오스 엔지니어링은 ‘과학’이라는 단어를 의도적으로 포함하지 않는다. 신중하게 제작하고 조정하는 모델을 기반으로 소프트웨어를 구축 및 테스트하고, 최종적으로 이해하는 전통적인 방식과도 거리를 둔다. 사실 ‘엔지니어링’도 이 개념과 그다지 잘 어울리는 단어는 아니다. 엔지니어링은 과학 실험실에서 사용하는 용어인 만큼 엄격하고 계획적이며 방법론적이기 때문이다. 카오스 엔지니어링은 도자기 가게에 황소를 풀어놓거나 고등학교 급식실에 기름칠한 돼지를 풀어놓는 것에 가깝다. 
 

 Tags 카오스엔지니어링 취약점발견 개발 데브섹옵스 데브옵스
Sponsored

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

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

Copyright © 2022 International Data Group. All rights reserved.