まったり技術ブログ

主にWebエンジニア向けのセキュリティブログ。たまに開発も

【セキュリティ】『不信なPoCは実行するな』というお話

f:id:motikan2010:20200526225913p:plain:w600

はじめに ~ 脆弱性PoCの収集リポジトリ ~

 私は脆弱性のPoCが自動的に収集しているリポジトリを公開していますが、先日このようなIssueが作成されました。

そのIssueの内容を端的に言うと「収集しているPoCにマルウェアが混ざってるでボケェ!!」というもの。

f:id:motikan2010:20200526205425p:plain:w600

正体はマルウェアだったリポジトリ

 ここでは「CVE-2020-0883」「CVE-2020-0910」の2つの脆弱性があげられており、それぞれ「thelostworldFree/CVE-2020-0883」「inetshell/CVE-2020-0910」リポジトリのことを指していると考えられます。

 実際にこの2つのリポジトリ内のコードを確認してみます。異なる脆弱性のPoCですが、Pythonコードがほぼ同じであり非常に怪しいリポジトリであることが分かります。

f:id:motikan2010:20200526221446p:plain

 そのコードの詳細はテンセント社のブログで紹介されていたのでそちらを参照ください。(中国語ですが・・・)

上記の2つとは別の脆弱性(CVE-2020-0796 : Microsoft SMBv3の脆弱性)で説明されていますが、コードの動作内容は同じなので問題ないです。

cloud.tencent.com

 (※以下、Google翻訳を駆使して理解できた内容です。)
 この記事を簡単に説明すると、

・この怪しいコードは実行時に指定した「検査対象となるホスト」情報を54[.]184[.]20[.]69に送信するような動作したそうです。
・そして送信されたホスト情報に対して外部かSMBパケットが送信されたそうです。

 明らかに脆弱性検証コードの動作ではなく、黒なコードであったことが確認できます。

まとめ ~ 無闇にPoCを実行してはイカン!! ~

 つまり何が言いたいかというと、信用できないPoCを安易に実行してはいけないということです。
今エンジニアとして働いている私にとっては当然のことではありますが、学生の頃は適当に見つけたPoCを実行するようなことがありました。(不思議と.exe等の実行ファイルは怪しんでいましたが...)
そんなPoCの内容を一切確認しない人を標的としているんでしょうね。

 そんな感じでPoCを実行するときは、コードをしっかり確認した方がいいよという記事でした。

軽くコードを見るだけでも分かる場合がほとんどです(今回の様に不明な難読化をしていたり)。
ちなみによく分からん時はとりあえず実行しないようにしています(or 死んでもいい環境で動かしたり)。

下画像のようにIssueでリポジトリが怪しいということを教えてくれる場合もあるようです。
f:id:motikan2010:20200526224312p:plain:w600

更新履歴

  • 2020年5月26日 新規作成

【Azure】Azure CLIでApplication Gateway WAFを操作 - カスタムルール編

f:id:motikan2010:20200424002556p:plain:w500

はじめに

 本記事では Application Gateway WAF のポリシーやカスタムルールの制御(作成・削除など)を azコマンド経由で実行する方法を説明します。

Azure CLI(azコマンド)で Application Gateway WAF を操作

1. WAFポリシー

$ az network application-gateway waf-policy -h

Group
    az network application-gateway waf-policy : Manage application gateway web application firewall
    (WAF) policies.

Subgroups:
    custom-rule    : Manage application gateway web application firewall (WAF) policy custom rules.
    managed-rule   : Manage managed rules of a waf-policy. Visit: https://docs.microsoft.com/en-
                     us/azure/web-application-firewall/afds/afds-overview.
    policy-setting : Defines contents of a web application firewall global configuration.

Commands:
    create         : Create an application gateway WAF policy.
    delete         : Delete an application gateway WAF policy.
    list           : List application gateway WAF policies.
    show           : Get the details of an application gateway WAF policy.
    update         : Update an application gateway WAF policy.
    wait           : Place the CLI in a waiting state until a condition of the application gateway
                     WAF policy is met.

