사이버 위협 정보 집계 시스템(EXIST)과 Malware Information Sharing Platform(MISP) 구축의 정리②

소개


  • 전 동료들로부터 재미있는 OSS를 가르쳐 주었기 때문에 조사하고 구축을 해 보았다.
  • 여기에서는 구축 할 때 트러블한 부분이나 순서 등을 정리해 가는 느낌입니다.
  • ALL-in-One 방식으로 구축했을 때, 취득한 데이터 사이즈의 탓인지 DiskFull--> LVM 추가로 실수하고 --> VM 크래시라는 즐거운 눈에 있었기 때문에 개별적으로 구축하고 있습니다.
  • 3 부 구성 (공통 부분/EXIST/MISP)에서 기사를 작성할 예정입니다.

  • 1. 전제


  • Windows 10pro Hyper-V를 사용하여 다음 조건 하에서 구축합니다. (공통)
  • 원하는대로 VMware 및 vBOX를 사용하십시오

  • OS는 CentOS7의 최신 버전을 사용하며 각각 별도의 VM으로 구축됩니다.
  • 검증 환경 하에서는 CentOS8 자체의 거동이 불안정했기 때문에 별도 원인 규명이 필요하다고 생각 CentOS7을 선택

  • 모든 빌드 계정은 루트 계정으로 수행됩니다. (공통)
  • VM 리소스는 vCPU : 2core, mem : 8GB, DISK : 50GB, Network : IP 주소는 DHCP를 통해 MAC 주소를 등록하고 고정 배포.
  • 실행 시 메모리 사용량은 평균 6GB
  • DISK는 20GB에서 100 %를 초과했기 때문에 50GB

  • pyenv를 사용하여 Python ver3.6.x 설치 (EXIST)
  • Verison3.7 이후라고 지정 Package의 Version에서는 에러가 발생하기
  • venv를 사용하지 않고 빌드하지만 설치만 해 둡니다

  • git : Ver는 2.29.x (현재 최신)라고 가정합니다.
  • 2.x 대이면 뭐든 좋을까

  • wget/curl/tmux/htop과 같은 적절한 설치.
  • 불필요한 사람은 스루도 OK

  • 방화벽이나 SElinux는 자기 책임하에 무효화하십시오.
  • Firewall은 나중에 8000 포트를 열어 놓습니다
  • SElinux는 밑바닥 자리에 disabled


  • 2.OSS 제품 문서



    사이버 위협 정보 집계 시스템 (EXIST)
    Malware Information Sharing Platform(MISP)

    3. 구축 내용


  • pyenv
  • 사이버 위협 정보 집계 시스템 (EXIST)

  • 3-1.pyenv 설치



    이 목적을 고려할 때 pyenv에서 할 필요가 없다고 생각하지만 향후 업데이트를 고려하여 여기로 갈 것입니다.
    # git clone https://github.com/pyenv/pyenv.git
    Cloning into 'pyenv'...
    remote: Enumerating objects: 18376, done.
    remote: Total 18376 (delta 0), reused 0 (delta 0), pack-reused 18376
    Receiving objects: 100% (18376/18376), 3.67 MiB | 2.80 MiB/s, done.
    Resolving deltas: 100% (12514/12514), done.
    
    # 今回は不要かも
    # git clone https://github.com/pyenv/pyenv-virtualenv.git pyenv/plugins/pyenv-virtualenv
    Cloning into 'pyenv/plugins/pyenv-virtualenv'...
    remote: Enumerating objects: 2064, done.
    remote: Total 2064 (delta 0), reused 0 (delta 0), pack-reused 2064
    Receiving objects: 100% (2064/2064), 580.34 KiB | 753.00 KiB/s, done.
    Resolving deltas: 100% (1413/1413), done.
    
    # pyenvのPATHの設定
    # vim ~/.bash_profile
    export PYENV_ROOT="$HOME/.pyenv"
    export PATH="$PYENV_ROOT/bin:/bin:$PATH"
    eval "$(pyenv init -)"
    
    # ログイン中のアカウントへ上記設定の反映
    # source ~/.bash_profile
    
    # 指定のVersionをインストール
    # pyenv install 3.6.12
    Downloading Python-3.6.12.tar.xz...
    -> https://www.python.org/ftp/python/3.6.12/Python-3.6.12.tar.xz
    Installing Python-3.6.12...
    WARNING: The Python bz2 extension was not compiled. Missing the bzip2 lib?
    WARNING: The Python readline extension was not compiled. Missing the GNU readline lib?
    WARNING: The Python sqlite3 extension was not compiled. Missing the SQLite3 lib?
    Installed Python-3.6.12 to /root/.pyenv/versions/3.6.12
    
    # 任意のVersionをシステムへ反映
    # pyenv global 3.6.12
    
    # 反映の確認
    # python --version
    
    # pipコマンドのアップデート(しないとあとでエラーがでます)
    # pip install --upgrade pip
    pip 18.1 from /root/.pyenv/versions/3.6.12/lib/python3.6/site-packages/pip (python 3.6)
    [root@exist opt]# pip install --upgrade pip
    Collecting pip
      Downloading https://files.pythonhosted.org/packages/cb/28/91f26bd088ce8e22169032100d4260614fc3da435025ff389ef1d396a433/pip-20.2.4-py2.py3-none-any.whl (1.5MB)
        100% |################################| 1.5MB 7.5MB/s
    Installing collected packages: pip
      Found existing installation: pip 18.1
        Uninstalling pip-18.1:
          Successfully uninstalled pip-18.1
    Successfully installed pip-20.2.4
    
    

    여담:pyenv 이외로 하는 경우는 이하의 방법으로(현재 ver3.8.6이 인스톨 되는 모양)
    # yum install python3 python3-libs python3-devel python3-pip
    =====================================================================================================================
     Package                             Arch                Version                             Repository         Size
    =====================================================================================================================
    Installing:
     python3                             x86_64              3.6.8-17.el7                        base               70 k
     python3-devel                       x86_64              3.6.8-17.el7                        base              217 k
     python3-libs                        x86_64              3.6.8-17.el7                        base              6.9 M
     python3-pip                         noarch              9.0.3-8.el7                         base              1.6 M
    Installing for dependencies:
     dwz                                 x86_64              0.11-3.el7                          base               99 k
     libtirpc                            x86_64              0.2.4-0.16.el7                      base               89 k
     perl-srpm-macros                    noarch              1-8.el7                             base              4.6 k
     python-rpm-macros                   noarch              3-34.el7                            base              9.1 k
     python-srpm-macros                  noarch              3-34.el7                            base              8.8 k
     python3-rpm-generators              noarch              6-2.el7                             base               20 k
     python3-rpm-macros                  noarch              3-34.el7                            base              8.1 k
     python3-setuptools                  noarch              39.2.0-10.el7                       base              629 k
     redhat-rpm-config                   noarch              9.1.0-88.el7.centos                 base               81 k
     zip                                 x86_64              3.0-11.el7                          base              260 k
    
    Transaction Summary
    =====================================================================================================================
    Install  4 Packages (+10 Dependent packages)
    

    3-2.EXIST 설치


  • 설치 대상은 "/opt/"를 가정하고 스크립트로 설치합니다.
  • # cd ~/
    # git clone https://github.com/r4sd/exist_auto_install.git
    Cloning into 'exist_auto_install'...
    remote: Enumerating objects: 24, done.
    remote: Counting objects: 100% (24/24), done.
    remote: Compressing objects: 100% (18/18), done.
    remote: Total 24 (delta 6), reused 20 (delta 5), pack-reused 0
    Receiving objects: 100% (24/24), 6.83 KiB | 3.42 MiB/s, done.
    Resolving deltas: 100% (6/6), done.
    
    #
    # cd exist_auto_install/
    # . exist_install.sh
    [info] Repository file successfully written to /etc/yum.repos.d/mariadb.repo
    [info] Adding trusted package signing keys...
    [info] Successfully added trusted package signing keys
    Loaded plugins: fastestmirror
    Loading mirror speeds from cached hostfile
    Including mirror: ftp.tsukuba.wide.ad.jp
    Including mirror: ftp.jaist.ac.jp
    Including mirror: ftp.iij.ad.jp
    Including mirror: ftp.yz.yamagata-u.ac.jp
    Including mirror: ftp.nara.wide.ad.jp
     * base: ftp.tsukuba.wide.ad.jp
    Including mirror: ftp.ne.jp
    Including mirror: ftp.yz.yamagata-u.ac.jp
     * elrepo: ftp.ne.jp
    Including mirror: ftp.yz.yamagata-u.ac.jp
     * epel: ftp.yz.yamagata-u.ac.jp
    Including mirror: ftp.tsukuba.wide.ad.jp
    Including mirror: ftp.jaist.ac.jp
    Including mirror: ftp.iij.ad.jp
       |
       |
        省略
       |
       |
    Nothing to do
    
    ------------------------------------------------
    Please execute [ systemctl start exist.service ]
    
    
    Admin (root) DB Password: [乱数]
    User (exist) DB Password: [乱数]
    
    #
    # systemctl start exist.service
    

    4. 사이트에 액세스


  • 브라우저에서 http://[서버 IP 주소: 8000]에 액세스합니다.


  • 5.사이고에게


  • 수동 설치는 번거롭기 때문에 익숙하지만 스크립트를 준비했지만 미세한 곳에서 여행을 작성하는 데 하루 이상 지출했습니다.
  • 덕분에 코드의 간략화와 제휴 부분의 이해가 깊어져 결과 OK인 느낌이 되고 있습니다(´ω`)
  • 다음은 MISP의 구축입니다만 그 전에 API의 등록등을 정리해 추가 or2.5로 UP일까.

  • 6. 참고 사이트/다사



    nict-csl/exist
    사이버 위협 정보 집계 시스템 EXIST 구축
    NICT EXIST를 설치해 보았습니다.
    사내에서 SOC 구축해 보았다 ③ #EXIST 구축편
    MISP
    vodkappa/misp-install-centos-7
    EXPECT
    MariaDB 10.4.1 ~의 사용자 인증이 혼란스러운 이야기
    Mins/mysql_secure.sh

    좋은 웹페이지 즐겨찾기