[Tech Blog] ISMS-P와 오픈소스의 만남, 이제 Prowler로 쉽고 빠르게

메가존클라우드의 오픈소스 기여 사례

들어가며

안녕하세요! 이번 블로그에서는 메가존클라우드가 오픈소스 보안 도구 Prowler에 기여한 KISA-ISMS-P 컴플라이언스를 활용하는 방법을 간략히 소개하며 기업과 오픈소스 커뮤니티가 함께 만들어가는 선순환 구조를 조명합니다.

ISMS-P 인증 이란?

ISMS-P(Information Security Management System & Privacy)는 정보통신망법과 개인정보보호법에 따라 설계된 인증 제도로,  ISMS와 개인정보 관리체계 인증을 단일 심사 절차로 통합한 인증입니다. 기업에서는 본 인증을 취득함으로써 정보통신망법 및 개인정보 보호법에서 요구하는 정보보호 및 개인정보 보호 기준을 준수하고 있음을 증명할 수 있습니다.
그림1-1. ISMS-P 인증 추진 체계 (출처 : 개인정보보호위원회(개인정보포털))
이는 한국인터넷진흥원(KISA)과 금융보안원(FSI)이 관리하며, 독립적인 심사기관이 인증 기준 충족 여부를 평가한 후 인증을 부여합니다.

ISMS-P 인증의 주요 목적은 기업이 서비스 신뢰성을 확보, 복잡한 사이버 위협에 대응, 법적 요구를 준수할 수 있도록 돕는 필수 인증으로 특히 일정 규모 이상의 정보통신서비스 제공자는 이를 의무적으로 취득해야 합니다.

ISMS-P 인증을 위한 현실적 과제

1. 기업의 클라우드 환경 도입 가속화에 따른 인증 기준의 복잡성과 변화

클라우드 환경 도입이 점차 확산되면서 ISMS-P와 같은 인증 기준은 더욱 복잡해지고 있습니다. 

기존 온프레미스 중심의 보안 체계와는 다르게 클라우드 환경에서는 분산된 데이터와 가상화 된 리소스들로 인하여 보안 요구사항이 더욱 다양해지고 세부적으로 변해가고 있습니다.

기업의 규모와 서비스의 중요도에 따라서는 멀티 클라우드와 하이브리드 클라우드 구성 또한 증가함에 따라 기업들은 더욱 복잡해진 각각의 클라우드 서비스들의 특성을 이해하고 클라우드 보안 규정준수라는 두가지 미션을 동시에 충족해야 하는 도전에 직면하고 있습니다.
2. 예산 및 자원 부족

인증 준비 또는 유지 과정에서 발생하는 비용은 기업에 따라 어려움으로 작용 할 수도 있으며, 특히 인증의 기술적 요구사항을 충족하기 위한 전문 지식이나 그를 수행하기 위한 도구도 일원화 되어있지 않습니다.
3. 지속적인 유지 관리의 부담

ISMS-P 인증은 단발성이 아닌 지속적인 관리가 필수적입니다.
정기적인 기준 변경에 따른 관리 체계 업데이트 및 연례 심사 준비 등의 과정은 시간과 비용 면에서 기업들에게 큰 부담으로 작용합니다.

클라우드 환경에서의 ISMS-P 준수, 어디서부터 시작해야 할까?

1. 클라우드 보안 및 컴플라이언스 도구의 등장 배경과 역할

위와 같은 현실적인 과제를 해결하기 위해 정부는  「정보보호 및 개인정보보호관리체계 간편인증」제도를 시행하여 기업의 인증 부담을 완화하고자 노력하고 있습니다.

그러나 간편인증 제도는 특정 기업과 환경에 제한적으로 적용되며, 다양한 클라우드 환경과 정기적으로 변경되는 복잡한 컴플라이언스 요구사항을 동시에 충족하기에는 한계가 있습니다.

결과적으로, 기업들은 상용 솔루션의 도입, 보안 전문 인력의 확보, 교육 및 내부 프로세스 정립 등 추가적인 시간과 비용을 들여야만 인증을 준비하고 유지할 수 있는 상황입니다. 

이러한 배경 속에서 클라우드 보안점검 도구와 오픈소스 솔루션의 활용은 인증 준비 과정에서의 효율성을 높이고 비용을 절감하는 데 점점 더 중요한 대안으로 자리 잡고 있습니다.
2. CSPM(Cloud Security Posture Management) 이란?

