Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

【DeepSecurityUserNight】我が家の箱入り娘を世間に晒すのは危険なのでDeepSecurityに見守ってもらった話

2,031 views

Published on

DeepSecurityUserNight#5

Published in: Technology
  • Be the first to comment

【DeepSecurityUserNight】我が家の箱入り娘を世間に晒すのは危険なのでDeepSecurityに見守ってもらった話

  1. 1. 1 2017/09/05(Tue) Future Architect, Inc. Hisashi Hibino 我が家の箱入り娘を世間に晒すのは危険なので DeepSecurityに見守ってもらった話 Deep Security User Night #5
  2. 2. 2 自己紹介 名前:日比野 恒(ひびの ひさし) 所属:フューチャーアーキテクト株式会社 テクノロジーイノベーショングループ セキュリティアーキテクト (CISA) 領域: サーバ基盤 OS データベース アプリケーション ネットワーク データセンター セ キ ュ リ テ ィ ※資料は終了後公開します
  3. 3. 3 フューチャーアーキテクトの紹介
  4. 4. 4 フューチャーアーキテクトとは
  5. 5. 5 ×DeepSecurity
  6. 6. 6 本日のテーマ インターネットに晒したハニーポットをDeep Securityに見守ってもらったら どんなサイバー攻撃が観測出来るのか、ElasticStackを使って可視化と分析をしてみる。Internet AWS@Tokyo Region Black Hackers Public DMZ Private Firewall (PaloAlto) EC2 コンテナ ハニーポット Log Analyzer (ElasticStack) Cyber Attacks Deep Security ☝ 世間 箱入り娘 (コンテナだけにね) ☟ Log Forwarding
  7. 7. 7 ハニーポットって聞いたことありますか? ☚ 注:これではないですっ!
  8. 8. 8 ハニーポットとは 脆弱なシステムのフリをして、攻撃者を誘い込み攻撃者との対話により攻撃情報を収集する。 ハニーポットの分類 サーバ型 クライアント型 ハニートークン 高対話型 ハイブリッド型 低対話型 攻撃経路 対話力 今回採用 対話力 低対話型 高対話型 検知制度 低 高 情報収集 低 高 偽装性 低 高 拡張性 高 低 安全性 高 低 【低対話型と高対話型の違い】
  9. 9. 9 サイバー攻撃の各フェーズとハニーポット 標的型サイバー攻撃を例にした場合のハニーポットの使いどころは以下のようなポイント。 フェーズ 攻撃行動 防御 検知 偽装 偵察 外部からのポートスキャンでサーバの空いているポートを探索したり、SNS等のオープンな情報からターゲットに関する 組織情報を収集する。 武器化 偵察によって得られた脆弱性情報をもとに攻撃コードとマルウェアを作成する。 転送 取引先などになりすましたメール(攻撃コードやマルウェア添付)を送付する。 またマルウェアを事前に仕込んだWebサイトへアクセスさせて、ダウンロードするように誘い込む。 攻撃 ソーシャルエンジニアリングを利用して、ユーザに添付ファイルを開かせて脆弱性を利用した攻撃コードを実行させる。 導入 添付ファイルを開いたり、攻撃コードを実行させた結果、マルウェアがインストールさせる。 リモート操作 C&Cサーバへ接続させてLAN内の端末をリモートから操作する。 情報探索 リモート操作可能なLAN端末から管理者権限の奪取をしたり、機密情報が保存されているシステムへアクセスする。 情報集約 機密情報を取得する。 情報送信 取得した情報を監視システムに引っかからないように情報を細切れに分割して、C&Cサーバへ送信する。 ハニーポット ハニーポット サンド ボックス プロキシ プロキシ プロキシ IPS アンチウィルス SIEM SIEM
  10. 10. 10 ハニーポットに関する情報って意外と身近にあるよ! 実践サイバーセキュリティモニタリング (コロナ社) 発売日: 2016/03/28 サイバー攻撃の足跡を分析する ハニーポット観察記録 (秀和システム社) 発売日: 2017/01/27 最近はいくつか書籍も出ているので、ネット以外でもまとまった良い情報が手に入る(参考)
  11. 11. 11 ハニーポットの種類と特徴 出典:Proactive Detection of Security Incidents- Honeypots:ENISA OSSとして利用できるハニーポットは結構色々なものがあるよ。 ※今回は、以下には記載のないOpenCanaryを利用する。
  12. 12. 12 OpenCanaryとは? pythonベースの低対話型ハニーポットです。  標準で多くのプロトコルに対応  ログイン画面のみの提供のため、侵入が出来ない安全設計  Samba、RDP、VNCに対応おり、社内感染観測に最適 余談ですが、Canaryはカナリアのこと。 まさに囮としての役割を全うした、、、
  13. 13. 13 ハニーポットの構成 EC2上にコンテナ環境を構築し、コンテナ内にOpenCanaryをデプロイする。 C4.large (2vCPU、3.75GB) CentOS 7.3 Docker 1.12.6 DeepSecurityAgent 10.1.0 OpenCanary (Honeypot) No 送信元IPアドレス 宛先ポート番号 1 ANY(0.0.0.0/0) TCP 1433 2 ANY(0.0.0.0/0) TCP 80 3 ANY(0.0.0.0/0) TCP 22 4 ANY(0.0.0.0/0) TCP 21 5 ANY(0.0.0.0/0) TCP 23 6 ANY(0.0.0.0/0) UDP 5060 7 ANY(0.0.0.0/0) TCP 5900 8 ANY(0.0.0.0/0) TCP 69 9 ANY(0.0.0.0/0) TCP 139 10 ANY(0.0.0.0/0) TCP 3306 11 ANY(0.0.0.0/0) TCP 3389 12 ANY(0.0.0.0/0) TCP 445 13 ANY(0.0.0.0/0) TCP 4118 Security Group Cyber Attacks ※管理用SSHポート番号は必ずTCP22から変更しておくこと!!
  14. 14. 14 OpenCanaryの手軽なデプロイ Dockerコンテナ実行環境を用意してDockerイメージをpullするだけで利用可能。 # yum -y install docker # systemctl start docker # docker pull goboten/docker-opencanary # docker run --name opencanary --cap-add=NET_BIND_SERVICE –d ¥ -p 21:21 -p 22:22 -p 23:23 -p 69:69 -p 80:80 -p 139:139 -p 445:445 ¥ -p 1433:1433 -p 3306:3306 -p3389:3389 -p 5060:5060/UDP -p 5900:5900 ¥ -v /smb/home:/smb/home -e DEST_IP=“LogstashのIP" goboten/docker-opencanary # mkdir -p /smb/home # vi /smb/home/password.txt <適当におとり用のパスワードを書き並べておく> # vi /etc/selinux/config SELINUX=disabled # vi /etc/ssh/sshd_config Port 2222 # reboot 手順①:囮パスワードファイル生成 手順②:SSHポート番号変更 手順③:OpenCanary実行
  15. 15. 15 クラウドサービスにおけるハニーポット運用ルール クラウド上でハニーポットを運用する場合、利用規約に違反しないように注意すること。 AWSの適正利用規約はこちら https://aws.amazon.com/jp/aup/ No 項目 内容 1 違法、有害、不快な使用またはコンテンツの禁止  違法、有害または詐欺的な行為  第三者の権利を侵害するコンテンツ不快なコンテンツ  有害なコンテンツ 2 セキュリティ違反の禁止  不正アクセス  傍受  オリジンの改ざん 3 ネットワーク不正使用の禁止  モニタリングまたはクローリング  サービス妨害(DoS)  意図的妨害  一定のネットワークサービスの運用  システムの制限の回避 4 Eメールまたはその他のメッセージの不正利用の禁止  スパムメール →低対話型ハニーポットを運用する上で問題になる内容はないことが分かる。
  16. 16. 16 さて、ようやく主役の登場!! DSMは手軽に利用できるDSaaSを、DSAはコンテナ環境を考慮してver10を採用。 Internet CentOS 7.3 DeepSecurityAgent 10.1.0 TCP443 (イベント取得) TCP4118 (ポリシー適用) Logstash5.5.2 Elasticsearch 5.5.2 No 送信元IPアドレス 宛先ポート番号 1 ANY(0.0.0.0/0) TCP 4118 Security Group UDP514 UDP514
  17. 17. 17 DeepSecurityの利用した機能 Docker環境対応について、DeepSecurityのバージョンによって利用出来る機能が異なる。 Dockerホスト (CentOS 7.3) Dockerコンテナ (Docker 1.12.6) DeepSecurityAgent 10.1.0 OpenCanary (Honeypot) EC2インスタンス (c4.large) 保護対象 機能 9.6 10.0~ Dockerホスト 不正プログラム対策 - 〇 仮想パッチ/IPS 〇 〇 変更監視 〇 〇 セキュリティログ監視 〇 〇 アプリケーションコントロール - 〇 ファイアウォール保護 - 〇 Webレピュテーション - 〇 Dockerコンテナ 不正プログラム対策 - 〇 仮想パッチ/IPS △ 〇 変更監視 - - セキュリティログ監視 - - アプリケーションコントロール - - ファイアウォール保護 - - Webレピュテーション - - 【Docker環境対応状況】 【今回採用した機能】  不正プログラム対策  仮想パッチ/IPS(1,373個ルール適用)  変更監視(104個ルール適用)  セキュリティログ監視(29個ルール適用)
  18. 18. 18 Palo Altoの次世代ファイアウォールも活用 PaloAlto PAシリーズの機能と言えば  アプリケーション制御と可視化  ユーザ識別(ActiveDirectory連携)  リアルタイム脅威防御  未知のマルウェア検知(WildFire)  ふるまい検知(ボットネット検知) ハニーポットで受信出来ないサービスを拾うため、前段にPaloAlo VM-seriesを利用する。 アプリケーション制御のイメージ
  19. 19. 19 Palo Altoを挟んだ構成 Internet Black Hackers Public DMZ Private PaloAlto (m4.xlarge) EC2 コンテナ ハニーポット Log Analyzer (ElasticStack) Cyber Attacks Log Forwarding (Syslog:TCP1514) Me eth0(MGT) eth1(WAN) EIP(グローバルIP) eth2(DMZ) eth3(LAN) 管理ログイン AWS MarketPlaceからBundle1をデプロイしてFirewall機能のみを利用する。 ※15日間はPaloAltoのライセンス費用はフリーで利用可能(EC2費用のみ課金) Security-Groupを 全許可してトラフィック収集を行う Security-Group 宛先NAT
  20. 20. 20 ファイアウォールのポリシーは当然フルオープン!! ログを出力することが目的なので、外部からハニーポットへの通信は全て許可とする。
  21. 21. 21 ログの出力設定も簡単 ① ② ③ ログ出力するInterfaceにSyslogをONにした管理プロファイルの適用を忘れないこと!
  22. 22. 22 あっという間に攻撃のログが、、 詳細画面 参考: Palo Alto Syslog Field Descriptions https://www.paloaltonetworks.com/documentation/61/pan-os/pan-os/reports-and-logging/syslog-field-descriptions#_41809
  23. 23. 23 ログデータの可視化にはElasticStackがお勧め! Kibana Elasticsearch Logstash Beats Elastic Cloud アラート 性能監視 グラフ セキュリティ X-Pack Elastic Stack (オープンソース) 有償サブスクリプション 機械学習 レポート 正規化 保存/蓄積 可視化 認証/暗号化 通知 相関分析 異常検知 ログ分析のユースケースにおいて、Elasticプロダクトで活用するとこんな感じになる。 取り込み
  24. 24. 24 有償プラグイン(X-Pack)もなかなかいい感じ Security Monitoring Reporting Alerting Graph Machine Learing  データの変化を検知  多種多様な通知方法  ダッシュボードのレポート化(PDF等)  Alertingと組み合わせたレポートのスケジュール通知  Elasticsearchクラスタの性能情報  Kibanaの性能情報  Logstashの性能情報  データの関連性を可視化  教師無し機械学習によるデータ分析  時系列異常検知  はぐれ者検知  稀有な非構造メッセージ検知  Kibanaの認証  Kibanaの通信暗号化  AD/LDAP認証連携  API監査  ドキュメント暗号化 有償プラグインであるX-Packでは、エンタープライズ向けに6種類の製品が提供されている。 今回利用した製品
  25. 25. 25 C4.xlarge (4vCPU、16GB) ElasticStackの構成 Internet Me Internet Cluster Deep Security filter logstash container PaloAlto filter logstash container OpenCanary filter logstash container Persistent Queue Amazon ECS CentOS 7.3 Elasticsearch 5.5.2 Kibana 5.5.2 Firewall (PaloAlto) HoneyPot (OpenCanary) UDP514 TCP1514 TCP1514 Persistent Queue Persistent Queue Amazon ELB TCP443TCP5601 TCP9200 TCP9200 最新版5.5で構築し、Syslog受信したログをElasticsearchに格納してログ分析を実施。 【ログフォーマット】  DeepSecurity: CEF形式  PaloAlto: CSV形式  OpenCanary: JSON形式
  26. 26. 26 そりゃ、やっぱりね、、、
  27. 27. 27 攻撃の件数とその推移 時間あたりのピーク時で約6,000件のログを受信。平日よりも土日の方が多い。 ※9/1(金)21:00-9/2(土)16:00間は停止 休日(土日)
  28. 28. 28 攻撃元とその手法(1/2) 平日はMS SQL(1433)が多かったが、土日に入り圧倒的にSSH(22)が増加。 SSH MS SQL
  29. 29. 29 攻撃元とその手法(2/2) ファイアウォールログから分かる情報では、中国/台湾からのMSSQL/SSH攻撃が圧倒的! ほぼ9割(笑)
  30. 30. 30 攻撃に使われるアカウントとパスワード MS SQLサーバでデフォルトユーザである Saでログイン攻撃をしてくるハッカーが多い。 アカウントは種類が絞られるが、パスワードは 多様なパターンが確認出来た。(TOP20) rootが一番多いが、Amazon Linuxの ec2-userも確認出来た。 SSHログインに利用されるアカウント名の 方がMS SQLの攻撃に利用されるユーザ よりも多様性があることも確認出来た。
  31. 31. 31 こんなことも無償機能で出来てしまうんですよ! 攻撃元国と宛先ポート番号の情報をKibanaのHeatMapによって可視化。
  32. 32. 32 相関分析グラフ 攻撃元国、送信元IP、利用サービスの情報をGraphを用いて相関関係の強さを可視化。
  33. 33. 33 機械学習にも掛けてみた(笑) 中国 221.229.166.36 MS SQL そもそも全部攻撃だから意味のあるデータを採取することが出来ない(当たり前、、、)
  34. 34. 34 ちなみに肝心のDeep Securityのログはというと Elasticsearchへのログの取り込みと正規化はこんな感じで意外と簡単に出来ちゃう! (Common Event Format: CEF形式で取り込みを行う)
  35. 35. 35 しかし、かなり残念なことに、、、 低対話型ハニーポットに対する攻撃はFirewall機能で弾く前提で他の機能では反応しない。 ログ監視 不正プログラム対策 変更監視 IDS/IPS(仮想パッチ) FirewallDeep Security Webレピュテーション ログ監視と変更監視が反応するもコンテナ起動時に 出力されるもので、攻撃に関するログは全くでなかった。 アプリケーションコントロール
  36. 36. 36 世界に晒してみた収穫 今回、ログの脅威分析に利用したログとKibanaのグラフは以下の通り。 No 観点 対象ログ 利用したグラフ種類 1 トラフィックログ総件数 PaloAltoのトラフィックログ メトリックグラフ 2 トラフィックログ件数推移 PaloAltoのトラフィックログ 積み立て棒グラフ 3 送受信バイト数、送受信パケット数 PaloAltoのトラフィックログ Visual Builderグラフ 4 攻撃元国別ランキング PaloAltoのトラフィックログ 円グラフ、表形式グラフ 5 送信元IP別ランキング PaloAltoのトラフィックログ 円グラフ、表形式グラフ 6 宛先ポート別ランキング PaloAltoのトラフィックログ 円グラフ、表形式グラフ 7 アプリケーション別ランキング PaloAltoのトラフィックログ 円グラフ、表形式グラフ 8 攻撃元国&サービス分布 PaloAltoのトラフィックログ ヒートマップグラフ 9 攻撃元国の場所 PaloAltoのトラフィックログ 世界地図グラフ 10 攻撃総件数 OpenCanaryの検知ログ メトリックグラフ 11 宛先ポート別攻撃件数推移 OpenCanaryの検知ログ 積み立て棒グラフ 12 利用アカウント&パスワード OpenCanaryの検知ログ タグクラウドグラフ 13 攻撃元国&送信元IP&サービスの相関関係 PaloAltoのトラフィックログ Graphによる相関分析グラフ 14 ファイアウォールログの異常検知 PaloAltoのトラフィックログ MachineLearingによる機械学習グラフ
  37. 37. 37 まとめ  各コンポーネントが出力するログはファクトでウソはつかない。 ファクトを正しく把握して対策を講じないと無駄なアクションやコストになっていることも、、、 高い目標を掲げる前にまずはファクトを抑えて、ベースラインを作ることが大事!!  ただログを集めるだけでは意味のある分析結果は得られない。 「システムから取れるログをとりあえず集める」から始めるのはNG行為。 目的を決めて必要なログを理解してからスモールスタートすることがファーストステップ。  ログから得られる結果を対策に活かすPDCAが大事である。 ハニーポットで拾ったアカウントやパスワードは利用しないこと。 SQLやSSHは狙われ易いから、Security-Groupは正しく設定とすること。 ログの有効活用に困ったら、是非気軽にお声掛けください !!^^
  38. 38. 38

×