
공개 피드 및 API를 쿼리하여 IP, 도메인, URL, 해시 및 SSL 지문에 대한 위협 데이터를 수집하는 자동화된 보안 인텔리전스 수집기입니다. YAML 기반 구성과 JSON 출력을 지원합니다.

Machinae는 IP 주소, 도메인 이름, URL, 이메일 주소, 파일 해시 및 SSL 지문과 같은 다양한 보안 관련 데이터에 대해 공개 사이트/피드에서 인텔리전스를 수집하는 도구입니다. 이 도구는 정보 수집을 위한 또 다른 훌륭한 도구인 [Automater][1]에서 영감을 받았습니다. Machinae 프로젝트는 Automater를 다음 4가지 영역에서 개선하고자 하는 바람에서 탄생했습니다:
Machinae는 pip3를 사용하여 설치할 수 있습니다:
pip3 install machinae
또는 더 모험적인 방법으로 github에서 직접 설치할 수도 있습니다:
pip3 install git+https://github.com/HurricaneLabs/machinae.git
시스템에 Python 모듈 컴파일에 필요한 종속성(Debian 기반 시스템에서는 python3-dev)과 libyaml 개발 패키지(Debian 기반 시스템에서는 libyaml-dev)가 설치되어 있어야 합니다.
또한 [최신 구성 파일][2]을 다운로드하여 /etc/machinae.yml에 배치하는 것이 좋습니다.
Machinae는 간단한 구성 병합 시스템을 지원하여 제공된 machinae.yml을 수정하지 않고도 구성을 조정할 수 있어 구성 업데이트가 간편합니다. 이는 시스템 전체 기본 구성(기본값 /etc/machinae.yml)을 로드하고, 그 위에 시스템 전체 로컬 구성(/etc/machinae.local.yml), 마지막으로 사용자별 로컬 구성(~/.machinae.yml)을 병합하는 방식으로 작동합니다. 시스템 전체 구성은 현재 작업 디렉토리에 있을 수도 있고, MACHINAE_CONFIG 환경 변수로 설정하거나, 물론 -c 또는 --config 명령줄 옵션을 사용하여 설정할 수도 있습니다. --nomerge 옵션을 전달하면 구성 병합이 비활성화되며, Machinae는 기본 시스템 전체 구성(또는 명령줄로 전달된 구성)만 로드합니다.
예를 들어, 기본적으로 비활성화된 Fortinet Category 사이트를 활성화하려고 한다고 가정해 보겠습니다. /etc/machinae.yml을 수정할 수도 있지만, 업데이트 시 덮어쓰여집니다. 대신 /etc/machinae.local.yml 또는 ~/.machinae.yml에 다음 내용을 넣을 수 있습니다:
fortinet_classify:
default: true
반대로 Virus Total pDNS와 같은 사이트를 비활성화하려면:
vt_ip:
default: false
vt_domain:
default: false
Machinae 사용법은 Automater와 매우 유사합니다:
usage: machinae [-h] [-c CONFIG] [--nomerge] [-d DELAY] [-f FILE] [-i INFILE] [-v]
[-o {D,J,N,S}] [-O {ipv4,ipv6,fqdn,email,sslfp,hash,url}] [-q]
[-s SITES] [-a AUTH] [-H HTTP_PROXY]
[--dump-config | --detect-otype]
...
-c/--config 및 --nomerge 옵션에 대한 자세한 내용은 위를 참조하십시오.
Machinae는 Automater와 마찬가지로 -d/--delay 옵션을 지원합니다. 하지만 Machinae는 기본값으로 0을 사용합니다.
Machinae 출력은 두 가지 인수로 제어됩니다:
-o는 출력 형식을 제어하며, 그 뒤에 단일 문자를 입력하여 원하는 출력 유형을 지정할 수 있습니다:
-f/--file은 출력을 쓸 파일을 지정합니다. 기본값은 stdout인 "-"입니다.Machinae는 전달된 대상의 유형을 자동 감지하려고 시도합니다(Machinae에서는 대상을 "observable"이라고 부르고 유형을 "otype"이라고 합니다). 이 감지는 -O/--otype 옵션으로 재정의할 수 있습니다. 선택 사항은 사용법에 나열되어 있습니다.
기본적으로 Machinae는 자세한(verbose) 모드로 작동합니다. 이 모드에서는 쿼리 중인 서비스에 대한 상태 정보를 콘솔에 출력합니다. 이 출력은 출력 설정과 관계없이 항상 stdout에 기록됩니다. 자세한 모드를 비활성화하려면 -q를 사용하십시오.
기본적으로 Machinae는 구성에서 각 대상의 otype에 적용되고 "default: false"로 표시되지 않은 모든 서비스를 실행합니다. 이 동작을 수정하려면 다음을 수행할 수 있습니다:
all 전달두 경우 모두 otype 유효성 검사가 계속 적용됩니다.
Machinae는 명령줄에서 -H/--http-proxy 인수를 사용하여 HTTP 프록시 전달을 지원합니다. 프록시가 지정되지 않으면 machinae는 표준 HTTP_PROXY 및 HTTPS_PROXY 환경 변수와 덜 표준적인 http_proxy 및 https_proxy 환경 변수를 검색합니다.
마지막으로 대상 목록을 전달해야 합니다. 위에 나열된 옵션 이외의 모든 인수는 대상으로 해석됩니다.
Machinae는 다음과 같은 데이터 소스를 즉시 지원합니다:
추가 데이터 소스도 계획 중입니다.
Machinae는 --auth/-a 플래그를 통해 HTTP Basic Auth를 지원합니다. 자격 증명이 포함된 YAML 파일을 생성해야 하며, 여기에는 자격 증명이 필요한 사이트의 키와 사용자 이름 및 비밀번호(또는 API 키)의 두 항목 목록이 포함됩니다. 예를 들어, 포함된 PassiveTotal 사이트의 경우 다음과 같을 수 있습니다:
passivetotal: ['[email protected]', 'my_api_key']
사이트 구성 내에서 request 아래에 다음과 같은 키가 표시됩니다:
json:
request:
url: '...'
auth: passivetotal
auth: passivetotal은 명령줄을 통해 전달된 인증 구성 내의 키를 가리킵니다.
다음 사이트는 기본적으로 비활성화되어 있습니다
fortinet_classify)telize)totalhash_ip)domaintools_parsed_whois)domaintools_reverse_whois)domaintools_reputation)passivetotal_pdns)passivetotal_whois)passivetotal_sslcert)passivetotal_components)passivetotal_trackers)maxmind)fraudguard)shodan)Machinae는 제한된 출력 형식 세트를 제공합니다: 일반(Normal), 점 이스케이핑이 있는 일반, 그리고 JSON입니다. 향후 추가 출력 형식을 추가할 계획입니다.
*** 곧 제공 예정 ***