CSPM은 클라우드 인프라의 보안 상태를 지속적으로 평가하고 관리하여 보안 위험과 규정 위반을 방지하는 데 중점을 둔 솔루션입니다. 특히 잘못된 구성으로 인한 보안 취약점을 자동으로 탐지하고 해결할 수 있도록 지원합니다.

CSPM은 클라우드 환경의 복잡한 보안 요구사항을 효율적으로 관리하기 위해 설계되었으며, 특히 ISMS-P와 같은 컴플라이언스 점검 및 준수에 더욱 적합한 도구로 주목받고 있습니다.
3. 글로벌 CSPM 오픈소스 : Prowler 를 중심으로!

오픈소스 CSPM 도구는 상용 솔루션에 비해 비용 부담이 적고, 커스터마이징 가능성이 높아 효과적인 대안으로 평가받고 있습니다.
Prowler는 오픈소스 CSPM 도구 중 기능의 포괄성과 커뮤니티 참여도 측면에서 최상위권에 자리하고 있습니다.
AWS, Azure, GCP, Kubernetes 등 주요 클라우드 환경에서 보안 평가와 규정 준수를 지원하며, 상용 솔루션에 필적하는 수준의 강력한 기능을 제공합니다.
특히, Prowler는 오픈소스 CSPM 카테고리에서 10,900개 이상의 GitHub 스타를 기록하며 커뮤니티 내에서 높은 인지도와 신뢰를 얻고 있습니다. 
이는 단순히 널리 사용되는 도구를 넘어, 글로벌 오픈소스 커뮤니티에서 CSPM 분야의 표준 도구로 인정받고 있음을 보여줍니다.

C:\Users\MZC02-JUDE\AppData\Local\Packages\Microsoft.Windows.Photos_8wekyb3d8bbwe\TempState\ShareServiceTempFolder\sample1.jpeg

그림1-2. 주요 오픈소스 CSPM 포지셔닝

프로젝트명GitHub StarsGitHub 기여자 수GitHub 최근 커밋 날짜지원 플랫폼지원 컴플라이언스주요 기능
Prowler-cloud10.9k2592024-11-20AWS, Azure, Google Cloud, KubernetesKISA-ISMS-P,CIS, NIST 800-53, PCI-DSS, GDPR,FedRAMP,FFIEC,GXP,HIPAA, ISO 27001, SOC2, AWS Well-Architected Framework, ENS 등클라우드보안 탐지 및 평가,자산 식별, 컴플라이언스 준수 점검, Incident Response 지원, 하드닝 및 포렌식 준비, 보고서 생성
,AWS 시큐리티 허브 통합
CloudSpliot3.4k502024-11-27AWS, Azure, GCPCIS,,HIPAA,PCI-DSS클라우드 보안 위협 탐지, 컴플라이언스 준수
Fix Inventory1.6k202024-11-26AWS, GCP, Azure없음클라우드 보안 위협 탐지, 자산 식별
ZeusCloud697202024-10-26AWSCIS,PCI-DSS클라우드 보안 위협 탐지
OpenCSPM33652022-02-18AWS, GCP사용자 작성 컴플라이언스 체크클라우드 보안 상태관리
표 1-1. 주요 오픈소스 CSPM 비교
Prowler는 AWS, Azure, Google Cloud, Kubernetes 환경에서 보안 모범 사례 평가, 감사, 사고 대응, 지속적인 모니터링, 하드닝, 포렌식 준비 및 수정 작업을 수행하는 오픈 소스 보안 도구이며 아래 두 가지 형태로 제공됩니다:

Prowler (Git 오픈소스 버전): 명령 줄 인터페이스(CLI)를 통해 사용되며, 사용자가 직접 설치하고 운영합니다. 이 버전은 무료로 제공되며 커뮤니티의 기여를 통해 지속적으로 개선되고 있습니다.

Prowler SaaS (엔터프라이즈 대상 상용 서비스): Prowler 오픈소스 버전을 기반으로 한 서비스로 추가적인 기능과 편의성을 제공합니다. 이 버전은 구독 방식으로 제공되며 사용자에게 더 많은 기능과 지원을 제공합니다.
항목Prowler(오픈소스)Prowler SaaS(엔터프라이즈)
설치 및 관리사용자가 직접 설치 및 관리, CLI 기반클라우드 기반, 별도 설치 없이 웹 인터페이스 제공
지원 클라우드 환경AWS, Azure, Google Cloud, Kubernetes (동일)AWS, Azure, Google Cloud, Kubernetes (동일)
기능 범위기본 보안평가, 컴플라이언스 체크, 보고서 생성고급 대시보드, 실시간 알림, 자동화된 수정 기능 제공
사용편의성 커맨드라인을 통한 점검 및 결과 확인웹 기반 인터페이스로 손쉬운 접근 및 관리
보고서 포맷CSV,JSON,HTML,OCSFCSV,JSON,HTML,OCSF
지원커뮤니티 지원엔터프라이즈 지원
자동화 수준제한적 자동화(사용자 수동 설정 필요)자동화 기능(자동 수정 및 알림 포함)
비용무료유료 : 사용량 기반(Pay per use)
표 1-2. Prowler와 Prowler SaaS 주요 차이점
4. Prowler KISA-ISMS-P 컴플라이언스 제작


