SlideShare a Scribd company logo
Webセキュリティの実践の
ための攻防戦演習について
服部 祐一
eidwinds@gmail.com
攻防戦演習
 各チームに与えられたサーバ間で
脆弱性を突く攻撃と
それから守る防御を競う競技です。
 早く脆弱性を見つけ攻撃するだけでなく、
見つけた脆弱性から自分たちを守る
必要があります。
 競技中にやること
 他チームのサーバーから情報を抜き出すこと
 他チームのサーバーの運営を妨害する
チーム間の攻防
チームA
チームB
チームC
攻撃
SSH接続等
動作確認
チームA
チームBチームC
動作確認
チェック
サーバー
動作確認の仕組み
スコア
サーバー
チームA
動作を確認するス
クリプトを走らせ
て結果を取得
{
"defense_type_id": 3,
"result": 1,
"team_Id": 2,
"token": *****************
}
結果を
スコアサーバーに
送信
奪取した情報の登録
チームB
チームA
チームBのサーバーから
チームAが情報を奪取
奪取した情報を
スコアサーバーに
登録
スコアサーバー
情報
情報
情報
情報
情報
情報
情報
得点方式
 攻撃ポイント
 他チームのサーバからフラグを窃取し、スコアボードにサブミッ
トすると点数が得られます。
 各フラグには有効期限があり、有効期限経過後はサブミットして
も得点できません。
 有効なフラグがサブミットされた場合、その時点の窃取された
チームの総得点の3%が、サブミットしたチームに移動します。
 スコアサーバーへのサブミットは競技時間内に完了させる必要が
あります。
得点方式
 防御ポイント
 運営は、サービスごとに定期的に稼働状態をチェックします。
 稼働状態のチェック方法は非公開です。
 稼働が確認できた場合は、100点の点数が得られます。
 同じサービスについて連続して稼働が確認できた場合は、その回数
に応じて1点ずつ加算します。
(2連続の場合は1点、3連続の場合は2点、4連続の場合は3点)
 稼働が確認でなかった場合は、その時点の総得点の3%を減算します。
攻撃ポイント
 フラグは基本的に、スコアサーバーが動作確認を行う際のスクリプトに
仕込んでおり、それにより登録される。
 奪取したチームの総得点の3%が入る仕様だが、
フラグには登録してから1時間という時間制限をかけているため、
そのため、スコアサーバーに登録するタイミングも重要。
97
50
194
50
3
3
6
6
チームA チームB チームA チームB
チームBがフラグ
を登録した時に、
チームAの特典が
100点であれば3点
奪取される
チームBがフラグ
を登録した時に、
チームAの特典が
200点であれば6点
奪取される
防御ポイント
 運営は、サービスごとに定期的に稼働状態をチェックします。
 稼働が確認できた場合は、100点の点数が得られます。
 同じサービスについて連続して稼働が確認できた場合は、その回数に応じて1点ずつ
加算します。(2連続の場合は1点、3連続の場合は2点、4連続の場合は3点)
 稼働が確認でなかった場合は、その時点の総得点の3%を減算します。
0
200
400
600
800
1000
1200
1400
10:00 10:05 10:10 10:15 10:20 10:25 10:30 10:35 10:40 10:45 10:50 10:55 11:00
チームA
チームB
チームC
最初の稼働はでき
たがその後落ちた
場合。
ずっと稼働し続
けた場合。
途中で落ちたり
復帰したりを繰
り返した場合。
必要な能力
攻
脆弱性を突く
力
効率よく攻撃
するためのプ
ログラミング
能力
防
プログラムを
修正する力
復旧できる力
脆弱性を探す力
幅広い知識
問題例
 PHPで作られた誰でも投稿できるブログ
 管理画面があり、管理画面のパスワードが平文で公開ディレクトリに
置かれている。
 またいろいろなところに
XSSやSQLインジェクションの脆弱性
が存在する。
問題例
 PHPで作られたお問い合わせと掲示板がある会社のページ
 裏にシステム管理用のページが存在し何かに使われている。
 昔ながらの作りをしており、様々な脆弱性が存在している。
