ブログ

VAddyからAPIの脆弱性検査を行う。準備編

VAddyは特別なサーバを用意せずにセキュリティテストを実現することが可能なクラウド型Web脆弱性検査ツールです。
今回APIに対してテストを行う手順をまとめます。

今回はAWS Lambda+Api GatewayにPostmanでのテストを行う事前準備を行います。
VAddyの登録がまだの方は30日間無料で試せますので下記のリンクから登録を行ってください。
今すぐVAddyを試す

SAMによるLambdaの設定
SAMのtemplateファイルについてはコマンドラインから sam initで作成しました。
こちらを参考にしてください。
Hello Worldのサンプルをそのまま使いました。

こちらで作成したtemplate.ymlを編集します。

HelloWorldFunction:の下に確認用のlambdaの設定を追加します。

ShowTokenFunction:
Type: AWS::Serverless::Function
Properties:
CodeUri: show_token/
Handler: app.lambda_handler
Runtime: python3.7
Events:
ShowToken:
Type: Api
Properties:
Path: /
Method: get

ディレクトリ構造は

├── README.md
├── events
│   └── event.json
├── hello_world
│   ├── __init__.py
│   ├── app.py
│   └── requirements.txt
├── show_token
│   └── app.py
├── template.yaml
└── tests
└── unit
├── __init__.py
└── test_handler.py

このような感じにしました。hello_worldと同列にshow_tokenというディレクトリを作成しました。
ここら辺はいつもはsrcなどとまとめたりします。まとめた場合はtemplate内のCodeUriを変更してください。

show_token内のapp.pyでトークンを表示します。

import json
def lambda_handler(event, context):

response = {
"statusCode": 200,
"isBase64Encoded": False,
"headers": {
"Content-Type": "text/html; charset=utf-8"
}
}

response['body'] = "DUMMYSTRING[ここにトークン]"


return response

ファイルの修正が完了したら
sam build
sam deploy –guided
でサーバにdeployしてください。

サービスからAPI Gatewayを選択すると指定した名前でAPI Gatewayが作成されていると思います。
クリックして詳細画面からアクション>APIのデプロイを選択してください。

作成後表示されるURLでテストを行います。

ここからはVaddyのダッシュボードへ移ります。
まずプロジェクトの作成を行ってください。
なおここでのドメイン先ほどのはAPI GatewayのdeployのURLを設定しましょう。

プロジェクトの作成>対象サーバの登録を完了してください。

作成が終わったら、Veryfy用のファイルをダウンロードしましょう。
このファイルの中の文字列が後ほどの確認トークンとなります。

Vaddyの所有者確認のためには指定されたファイル名でアクセスする必要があります。

ここでは仮にディレクトリにStage(aws側で何を設定するかによる)htmlの拡張子を拡張子無しにします。
ALB,Route53などでルートアクセスできるようにしてあればディレクトリの指定は不要です。

lambda側に戻ります。

template.yamlを修正します。

ShowTokenFunction:
Type: AWS::Serverless::Function
Properties:
CodeUri: show_token/
Handler: app.lambda_handler
Runtime: python3.7
Events:
ShowToken:
Type: Api
Properties:
Path: /ここにVaddyで設定された確認ディレクトし(.htmlを除いたもの)
Method: get

次にshow_token/app.pyの修正を行います。

ソース中のDUMMYSTRING[ここにトークン]の部分を書き換えます。
この部分をVaddyで確認するよう言われたファイルの中身に差し替えます。Githubなどに出すのは気持ち悪いのでAWSコンソールでlambdaを直接書き換えたり、環境変数など使うのも良いでしょう。
修正が終わったら
sam build
sam deploy
を行ってください。
これで確認の準備が完了しました。

API Gatewayのディレクトリ

にアクセスするとlambdaで指定されたトークンの内容が表示されるはずです。

表示されたらVerifyを押下して確認しましょう。

Postmanを用いてのテストは次の投稿にさせていただきます。

なおアリウープでは記事中のVaddyの代理店を行っております。
下記のリンクからアカウント作成を行うと
VAddy Professionalが30日間無料でご利用できます。
この機会に是非お試しください。
今すぐVAddyを試す