関数

以下でサポートされています。

概要

ハンドブックの機能強化に使用される数学関数とデータ操作アクションのセット。

アクション

時刻形式の変換

Description

日時値をある形式から別の形式に変換します。

パラメータ

パラメータ タイプ デフォルト値 必須 Description
入力 文字列 なし 変換する入力日時値を指定します。
形式から 文字列 なし 入力文字列の日時形式を指定します。
https://strftime.org
形式化する 文字列 YYYY/MM/DD 所定の出力時刻形式を指定します。矢印の時刻形式を使用します。https://arrow.readthedocs.io/en/stable/#supported-tokens
時間の差分処理(秒)。 整数 0 出力をシフトする秒数を指定します。将来の時刻/日付には正の値を使用し、過去の負の値を使用します。
タイムゾーン 文字列 なし いいえ 出力タイムゾーンを指定します。

このシナリオでは、MM/DD/YYYY HH:mm:ss という矢印時間形式を持つ 11/23/2002 07:23:09 という日時入力は、5 秒遡り、UTC タイムゾーンを使用して、時間のみに変換されます。

アクション構成

パラメータ タイプ
エンティティ すべてのエンティティ
Input 11/23/2002 07:23:09
形式から MM/DD/YYYY HH:mm:ss
形式化する H:mm:ss
時間の差分処理(秒)。 -5
タイムゾーン EST

アクションの結果

  • スクリプトの結果
    スクリプトの結果名 値のオプション
    ScriptResult 時間の結果 07:23:04

サムネイルを作成

Description

画像の Base64 サムネイルを変換します。

パラメータ

パラメータ タイプ デフォルト値 必須 Description
Base64 イメージ 文字列 なし いいえ 画像の Base64 文字列を指定します。
サムネイルのサイズ: 文字列 250,250 サムネイルのサイズをカンマ区切り(W,L)で指定します。
入力 JSON JSON なし いいえ JSON 入力を指定します。例: {“image” :”<base64 of image>”}
イメージのキーパス 文字列 なし いいえ 入力 JSON を使用する場合は、イメージ フィールドのキーパスを指定します。

このシナリオでは、Base64 入力から 500x500 のサムネイルを作成します。

アクション構成

パラメータ
エンティティ すべてのエンティティ
Base64 イメージ iVBORWOKGgoAAAANSUhEUgAAAIgAAAH3CAYAAABnXCF6AAABXGIDQ1BJQ0MgUHJvZmIsZQAAK]FtkD9LQnEUhh9Nkf5ADhEVDQ4tgUmoBBFEdiMRCkyLr016NRXUflyNaGto6gNESOtBLc251mcoCpqDaA5cKm7naqVWBw7w8s5h5cDTq+uVNEFIMpVM×Gd96U2NnZeZ1y46cP]jGSUVCQeX5IRvrWz6vc4bL2dsG/NDi30qZvDEyOSemMBO//zndUTyZbMUTfpacMZVbBERa071aV/zQfCA6aEEj620d fkS5vTTb5uzKwmNOE7Ya+R1zPCT8L+dJufa+NSccf4ymCn78uW15Ki|9KiL]Mkhk80QpQQYYJor]CQP/2/F27saWyi2MOkQ|48VbkREUdRICsco4×BAL9wkEnpkP3v339seWoQpheg66zIpSVTTIMd7e8sQ VOTSHVvt]N/ee7jrqrshUKNrm3Buj3pdB884fDxY1|vNsj705f4jXNc/AQraYUmHWN3rAAAAmVYSWZNTOAqAAAACAABIZkABAAAAAEAAAAAAAAAAAADKOYABWAAABIAAABEOAIABAAAAAEAAAJY OAMABAAAAAAAAHAAAAEFTQO|JAAAAU2NyZwVuc2hvdBNik6MAAAHWAVRYdFhNTDpib20uYWRvYmUueG1wAAAAAAA8eDp4bXBtZXRhIHhtbG5zOng9|mFkb2|10m5zOm1 IdGEvliB40nhtcHR rPSJYTVAgQ29ZSA2LjAuMCI+CiAgIDxyZ
サムネイルのサイズ: 500x500
入力 JSON 空白
イメージのキーパス 空白