SLA1
チェック
サーバー
date
Sat Jun 10 00:13:42
JST 2017
OSコマンドを実行
できるフォーム
SLAのスクリプトがOSコマンドを投げてくるため
このフォームにOSコマンドインジェクションの脆弱性あるじゃん!
ふさいでしまおう!とやってしまうとSLAが落ちる。
SLA2
チェック
サーバー
service httpd status
OSコマンドを実行
できるフォーム
SLA1の修正でdateコマンドだけ許可した場合、
こっちでは、service httpd statusを送ってくるので
こっちのSLAが落ちる。
SLA3
チェック
サーバー
GET /page.php?p=index&t=TOP
page.phpに脆弱性があり?p=で指定したファイルを
そのまま、表示する仕様になっている。
URLを変更せずに修正をする必要がある。
SLA4
チェック
サーバー
書き込み
正しく書き込まれてるか
チェック
掲示板にランダムな文字列を書き込み、
正しく書き込まれてるかを確認
おわりに
 先ほど紹介した問題は、福岡、北海道の計2回程度開催を行ったが、脆弱性の
修正といった点では、各チームとも修正はできているが、サービスの継続とい
う観点が抜けていたために修正時に防御ポイントが落ちることが多かった。
 チェックサーバーから送信されるSLAの確認
 ログ、POSTの値、パケットなどから
 開催した際はバーチャルマシンを用いて行っていたため、
SSHでサーバーに接続してから作業する必要があり、
ある程度、Linuxの操作になれている必要があるため、
この段階で難しいと感じる参加者もいたようだ。

More Related Content

What's hot

OWASP Nagoya_WordPress_Handson_3
OWASP Nagoya_WordPress_Handson_3OWASP Nagoya_WordPress_Handson_3
OWASP Nagoya_WordPress_Handson_3
OWASP Nagoya
 
5分でインストール!awsでzabbix3.0
5分でインストール!awsでzabbix3.05分でインストール!awsでzabbix3.0
5分でインストール!awsでzabbix3.0
Tadashi Mishima
 
ZabbixとAWS
ZabbixとAWSZabbixとAWS
ZabbixとAWS
真乙 九龍
 
Startup JavaScript
Startup JavaScriptStartup JavaScript
Startup JavaScript
Akinari Tsugo
 
Zabbixの分散構築~ConoHa VPSでのzabbix server構築~
Zabbixの分散構築~ConoHa VPSでのzabbix server構築~Zabbixの分散構築~ConoHa VPSでのzabbix server構築~
Zabbixの分散構築~ConoHa VPSでのzabbix server構築~
真乙 九龍
 
防御から謝罪まで・・・WordPressにヤマを張るっ!
防御から謝罪まで・・・WordPressにヤマを張るっ!防御から謝罪まで・・・WordPressにヤマを張るっ!
防御から謝罪まで・・・WordPressにヤマを張るっ!
yoshinori matsumoto
 
Zabbix超入門
Zabbix超入門Zabbix超入門
Zabbix超入門
Daisuke Ikeda
 
regrowth_configurationtool
regrowth_configurationtoolregrowth_configurationtool
regrowth_configurationtool
masaomoc1015
 
Casper js エスキュービズム勉強会0718
Casper js エスキュービズム勉強会0718Casper js エスキュービズム勉強会0718
Casper js エスキュービズム勉強会0718
エンジニア勉強会 エスキュービズム
 
Tech circle#13 zabbix3.0ハンズオン lld
Tech circle#13 zabbix3.0ハンズオン lldTech circle#13 zabbix3.0ハンズオン lld
Tech circle#13 zabbix3.0ハンズオン lld
Daisuke Ikeda
 
社内向けTech Talk資料~Fluentdの基本紹介~
社内向けTech Talk資料~Fluentdの基本紹介~ 社内向けTech Talk資料~Fluentdの基本紹介~
社内向けTech Talk資料~Fluentdの基本紹介~
Daisuke Ikeda
 
MSPとしてのオペチー向けReadOnly IAMポリシー
MSPとしてのオペチー向けReadOnly IAMポリシーMSPとしてのオペチー向けReadOnly IAMポリシー
MSPとしてのオペチー向けReadOnly IAMポリシー
Makoto Miida
 
