見出し画像

セキュリティチームの活動紹介

こんにちは!がわおです。

私の所属する部門では、対象技術の範囲毎にチームを作成し、それぞれのチームで活動するという教育施策が行われています。その中で私はセキュリティ技術を対象としたチームに所属しています。

セキュリティチームは、活動を通してセキュリティに関する技術を取得し、社内に“セキュリティ” への関心を浸透させることが目標になります。

本記事ではこの活動の一部について簡単に紹介したいと思います。

AWS Security HUB

セキュリティチームの活動では部門で教育施策の活動のために用意されているAWS(Amazon Web Services)の検証環境を使用することができます。はじめにAWS Security Hubの検証をしてみました。

AWS Security HubはAWSのセキュリティ状態を一元的に表示・管理してセキュリティチェックを自動化するサービスです。

AWS上の他のセキュリティサービス(Amazon GuardDutyやAWS Systems Manager、AWS Firewall Managerなど...)や、AWS パートナーネットワークソリューション(SplunkやSymantec、McAfeeなど...)のセキュリティアラートと検出結果を統合することができます。

前提条件としてAWS Config が有効になっている必要があり、AWS Config ルールを使用してセキュリティをチェックします。

初期設定

※ 詳しい設定方法についてはAWSが公開している開始方法をご確認ください。

  • AWS Config
    AWSコンソールよりAWS Security HUBのマネージド型ルールを追加します。

  • AWS SecurityHUB
    AWSコンソールよりAWS SecurityHUBを有効化します。

使い方

  • セキュリティ基準
    有効にしたベンチマーク・セキュリティ基準に基づいてAWSアカウントをチェックすることができます。

  • インサイト
    関連する結果をまとめて表示します。
    デフォルトで用意されているものと、フィルターを組み合わせて作成するカスタムインサイトがあります。
    例)パブリックアクセス可能なS3バケット、インターネットからアクセス可能なポートがあるEC2インスタンス、etc...

  • 検出結果
    セキュリティ上の問題か、失敗したセキュリティチェックを集約して下記の項目で表示します。
    例)重要度、レコードの状態、リソース、更新日時、etc…

まとめ

AWS SecurityHUBは、いくつか簡単な初期設定をするだけで、AWSアカウントのセキュリティ状態のチェックや一元管理をすることができるため、非常に有用であり、有効にするべきサービスです。

AWS WAF

次にAWS WAFについて検証してみました。AWS WAFは利用者が定義する条件に基づきWebリクエストを許可、ブロック、または監視 (カウント) するルールを設定し、Webアプリケーションを攻撃から保護するのを助ける Webアプリケーションファイアウォールです。(定義する条件には IP アドレス、HTTP ヘッダー、HTTP 本文、URI 文字列、SQL インジェクション、およびXSS等が含まれます。)

初期設定

※ 詳しい設定方法についてはAWSが公開している開始方法をfご確認ください。

  • AWS WAF
    AWSコンソールよりACLを作成し、ルールを設定します。

使い方

今回は「OWASP Juice Shop」に対してSQLインジェクションを実行し、AWS WAFで防ぐことができるかを確認してみました!
OWASP Juice ShopとはOWASPトップ10全体の脆弱性と、実際のアプリケーションに見られる他の多くのセキュリティ上の欠陥が含まれており、セキュリティトレーニングやCTF等に用いられるWebアプリケーションです。
OWASP Juice ShopではSQLインジェクションを実行してAdminユーザにログインすることができます。
まずはAWS WAFを設定していない状態でSQLインジェクションを実行してみます。
※ こちらで紹介している手順について、自身の管理下にない外部のサイトに対しては絶対に実行しないでください。無許可で実行した場合、不正アクセスとみなされる場合があります。

ログイン画面のメールアドレス欄に「' or 1=1 --」と入力しログインをクリック
Adminユーザでログインすることができてしまいました

次にAWS WAFでSQL データベースの悪用に関連するリクエストパターンをブロックするマネージドルール「AWSManagedRulesSQLiRuleSet」を設定した状態で同じ操作をしてみます。

ログイン画面のメールアドレス欄に「' or 1=1 --」と入力しログインをクリック

マネージドルール「AWSManagedRulesSQLiRuleSet」を設定したことでメールアドレス欄に入力された「' or 1=1 --」が悪意のあるSQLコードと判定され、「403 Forbidden」のエラーが返ってくるようになり、SQLインジェクションから保護されていることを確認できました。

まとめ

AWS WAFを設定することで簡単にWebアプリケーションをSQLインジェクションやXSS等の脆弱性を悪用した攻撃から保護することができます。
今回の例では予め用意されているマネージドルールを使用してみましたが、Webアプリケーションの特性に合わせた独自のルールを定義することもできます。

おわりに

このように、セキュリティチームの活動では面倒な社内手続きを踏まずに使用できるAWSやMicrosoft Azureの検証環境で、実際に手を動かして技術を身に着けることができます。ぜひ、私たちと一緒にセキュリティをリードする技術者になってみませんか??

この記事が気に入ったらサポートをしてみませんか?