アクションの結果

  • JSON の結果
    {
    "Thumbnail" : "<base 64 string>"
    }

IP から整数

Description

IP アドレスまたは IP アドレスのリストを整数に変換します。

パラメータ

パラメータ タイプ デフォルト値 必須 Description
IP アドレス 文字列 なし 整数に変換する IP アドレスのリストをカンマで区切って指定します。

このシナリオでは、1.1.1.1 と 2.2.2.2 の IP アドレスが整数形式に変換されます。

アクション構成

パラメータ
エンティティ すべてのエンティティ
IP アドレス 1.1.1.1,2.2.2.2

アクションの結果

  • スクリプトの結果
    スクリプトの結果名 値のオプション
    ScriptResult 整数値 16843009,33686018
  • JSON の結果
    {
    "1.1.1.1" : 16843009, 
    "2.2.2.2" : 33686018
    }

数学演算

Description

組み込み数学演算子のセット:

Plus - 2 つの引数の合計の結果を返します

Sub - 1 つの引数からもう 1 つの引数を引いた結果を返します

Multi - 1 つの引数に別の引数を掛けた結果を返します

Div - 1 つの引数をもう 1 つの引数で割った結果を返します

Mod - 2 つの引数の間の割合の結果を返します

パラメータ

パラメータ タイプ デフォルト値 必須 Description
関数 プルダウン 追加 2 つの引数で実行する関数を指定します。
Arg 2 整数 なし 2 番目の引数を指定する
Arg 1 整数 なし 最初の引数を指定する

例 1: Plus

このシナリオでは、200 + 100 が 300 になります。

アクション構成

パラメータ
エンティティ すべてのエンティティ
関数 追加
Arg 2 100
Arg 1 200

例 2: Sub

このシナリオでは、1000 - 300 が 700 になります。

アクション構成

パラメータ
エンティティ すべてのエンティティ
関数 Sub
Arg 2 300
Arg 1 1000

例 3: Multi

このシナリオでは、30 x 20 が 600 になります。

アクション構成

パラメータ
エンティティ すべてのエンティティ
関数 マルチ
Arg 2 20
Arg 1 30

例 4: Div

このシナリオでは、500 / 5 が 100 になります。

アクション構成

パラメータ
エンティティ すべてのエンティティ
関数 Div
Arg 2 5
Arg 1 500

例 5: Mod

このシナリオでは、100 % 23 が 8 になります。

アクション構成

パラメータ
エンティティ すべてのエンティティ
関数 モジュール
Arg 2 23
Arg 1 100

アクションの結果

  • スクリプトの結果
    スクリプトの結果名 値のオプション
    ScriptResult 計算結果 300

数学関数

Description

組み込みの Python 関数のセット:

Abs - 数値の絶対値を返します

Float - 浮動小数点数を返します

Display - 必要に応じてカンマを含む数値に変換します。

Hex - 数値を 16 進数に変換します。

Int - 整数を返します

Max - イテラブル内の最大のアイテムを返します

Min - イテラブル内の最小のアイテムを返します

Round - 数値を丸めます

Sort - 並べ替えられた数値を返します

Sum - イテレータのアイテムの合計を計算します

パラメータ

パラメータ タイプ デフォルト値 必須 Description
関数 プルダウン 最大 数値で実行する数学関数を指定します。
Numbers 整数 なし 数学関数を実行する数値をカンマで区切って指定します。

例 1: Max

このシナリオでは、13.5、-90、556、11.32 の数値のうち最大値は 556 になります。

アクション構成

パラメータ
エンティティ すべてのエンティティ
関数 最大
Numbers 13.5,-90,566,11.32

例 2: Min

このシナリオでは、13.5、-90、556、11.32 の数値のうち最小値は -90 になります。

アクション構成

パラメータ
エンティティ すべてのエンティティ
関数 最小
Numbers 13.5,-90,566,11.32

例 3: Round

このシナリオでは、57.63 が丸められて 58 になります。

アクション構成

パラメータ
エンティティ すべてのエンティティ
関数 Round
Numbers 57.63

例 4: Sort

このシナリオでは、数値 [13.5, -90.0, 556.0, 11.32] が昇順に並べ替えられて [-90.0, 11.32, 13.5, 556.0] になります。