Zabbix multipe_server_support_in_active_agent
Zabbix  multipe_server_support_in_active_agentZabbix  multipe_server_support_in_active_agent
Zabbix multipe_server_support_in_active_agenttakanori suzuki
 
JAWS-UG 磐田支部 第7回勉強会Agenda
JAWS-UG 磐田支部 第7回勉強会AgendaJAWS-UG 磐田支部 第7回勉強会Agenda
JAWS-UG 磐田支部 第7回勉強会Agenda
iwata jaws-ug
 
MySQL 4.0で9年動き続けたサーバを リプレイスしてバージョンアップした話
MySQL 4.0で9年動き続けたサーバを リプレイスしてバージョンアップした話MySQL 4.0で9年動き続けたサーバを リプレイスしてバージョンアップした話
MySQL 4.0で9年動き続けたサーバを リプレイスしてバージョンアップした話
Takahiro Okumura
 
自宅ラック勉強会 2.2 夏のZabbix特別教室 ~構築編~
自宅ラック勉強会 2.2 夏のZabbix特別教室 ~構築編~自宅ラック勉強会 2.2 夏のZabbix特別教室 ~構築編~
自宅ラック勉強会 2.2 夏のZabbix特別教室 ~構築編~
真乙 九龍
 
Zabbixのパフォーマンスチューニング & インストール時の注意点
Zabbixのパフォーマンスチューニング & インストール時の注意点Zabbixのパフォーマンスチューニング & インストール時の注意点
Zabbixのパフォーマンスチューニング & インストール時の注意点
Kodai Terashima
 
ElastiCacheを利用する上でキャッシュをどのように有効に使うべきか
ElastiCacheを利用する上でキャッシュをどのように有効に使うべきかElastiCacheを利用する上でキャッシュをどのように有効に使うべきか
ElastiCacheを利用する上でキャッシュをどのように有効に使うべきか
Amazon Web Services Japan
 
OSC 2014 Tokyo/Spring 「Zabbix 2.2を使ってみよう」
OSC 2014 Tokyo/Spring 「Zabbix 2.2を使ってみよう」OSC 2014 Tokyo/Spring 「Zabbix 2.2を使ってみよう」
OSC 2014 Tokyo/Spring 「Zabbix 2.2を使ってみよう」
Atsushi Tanaka
 

What's hot (20)

OWASP Nagoya_WordPress_Handson_3
OWASP Nagoya_WordPress_Handson_3OWASP Nagoya_WordPress_Handson_3
OWASP Nagoya_WordPress_Handson_3
 
5分でインストール!awsでzabbix3.0
5分でインストール!awsでzabbix3.05分でインストール!awsでzabbix3.0
5分でインストール!awsでzabbix3.0
 
ZabbixとAWS
ZabbixとAWSZabbixとAWS
ZabbixとAWS
 
Startup JavaScript
Startup JavaScriptStartup JavaScript
Startup JavaScript
 
Zabbixの分散構築~ConoHa VPSでのzabbix server構築~
Zabbixの分散構築~ConoHa VPSでのzabbix server構築~Zabbixの分散構築~ConoHa VPSでのzabbix server構築~
Zabbixの分散構築~ConoHa VPSでのzabbix server構築~
 
防御から謝罪まで・・・WordPressにヤマを張るっ!
防御から謝罪まで・・・WordPressにヤマを張るっ!防御から謝罪まで・・・WordPressにヤマを張るっ!
防御から謝罪まで・・・WordPressにヤマを張るっ!
 
Zabbix超入門
Zabbix超入門Zabbix超入門
Zabbix超入門
 
regrowth_configurationtool
regrowth_configurationtoolregrowth_configurationtool
regrowth_configurationtool
 
Casper js エスキュービズム勉強会0718
Casper js エスキュービズム勉強会0718Casper js エスキュービズム勉強会0718
Casper js エスキュービズム勉強会0718
 
Tech circle#13 zabbix3.0ハンズオン lld
Tech circle#13 zabbix3.0ハンズオン lldTech circle#13 zabbix3.0ハンズオン lld
Tech circle#13 zabbix3.0ハンズオン lld
 
