ComplianceASCode README.md

출처: https://github.com/ComplianceAsCode/content/blob/master/README.md
EX415 시험을 준비하면서 OpenSCAP을 처음 사용해보고 있습니다. 프로파일 소스 찾다가 알게된 여기가 본진(?) 같아 README.md를 기계번역해서 천천히 읽어보며 살짝 교정해봤습니다.

이 프로젝트의 목적은 Red Hat Enterprise Linux , Fedora , Ubuntu , Debian , SUSE Linux Enterprise Server(SLES) 등 다양한 플랫폼 과 Firefox , Chromium 등의 제품에 대한 보안 정책 콘텐츠를 만드는 것입니다 . 일반적으로 사용되는 모든 형식으로 새 보안 콘텐츠를 작성하고 기존 보안 콘텐츠를 유지 관리하는 것을 가능한 한 쉽게 만드는 것이 목표입니다.

다양한 형식으로 보안 콘텐츠 구축

NIST 로고
Ansible 로고
배시 로고

“SCAP content”는 XCCDF , OVAL 및 SCAP 소스 데이터 스트림 형식 의 문서를 의미합니다 . 이러한 문서는 보안 자동화 및 기술 구현 요구 사항을 충족하기 위해 다양한 조직에서 다양한 형식으로 제공할 수 있습니다. 일반적으로 SCAP 소스 데이터 스트림을 권장합니다. SCAP 소스 데이터 스트림에는 시스템을 평가하고 규정을 준수하도록 하는 데 필요한 모든 데이터가 포함되어 있기 때문입니다. 데이터 스트림은 릴리스 ZIP 아카이브의 일부입니다.

“Ansible content” 는 보안 프로필에서 생성된 Ansible 플레이북을 의미합니다. 이 플레이북은 규정 준수 여부를 평가하는 체크 모드와 머신의 규정 준수 여부를 확인하는 실행 모드로 모두 사용할 수 있습니다. Ansible Galaxy 와 릴리스 ZIP 아카이브에 게시되어 있습니다.

“Bash fix files”은 보안 프로필에서 생성된 Bash 스크립트를 의미합니다 . 이 스크립트는 컴퓨터에서 실행하여 규정을 준수하도록 설계되었습니다. 다른 형식을 사용하는 것이 좋지만, 일부 배포 시나리오에서는 bash가 유일한 옵션이라는 점을 이해하기 바랍니다.

왜?

여러 조직이 보안 콘텐츠를 효율적으로 개발할 수 있기를 바랍니다. 이 프로젝트의 강력한 빌드 시스템을 활용하여 중복을 최대한 방지하고자 합니다.

빌드 시스템은 편집이 간편한 YAML 규칙 파일과 OVAL 체크, Ansible 작업 스니펫, Bash 수정 사항 및 기타 파일을 결합합니다. 보일러플레이트(boilerplate) 문제를 방지하기 위해 모든 단계에 템플릿이 제공됩니다. 보안 식별자(CCE, NIST ID, STIG 등)는 모든 출력 형식에 표시되지만, 모두 YAML 규칙 파일에서 가져옵니다.

조직의 필요에 따라 특정 보안 콘텐츠 형식을 사용해야 할 수도 있다는 점을 잘 알고 있습니다. 원하는 형식을 선택하실 수 있도록 도와드리겠습니다.

빌드 시스템 스키마

입력에는 OpenControl에서 영감을 받은 YAML 규칙 형식을 사용합니다. 한 번만 작성하면 XCCDF, Ansible 등을 통해 보안 콘텐츠를 생성할 수 있습니다.

title: 'Configure The Number of Allowed Simultaneous Requests'

description: |-
    The <tt>MaxKeepAliveRequests</tt> directive should be set and configured to
    <sub idref="var_max_keepalive_requests" /> or greater by setting the following
    in <tt>/etc/httpd/conf/httpd.conf</tt>:
    <pre>MaxKeepAliveRequests {{{ xccdf_value("var_max_keepalive_requests") }}}</pre>

rationale: |-
    Resource exhaustion can occur when an unlimited number of concurrent requests
    are allowed on a web site, facilitating a denial of service attack. Mitigating
    this kind of attack will include limiting the number of concurrent HTTP/HTTPS
    requests per IP address and may include, where feasible, limiting parameter
    values associated with keepalive, (i.e., a parameter used to limit the amount of
    time a connection may be inactive).

severity: medium

identifiers:
    cce: "80551-5"

스캔 대상

