IT 관리 / 개발자 / 보안

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

Peter Wayner | CSO 2022.01.24


카오스 엔지니어링 기법

카오스 엔지니어링은 단순한 동시에 놀라울 정도로 우회하는 방법이다. 프로그래머가 당연한 것으로 전제한 많은 서비스를 뒤엎어 일반적으로 보호되는 소프트웨어를 비틀고 왜곡한다. 예컨대 인터넷 연결에서 오는 데이터 패킷의 절반을 삭제하거나, 여유 메모리를 모두 채워 소프트웨어에서 저장할 공간을 없도록 만드는 등의 단순한 테스트를 사용한다.

테스트는 보통 상위 계층에서 수행된다. 예를 들어 데브섹옵스팀은 일부 서버를 종료해 서버군에서 실행되는 다양한 소프트웨어 패키지가 장애를 견딜 정도로 탄력적인지 확인할 수 있다. 지연을 발생시켜 이 지연이 눈덩이처럼 커지면서 최종적으로 시스템 중단으로 이어지는지 살펴보는 방법도 있다. 

RAM, 하드 디스크 공간, 데이터베이스 연결과 같은 거의 모든 리소스가 실험 대상이다. 이러한 리소스를 완전히 차단하는 테스트도 있고, 리소스에 큰 제약을 걸어 리소스 부족 상황에서 소프트웨어가 어떻게 동작하는지 확인하는 테스트도 있다.

보안 결함은 간접적으로 노출되는 경우가 많다. 버퍼 오퍼플로우 문제는 카오스 툴에서 한 채널에 과도하게 많은 바이트를 주입하는 방법으로 비교적 쉽게 드러난다. 카오스 툴은 소프트웨어에 실제로 침투하지 않으면서 누군가가 버퍼 오버플로우를 이용해 악성 코드를 주입할 만한 위치를 찾아낼 수 있다.

카오스 엔지니어링은 파싱 논리의 결함을 드러내는 데도 효과적이다. 프로그래머가 매개변수의 모든 구성 가능한 방법을 미리 확인하지 않을 경우 백도어가 발생할 가능성이 있는데, 이때 소프트웨어에 무작위의 반구조적인(semi- structured) 입력을 쏟아 넣는 방법으로 공격자보다 먼저 장애 모드를 트리거할 수 있다.

카오스 엔지니어링 분야는 점점 정교해지고 있다. 몇몇 연구원은 엄격한 무작위 주입에서 더 나아가 소프트웨어 지식을 사용해 이른바 ‘화이트 박스’ 분석을 사용해 테스트 과정을 이끄는 정교한 퍼징 툴을 만들었다. 예컨대 문법 퍼징 기법은 예상된 데이터 구조의 정의로 시작한 다음 이 문법을 사용해서 테스트 데이터를 생성한 후 문제의 정의를 변경해서 파싱 결함을 찾는다. 마이크로소프트는 세이지(SAGE)라는 툴을 만들어서 분기점을 찾고 입력을 생성해 모든 분기점을 테스트하는 방법으로 잠재적인 오류를 파악했다.

모든 카오스 엔지니어의 숙제는 극한의 부하에서 드러날 수 있는 결함을 찾는 것이다. 완전한 셧다운과 같은 문제는 찾기 쉽지만, 잘 드러나지 않으면서 포착이 어려운 보안 문제로 이어질 수 있는 결함은 발견하기 어렵다. 숨은 결함이 데이터 또는 액세스를 직접 손상하지 않으면서 문제로 이어지는 경우가 많으므로 기업은 이를 찾아서 수정해야 한다.
 

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.