Proxy War
Proxy WarProxy War
Proxy War
 
社内向けTech Talk資料~Fluentdの基本紹介~
社内向けTech Talk資料~Fluentdの基本紹介~ 社内向けTech Talk資料~Fluentdの基本紹介~
社内向けTech Talk資料~Fluentdの基本紹介~
 
MSPとしてのオペチー向けReadOnly IAMポリシー
MSPとしてのオペチー向けReadOnly IAMポリシーMSPとしてのオペチー向けReadOnly IAMポリシー
MSPとしてのオペチー向けReadOnly IAMポリシー
 
Zabbix multipe_server_support_in_active_agent
Zabbix  multipe_server_support_in_active_agentZabbix  multipe_server_support_in_active_agent
Zabbix multipe_server_support_in_active_agent
 
JAWS-UG 磐田支部 第7回勉強会Agenda
JAWS-UG 磐田支部 第7回勉強会AgendaJAWS-UG 磐田支部 第7回勉強会Agenda
JAWS-UG 磐田支部 第7回勉強会Agenda
 
MySQL 4.0で9年動き続けたサーバを リプレイスしてバージョンアップした話
MySQL 4.0で9年動き続けたサーバを リプレイスしてバージョンアップした話MySQL 4.0で9年動き続けたサーバを リプレイスしてバージョンアップした話
MySQL 4.0で9年動き続けたサーバを リプレイスしてバージョンアップした話
 
自宅ラック勉強会 2.2 夏のZabbix特別教室 ~構築編~
自宅ラック勉強会 2.2 夏のZabbix特別教室 ~構築編~自宅ラック勉強会 2.2 夏のZabbix特別教室 ~構築編~
自宅ラック勉強会 2.2 夏のZabbix特別教室 ~構築編~
 
Zabbixのパフォーマンスチューニング & インストール時の注意点
Zabbixのパフォーマンスチューニング & インストール時の注意点Zabbixのパフォーマンスチューニング & インストール時の注意点
Zabbixのパフォーマンスチューニング & インストール時の注意点
 
ElastiCacheを利用する上でキャッシュをどのように有効に使うべきか
ElastiCacheを利用する上でキャッシュをどのように有効に使うべきかElastiCacheを利用する上でキャッシュをどのように有効に使うべきか
ElastiCacheを利用する上でキャッシュをどのように有効に使うべきか
 
OSC 2014 Tokyo/Spring 「Zabbix 2.2を使ってみよう」
OSC 2014 Tokyo/Spring 「Zabbix 2.2を使ってみよう」OSC 2014 Tokyo/Spring 「Zabbix 2.2を使ってみよう」
OSC 2014 Tokyo/Spring 「Zabbix 2.2を使ってみよう」
 

Similar to Webセキュリティの実践のための攻防戦演習について

ライブコーディングとデモで理解するWebセキュリティの基礎
ライブコーディングとデモで理解するWebセキュリティの基礎ライブコーディングとデモで理解するWebセキュリティの基礎
ライブコーディングとデモで理解するWebセキュリティの基礎
Takahisa Kishiya
 
データベースセキュリティ
データベースセキュリティデータベースセキュリティ
データベースセキュリティ
Yasuo Ohgaki
 
ウェブセキュリティの常識
ウェブセキュリティの常識ウェブセキュリティの常識
ウェブセキュリティの常識
Hiroshi Tokumaru
 
とある診断員と色々厄介な脆弱性達
とある診断員と色々厄介な脆弱性達とある診断員と色々厄介な脆弱性達
とある診断員と色々厄介な脆弱性達zaki4649
 
すぐできるWeb制作時のセキュリティTips
すぐできるWeb制作時のセキュリティTipsすぐできるWeb制作時のセキュリティTips
すぐできるWeb制作時のセキュリティTips
yoshinori matsumoto
 
Rablock applicatin dev_guide_v1.2
Rablock applicatin dev_guide_v1.2Rablock applicatin dev_guide_v1.2
Rablock applicatin dev_guide_v1.2
Yoshi Nagase
 