1-1. WAFポリシーの作成 (create サブコマンド)

 createサブコマンドのヘルプ

$ az network application-gateway waf-policy create -h

Command
    az network application-gateway waf-policy create : Create an application gateway WAF policy.

Arguments
    --name -n           [Required] : The name of the application gateway WAF policy.
    --resource-group -g [Required] : Name of resource group. You can configure the default group
                                     using `az configure --defaults group=<name>`.
    --location -l                  : Location. Values from: `az account list-locations`. You can
                                     configure the default location using `az configure --defaults
                                     location=<location>`.
    --tags                         : Space-separated tags: key[=value] [key[=value] ...]. Use '' to
                                     clear existing tags.

Examples
    Create an application gateway WAF policy. (autogenerated)
        az network application-gateway waf-policy create --name MyApplicationGatewayWAFPolicy
        --resource-group MyResourceGroup
$ az network application-gateway waf-policy create \
--name TestPolicy \
--resource-group testResourceGroup

1-2. WAFポリシーの詳細表示 (show サブコマンド)

 showサブコマンドのヘルプ

$ az network application-gateway waf-policy show \
  --resource-group 'testResourceGroup' \
  --name 'TestPolicy'

----- 出力 -----
{
  "applicationGateways": null,
  "customRules": [],
  "etag": "W/\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"",
  "httpListeners": null,
  "id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/testResourceGroup/providers/Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies/TestPolicy",
  "location": "japaneast",
  "managedRules": {
    "exclusions": [],
    "managedRuleSets": [
      {
        "ruleGroupOverrides": [],
        "ruleSetType": "OWASP",
        "ruleSetVersion": "3.0"
      }
    ]
  },
  "name": "TestPolicy",
  "pathBasedRules": null,
  "policySettings": {
    "fileUploadLimitInMb": 100,
    "maxRequestBodySizeInKb": 128,
    "mode": "Detection",
    "requestBodyCheck": true,
    "state": "Disabled"
  },
  "provisioningState": "Succeeded",
  "resourceGroup": "testResourceGroup",
  "resourceState": null,
  "tags": null,
  "type": "Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies"
}
---------------

2. カスタムルール

$ az network application-gateway waf-policy custom-rule -h

Group
    az network application-gateway waf-policy custom-rule : Manage application gateway web
    application firewall (WAF) policy custom rules.

Subgroups:
    match-condition : Manage application gateway web application firewall (WAF) policies.

Commands:
    create          : Create an application gateway WAF policy custom rule.
    delete          : Delete an application gateway WAF policy custom rule.
    list            : List application gateway WAF policy custom rules.
    show            : Get the details of an application gateway WAF policy custom rule.
    update          : Update an application gateway WAF policy custom rule.

2-1. カスタムルールの作成 (create サブコマンド)

 createサブコマンドのヘルプ

$ az network application-gateway waf-policy custom-rule create -h

Command
    az network application-gateway waf-policy custom-rule create : Create an application gateway WAF
    policy custom rule.

Arguments
    --action            [Required] : Action to take.  Allowed values: Allow, Block, Log.
    --name -n           [Required] : Name of the WAF policy rule.
    --policy-name       [Required] : The name of the application gateway WAF policy.
    --priority          [Required] : Rule priority. Lower values are evaluated prior to higher
                                     values.
    --resource-group -g [Required] : Name of resource group. You can configure the default group
                                     using `az configure --defaults group=<name>`.
    --rule-type         [Required] : Type of rule.  Allowed values: Invalid, MatchRule.

 ポリシー「TestPolicy」にカスタムルール「TestCustomRule」を作成。

$ az network application-gateway waf-policy custom-rule create \
  --action 'Block' \
  --name 'TestCustomRule' \
  --policy-name 'TestPolicy' \
  --priority '50' \
  --resource-group 'testResourceGroup' \
  --rule-type 'MatchRule'

----- 出力 -----
{
  "action": "Block",
  "etag": null,
  "matchConditions": [],
  "name": "TestCustomRule",
  "priority": 50,
  "ruleType": "MatchRule",
  "skippedManagedRuleSets": []
}
---------------

