
탐지 및 수정 정책 예시입니다.
#+Title: CVE-2016-2118 인벤토리 및 수정 #+SETUPFILE: ~/src/org-html-themes/setup/theme-readtheorg.setup
[[file:./media/badlock.png]]
이 정책은 현재 설치된 패키지 버전이 알려진 취약 버전인지 확인하여 [[https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-2118][CVE-2016-2118]](일반적으로 [[http://badlock.org][Badlock]]으로 알려짐)에 취약한 호스트를 탐지합니다. 수정 정책은 =samba=를 사용 가능한 =latest= 버전으로 유지합니다.
참고: 이 정책은 현재 centos 5 및 6을 지원합니다. 더 많은 플랫폼 지원에 기여해 주시기 바랍니다.
이 정책은 전통적인(그러나 형편없이 작성된) [[file:Makefile][Makefile]]을 사용하여 설치합니다. 설치하려면 이 저장소를 클론한 다음 ~make install MASTERFILES=</path/to/policy_root>~를 실행하기만 하면 됩니다.
예를 들어: #+BEGIN_SRC sh :results raw :wrap EXAMPLE make install MASTERFILES=/tmp/example-a10042 #+END_SRC
#+RESULTS: #+BEGIN_EXAMPLE mkdir -p /tmp/example-a10042/services/cfengine-CVE-2016-2118/cfengine-CVE-2016-2118 rsync -avz --exclude /home/nickanderson/vagrant/tmp/eia/CVE/masterfiles/services/cfengine-CVE-2016-2118/* /tmp/example-a10042/services/cfengine-CVE-2016-2118/ sending incremental file list Makefile README.org main.cf data/ data/centos_5.json data/centos_6.json media/ media/badlock.png
sent 19,776 bytes received 165 bytes 39,882.00 bytes/sec total size is 29,079 speedup is 1.46 find /tmp/example-a10042/services/cfengine-CVE-2016-2118/ -type f | xargs chmod 600 find /tmp/example-a10042/services/cfengine-CVE-2016-2118/ -type d | xargs chmod 700 #+END_EXAMPLE
정책을 정책 세트에 설치한 후에는 파싱되도록 inputs에 추가해야 합니다.
CFEngine =3.7.3=, =3.8.1= 이상을 실행 중인 경우 [[https://docs.cfengine.com/docs/master/reference-language-concepts-augments.html][augments 파일]]을 사용하여 inputs에 추가할 수 있습니다.
예를 들어: #+BEGIN_SRC json { "inputs": [ "services/cfengine-CVE-2016-2118/main.cf" ] } #+END_SRC
** =inventory_CVE_2016_2118= 이 번들은 설치된 samba 버전이 =data/$(sys.flavor).json=에 정의된 알려진 취약 버전과 일치하는지 확인합니다. 예: =data/centos_6.json=. 물론 패키지 매니저 자체를 사용하여 취약 버전을 찾는 등 다른 방법도 있습니다.
이것은 autorun 번들이므로 [[https://github.com/cfengine/masterfiles/][Masterfiles Policy Framework]], (CFEngine과 함께 제공되는 기본 정책)를 실행 중인 경우 =services_autorun= 클래스를 정의하기만 하면 됩니다.
#+BEGIN_SRC json { "inputs": [ "services/cfengine-CVE-2016-2118/main.cf" ], "classes": { "services_autorun": [ "any" ] } } #+END_SRC
참고: 정책이 실행되어 취약한 호스트를 탐지하면 보고서를 출력하고 =CVE_2016_2118= 클래스를 정의합니다.
예를 들어:
#+BEGIN_EXAMPLE R: Detected Vulnerability: CVE-2016-2118 #+END_EXAMPLE
CFEngine Enterprise 사용자는 Mission Portal의 Inventory Reporting 인터페이스에 새로운 =Vulnerable CVE(s)= 속성이 추가된 것을 확인할 수 있습니다.
예를 들어:
[[file:./media/vulnerable_cves_inventory_attribute.png]]
[[file:./media/inventory_report_vulnerable_cves.png]]
[[file:./media/inventory_report_vulnerable_cves_chart.png]]
[[file:./media/define_alert.png]]
[[file:./media/alert_status_vulnerable_hosts.png]]
** =remediate_CVE_2016_2118= =remediate_CVE_2016_2118=도 autorun 번들이지만, =remediate_CVE_2016_2118= 클래스가 정의된 경우에만 실행됩니다.
자동 수정이 허용되는 호스트와 시간대를 유연하게 표현할 수 있는 다양한 방법이 있습니다.
=3.7.3=, =3.8.1= 이상을 실행 중인 경우 [[https://docs.cfengine.com/docs/master/reference-language-concepts-augments.html][augments 파일]]에 추가하여 전체 인프라에 대해 활성화할 수 있습니다.
#+BEGIN_SRC json { "inputs": [ "services/cfengine-CVE-2016-2118/main.cf" ], "classes": { "services_autorun": [ "any" ], "remediate_CVE_2016_2118": [ "any" ] } } #+END_SRC
이 정책은 =$(sys.flavor)=로 식별되는 시스템 flavor 이름을 딴 json 데이터 파일에서 취약한 것으로 알려진 패키지 목록을 찾습니다. 예: [[file:data/centos_6.json][=centos_6=]].