クラウドセキュリティ基礎 #seccamp
クラウドセキュリティ基礎 #seccampクラウドセキュリティ基礎 #seccamp
クラウドセキュリティ基礎 #seccamp
Masahiro NAKAYAMA
 
Browser andsecurity2015
Browser andsecurity2015Browser andsecurity2015
Browser andsecurity2015
彰 村地
 
Active Directory 侵害と推奨対策
Active Directory 侵害と推奨対策Active Directory 侵害と推奨対策
Active Directory 侵害と推奨対策
Yurika Kakiuchi
 
Awsで実現するseleniumテスト高速術
Awsで実現するseleniumテスト高速術Awsで実現するseleniumテスト高速術
Awsで実現するseleniumテスト高速術finoue
 
さくらのクラウドをAPIで操作する(LT) @ さくらクラブ in 岐阜
さくらのクラウドをAPIで操作する(LT) @ さくらクラブ in 岐阜さくらのクラウドをAPIで操作する(LT) @ さくらクラブ in 岐阜
さくらのクラウドをAPIで操作する(LT) @ さくらクラブ in 岐阜
Eisaku Terao
 
Webアプリケーション脆弱性体験ハンズオン
Webアプリケーション脆弱性体験ハンズオンWebアプリケーション脆弱性体験ハンズオン
Webアプリケーション脆弱性体験ハンズオン
Yuichi Hattori
 
Sec013 その資格情報、簡
Sec013 その資格情報、簡Sec013 その資格情報、簡
Sec013 その資格情報、簡
Tech Summit 2016
 
インフラ構築とテストについて(ITインフラ業務自動化現状確認会)
インフラ構築とテストについて(ITインフラ業務自動化現状確認会)インフラ構築とテストについて(ITインフラ業務自動化現状確認会)
インフラ構築とテストについて(ITインフラ業務自動化現状確認会)
Yosuke Hiraishi
 
テスト駆動で行うネットワーク自動化のすすめ
テスト駆動で行うネットワーク自動化のすすめテスト駆動で行うネットワーク自動化のすすめ
テスト駆動で行うネットワーク自動化のすすめ
kinunori
 
phpMyAdminにおけるスクリプト実行可能な脆弱性3種盛り合わせ
phpMyAdminにおけるスクリプト実行可能な脆弱性3種盛り合わせphpMyAdminにおけるスクリプト実行可能な脆弱性3種盛り合わせ
phpMyAdminにおけるスクリプト実行可能な脆弱性3種盛り合わせ
Hiroshi Tokumaru
 
脆弱性事例に学ぶセキュアコーディング「SSL/TLS証明書検証」編 (KOF2014)
脆弱性事例に学ぶセキュアコーディング「SSL/TLS証明書検証」編 (KOF2014)脆弱性事例に学ぶセキュアコーディング「SSL/TLS証明書検証」編 (KOF2014)
脆弱性事例に学ぶセキュアコーディング「SSL/TLS証明書検証」編 (KOF2014)
JPCERT Coordination Center
 
OpenStack on OpenStack with CI
OpenStack on OpenStack with CIOpenStack on OpenStack with CI
OpenStack on OpenStack with CIkanabuchi
 
第7回rest勉強会 バリデーション編
第7回rest勉強会 バリデーション編第7回rest勉強会 バリデーション編
第7回rest勉強会 バリデーション編
ksimoji
 
Azure サポート エンジニア直伝 ~ PowerShell 実践活用術 ~
Azure サポート エンジニア直伝 ~ PowerShell 実践活用術 ~Azure サポート エンジニア直伝 ~ PowerShell 実践活用術 ~
Azure サポート エンジニア直伝 ~ PowerShell 実践活用術 ~
ShuheiUda
 

Similar to Webセキュリティの実践のための攻防戦演習について (20)

ライブコーディングとデモで理解するWebセキュリティの基礎
ライブコーディングとデモで理解するWebセキュリティの基礎ライブコーディングとデモで理解するWebセキュリティの基礎
ライブコーディングとデモで理解するWebセキュリティの基礎
 
データベースセキュリティ
データベースセキュリティデータベースセキュリティ
データベースセキュリティ
 