2-2. カスタムルールの削除 (delete サブコマンド)

 deleteサブコマンドのヘルプ

$ az network application-gateway waf-policy custom-rule delete -h

Command
    az network application-gateway waf-policy custom-rule delete : Delete an application gateway WAF
    policy custom rule.

Arguments

Resource Id Arguments
    --ids               : One or more resource IDs (space-delimited). It should be a complete
                          resource ID containing all information of 'Resource Id' arguments. If
                          provided, no other 'Resource Id' arguments should be specified.
    --name -n           : Name of the WAF policy rule.
    --policy-name       : The name of the application gateway WAF policy.
    --resource-group -g : Name of resource group. You can configure the default group using `az
                          configure --defaults group=<name>`.
    --subscription      : Name or ID of subscription. You can configure the default subscription
                          using `az account set -s NAME_OR_ID`.

 リソースグループ「testResourceGroup」のポリシー「TestPolicy」内のカスタムルール「TestCustomRule」を削除。

$ az network application-gateway waf-policy custom-rule delete \
  --resource-group 'testResourceGroup' \
  --policy-name 'TestPolicy' \
  --name 'TestCustomRule'

2-3. カスタムルールの一覧 (list サブコマンド)

 listサブコマンドのヘルプ

$ az network application-gateway waf-policy custom-rule list \
  --resource-group 'testResourceGroup' \
  --policy-name 'TestPolicy'

----- 出力 -----
[
  {
    "action": "Block",
    "etag": null,
    "matchConditions": [
      {
        "matchValues": [
          "hoge",
          "fuga"
        ],
        "matchVariables": [
          {
            "selector": null,
            "variableName": "QueryString"
          },
          {
            "selector": null,
            "variableName": "PostArgs"
          }
        ],
        "negationConditon": false,
        "operator": "Contains",
        "transforms": [
          "Lowercase",
          "RemoveNulls"
        ]
      }
    ],
    "name": "TestCustomRule",
    "priority": 50,
    "ruleType": "MatchRule",
    "skippedManagedRuleSets": []
  }
]
---------------

2-4. カスタムルールの詳細 (show サブコマンド)

 カスタムルールを指定して詳細を確認することができます。

 showサブコマンドのヘルプ

$ az network application-gateway waf-policy show -h

Command
    az network application-gateway waf-policy show : Get the details of an application gateway WAF
    policy.

Arguments

Resource Id Arguments
    --ids               : One or more resource IDs (space-delimited). It should be a complete
                          resource ID containing all information of 'Resource Id' arguments. If
                          provided, no other 'Resource Id' arguments should be specified.
    --name -n           : The name of the application gateway WAF policy.
    --resource-group -g : Name of resource group. You can configure the default group using `az
                          configure --defaults group=<name>`.
    --subscription      : Name or ID of subscription. You can configure the default subscription
                          using `az account set -s NAME_OR_ID`.

Global Arguments
    --debug             : Increase logging verbosity to show all debug logs.
    --help -h           : Show this help message and exit.
    --only-show-errors  : Only show errors, suppressing warnings.
    --output -o         : Output format.  Allowed values: json, jsonc, none, table, tsv, yaml,
                          yamlc.  Default: json.
    --query             : JMESPath query string. See http://jmespath.org/ for more information and
                          examples.
    --verbose           : Increase logging verbosity. Use --debug for full debug logs.

Examples
    Get the details of an application gateway WAF policy. (autogenerated)
        az network application-gateway waf-policy show --name MyApplicationGatewayWAFPolicy
        --resource-group MyResourceGroup

 カスタムルール「TestCustomRule」の詳細を出力してみます。

$ az network application-gateway waf-policy custom-rule show \
  --resource-group 'testResourceGroup' \
  --policy-name 'TestPolicy' \
  --name 'TestCustomRule'

