Skip to content

Latest commit

 

History

History
111 lines (79 loc) · 5.38 KB

readme_jp.md

File metadata and controls

111 lines (79 loc) · 5.38 KB

MISP CSVImport

MISP project: http://www.misp-project.org/

概要

CSVやTSV等のファイルに記載された情報を元に、MISPのイベントを登録します。

ライセンス

このソフトウェアは、BSDライセンスのもとで公開されています。LICENSE.txtを参照ください。

動作環境

  • python3.5.2以上
  • pymisp2.4.85以上

利用方法

1 インポート用ファイルの作成

1-1 ファイルフォーマット

対象ファイルには、任意の区切り文字で以下順番で項目を記載してください。ヘッダ行は不要です。
*TSVを推奨

  • date
  • organization
  • user
  • title
  • tag1
  • tag2
  • tag3
  • tag4
  • value
  • category
  • type
  • attribute_tags
  • comment

sample.tsv

1-2 ファイルの項目とMISPイベントのマッピング

各項目はMISPイベントに下記の内容でマッピングされます。

  • date: イベントのDate
  • organization: 登録ユーザのorganization。スクリプトでは考慮しません。該当ユーザを作成する際に正しく登録してください。
  • user: 登録に利用するユーザメールアドレス。constでauthkeyを定義する際にこのメールアドレスと紐づく必要があります。
  • title: イベントinfo。この値が同一の行については1イベントとして扱われ、紐づいているタグやアトリビュートの情報は全て同一イベントに追加されます。
  • tag1: イベントのタグ。「,」で区切って指定すると複数のタグを指定可能です。
  • tag2: イベントのタグ。「,」で区切って指定すると複数のタグを指定可能です。
  • tag3: イベントのタグ。「,」で区切って指定すると複数のタグを指定可能です。
  • tag4: イベントのタグ。「,」で区切って指定すると複数のタグを指定可能です。
  • value: アトリビュートのValue
  • category: アトリビュートのCategory
  • type: アトリビュートのType
  • attribute_tags: アトリビュートのタグ。「,」で区切って指定すると複数のタグを指定可能です。
  • comment: アトリビュートのコメント。

2 const.pyの設定

const.pyを開き、以下の設定を行います。

2-1 MISP接続先
  • MISP_URL: MISPが動作しているサーバのURL
2-2 インポート設定

以下の変数に、キーにユーザのメールアドレス、値に当該ユーザでのインポート設定を下記の形式で設定します。 ここで定義したユーザメールアドレスとインポート対照ファイルのユーザカラムの値が紐付けられ、該当イベントのインポート時にそのユーザのインポート設定が利用されます。
対象変数: IMPORT_CONFIG

IMPORT_CONFIG = {
	'[email protected]': {
		'authkey': 'valid authkey'
		,'distribution': 'distribution config constants'
		,'threat_level': 'threat level config constants'
		,'analysis_level': 'analysis level config constants'
	}
}

3 スクリプトの実行

python3 ./MISP-CSVImport.py -i [インポートファイルパス] [option]

option
  • -i: インポートファイルパス。必須。
  • --cs: カラム区切り文字。省略時は「\t」
  • --ls: 改行文字。省略時は「\n」
  • --skip-header: ヘッダ行をスキップする。デフォルトはFalse
  • --target-row: インポート対象とする開始行。「""」で囲った値中に存在する改行は行数に含まないため、インポート対象となる行数の単位で指定してください。省略時は1行目から全データを対象とします。

 sample.tsvを取り込む
python3 ./MISP-CSVImport.py -i ./sample.tsv --skip-header --ls "\r\n" --cs " "

注意事項

  • インポートしようとしているイベントタイトルと同一のタイトルのイベントがMISP上に存在する場合、既存イベントは削除され、新しい内容が登録されます
  • インポート対象のデータ中に、同一イベントタイトルでアトリビュートのcategory/type/valueが全て一致する行が存在する場合、警告が表示され、該当行は無視されます
  • イベントまたはアトリビュートのタグとして記載されたタグについては、MISPに未登録であればタグとして追加した上で、該当イベントまたはアトリビュートのタグとして設定します。そのため、インポートを実行するユーザには「add tag」の権限が必要です。
  • アトリビュートのcategory/typeの不一致など、入力データに起因する登録エラーが出力されることがあるため、スクリプトの出力結果については一通り確認してください
  • インポートファイルにマルチバイト文字を含む場合、ファイルは文字コードはUTF-8(BOMなし)で作成してください
  • ファイルの各フィールドに改行を含む場合は、該当フィールドを「""」で囲ってください