당사의 보안 콘텐츠는 베어 메탈 머신, 가상 머신, 가상 머신 이미지(qcow2 및 기타), 컨테이너(Docker 포함) 및 컨테이너 이미지를 스캔하는 데 사용할 수 있습니다.

플랫폼 검사를 통해 일부 규칙을 평가해야 하는지 여부를 감지합니다. 예를 들어, 베어 메탈 머신에서는 별도의 파티션 검사가 완벽하게 적용되지만 컨테이너에서는 권장되는 방식에 위배됩니다.

설치

패키지

권장되는 설치 방법은 배포판의 패키지 관리자를 사용하는 것입니다. Red Hat Enterprise Linux 와 Fedora 에서는 다음을 사용할 수 있습니다.

yum install scap-security-guide

Debian(sid)에서는 다음을 사용할 수 있습니다.

apt install ssg-debian  # for Debian guides
apt install ssg-debderived  # for Debian-based distributions (e.g. Ubuntu) guides
apt install ssg-nondebian  # for other distributions guides (RHEL, Fedora, etc.)
apt install ssg-applications  # for application-oriented guides (Firefox, JBoss, etc.)

릴리스 ZIP 파일

릴리스 페이지 에서 미리 만들어진 SSG zip 아카이브를 다운로드하세요 . 각 zip 파일은 SCAP 소스 데이터 스트림을 미리 준비한 아카이브입니다.

출처

ComplianceAsCode가 배포판에 패키징되어 있지 않거나( scap-security-guide패키지로 제공될 수 있음) 패키징된 버전이 너무 오래된 경우, 콘텐츠를 직접 빌드하고 .NET Framework를 통해 설치해야 합니다 . 자세한 내용은 개발자 가이드make install 문서를 참조하세요 . 또한 해당 배포판의 버그 추적기에 이슈를 등록하여 관심을 표명하는 것을 권장합니다.

사용법

앞에서 설명한 대로 현재 업스트림 소스에서 표준 위치에 ComplianceAsCode를 시스템 전체에 설치했다고 가정합니다.
ComplianceAsCode 콘텐츠를 사용하는 방법은 여러 가지가 있는데, 여기서는 그 중 몇 가지만 살펴보겠습니다.

oscap도구

이 oscap도구는 OpenSCAP 프로젝트에서 제공하는 저수준 명령줄 인터페이스입니다. 로컬 머신을 검사하는 데 사용할 수 있습니다.

oscap xccdf eval --profile xccdf_org.ssgproject.content_profile_ospp --results-arf arf.xml --report report.html --oval-results /usr/share/xml/scap/ssg/content/ssg-rhel8-ds.xml


평가 후, 파일에는 모든 결과가 재사용 가능한 결과 데이터 스트림 (ARF) 형식 arf.xml으로 포함되고 , 브라우저에서 열 수 있는 사람이 읽을 수 있는 report.html 보고서가 포함됩니다.

원하는 다른 프로필로 프로필을 바꾸면 다음을 사용하여 가능한 모든 선택 사항을 표시할 수 있습니다.

oscap info /usr/share/xml/scap/ssg/content/ssg-rhel8-ds.xml

자세한 내용은 OpenSCAP 웹사이트를 참조하세요 .

SCAP Workbench

SCAP Workbench는 SCAP 평가 및 사용자 정의를 위한 그래픽 사용자 인터페이스입니다. 로컬 또는 원격(SSH를 통해) 단일 머신을 스캔하는 데 적합합니다. SCAP Workbench의 새 버전은 SSG 통합 기능을 제공하며, 애플리케이션 시작 시 자동으로 제공됩니다.
자세한 내용은 SCAP Workbench 웹사이트를 참조하세요 .

oscap-ssh도구

oscap-sshOpenSCAP 1.2.3 이상 버전에 기본으로 제공됩니다.  oscap 도구와 유사한 인터페이스를 통해 SSH를 통해 원격 컴퓨터를 스캔할 수 있습니다.

다음 명령은 192.168.1.123로컬 머신에 저장된 콘텐츠로 IP를 사용하는 머신을 평가합니다. oscap원격 머신에는 를 설치해야 하지만 SSG 콘텐츠는 설치할 필요가 없습니다.

oscap-ssh root@192.168.1.123 22 xccdf eval --profile xccdf_org.ssgproject.content_profile_standard --results-arf arf.xml --report report.html /usr/share/xml/scap/ssg/content/ssg-fedora-ds.xml

Ansible