4.1 제작 배경 및 목표

ISMS-P에 대한 수요가 한국 내에서 꾸준히 증가함에 따라 Prowler를 통해 한국 사용자들이 ISMS-P 규정을 보다 쉽게 점검하고 활용할 수 있도록 영어와 한국어 두 가지 버전으로 제공하였습니다. 이는 국내 ISMS-P 규정을 널리 알리는 동시에 글로벌 오픈소스 도구를 활용하여 한국의 주요 컴플라이언스 요구사항을 효과적으로 지원하고자 하는 노력의 첫걸음으로 기획 되었습니다.
4.2 제작 과정

4.2.1 데이터 준비

저희 팀은 다양한 컴플라이언스를 다루는 범용 클라우드 보안 데이터셋을 개발하고 있습니다.
이 데이터셋은 KISA의 ISMS-P를 포함한 주요 클라우드 보안 관련 규제 요구사항과 저희 팀의 클라우드 보안 지식 베이스를 기반으로 구성되었습니다. 이번 Prowler KISA-ISMS-P 컴플라이언스 기여 프로젝트에서는 이 데이터셋을 활용하여 생성형 AI 모델을 학습시켰고, 해당 모델을 활용하여 Prowler의 Checks 리스트 항목과 ISMS-P 상세 요구사항 간의 매핑을 위한 초기 데이터를 생성했습니다. 초기 매핑 데이터는 저희 팀 내 전문가의 검토를 거쳐 점진적으로 개선되었으며 최종적으로 Prowler에서 활용 가능한 KISA-ISMS-P 컴플라이언스를 완성하게 되었습니다.
4.2.2 Prowler 상세 분석


– CLI 명령에 의한 흐름 분석
CLI 명령은 Prowler의 메인 로직을 통제하는 주요 흐름으로 작동하므로, KISA-ISMS-P 컴플라이언스 제작을 위해 명령 경로와 동작을 명확히 정의하는 것이 필요했습니다. 이후, 명령별로 실행 흐름을 분석하여 각 명령이 Checks 로직이나 컴플라이언스 로딩, 출력 생성 등 주요 모듈과 어떻게 연결되는지를 추적하였습니다.

– Checks 분석 및 변환
Checks 로직 분석 과정은 작게는 Checks 항목 정의 확인부터 실행 흐름 파악, 구성 요소 관리, 결과 처리 등 전체적인 흐름을 이해하는 과정으로 이루어졌습니다. 또한, 데이터를 별도의 ETL(추출, 변환, 적재) 프로세스를 통해 저희 팀의 데이터셋 포맷으로 변환하여 활용할 수 있도록 준비하였습니다.
마지막으로 Checks 실행 결과가 저장되는 방식과 이후 출력 로직으로 전달되는 데이터 흐름을 확인하였고, 결과 데이터를 가공하고 출력 형식으로 변환하는 과정을 이해하였습니다.

– 컴플라이언스 로직 통합
compliance 디렉토리에서 기존 컴플라이언스 JSON 파일들을 먼저 검토하여 필요한 정보를 확인하였고, KISA-ISMS-P 컴플라이언스 제작에 사용할 내용들을 정의하고 설계하였습니다.
4.2.3 AI 기반 데이터 초기 매핑

파인 튜닝된 생성형 AI 모델을 통해서 앞의 단계에서 추출하고 정제한 Prowler의 Checks 리스트를 KISA의 ISMS-P 요구사항과 매핑하여 초기 데이터를 추출하였습니다. 추출된 초기 데이터에 대하여 1차 검토 과정을 거쳐 적합성을 평가하고, 누락된 항목이나 과잉 매핑 여부를 식별하였습니다.
4.2.4 전문가 검토 및 개선

