
どうも Security Engineering の西川(@nishikawaakira)です。今年も AWS re:Invent に参加しており、個人としては3回目の参加です。本日は re:Invent 期間中に Public Preview になったサービス AWS Security Agent についてワークショップに参加してきたので AWS Security Agent の紹介や感想などをシェアしたいと思います。
AWS Security Agent とは
ものすごく簡単にいうと、ソフトウェアデベロップメントサイクル(SDLC)におけるアプリケーションのセキュリティレビューをしてくれるというものです。今までもコードをみてくれるサービスがあったり、設計書(Design Doc)をみてくれるサービスがあったりしたと思いますが、AWS Security Agent はそれら全てを包括しています(強い)

下記のような機能があります。
- 設計書のレビュー
- コードレビュー
- PR も出してくれます
- ペネトレーションテスト
またレビューにおいては観点をカスタマイズすることが可能ですので、自組織にあったものを追加あるいはすでにマネージドで存在するものを無効化したりすることができます。

実際どうなの?
ワークショップ内では OWASP Juice Shop といういわゆるやられサイトを題材に上記の機能を一通り体験しました。
設計書のレビュー
本来 OWASP Juice Shop の Design Doc は存在しませんが、このワークショップ用に用意してもらい、それを使いました。ワークショップ外でも個人的に試してみましたが日本語も問題なく使えるのもありがたいところです。
Design Doc のレビューは20秒もかからないぐらいで終わりました。もちろん内容にもよりけりですが、いくつか適当に作ったものでそれぐらいな感じでしたのでサクッと確認することが可能です。
やり方は簡単でファイルをアップロードするだけです。ワークショップでは PDF を使いましたが、対応しているファイル形式は現在、DOC, DOCX, PDF, JPEG, MD, PNG,TXT のようです。
そして下記の画像のような結果を見ることができ、 Finding の内容をクリックすると詳細を確認することができます。

またこれらの結果については CSV でダウンロードできるようにもなっています。
自分たちで作っている Production Readiness Checklist の内容をカスタムルールとして用意して適合しているか判定させるなど用途は色々とありそうで良い感じでした。
コードのレビュー
今回は GitHub と繋ぎ、プライベートリポジトリに置いた OWASP Juice Shop のコードをスキャンしました。


こんな感じで設定していくとレビューしてくれるようになります。Code review enabled は鉛筆のマークをクリックして手動で enabled に変えないといけないところが現時点では要注意です。
コードレビューが終わって GitHub の当該リポジトリにアクセスすると「PR 作らないか?」という提案がいくつか上がってきます。また脆弱性があるコードを修正して PR を作成したところ、それについてもレビューしてくれて、コメントをくれるので必要なタイミングで脆弱性を見つけたり、解決することができるようになっています。
ペネトレーションテスト
最後にペネトレーションテストです。こちらもすごく良かったというのが結論なのですが、時間はすごく掛かります。2時間のワークショップ内の最初の方で実行したにも関わらず、InProgress のままワークショップが終わりました。もちろん途中経過は見られるのでそれでもどういう感じかを把握するには十分でした。
添付の画像のように見つかった脆弱性を出してくれるのはもちろん、PoC も提供してくれるので自分たちで確認することが可能です。また Remediation code も提供してくれるので、何が問題でどうやって修正すれば良いかがわかるのは開発者にとって良いのではないでしょうか。

またペネトレーションテストは好き勝手にどこに対してもできるわけではなく、ドメインを指定してしっかりドメインの所有者検証を行う必要があります。
それをちゃんとしないと自分たち以外の環境を攻撃してしまいかねませんから当然ですが大事です。
最後に
AWS Security Agent は Public Preview なので今は無料で使用できますので是非触ってみてください。触っていて途中詰まるところがあるかもしれないですが、そんな時はお声がけください。
カミナシでは AWS re:Invent の会場にさえもポケモンカードを持参するソフトウェアエンジニアを募集しています。