Security-JAWS 第19回レポート #secjaws #secjaws19 #jawsug
こんにちは、臼田です。
Security JAWS 第19回が開催されましたのでレポート致します。
Security-JAWS 【第19回】 勉強会 2020年11月24日(火) - Security-JAWS | Doorkeeper
レポート
Session1: 「AWS Config による継続的コンプライアンス実現に向けた取り組み」 株式会社ビズリーチ 長原 佑紀さん
- グループ・会社紹介
- VISIONALグループになった
- ビズリーチに所属しているがグループのクラウドSaaS全体、CCoEに携わっている
- 発表内容
- 9月のAWS Summit Online Japan 2020で発表した内容のConfigにフォーカスした内容
- 詳細はブログ: 100を超えるAWSアカウント運用におけるガードレール構築事例
- 背景
- カスタマーが責任を負う部分をどう対応していくか
- AWSアカウント運用で設定不備や考慮不足などによる問題が度々あった
- チェックリストを作って改善する取り組みを実施したが、全てのサービスを正確かつ適切にチェックするのは困難
- セルフチェックで揺れがある
- 誤りや見落とし
- 多くの工数
- ソリューション
- クラウドのリソースマネジメントやコンフィグのチェックを自動化して継続的にモニタリングを実施する
- 継続的コンプライアンスを目指す
- AWS Configを活用
- Config
- AWSリソースの設定を記録・評価してくれる
- Config Rules
- マネージドルール
- AWS提供のルール
- カスタムルール
- 独自の評価ロジック(Lambda)で実装
- 例: 認可されたセキュリティグループ以外はフルオープンではないかを確認するなど
- マネージドルールは164個ある
- Conformance Packsは57個
- マネージドルール
- Config ダッシュボード
- コンプライアンスの状況を確認できる
- 非準拠の数などが見れる
- どのリソースが非準拠なのかまで辿れる
- Config アグリゲータ
- マルチアカウント / マルチリージョンで集約、可視化できる
- Config
- AWS Config導入事例
- 実現したこと
- 導入
- ルール選定
- 3つのアプローチがある
- マネージドルール
- Conformance Packs
- Security Hubのセキュリティ標準
- マネージドルールがよりセルフサービス
- Security Hubは元々対応が少なかったので見送った
- ポイント
- マネージドルールで準拠必須のルールを選定
- 例外発生を避けるため
- 有効化したもの
- リソースのパブリックアクセス
- ルートアカウント
- 必須サービス有効化
- ログ出力
- カスタムルール
- マネージドルールに存在しない準拠必須のルール
- AMIパブリック公開禁止など
- 独自仕様へ変更したルール
- Flow Logs有効化など
- 社内ポリシーへの準拠を確認するルール
- IAMユーザーのログインプロファイル設定禁止など
- 約30ルールを選定して導入
- マネージドルールに存在しない準拠必須のルール
- マルチアカウントセットアップ
- 予めConfigの有効化・設定が必要
- Terraformベースのマルチアカウントベースライン管理の仕組みを利用
- StackSetsなどで代替え可能
- ルールの管理・評価
- Organizations Config Rules
- 組織でルールを自動反映
- カスタムルールのLambda関数
- マスターアカウントにて一元管理
- AssumeRoleで評価
- 評価対象のアカウントの区分
- 本番では必須のような場合に対応するため
- ルールに評価対象のProductionOnlyとAllを独自定義
- OrganizationsのAWSアカウントのタグにて環境種類を管理
- Organizations Config Rules
- ルール選定
- 拡張・運用
- 可視化
- 独自に可視化を行う目的
- 組織全体の可視性を高め調査分析を可能にするため
- Elasticsearch ServiceのKibanaにて可視化
- アグリゲータから入れている
- 組織全体とAWSアカウント運用者向けのダッシュボードを作成
- 独自に可視化を行う目的
- 通知
- 独自に通知を行う目的
- 新たな非準拠検出タイミングですぐにアクションできるようにするため
- CloudWatch EventsからSlack通知
- 担当者にメンションして通知
- メッセージIDをDynamoDBへ一時的に保存してメッセージの更新を実現
- 独自に通知を行う目的
- 運用
- 担当部門が対応しない場合にはセキュリティ部門からコミュニケーションする
- ルールに重要度を設定
- 緊急度が異なるため
- 非準拠レポート通知もSlackで実施
- 計画的に非準拠の改善をできるようになった
- 準拠率を評価したり危機意識を与えたりできるようになった
- その他
- 現場のエンジニアに向けて教育やレビューなどを実施
- 経営に向けて状況報告できる
- 可視化
- 導入
- まとめ
- チェックリストにて多くのサービスを正確かつ適切に評価するのは困難
- 継続的コンプライアンスに向けた取り組みを行ったなった
- エンジニア全体の意識が変わり始めたことで、改善が定着して継続的コンプライアンス実現に近づいている
感想
めちゃくちゃしっかりしててすごいなーと思いました!
単純にAWSのサービスを駆使するだけではなく、カスタムルールやESを利用したダッシュボード作成などの可視化を実施していてすばらしいですね!参考にしていきたいです!
Session2: 「ある国内シェアNo.1人事労務クラウドサービスにおけるAWS WAF運用術」 株式会社SmartHR 岩田 季之さん
- AWS WAFをこれからという方に向けて話す
- 自己紹介
- WAF歴
- Webアプリの開発者をしていた
- IDS/IPS製品のWAFっぽい機能でシグネチャ作成
- SmartHRでWAFの運用
- 好きなサービスはLambda, StepFunctions
- SmartHR
- 人事・労務に関する手続きの自動化を目指すクラウド型ソフトウェア
- 例えば年末調整とかかんたんに
- ブログやってます
- AWS WAFとは、というのはみんな知っていると思うので省略
- 今回はAWS WAF Classicの話
- 構成
- 上述ブログより引用
- KinesisからログをLambdaで分析してブロックしている
- Terraformで管理
- テストも本番もかんたんに同じルールを展開
- ルール
- IP一致
- 文字列一致
- Marketplaceのマネージドルール
- 上述ブログより引用
- 対応の流れ
- 通知
- SlackにCloudWatch Alarmで通知される
- 割といい感じにグラフもつけて見やすくしてくれる
- 独自カスタマイズも考えたけど運用を考えてやめた
- 通知を上げるのはマネージドルールだけ、IPや文字列一致は通知しない
- 明らかに不正なものは通知する必要がない
- ログ確認
- S3 Selectで確認
- BLOCKやIPアドレスを抽出
- Athenaではないのは、そんなにガッツリ分析しないことと、権限管理が手間だったので
- 影響確認
- 攻撃のログ
- 存在しないところへのリクエスト
- 変な文字列
- Googleで検索するとどんな攻撃かわかる
- 影響ないかなどが確認できる
- 手っ取り早く実際に試すことも
- やるならステージング/開発環境に
- POSTはつらいよ…
- bodyがログに残らない
terminatingRuleMatchDetails
がMarketplaceのルールだと空っぽ- ただ前後のリクエストなどをみてある程度判断できる
- 大量に飛んできていたり
- 過検知のログ
- 傾向がある
- content-typeとかで判断
- ファイルアップロードだとファイルの内容で引っかかることも
- ただ検出回避のためにmultipartを利用してくることもあるので要確認
- 傾向がある
- 攻撃のログ
- 対処
- 攻撃だったらブロックリストに追加
- IPや文字列ルールに追加
- 文字列の場合は過去1ヶ月分くらいのログで過検知しないか確認
- 過検知したらルール除外
terminatingRule
のidを控えてAWS WAFに登録- 細かい設定はできないので慎重に
- idで過去にどういう検知があるか調べる
- 攻撃だったらブロックリストに追加
- 通報
- Sourceが信頼できる会社の場合、ログとともにその会社に連絡をする
- AWS経由で連絡してもらうことも
- 自動IPブロック
- ブロックしたログをLambdaで分析してIPブロックリストに追加
- リストに追加したときもSlackに通知
- 効率化もあるし判断をコードにすることで共有できる
- 通知
- 実例
- 事例1
- 同一IPからのブロック数/分
- 1分で200リクエスト以上きた
- ログにはjavascript:alertなど
- UAが攻撃ツールなのでIPブロック
- 海外のISPのIPだったのでwebフォームから報告
- したらログがfirewallでブロックされた
- 頑張ってWAF回避して連絡
- ちゃんとレスポンスがきた
- 同一IPからのブロック数/分
- 事例2
- 同一攻撃元からのブロック数/時
- source ipを変えながら攻撃リクエストが数件ずつ
- IPでブロックしてもダメだったので文字列一致で追加
- リクエストはunion selectとかいろんな攻撃
- UAがwindows7でFirefox54だったのでそれをブロック
- 末尾一致にした
- 文字数制限があったので
- いまだにリクエストは来てブロックしている
- 海外のVPN経由っぽい
- 事例1
- WAFは入れたら終わりじゃなくて運用が大事
感想
運用の細かいナレッジが詰まっていて参考になる内容でした!
通報するのはすごく親切ですね!正しい会社さんがやられているように見れる場合にはそうしたいですね。
Session3: 「AWS で見守る物理セキュリティ」 アマゾンウェブサービスジャパン株式会社 三平 悠磨さん
- 扱う内容
- AWSサービスとカメラデバイスを利用して、特定の場所の物理的なセキュリティを見守る方法
- Amazon Kinesis Video Streamsのサービス紹介とRaspberry Piなどのデバイスを組み合わせた構成例
- 扱わない内容
- AWSのセキュリティサービス
- 背景
- Raspberry Pi で簡単おうちセキュリティカメラを 作ってみた
- 詳細な内容やソースコードは記事を参考にしてください
- なぜこんなことをやろうと思ったのか?
- 最近では安価なセキュリティカメラは増えたが痒いところに手が届かない
- 遠隔からライブ再生やローカル録画には対応しているが、クラウド録画に対応していない
- 常時録画ではない
- 料金が高い
- 特定のシーンだけ取り出したい
- 動画を分析したいけどファイルとして取り出せない
- 自分の必要なシーンだけをクラウド録画できる仕組みを作ってしまおう!
- 留守中の自宅の監視、閉店後の店舗の監視などができそう
- 最近では安価なセキュリティカメラは増えたが痒いところに手が届かない
- 必要な技術領域
- コネクテッドデバイス
- デバイスの認証認可
- 通信
- 遠隔制御
- デバイス監視・管理
- 映像伝送・保存
- クラウドへの送信
- 再生
- エクスポート
- 動画長期保存
- 分析・機械学習
- フレーム取り出し
- 画像認識
- 動画分析
- アプリケーション連携
- モバイル・Webアプリ
- ユーザーとデバイスの紐付け
- ユーザーや管理者への通知
- コネクテッドデバイス
- 課題
- スケーラビリティやセキュリティ
- デバイス向けソフトウェア開発
- 動画ストリーミングの専門知識
- 機械学習や画像処理の専門知識
- アプリケーション開発
- 各技術領域をカバーするAWSサービス
- いろいろある
- AWSのサービスでだいぶ楽になる
- 構築したアーキテクチャ
- 監視カメラで人を検出したら通知して遠隔で再生できるように
- なるべく低コストで
- PythonプログラムでKinesis Video Streamsで流れてくるものを分析して顔を検出したらトリガー
- 一定時間録画する
- 選定ポイント
- 低コストでの実現
- Raspberry Pi + USBカメラで電気代も安い
- 画像認識はローカルで実施
- 興味のあるところだけをクラウドへ
- 動画の取り扱い
- S3に上げるのではなくKinesis Video Streamsを用いることでHLSやMPEG-DASHでのストリーミング再生や時刻を指定してフラグメントやMP4への出力可能
- 必要な期間だけ柔軟に保存
- 低コストでの実現
- Amazon Kinesis Video Streams
- 2種類のストリーミング方法
- メディア形式で収集
- 今回はこれ
- 数百大規模のデバイスからのセキュアなデータ取り込み
- WebRTC
- リアルタイム双方向のメディアストリーミング
- どちらもフルマネージドサービスなのでスケーラビリティや管理がかんたんなところがいい
- 容易に開発に取り組める
- メディアの取り込み
- プロデューサーSDKで取り込み
- C++のでもアプリケーションあり
- 再生はマネジメントコンソールで見たり、HLSやDASHのプレイヤーで再生
- Demo
- 実際にRaspberry PiとWebカメラを利用
- マネジメントコンソールでVideo Streamsを開く
- 再生ビューワーでみれる
- 時刻指定してダウンロードや、過去にさかのぼって再生もできる
- 応用例
- Amazon Rekognition Videoとの組み合わせ
- 保存されたビデオの分析とライブストリーミングビデオの顔検出と認識が可能
- 例
- Kinesis Video Streamsの先にRekognition Videoで誰が写ったか検知
- 知らない人なら通知
- お店のカメラならお客様の年齢や性別を推測して保存するなど
- パートナーデバイスとクイックスタート
- Kinesis Video Streamsに対応したカメラ製品などが掲載されている
- 入門用コンテンツ
- ハンズオンもある
- まとめ
- Raspberry PiとUSBカメラでクラウド録画と再生ができる仕組みを作った
- ちょっとしたエッジの開発をすることで安価に収集できる
- さらにマネージドサービスを組み合わせることでいろいろできる
感想
物理セキュリティでいつもとちょっと毛色が違いますが、安価に実現したい仕組みを自分たちで簡単に作れるのはいいですね!
機械学習のサービスも充実していますから、いろいろ応用できそうですね!
Session4: 「実践的なAWSセキュリティのインシデントレスポンス環境を作ってみた」 三井物産セキュアディレクション株式会社 洲崎 俊さん、クラスメソッド株式会社 臼田 佳祐
こちらを参考に!
イベントやります!
Session5: 「Oktaのご紹介 -AWSリソースとの連携を中心に-」 Okta Japan株式会社 シニア ソリューションエンジニア 井坂 源樹さん
- Oktaとは
- いわゆるIDaaS
- すべての組織に全てのテクノロジーを
- 従来の境界線の消失
- これまではネットワーク内外の境界線があった
- 現在はクラウドで外に出ている
- 業界をリードする信頼性
- 認証の基盤なので落ちてはいけない
- 99.99%のアップタイムを提供
- 実績としても2018/2019ともに99.99%以上
- 世界で9,000社以上が利用している
- 日本企業も大勢
- Okta Japanは2020年9月に設立
- しかし日本ユーザーは2012年から
- Oktaのありがちな誤解
- クラウドとのSSOツールなんでしょ
- それだけではない
- SSOする前にIDが必要
- そこから
- オンプレ、IaaSには関係ないでしょ
- サーバー(OS)の認証もします
- アプリの認証も
- 社内向けの認証サービスなんでしょ
- 従業員も消費者も管理
- ログイン画面などフルカスタマイズ
- MAUによる課金
- クラウドとのSSOツールなんでしょ
- Oktaが提供するサービス概要
- SAML / OIDC / Kerberos / RADIUS / LDAPなどなど
- 安全なアクセス
- クラウドだけではなくオンプレ、VPN、サーバー、VDIなど
- インテグレート
- デバイス管理
- セキュリティ・コンテキスト
- CASB
- セキュリティ分析
- 適応型MFA
- 様々な認証方法を用意
- デバイスなどに合わせて自由に利用
- U2FやFIDOなども
- リスクベースできる
- パスワードレス認証も
- 認証 / SSO
- 標準で6,500以上のアプリケーションと連携
- テンプレートがあるのでかんたんに利用できる
- 日本のSaaSでつなぎたいものがあればぜひリクエストを!
- ライフサイクル管理
- 認証の前段階の話
- 入社した情報からリソースを割り当て
- 異動などで変更
- 退職
- これらに合わせて権限設定の自動化が重要
- Okta Workflowsという仕組みでNoコードでオーケストレーションを実装
- 条件で部署などを判定して権限割当などが可能
- カスタムでLambdaにつないだりもできる
- AWSとOktaの連携
- 連携してみました
- AWS環境へログイン
- マルチアカウント・マルチクラウド統合
- 2要素認証を毎回設定するのは負担になる
- IAMと連携したり、AWS SSOと連携したり
- ロールを選択してログインしたり、CLIを利用したりできる
- デモ
- ブックマークからSSOの画面を開く
- アカウントを選択してログイン
- Oktaのポータルから選んでアクセスもできる
- 設定は管理画面のアプリケーションから
- AWSと連携するテンプレートやドキュメントが手厚く用意されている
- AWSとOktaでそれぞれどう設定するか詳細に書かれている
- ユーザーやグループをアプリケーションに割当できる
- EC2へ接続
- SSHキーの管理がたいへん
- SSHキーが使いまわされていないか確信が持てない
- セキュリティ・コンプライアンスを強化したい
- Okta Advanced Server Access
- ユーザーに紐づく証明書を都度発行
- 短時間だけ使える
- Linuxはセッションキャプチャできる
- チケットシステムと連携できる
- 作業指示・時間を限定できる
- デモ
- コマンドでログイン
- 接続できるサーバー一覧表示
- 引き続き独自コマンド実行でsshできた
- 特にsshに認証情報や鍵は不要だった
- WindowsもコマンドでRDP
- カスタムアプリをOktaで認証
- 古いアプリでSAMLとかできないシステムでも連携できる
- Okta Access Gatewayを利用できる
- リバプロ型の認証ゲートウェイ
- EC2で建てたりできる
- レガシーアプリもOktaによるMFAやSSOを適用できる
- ELBやWAFが利用できる
- 高可用性、高セキュリティ
- リモートワークでも安全にレガシーシステムにアクセスできる
- AWS環境へログイン
- Oktaを試してみよう!
- 1ヶ月間のフリートライアル
- 気になったらセールスチームにお問い合わせ下さい
感想
管理するアカウントやアセットが多くなればなるほどIDや認証認可の管理が大変ですから、こういった仕組みは欲しくなりますよね。
デモでもいい感じに動いているのでぜひ使って見るのがいいと思います!
さいごに
今回も濃い話がいっぱいでしたね!私としてはビズリーチさんのConfigの運用はぜひ色々参考にしたいところですね!
動画も公開されるので見逃した方・見返したい方は見てみましょう!