1차 검토 결과에 대해서 저희 팀과 그룹의 관련 전문가들이 ISMS-P 점검사항과 Prowler의 Checks 항목 간의 매핑 적합성을 심층적으로 검토하고, 검토 이후의 피드백에 따라 매핑된 항목을 조정하였습니다.
4.2.5 Prowler 코드 통합

최종 검토 및 개선된 매핑 데이터를 기반으로 컴플라이언스를 처리하는 Prowler의 통합 코드를 작성하였고, 이후 PR(Pull Request)을 생성하여 메인 브랜치에 병합되기 위한 Prowler의 각 메인테이너들의 검토 및 승인을 받았습니다.
4.3 기여 내역

이번 Prowler KISA-ISMS-P 컴플라이언스 기여에서는 총 12개의 파일을 추가/변경하였으며, 9,097줄의 코드를 추가하였습니다. 변경 사항에는 KISA-ISMS-P 컴플라이언스의 영어 및 한국어 버전을 포함한 다양한 파일이 포함됩니다.

대시보드 파일 :  
`dashboard/compliance/kisa_isms-p_2023-korean_aws.py`  
`dashboard/compliance/kisa_isms-p_2023_aws.py`  

컴플라이언스 파일 :  
`prowler/compliance/aws/kisa_isms-p_2023-korean_aws.json`  
`prowler/compliance/aws/kisa_isms-p_2023_aws.json`  

출력 및 모델 파일 :  
`prowler/lib/outputs/compliance/kisa_ismsp/init.py`  
`prowler/lib/outputs/compliance/kisa_ismsp/kisa_ismsp.py`  
`prowler/lib/outputs/compliance/kisa_ismsp/kisa_ismsp_aws.py`
`prowler/lib/outputs/compliance/kisa_ismsp/models.py`
5. Prowler의 KISA-ISMS-P 컴플라이언스를 사용하여 클라우드 점검 시작하기


5.1 설치 환경 준비

Prowler를 설치하기 이전에 Python 가상환경을 생성하여 독립된 개발 환경을 마련합니다. 
이를 통해 시스템에 영향을 주지 않고 Prowler 및 관련 패키지를 안전하게 설치하고 관리할 수 있도록 합니다.
5.1.1 Python 설치 여부 및 버전 확인 : 현재 시점으로 Python 3.9 이상 3.13 미만의 Python 버전이 권장 됩니다

bash) python3 –version

5.1.2 Git 설치 여부 확인 : Git CLI 가 설치 되어있어야 합니다.

bash) git version
5.1.3 프로젝트 디렉토리 생성 및 이동 : Prowler 설치를 위한 독립적인 디렉토리를 생성하고 이동합니다.

bash) mkdir xxx-prowler
bash) cd xxx-prowler
5.1.4 Python 가상 환경 생성 및 활성화 : venv 모듈을 사용하여 가상환경을 생성하고 활성화 합니다.

bash) python3 -m venv prowler-venv
bash) source ./prowler-venv/bin/activate
5.1.5 PIP 업데이트 : Python 패키지 관리자(pip)를 최신 버전으로 업데이트하여 패키지 설치 오류를 방지합니다.

bash) pip install –upgrade pip
5.1.6 Poetry 설치 : Poetry가 설치되어 있지 않다면 아래 명령어로 설치합니다.

bash) curl -sSL https://install.python-poetry.org | python3 –
5.2 Prowler 설치 및 실행

Prowler는 다양한 설치 방법을 제공하지만, 본 블로그에서는 Prowler의 공식 GitHub에서 소스를 클론(clone)하여 설치하는 방법을 다룹니다.
이 방법은 최신 개발 버전과 커스터마이징 옵션을 활용할 수 있는 장점이 있습니다.
5.2.1 Prowler GitHub 저장소 복제 및 실행 권한 부여 : Prowler의 오픈소스 코드를 GitHub에서 다운로드하고 해당 디렉토리로 이동한 뒤에 실행 권한을 부여 합니다.

5.2.2 Poetry로 종속성 설치: Prowler 실행에 필요한 모든 의존 패키지를 설치합니다.

bash)  poetry install
5.2.3 Prowler 실행 확인: Prowler의 버전을 출력하여 설치가 완료되었는지 확인하고 가능한 컴플라이언스 목록 중 KISA-ISMS-P가 출력되는지 확인합니다.

bash) python prowler.py -v
bash) python prowler.py –list-compliance

5.3. 점검 대상 클라우드 사전 준비


5.3.1 AWS CLI 설치 및 설정