----- 出力 -----
{
  "action": "Block",
  "etag": null,
  "matchConditions": [
    {
      "matchValues": [
        "hoge",
        "fuga"
      ],
      "matchVariables": [
        {
          "selector": null,
          "variableName": "QueryString"
        },
        {
          "selector": null,
          "variableName": "PostArgs"
        }
      ],
      "negationConditon": false,
      "operator": "Contains",
      "transforms": [
        "Lowercase",
        "RemoveNulls"
      ]
    }
  ],
  "name": "TestCustomRule",
  "priority": 50,
  "ruleType": "MatchRule",
  "skippedManagedRuleSets": []
}
--------------------

2-5. カスタムルールの更新 (update サブコマンド)

$ az network application-gateway waf-policy custom-rule update -h

Command
    az network application-gateway waf-policy custom-rule update : Update an application gateway WAF
    policy custom rule.

Arguments
    --action            : Action to take.  Allowed values: Allow, Block, Log.
    --priority          : Rule priority. Lower values are evaluated prior to higher values.
    --rule-type         : Type of rule.  Allowed values: Invalid, MatchRule.

Generic Update Arguments
    --add               : Add an object to a list of objects by specifying a path and key value
                          pairs.  Example: --add property.listProperty <key=value, string or JSON
                          string>.
    --force-string      : When using 'set' or 'add', preserve string literals instead of attempting
                          to convert to JSON.
    --remove            : Remove a property or an element from a list.  Example: --remove
                          property.list <indexToRemove> OR --remove propertyToRemove.
    --set               : Update an object by specifying a property path and value to set.  Example:
                          --set property1.property2=<value>.

Resource Id Arguments
    --ids               : One or more resource IDs (space-delimited). It should be a complete
                          resource ID containing all information of 'Resource Id' arguments. If
                          provided, no other 'Resource Id' arguments should be specified.
    --name -n           : Name of the WAF policy rule.
    --policy-name       : The name of the application gateway WAF policy.
    --resource-group -g : Name of resource group. You can configure the default group using `az
                          configure --defaults group=<name>`.
    --subscription      : Name or ID of subscription. You can configure the default subscription
                          using `az account set -s NAME_OR_ID`.

3. マッチ条件

$ az network application-gateway waf-policy custom-rule match-condition -h

Group
    az network application-gateway waf-policy custom-rule match-condition : Manage application
    gateway web application firewall (WAF) policies.

Commands:
    add    : A match condition to an application gateway WAF policy custom rule.
    list   : List application gateway WAF policy custom rule match conditions.
    remove : Remove a match condition from an application gateway WAF policy custom rule.

3-1. マッチ条件を追加 (add サブコマンド)

$ az network application-gateway waf-policy custom-rule match-condition add -h

Command
    az network application-gateway waf-policy custom-rule match-condition add : A match condition to
    an application gateway WAF policy custom rule.

Arguments
    --match-variables [Required] : Space-separated list of variables to use when matching. Variable
                                   values: RemoteAddr, RequestMethod, QueryString, PostArgs,
                                   RequestUri, RequestHeaders, RequestBody, RequestCookies.
    --operator        [Required] : Operator for matching.  Allowed values: BeginsWith, Contains,
                                   EndsWith, Equal, GeoMatch, GreaterThan, GreaterThanOrEqual,
                                   IPMatch, LessThan, LessThanOrEqual, Regex.
    --values          [Required] : Space-separated list of values to match.
    --negate                     : Match the negative of the condition.  Allowed values: false,
                                   true.
    --transforms                 : Space-separated list of transforms to apply when matching.
                                   Allowed values: HtmlEntityDecode, Lowercase, RemoveNulls, Trim,
                                   UrlDecode, UrlEncode.

Resource Id Arguments
    --ids                        : One or more resource IDs (space-delimited). It should be a
                                   complete resource ID containing all information of 'Resource Id'
                                   arguments. If provided, no other 'Resource Id' arguments should
                                   be specified.
    --name -n                    : Name of the WAF policy rule.
    --policy-name                : The name of the application gateway WAF policy.
    --resource-group -g          : Name of resource group. You can configure the default group using
                                   `az configure --defaults group=<name>`.
    --subscription               : Name or ID of subscription. You can configure the default
                                   subscription using `az account set -s NAME_OR_ID`.

 実際に以下の表のマッチ条件を作成してみます。

