MISP project: http://www.misp-project.org/
CSVやTSV等のファイルに記載された情報を元に、MISPのイベントを登録します。
このソフトウェアは、BSDライセンスのもとで公開されています。LICENSE.txtを参照ください。
- python3.5.2以上
- pymisp2.4.85以上
対象ファイルには、任意の区切り文字で以下順番で項目を記載してください。ヘッダ行は不要です。
*TSVを推奨
- date
- organization
- user
- title
- tag1
- tag2
- tag3
- tag4
- value
- category
- type
- attribute_tags
- comment
sample.tsv
各項目はMISPイベントに下記の内容でマッピングされます。
- date: イベントのDate
- organization: 登録ユーザのorganization。スクリプトでは考慮しません。該当ユーザを作成する際に正しく登録してください。
- user: 登録に利用するユーザメールアドレス。constでauthkeyを定義する際にこのメールアドレスと紐づく必要があります。
- title: イベントinfo。この値が同一の行については1イベントとして扱われ、紐づいているタグやアトリビュートの情報は全て同一イベントに追加されます。
- tag1: イベントのタグ。「,」で区切って指定すると複数のタグを指定可能です。
- tag2: イベントのタグ。「,」で区切って指定すると複数のタグを指定可能です。
- tag3: イベントのタグ。「,」で区切って指定すると複数のタグを指定可能です。
- tag4: イベントのタグ。「,」で区切って指定すると複数のタグを指定可能です。
- value: アトリビュートのValue
- category: アトリビュートのCategory
- type: アトリビュートのType
- attribute_tags: アトリビュートのタグ。「,」で区切って指定すると複数のタグを指定可能です。
- comment: アトリビュートのコメント。
const.pyを開き、以下の設定を行います。
- MISP_URL: MISPが動作しているサーバのURL
以下の変数に、キーにユーザのメールアドレス、値に当該ユーザでのインポート設定を下記の形式で設定します。
ここで定義したユーザメールアドレスとインポート対照ファイルのユーザカラムの値が紐付けられ、該当イベントのインポート時にそのユーザのインポート設定が利用されます。
対象変数: 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'
}
}
python3 ./MISP-CSVImport.py -i [インポートファイルパス] [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なし)で作成してください
- ファイルの各フィールドに改行を含む場合は、該当フィールドを「""」で囲ってください