사용 가능한 Ansible Playbook 목록을 보려면 다음을 실행하세요.

ls /usr/share/scap-security-guide/ansible/

이러한 Ansible 플레이북은 해당 제품에 사용 가능한 SCAP 프로필 에서 생성됩니다 .
로컬 머신에 플레이북을 적용하려면 다음 명령을 실행하세요. (머신의 구성이 변경됩니다! )

ansible-playbook -i "localhost," -c local /usr/share/scap-security-guide/ansible/rhel9-playbook-ospp.yml

각 Ansible 플레이북에는 배포 방법에 대한 지침이 포함되어 있습니다. 다음은 지침의 일부입니다.

...
# This file was generated by OpenSCAP 1.2.16 using:
#   $ oscap xccdf generate fix --profile rht-ccp --fix-type ansible sds.xml
#
# This script is generated from an OpenSCAP profile without preliminary evaluation.
# It attempts to fix every selected rule, even if the system is already compliant.
#
# How to apply this remediation role:
# $ ansible-playbook -i "192.168.1.155," playbook.yml
# $ ansible-playbook -i inventory.ini playbook.yml
...

Bash

사용 가능한 Bash 스크립트 목록을 보려면 다음 명령을 실행하세요.

# ls /usr/share/scap-security-guide/bash/
...
rhel8-script-hipaa.sh
rhel8-script-ospp.sh
rhel8-script-pci-dss.sh
...

이러한 Bash 스크립트는 해당 제품에 사용 가능한 SCAP 프로필 에서 생성됩니다 . Ansible 플레이북과 마찬가지로 각 Bash 스크립트에는 배포 방법에 대한 지침이 포함되어 있습니다.

지원

SSG 메일링 목록은 https://lists.fedorahosted.org/mailman/listinfo/scap-security-guide 에서 찾을 수 있습니다 .
OpenSCAP 또는 SCAP Workbench에서 문제가 발생하면 https://www.redhat.com/mailman/listinfo/open-scap-list를 사용하세요.
커뮤니티와 더욱 상호작용적인 접촉을 선호하신다면 Gitter와 IRC에 참여하실 수 있습니다.

약간의 역사

이 프로젝트는 2011년 미국 정부 기관과 상용 운영 체제 공급업체 간의 협력으로 시작되었습니다. 원래 이름은 SCAP Security Guide였으며, 일반적으로 SSG로 줄여서 부릅니다. 원래 목표는 SCAP 데이터 스트림을 만드는 것이었습니다. 시간이 지나면서 SCAP을 넘어서는 최대 규모의 오픈소스 콘텐츠 프로젝트로 성장했습니다.

그 후 몇 년 동안 정부 전용 보안 프로필뿐만 아니라 PCI-DSS, CIS와 같은 상업용 보안 프로필도 도입되었습니다.

이후 업계는 Ansible, Puppet, Chef InSpec 등 다양한 보안 콘텐츠 형식으로 전환하기 시작했습니다. 커뮤니티는 툴을 발전시켜 SSG를 더욱 범용적인 보안 콘텐츠 프로젝트로 탈바꿈시키는 데 기여했습니다. 이러한 변화는 2017년과 2018년에 걸쳐 진행되었습니다. 2018년 9월, 저희는 혼란을 피하기 위해 프로젝트 이름을 ComplianceAsCode로 변경하기로 결정했습니다.

미래는 형식에 구애받지 않을 것으로 예상합니다. 그래서 입력 형식으로 XCCDF를 사용하는 대신 추상화를 선택했습니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

You May Also Like
Read More

VirtualMachineInstanceMigrations RBAC 강화

KubeVirt Blog를 보다가 관심 가는 글이 보여서 AI번역+약간 교정해 보았습니다.출처: https://kubevirt.io/2025/Hardening-VMIM.html 컨텍스트 VM 라이브 마이그레이션 요청은 VirtualMachineInstanceMigration 인스턴스로 표현됩니다.…
Read More

Harvester v1.3.0 Release

Harvester v1.3.0이 릴리즈됐습니다. 릴리즈 노트에 있는 내용 기계번역해서 정리해 봤습니다. https://github.com/harvester/harvester/releases 경고: Harvestter와 함께 Rancher v2.7.11을 사용하는 경우,…
Read More

Discourse 설치하기

오픈소스 커뮤니티 솔루션으로 유명한 Discourse를 설치해봤습니다. 설치 환경 제 블로그, 마스토돈과 기타 등등을 돌리고 있는 홈서버가 있습니다. Discourse를…