ウェブセキュリティの常識
ウェブセキュリティの常識ウェブセキュリティの常識
ウェブセキュリティの常識
 
とある診断員と色々厄介な脆弱性達
とある診断員と色々厄介な脆弱性達とある診断員と色々厄介な脆弱性達
とある診断員と色々厄介な脆弱性達
 
すぐできるWeb制作時のセキュリティTips
すぐできるWeb制作時のセキュリティTipsすぐできるWeb制作時のセキュリティTips
すぐできるWeb制作時のセキュリティTips
 
Rablock applicatin dev_guide_v1.2
Rablock applicatin dev_guide_v1.2Rablock applicatin dev_guide_v1.2
Rablock applicatin dev_guide_v1.2
 
クラウドセキュリティ基礎 #seccamp
クラウドセキュリティ基礎 #seccampクラウドセキュリティ基礎 #seccamp
クラウドセキュリティ基礎 #seccamp
 
Browser andsecurity2015
Browser andsecurity2015Browser andsecurity2015
Browser andsecurity2015
 
Active Directory 侵害と推奨対策
Active Directory 侵害と推奨対策Active Directory 侵害と推奨対策
Active Directory 侵害と推奨対策
 
Awsで実現するseleniumテスト高速術
Awsで実現するseleniumテスト高速術Awsで実現するseleniumテスト高速術
Awsで実現するseleniumテスト高速術
 
さくらのクラウドをAPIで操作する(LT) @ さくらクラブ in 岐阜
さくらのクラウドをAPIで操作する(LT) @ さくらクラブ in 岐阜さくらのクラウドをAPIで操作する(LT) @ さくらクラブ in 岐阜
さくらのクラウドをAPIで操作する(LT) @ さくらクラブ in 岐阜
 
Webアプリケーション脆弱性体験ハンズオン
Webアプリケーション脆弱性体験ハンズオンWebアプリケーション脆弱性体験ハンズオン
Webアプリケーション脆弱性体験ハンズオン
 
Sec013 その資格情報、簡
Sec013 その資格情報、簡Sec013 その資格情報、簡
Sec013 その資格情報、簡
 
インフラ構築とテストについて(ITインフラ業務自動化現状確認会)
インフラ構築とテストについて(ITインフラ業務自動化現状確認会)インフラ構築とテストについて(ITインフラ業務自動化現状確認会)
インフラ構築とテストについて(ITインフラ業務自動化現状確認会)
 
テスト駆動で行うネットワーク自動化のすすめ
テスト駆動で行うネットワーク自動化のすすめテスト駆動で行うネットワーク自動化のすすめ
テスト駆動で行うネットワーク自動化のすすめ
 
phpMyAdminにおけるスクリプト実行可能な脆弱性3種盛り合わせ
phpMyAdminにおけるスクリプト実行可能な脆弱性3種盛り合わせphpMyAdminにおけるスクリプト実行可能な脆弱性3種盛り合わせ
phpMyAdminにおけるスクリプト実行可能な脆弱性3種盛り合わせ
 
脆弱性事例に学ぶセキュアコーディング「SSL/TLS証明書検証」編 (KOF2014)
脆弱性事例に学ぶセキュアコーディング「SSL/TLS証明書検証」編 (KOF2014)脆弱性事例に学ぶセキュアコーディング「SSL/TLS証明書検証」編 (KOF2014)
脆弱性事例に学ぶセキュアコーディング「SSL/TLS証明書検証」編 (KOF2014)
 
OpenStack on OpenStack with CI
OpenStack on OpenStack with CIOpenStack on OpenStack with CI
OpenStack on OpenStack with CI
 
第7回rest勉強会 バリデーション編
第7回rest勉強会 バリデーション編第7回rest勉強会 バリデーション編
第7回rest勉強会 バリデーション編
 
Azure サポート エンジニア直伝 ~ PowerShell 実践活用術 ~
Azure サポート エンジニア直伝 ~ PowerShell 実践活用術 ~Azure サポート エンジニア直伝 ~ PowerShell 実践活用術 ~
Azure サポート エンジニア直伝 ~ PowerShell 実践活用術 ~
 

Webセキュリティの実践のための攻防戦演習について