マッチ条件
Match variable ["QueryString", "PostArgs"]
Operator "Contains"
Match values ["hoge", "fuga"]
Transformations ["Lowercase", "RemoveNulls"]
$ az network application-gateway waf-policy custom-rule match-condition add \
  --resource-group 'testResourceGroup' \
  --policy-name 'TestPolicy' \
  --name 'TestCustomRule' \
  --match-variables 'QueryString' 'PostArgs' \
  --operator 'Contains' \
  --values 'hoge' 'fuga' \
  --transforms 'Lowercase' 'RemoveNulls'

-----  出力 -----
{
  "matchValues": [
    "hoge",
    "fuga"
  ],
  "matchVariables": [
    {
      "selector": null,
      "variableName": "QueryString"
    },
    {
      "selector": null,
      "variableName": "PostArgs"
    }
  ],
  "negationConditon": null,
  "operator": "Contains",
  "transforms": [
    "Lowercase",
    "RemoveNulls"
  ]
}
---------------

 Azureのダッシュボード から作成されたことが確認できました。
f:id:motikan2010:20200424004319p:plain:w300

3-2. マッチ条件の一覧 (list サブコマンド)

$ az network application-gateway waf-policy custom-rule match-condition list \
  --resource-group 'testResourceGroup' \
  --policy-name 'TestPolicy' \
  --name 'TestCustomRule'

----- 出力 -----
[
  {
    "matchValues": [
      "hoge",
      "fuga"
    ],
    "matchVariables": [
      {
        "selector": null,
        "variableName": "QueryString"
      },
      {
        "selector": null,
        "variableName": "PostArgs"
      }
    ],
    "negationConditon": false,
    "operator": "Contains",
    "transforms": [
      "Lowercase",
      "RemoveNulls"
    ]
  }
]
---------------

3-3. マッチ条件を削除 (remove サブコマンド)

$ az network application-gateway waf-policy custom-rule match-condition remove -h

Command
    az network application-gateway waf-policy custom-rule match-condition remove : Remove a match
    condition from an application gateway WAF policy custom rule.

Arguments
    --index  [Required] : Index of the match condition to remove.

Resource Id Arguments
    --ids               : One or more resource IDs (space-delimited). It should be a complete
                          resource ID containing all information of 'Resource Id' arguments. If
                          provided, no other 'Resource Id' arguments should be specified.
    --name -n           : Name of the WAF policy rule.
    --policy-name       : The name of the application gateway WAF policy.
    --resource-group -g : Name of resource group. You can configure the default group using `az
                          configure --defaults group=<name>`.
    --subscription      : Name or ID of subscription. You can configure the default subscription
                          using `az account set -s NAME_OR_ID`.
$ az network application-gateway waf-policy custom-rule match-condition remove \
  --resource-group 'testResourceGroup' \
  --policy-name 'TestPolicy' \
  --name 'TestCustomRule' \
  --index 0

【Azure】Azure CLIコマンド(az)でApplication Gatewayを停止

f:id:motikan2010:20200410223604p:plain:w400

はじめに

 Azure CLIコマンド(az)でAzure Application Gatewayの起動と停止をする機会があったのでメモ。
ちなみにWebコンソールからは現時点ではできないみたいです。

利用するバージョン

 利用している Azure CLI のバージョンは以下の通りです。

$ az version
This command is in preview. It may be changed/removed in a future release.
{
  "azure-cli": "2.1.0",
  "azure-cli-command-modules-nspkg": "2.0.3",
  "azure-cli-core": "2.1.0",
  "azure-cli-nspkg": "3.0.4",
  "azure-cli-telemetry": "1.0.4",
  "extensions": {}
}

 Application Gateway制御のヘルプは以下の通りです。
本記事ではstopstartについて説明します。

az network application-gateway -h

Group
    az network application-gateway : Manage application-level routing and load balancing services.
        To learn more about Application Gateway, visit https://docs.microsoft.com/azure/application-
        gateway/application-gateway-create-gateway-cli.