Prowler는 AWS 클라우드 환경에서 점검 작업을 수행하기 위해 AWS CLI를 사용하여 인증 및 권한을 설정해야 합니다.


5.3.2 AWS CLI 설치 여부 확인

AWS CLI가 설치되어 있는지 확인합니다. 설치되지 않았다면 다음 명령어로 설치합니다.

bash) aws –version
bash) brew install awscli



5.3.3 AWS CLI 구성

AWS 액세스 키와 시크릿 키, 리전, 출력 형식을 설정합니다.

bash) aws configure
Access Key ID: AWS IAM 콘솔에서 발급받은 키.
Secret Access Key: 위 키에 대한 시크릿 값.
Default region: 예) ap-northeast-2 (서울 리전).
Default output format: json 추천

5.4. 점검 실행 및 결과 확인


5.4.1 컴플라이언스 점검 실행 

아래 예시는 KISA에서 2023 년에 11월에 발행한 ISMS-P 버전으로 점검을 실행하는 예시입니다. 영문 버전을 사용하려면 ”_korean” 부분을 없앤 뒤에 커맨드를 실행합니다.

bash) python prowler.py –compliance kisa_isms_p_2023_korean_aws –region ap-northeast-2



5.4.2 점검 결과 파일 확인

점검이 정상적으로 완료 되었다면 아래와 같이 점검 결과 파일의 경로가 터미널에 출력 됩니다.



해당 경로로 이동하여 확인해 보면 점검 결과 파일이 아래 그림과 같이 compliance 디렉토리에 위치하고 있습니다. 또한, CSV Format 뿐만이 아니라 다양한 Output Format을 활용할 수 있습니다. 



해당 파일을 열어 아래와 같은 상세 결과를 확인할 수 있습니다.


5.4.3 대시보드에서의 점검 결과 확인

터미널에서 대시보드를 실행합니다.
bash) prowler dashboard


대시보드를 커맨드를 실행하면 http://127.0.0.1:11666과 같은 URL을 확인할 수 있으며, 이후 브라우저를 통해 해당 URL로 접속하면 아래와 같이 점검 결과를 확인할 수 있습니다.

– Overview: 전체 점검 결과



– Compliance: 컴플라이언스 별 점검 결과

활용 방안

ISMS-P 준수 자동화 도구로 활용 

– Prowler KISA-ISMS-P 컴플라이언스를 통해 규정 준수 상태를 자동으로 점검
– 점검 결과를 JSON, CSV 형식으로 출력하여 기업 내부 보고 및 감사 자료로 활용
– 정기적인 점검 프로세스를 통해 지속적인 규정 준수 상태 유지
– Prowler의 점검 결과를 기반으로 클라우드 자원의 보안 취약점 개선
– 팀 내부에서 ISMS-P 요구사항과 매핑 된 실질적인 보안 제어를 학습하고 공유

기업과 오픈소스의 선순환: 기술, 협업, 그리고 지속 가능성

Prowler 커뮤니티는 메가존클라우드의 Prowler KISA-ISMS-P 컴플라이언스 기여를 매우 긍정적으로 평가했으며, PR(Pull Request)의 승인 과정에서도 높은 수준의 피드백을 제공하였고, 더 나아가 메가존클라우드의 지속적인 기여는 물론 향후 비즈니스 협력에 대해서도 Prowler의 CEO인 Toni de la Fuente와 추가적인 논의를 할 수 있게 된 계기가 되었습니다.


프로젝트 온라인 상담 문의
프로젝트 기여자

Jude Bae (PM)
– 역할: 프로젝트 매니저로서 전체적인 기획과 개발을 주도하며, 팀 간 조율, PR 작업 관리, 및 커뮤니티와의 소통을 책임.

ES Kim (PL)
– 역할: 프로젝트 리더이자 보안 컴플라이언스 전문가로서 ISMS-P 요구사항 정의, Checks 리스트의 적합성 검토 및 검수 작업을 수행.
– 기여: ISMS-P 컴플라이언스 규정의 정확성과 실효성을 보장하는 핵심 역할을 수행.

Yenn
– 역할: Cloud Security Team 소속으로, 코드 개발 지원 및 ISMS-P 관련 기술적 요구사항에 대한 연구 및 구현을 담당.


[참고 자료]
Pull Request : https://github.com/prowler-cloud/prowler/pull/5086
Prowler Docs : https://docs.prowler.com/projects/prowler-open-source/en/latest/
Prowler 릴리즈 노트 일부 KISA-ISMS-P 부분 발췌
게시물 주소가 복사되었습니다.