アクション構成

パラメータ
エンティティ すべてのエンティティ
関数 並べ替え
Numbers 13.5,-90,566,11.32

例 5: Sum

このシナリオでは、次の数値 [10, 20, 30, 40, 50] の合計は 150 になります。

アクション構成

パラメータ
エンティティ すべてのエンティティ
関数 合計
Numbers 10, 20, 30, 40, 50

例 6: Float

このシナリオでは、数値 [100,200] が浮動小数点値 [100.0, 200.0] に変換されます。

アクション構成

パラメータ
エンティティ すべてのエンティティ
関数 浮動小数点数
Numbers 100,200

例 6: Hex

このシナリオでは、数値 [100,200] が 16 進数値 ['0x64', '0xc8'] に変換されます。

アクション構成

パラメータ
エンティティ すべてのエンティティ
関数 16 進数
Numbers 100,200

例 7: Int

このシナリオでは、浮動小数点値 100.23 が整数 100 に変換されます。

アクション構成

パラメータ
エンティティ すべてのエンティティ
関数 Int
Numbers 100.23

例 8: Abs

このシナリオでは、負の整数 -53 が絶対値 53 に変換されます。

アクション構成

パラメータ
エンティティ すべてのエンティティ
関数 Abs
Numbers -53

例 9: Display

このシナリオでは、値 10000 がカンマを含む値 10,000 に変換されます。

アクション構成

パラメータ
エンティティ すべてのエンティティ
関数 Display
Numbers 10000

アクションの結果

  • スクリプトの結果
    スクリプトの結果名 値のオプション
    ScriptResult 計算結果 -90

JSONPath クエリを実行する

Description

指定された JSON に対して JSONPath クエリを実行し、式に従って値を抽出します。

JSONPath の詳細については、https://github.com/h2non/jsonpath-ng をご覧ください。

パラメータ

パラメータ タイプ デフォルト値 必須 Description
JSON プルダウン JSON JSON 入力を指定します。
JSONPath 式 文字列 なし JSON パス式は、XPath 式が XML ドキュメントと組み合わせて使用されるのと同じ方法で、常に JSON 構造を参照します。

このシナリオでは、JSON の入力例から会社名が抽出されます。

アクション構成

パラメータ
エンティティ すべてのエンティティ
JSON JSON
編集者 { "company": { "name": "Cyber Secure", "employees": 1000, "founded": "2005", "headquarters": { "city": "San Francisco", "state": "CA", "country": "USA" }, "security": { "firewall": true, "vpn": true, "intrusion_detection": true, "encryption": true, "two_factor_authentication": true } }, "products": [ { "name": "CyberShield", "type": "firewall", "price": 499, "description": "サイバー攻撃から最大限保護する最先端のファイアウォール。" }, { "name": "SecureVPN", "type": "VPN", "price": 99, "description": "安全なブラウジングとオンライン プライバシーのための高速で安全な VPN サービス。" }, { "name": "IntrusionAlert", "type": "intrusion detection", "price": 299, "description": "ネットワークを監視し、潜在的な脅威を警告する高度な侵入検知システム。" } ] }
JSONPath 式 $.company.name

アクションの結果

  • JSON の結果
    {
    "matches" : {"0" : "Cyber Secure"}
    }

SanitizeHTML

Description

HTML のフラグメントが指定されると、このアクションは HTML5 の解析アルゴリズムに従ってフラグメントを解析し、許可されていないタグや属性をサニタイズします。このアルゴリズムは、閉じられていないタグや(一部の)ネストが正しくないタグなどの構文エラーも処理します。

パラメータ

パラメータ タイプ デフォルト値 必須 Description
タグ 文字列 なし いいえ Tags は、使用できる HTML タグのセットです。カンマ区切りのリストこのリストにない HTML タグは、エスケープまたは削除されます。
属性 文字列 {'a' : ['href', 'title'], 'abbr': ['title']} いいえ 属性を使用すると、許可される属性を指定できます。値はカンマ区切りのリストである必要があります。
スタイル 文字列 なし いいえ スタイル属性を許可する場合は、許可されるスタイルセット(カラー や バックグラウンド カラー など)を指定します。値はカンマで区切ります。
すべての属性を許可 チェックボックス オフ いいえ すべての属性を許可するには true に設定します
Input HTML 文字列 なし サニタイズする HTML フラグメントを指定します。