Subgroups:
    address-pool            : Manage address pools of an application gateway.
    auth-cert               : Manage authorization certificates of an application gateway.
    frontend-ip             : Manage frontend IP addresses of an application gateway.
    frontend-port           : Manage frontend ports of an application gateway.
    http-listener           : Manage HTTP listeners of an application gateway.
    http-settings           : Manage HTTP settings of an application gateway.
    identity                : Manage the managed service identity of an application gateway.
    probe                   : Manage probes to gather and evaluate information on a gateway.
    redirect-config         : Manage redirect configurations.
    rewrite-rule            : Manage rewrite rules of an application gateway.
    root-cert               : Manage trusted root certificates of an application gateway.
    rule                    : Evaluate probe information and define routing rules.
    ssl-cert                : Manage SSL certificates of an application gateway.
    ssl-policy              : Manage the SSL policy of an application gateway.
    url-path-map            : Manage URL path maps of an application gateway.
    waf-config [Deprecated] : Configure the settings of a web application firewall.
    waf-policy              : Manage application gateway web application firewall (WAF) policies.

Commands:
    create                  : Create an application gateway.
    delete                  : Delete an application gateway.
    list                    : List application gateways.
    show                    : Get the details of an application gateway.
    show-backend-health     : Get information on the backend health of an application gateway.
    start                   : Start an application gateway. 👈 本記事で紹介するサブコマンド
    stop                    : Stop an application gateway.  👈 本記事で紹介するサブコマンド
    update                  : Update an application gateway.
    wait                    : Place the CLI in a waiting state until a condition of the application
                              gateway is met.

検証

 停止・起動には「サブスクリプションID」、「リソースグループ名」、「アプリケーションゲートウェイ名」を指定する必要があります。
停止・起動する対象のリソースの情報は以下の通りです。

  • サブスクリプションID:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
  • リソースグループ名:testResourceGroup
  • アプリケーションゲートウェイ名:testAppGateway

Application Gateway の状態を確認(az network application-gateway list)

 listを指定することで状態を確認することができます。

作成時にこのコマンドを実行したので、状態は「Running」で起動していることが分かります。

停止方法については後述しますが、停止状態の場合は「Stopped」となります。

$ az network application-gateway list | \
  jq -r '.[] | [.name, .operationalState, .id] | @csv'
"testAppGateway","Running","/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/testResourceGroup/providers/Microsoft.Network/applicationGateways/testAppGateway"

Application Gateway の停止(az network application-gateway stop)

 以下はstopを指定時のヘルプです。

$ az network application-gateway stop -h

Command
    az network application-gateway stop : Stop an application gateway.

Arguments

Resource Id Arguments
    --ids               : One or more resource IDs (space-delimited). It should be a complete
                          resource ID containing all information of 'Resource Id' arguments. If
                          provided, no other 'Resource Id' arguments should be specified.
    --name -n           : Name of the application gateway.
    --resource-group -g : Name of resource group. You can configure the default group using `az
                          configure --defaults group=<name>`.
    --subscription      : Name or ID of subscription. You can configure the default subscription
                          using `az account set -s NAME_OR_ID`.

Global Arguments
    --debug             : Increase logging verbosity to show all debug logs.
    --help -h           : Show this help message and exit.
    --output -o         : Output format.  Allowed values: json, jsonc, none, table, tsv, yaml,
                          yamlc.  Default: json.
    --query             : JMESPath query string. See http://jmespath.org/ for more information and
                          examples.
    --verbose           : Increase logging verbosity. Use --debug for full debug logs.

Examples
    Stop an application gateway.
        az network application-gateway stop -g MyResourceGroup -n MyAppGateway

 停止は以下のコマンドを実行します。

$ az network application-gateway stop \
    --id '/subscriptions/<Subscription ID>/resourceGroups/<Resource Groups>/providers/Microsoft.Network/applicationGateways/<Application Gateway Name>'

 実際に停止コマンドを実行し、状態を確認してみます。