このシナリオでは、入力 HTML にタグ セクションに記載されていないタグが含まれているため、サニタイズされた出力は「<script>evil()</script>」になります。

アクション構成

パラメータ
エンティティ すべてのエンティティ
タグ a、abbr、acronym、b、blockquote、code、em、i、li、ol、strong、ul、table、tr、td、th、h1、h2、h3、body、tbody、thead、div、footer、head、header、html、img、option、p、section、span、strong、svg
属性 空白
スタイル 空白
すべての属性を許可する オフ
HTML を入力します。 <script>evil()<</script>

アクションの結果

  • スクリプトの結果
    スクリプトの結果名 値のオプション
    ScriptResult サニタイズされた結果 <script>evil()</script>”

文字列関数

Description

基本的な Pythonic 文字列関数が含まれています。

Lower: 文字列を小文字に変換します。

Upper: 文字列を大文字に変換します。

Count: 文字列内で指定された値が出現する回数を返します。

Find: 指定された値について文字列を検索し、見つかった位置を返します。

IsAlpha: 文字列内のすべての文字がアルファベットの場合に「True」を返します。

IsDigit: 文字列内のすべての文字が数字の場合に「True」を返します。

Replace: 指定した値を指定した値で置換する文字列を返します。

Strip: 文字列のトリミングされたバージョンを返します。

Title: 各単語の最初の文字を大文字に変換します。

Regex Replace: 正規表現の一致を置き換えます。

JSON Serialize: JSON オブジェクトをシリアル化された文字列に変換します。

Regex: 正規表現に基づいて一致を検索します。

Split: パラメータ 1 を区切り文字として使用して、入力文字列をリストに分割します。デフォルトはカンマです。

パラメータ

パラメータ タイプ デフォルト値 必須 Description
Param2 文字列 なし いいえ 2 番目のパラメータを指定します。
Param1 文字列 なし いいえ 最初のパラメータを指定します。
入力 文字列 なし 関数の入力を指定します。
関数 プルダウン 低い 実行する関数を指定します。

例 1: Lower

このシナリオでは、入力「SAMPLE INPUT」が「sample input」に変換されます。

アクション構成

パラメータ
エンティティ すべてのエンティティ
Param2 空白
Param1 空白
Input SAMPLE INPUT
関数 低い

例 2: Upper

このシナリオでは、入力「sample input」が「SAMPLE INPUT」に変換されます。

アクション構成

パラメータ
エンティティ すべてのエンティティ
Param2 空白
Param1 空白
Input sample input
関数 上部

例 3: Count

このシナリオでは、入力文字列で「sample」という単語が出現する回数をカウントし、結果は 2 になります。なお、パラメータ値では大文字と小文字が区別されます。

アクション構成

パラメータ
エンティティ すべてのエンティティ
Param2 空白
Param1 サンプル
Input サンプル情報を含むサンプル文。
関数 カウント

例 4: Find 

このシナリオでは、入力文字列で「containing」という単語が始まり、値が 13 になるインデックスを見つけます。

アクション構成

パラメータ
エンティティ すべてのエンティティ
Param2 空白
Param1 containing
Input サンプル情報を含むサンプル文。
関数 検索

例 5: isAlpha

このシナリオでは、入力文字列のすべての文字が英数字かどうかをチェックし、false の戻り値が返されます。

アクション構成

パラメータ
エンティティ すべてのエンティティ
Param2 空白
Param1 空白
Input %サンプル情報を含むサンプル文。
関数 isAlpha

例 6: isDigit

このシナリオでは、入力文字列のすべての文字が数字かどうかをチェックし、false の戻り値が返されます。

アクション構成

パラメータ
エンティティ すべてのエンティティ
Param2 空白
Param1 空白
Input 100000001
関数 isDigit

例 7: Replace

このシナリオでは、「information」という単語が「info」に置き換えられ、「sample input containing sample info」が出力されます。

アクション構成

パラメータ
エンティティ すべてのエンティティ
Param2 info
Param1 情報
Input サンプル情報を含むサンプル文。
関数 置き換える

例 8: Strip 

このシナリオでは、入力文字列の先頭と末尾のスペースが削除され、「sample input containing sample information」が出力されます。

アクション構成

パラメータ
エンティティ すべてのエンティティ
Param2 空白
Param1 空白
Input サンプル情報を含むサンプル文。
関数 ストリップ

例 9: Title

このシナリオでは、入力文字列の各単語の最初の文字が大文字に変換され、「Sample Input Containing Sample Information」が出力されます。

アクション構成

パラメータ
エンティティ すべてのエンティティ
Param2 空白
Param1 空白
Input サンプル情報を含むサンプル文。
関数 タイトル

例 10: Regex Replace

このシナリオでは、正規表現を使用して「The」を検索し、「a」に置き換えます。

このシナリオでは、正規表現を使用して「The」を検索し、「a」に置き換えています。

アクション構成

パラメータ
エンティティ すべてのエンティティ
Param2 A
Param1 \bThe\b
Input 素早い茶色の狐は怠け者の犬を飛び越える
関数 Regex Replace

例 11: JSON Serialize

このシナリオでは、JSON 入力をシリアル化された文字列に変換し、出力は「{\"key\" :\"value\"}"」になります。

アクション構成

パラメータ
エンティティ すべてのエンティティ
Param2 空白
Param1 空白
Input {"ip" : "0.0.0.0"}
関数 JSON Serialize

例 12: Regex

このシナリオでは、正規表現を使用して入力 JSON の値を取得しようとしています。

アクション構成

パラメータ
エンティティ すべてのエンティティ
Param2 空白
Param1 (?<="resource":").*?(?=")
Input {"resource":"host001"}
関数 正規表現

例 13: Split

このシナリオでは、入力が区切り文字としてカンマを使用するリストに変換され、出力は [100,200,300,400,500] になります。

アクション構成

パラメータ
エンティティ すべてのエンティティ
Param2 空白
Param1 ,
Input 100,200,300,400,500
関数 分割

アクションの結果

  • スクリプトの結果
    スクリプトの結果名 値のオプション
    ScriptResult 関数に基づく結果値 23

所要時間計算ツール

Description

2 つの日時の差を計算します。

パラメータ

パラメータ タイプ デフォルト値 必須 Description
入力日時 1 文字列 なし 最初の日付 / 時刻の入力値を指定します。現在の時刻には strftime 形式または「now」のいずれかをサポートします。
入力日時 1 形式 文字列 %Y-%d-%m'T'%H:%M:%S 「日時 1」文字列の strftime 形式を指定します。詳しくは、https://strftime.org をご覧ください。
入力日時 2 文字列 参加する 2 番目の日時入力値を指定します。現在の時刻には strftime 形式または「now」のいずれかをサポートします。
入力日時 2 形式 文字列 %Y-%d-%m'T'%h:%m:%s 「日時 2」文字列の strftime 形式を指定します。詳しくは、https://strftime.org をご覧ください。

このシナリオでは、2022-13-03'T'04:13:01 と現在の日時の差を計算し、0 年、200 日、10 時間、51 分、20 秒を出力します。

アクション構成

パラメータ
エンティティ すべてのエンティティ
入力日時 1 2022-13-03'T'04:13:01
入力日時 1 形式 %Y-%d-%m'T'%H:%M:%S
入力日時 2 now
入力日時 2 形式 %Y-%d-%m'T'%h:%m:%s

アクションの結果

  • スクリプトの結果
    スクリプトの結果名 値のオプション
    計算された時間(秒単位) 17319080
  • JSON の結果
    {
         "years": 0, "days": 200,
         "hours": 4810, 
         "minutes": 288651, 
         "seconds": 17319080, 
         "duration": "Time between dates: 0 years, 200 days, 10 hours, 51 minutes and 20     
                           seconds"
    }

XMLtoJson

Description

XML 形式の入力を JSON 表現に変換します。

パラメータ

パラメータ タイプ デフォルト値 必須 Description
XML 文字列 なし JSON に変換する XML を指定します。

このシナリオでは、サンプル XML 文字列を JSON オブジェクトに変換します。

アクション構成

パラメータ
エンティティ すべてのエンティティ
xml <threats> <threat> <name>マルウェア</name> <description>マルウェアとは、悪意のあるソフトウェアであり、コンピュータ システムに損害を与え、センシティブ データを盗む、またはネットワークのコントロールを行うようにデザインされています。</description> <prevention> <tip>マルウェア対策ソフトウェアをインストールし、常に最新バージョンにしてください。</tip> <tip>疑わしいリンクをクリックしたり、提供元不明のアプリからファイルをダウンロードすることをしないでください。</tip> <tip>重要なデータを定期的にバックアップしてください。</tip> </prevention> <mitigation> <tip>感染したパソコンの接続をネットワークから切断し、マルウェアの拡散を防ぎます。</tip> <tip>マルウェア対策ソフトウェアを使用して、マルウェアを削除します。</tip> <tip>失われたデータや破損したデータをバックアップから復元します。</tip> </mitigation> </threat> </threats> <best-practices> <practice> <name>アクセス制御</name> <description>アクセス制御は、ネットワーク内のどの情報やリソースに誰がアクセスできるかを管理するプロセスです。</description> <tip>多要素認証などの強力な認証メカニズムを実施して、ユーザー ID を確認します。</tip> <tip>ロールベース アクセス制御を使用して、ジョブの責任に応じて権限を割り当てます。</tip> <tip>ユーザー アクティビティをモニタリングして監査し、不正なアクセスの試みを検出します。</tip> </practice> </best-practices>

アクションの結果

  • スクリプトの結果
    スクリプトの結果名 値のオプション
    ScriptResult True/False True
  • JSON の結果
    {
    "cybersecurity": {"threat": [{"name": "Malware", "description": "A type of software designed to harm computer systems.", "severity": "High", "prevention": {"software": "Antivirus", "policy": "Regular software updates and patches"}}, {"name": "Phishing", "description": "A fraudulent attempt to obtain sensitive information by impersonating a trustworthy entity.", "severity": "High", "prevention": {"software": "Firewalls and intrusion detection systems", "policy": "Limiting access to network resources to only authorized personnel"}}]}
    }

ハッシュタイプの検出

Description

このアクションは、エンティティのハッシュタイプを検出します。サポートされているタイプは、SHA256、MD5、SHA1、SHA-512 です。

パラメータ

パラメータ タイプ デフォルト値 必須 Description
Hashes 文字列 なし ハッシュ値を指定します。カンマ区切りのリストをサポートします。

このシナリオでは、MD5 と SHA256 の 2 つのハッシュのハッシュタイプを特定しています。

アクション構成

パラメータ
エンティティ すべてのエンティティ
Hashes b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7aceZefcde9,ed076287532e86365e841e92bfc50d8c

アクションの結果

  • スクリプトの結果
    スクリプトの結果名 値のオプション
    IsSuccess True/False True
  • JSON の結果
    [{
    "Hash": "b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9", "HashType": "SHA-256"}, {"Hash": "ed076287532e86365e841e92bfc50d8c", "HashType": "MD5"
    }]

IP タイプを検出

Description

IP が IPv4 アドレスか IPv6 アドレスかを確認します。IP アドレス エンティティは IPType フィールドで拡充されます。

パラメータ

パラメータ タイプ デフォルト値 必須 Description
IP アドレス 文字列 なし IP 値を指定します。カンマ区切りのリストをサポートします。

このシナリオでは、2 つの異なる IP アドレスをチェックして、そのタイプを特定します。

アクション構成

パラメータ
エンティティ すべてのエンティティ
IP アドレス 2001:0db8:85a3:0000:0000:8a2e:0370:7334,

0.0.0.0

アクションの結果

  • スクリプトの結果
    スクリプトの結果名 値のオプション
    IsSuccess True/False True
  • JSON の結果
    [{
    "Address": "2001:0db8:85a3:0000:0000:8a2e:0370:7334", "IPType": "IPV6"}, {"Address": "0.0.0.0", "IPType": "IPV4"}
    }]

さらにサポートが必要な場合 コミュニティ メンバーや Google SecOps のプロフェッショナルから回答を得ることができます。