-- 停止コマンドを実行
$ az network application-gateway stop \
    --id '/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/testResourceGroup/providers/Microsoft.Network/applicationGateways/testAppGateway'

-- 状態確認
$ az network application-gateway list | \
  jq -r '.[] | [.name, .operationalState, .id] | @csv'
"testAppGateway","Stopped","/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/testResourceGroup/providers/Microsoft.Network/applicationGateways/testAppGateway"

 無事停止されていることが確認できました。

Application Gateway の起動(az network application-gateway start)

 以下はstartを指定時のヘルプです。

$ az network application-gateway start -h

Command
    az network application-gateway start : Start an application gateway.

Arguments

Resource Id Arguments
    --ids               : One or more resource IDs (space-delimited). It should be a complete
                          resource ID containing all information of 'Resource Id' arguments. If
                          provided, no other 'Resource Id' arguments should be specified.
    --name -n           : Name of the application gateway.
    --resource-group -g : Name of resource group. You can configure the default group using `az
                          configure --defaults group=<name>`.
    --subscription      : Name or ID of subscription. You can configure the default subscription
                          using `az account set -s NAME_OR_ID`.

Global Arguments
    --debug             : Increase logging verbosity to show all debug logs.
    --help -h           : Show this help message and exit.
    --output -o         : Output format.  Allowed values: json, jsonc, none, table, tsv, yaml,
                          yamlc.  Default: json.
    --query             : JMESPath query string. See http://jmespath.org/ for more information and
                          examples.
    --verbose           : Increase logging verbosity. Use --debug for full debug logs.

Examples
    Start an application gateway.
        az network application-gateway start -g MyResourceGroup -n MyAppGateway

For more specific examples, use: az find "az network application-gateway start"

 実際に起動コマンドを実行します。数分後起動していることが確認できます。

$ az network application-gateway start \
    --id '/subscriptions/<Subscription ID>/resourceGroups/<Resource Groups>/providers/Microsoft.Network/applicationGateways/<Policy Name>'

HTTPS通信をNginxでフォワードプロキシ

f:id:motikan2010:20200318151440p:plain:w600
  • はじめに
    • HTTPS通信をプロキシする「ngx_http_proxy_connect_module」モジュール
  • 環境構築
    • Nginx と モジュール の ダウンロード & インストール
    • Nginx の 設定 & 起動
  • 動作確認
  • ダイナミック(動的)モジュール
  • 参考
  • 更新履歴

はじめに

 Nginxでは「proxy_pass」ディレクティブを指定することでフォワードプロキシとして動作させることが可能です。

 しかし、モジュール等を追加していない素のNginxの場合、HTTPS通信をフォワードプロキシすることはできません

f:id:motikan2010:20200318153058p:plain:w500
続きを読む

【PR】Githubスターが100超えたから紹介【セキュリティ】

f:id:motikan2010:20200306023529p:plain:w600
  • はじめに
  • 「PoC-in-GitHub」とはどのようなリポジトリ? 👉 オススメ度:★★★
  • その他リポジトリも紹介させて!
    • NVD情報を保存している「NVD-Database」 👉 オススメ度:★
    • CVEをリスト化している「CVE-Easy-List」 👉 オススメ度:★★★★
    • CVEのExploitがリスト化されている「NVD-Exploit-List-Ja」 👉 オススメ度:★★
  • おまけ
    • 裏方アカウント
    • 脆弱性をリスト化することによる副作用
  • まとめ
  • 更新履歴

はじめに

 先日私が作成したGitHubリポジトリのスター数が100を超えました!

圧倒的感謝!(-人-)謝謝

 3桁になったのは初めてのことであり嬉しいので、どのようリポジトリであるのかを紹介することにします。
ついでに他のリポジトリも紹介させて! +私自身のリポジトリ確認頻度でオススメ度を決めています。

人によってはきっと役に立つはず。

 100個を超えたことに気づいている様子が以下のツイートです。

ちなみに100個目の記念スター⭐️は自分自身で付けようと思っていましたが、就寝中であり付けられませんでした。

続きを読む