-
タグ
タグ
- セキュリティ
- 人材開発・教育
- システム開発
- アプリ開発
- モバイルアプリ
- DX
- AI
- サイバー攻撃
- サイバー犯罪
- 標的型攻撃
- 脆弱性
- 働き方改革
- 企業市民活動
- 攻撃者グループ
- JSOC
- JSOC INSIGHT
- サイバー救急センター
- サイバー救急センターレポート
- LAC Security Insight
- セキュリティ診断レポート
- サイバー・グリッド・ジャパン
- CYBER GRID JOURNAL
- CYBER GRID VIEW
- ラックセキュリティアカデミー
- すごうで
- ランサムウェア
- ゼロトラスト
- ASM
- EDR
- SASE
- デジタルアイデンティティ
- インシデントレスポンス
- 情シス向け
- 対談
- CIS Controls
- Tech Crawling
- クラウド
- クラウドインテグレーション
- データベース
- アジャイル開発
- DevSecOps
- OWASP
- CTF
- FalconNest
- セキュリティ診断
- IoT
- EC
- サプライチェーンリスク
- スレットインテリジェンス
- テレワーク
- リモートデスクトップ
- アーキテクト
- プラス・セキュリティ人材
- 障がい者採用
- 官民学・業界連携
- カスタマーストーリー
- 白浜シンポジウム
- CODE BLUE
- 情報モラル
- クラブ活動
- 初心者向け
- 趣味
- カルチャー
- 子育て、生活
- 広報・マーケティング
- コーポレート
- ライター紹介
- IR
システムアセスメント部の山崎です。
2016年1月30日(土) と 31日(日)に、セキュリティコンテスト SECCON 2015 決勝大会が開催されました。
この大会は、サイバー攻撃とその対策に必要なセキュリティ技術などを競う競技会で、国内さまざまな地方や、オンラインでおこなわれた予選を勝ち抜いてきた強豪チームが参加しました。
今年度は、1日目に「学生大会」が、2日目に「国際大会」がそれぞれおこなわれました。私は、国際大会の、6問の問題群のうちの1問を出題しました。(まさか、あんなことになるとは思わずに・・・。)
1日目におこなわれた「学生大会」では、地方予選と連携大会を勝ち抜いてきた学生18チームが出場しました。中学生から大学院生までのメンバーが、1チーム4人で参戦しました。
競技は、「Attack&Defense形式」という、お互いに弱点を持つサーバを運営し、自分のサーバを守り、相手のサーバからフラグを奪うという攻防戦の形となっていました。4時間の熱戦を征した、筑波大学の学生がリーダーのチーム「dodododo」には、文部科学大臣賞が贈られました。
2日目におこなわれた「国際大会」では、65ヶ国、累計3,343人の中から、予選大会を勝ち進んだ18チームが出場しました。18チームのうち、日本からは8チームが出場し、残りの10チームは海外から、米国・韓国・台湾・ロシア・ルーマニア・ベトナム・タイのチームが出場しました。競技は、「King of the Hill形式」という、サーバを征して所定のページに自チームのフラグを掲示する時間が長いチームが勝利という形式でした。開会式には、遠藤利明 東京オリンピック競技大会・東京パラリンピック競技大会担当大臣にご臨席いただき、参加者にエールを贈っていただきました。
5時間半の攻防を終えた結果、優勝は、韓国のチーム「Cykorkinesis」。準優勝は、台湾のチーム「217」。3位は、米国のチーム「Shellphish」という結果でした。さすがの強さを見せた海外チームでしたが、国内チームも健闘し、文部科学大臣賞をチーム「TomoriNao」のTomoriNao氏が、審査員特別賞をチーム「katagaitai」のaskn氏が受賞しました。また、8チームに経済産業大臣激励文が手渡されました。
さて、国際大会に私が出した問題ですが・・・、今、申し訳ない気持ちでいっぱいです。解くのがとても面倒くさい(面白くない)問題を出題してしまいました。18チーム中1チームのみがフラグ獲得という結果に、反省しています。どのような(クソ)問題だったのか、紹介をさせてください。
私の問題は、Webアプリに存在する、「クロスサイトスクリプティング」、「SQLインジェクション」、「ディレクトリトラバーサル」、「OSコマンドインジェクション」の脆弱性を探しだして、どのパラメータにそれが存在しているかを回答してもらう、という内容でした。以下に画面の写真を載せます。
真ん中の「Value for Audit」のテキストボックスに脆弱性が存在しているので、それを見つけて、該当する脆弱性のチェックボックスにチェックを付けて「SEND」ボタンを押します。その結果、すべてのチェックの状況が正しければ、ポイントが加算されるという仕組みです。 例えば、「クロスサイトスクリプティング」の有無を判定する場合は、「">'><s>XSS</s> style=background-color:red x」を送信して、打ち消し線か、赤背景が表示されたら脆弱性があると判断できる状況でした。(値が「"」で囲まれていたり、「'」で囲まれていたり。HTMLタグが挿入できたり、属性値のみ挿入できたりという様々なパターンがありました。)
他にも、「SQLインジェクション」は「'」を送信するとエラーが出る、「ディレクトリトラバーサル」は「../../../etc/passwd」や「../../../etc/passwd%00」でパスワードファイルが見える、「OSコマンドインジェクション」は「';uname -a;'」や「";uname -a;"」などでコマンド実行結果が見える・・・といった、典型的なチェック手法で見つかるものばかりでした。(なお、そのチェックの道筋に「攻撃ポイント」というオマケが隠されていまして、1.ディレクトリトラバーサルでWebアプリ自身のソースコードを閲覧、2.OSコマンドインジェクションで/home/ymzkei5/のファイルを閲覧、3.OSコマンドインジェクションで環境変数を閲覧、4.SQLインジェクションでフラグテーブルを閲覧すると、それぞれポイントが得られるようになっていました。)
・・・どこが難しいんだ?と思われた読者の方、いらっしゃると思います。 実は、このWebアプリですが、自動で生成されていて、5分ごとにすべて置き換わる仕組みでした。5分経つと、ファイル名も、パラメータ名も、パラメータの数も、どの脆弱性がどのパラメータに存在するかも、すべてランダムに変わってしまいます。このため、脆弱性の有無のチェックを、ある程度、自動化しないと解けません。
・・・それでも、頑張れば解けそう!と思われた方、いますよね。 すみません、さらに面倒くさいことになっていまして・・・、先ほどの写真、よく見ていただくとURLが「http://127.0.0.1:81/」になっていることが分かると思います。実は、この攻略対象のWebアプリには外から直接ブラウザでアクセスすることはできません。どうやってアクセスするかと言いますと、私の問題サーバにPerl、Python、Ruby、シェルスクリプト等で書いたスクリプトをアップロードし、そのスクリプトを通じてローカルのWebサーバにアクセスしてもらう形となっていました。
例えば、
#!/bin/sh
id;pwd
curl -s http://127.0.0.1:81/ | head -10
を、問題サーバにアップロードして、「Upload&Run」ボタンを押すと、以下のようにサーバ上でスクリプトが実行され、攻略Webアプリにアクセスした結果が画面に表示されます。
このように、外側の http://3.finals.seccon.jp/ から、その内部の http://127.0.0.1:81/ を攻略するスクリプトを書くという、なかなか不自由な環境でした。ちょうど診断や解析の自動化やAIがトレンドとして聞こえてきていたので、何かを勘違いした作者(私だ)がこんなものを作ってしまいました。
参加者の皆さんには、このような困難な状況下で、しかも限られた時間で果敢にトライしていただいて、本当にご苦労をかけました。無理ゲーと言われても仕方がありません。そんな中、1チームにフラグを獲得してもらい、ほんの少し安心しました。もしも、まったく0点だったらどうしようかと、ゲームの後半は祈るような気持ちでした。私の問題を解いてくれた、チーム友利奈緒のみなさん、本当にありがとうございました!!
次回こそは・・・、陰口を叩かれない良問の作成を目指します!!! m(_ _)m
タグ
- セキュリティ
- 人材開発・教育
- システム開発
- アプリ開発
- モバイルアプリ
- DX
- AI
- サイバー攻撃
- サイバー犯罪
- 標的型攻撃
- 脆弱性
- 働き方改革
- 企業市民活動
- 攻撃者グループ
- JSOC
- もっと見る +
- JSOC INSIGHT
- サイバー救急センター
- サイバー救急センターレポート
- LAC Security Insight
- セキュリティ診断レポート
- サイバー・グリッド・ジャパン
- CYBER GRID JOURNAL
- CYBER GRID VIEW
- ラックセキュリティアカデミー
- すごうで
- ランサムウェア
- ゼロトラスト
- ASM
- EDR
- SASE
- デジタルアイデンティティ
- インシデントレスポンス
- 情シス向け
- 対談
- CIS Controls
- Tech Crawling
- クラウド
- クラウドインテグレーション
- データベース
- アジャイル開発
- DevSecOps
- OWASP
- CTF
- FalconNest
- セキュリティ診断
- IoT
- EC
- サプライチェーンリスク
- スレットインテリジェンス
- テレワーク
- リモートデスクトップ
- アーキテクト
- プラス・セキュリティ人材
- 障がい者採用
- 官民学・業界連携
- カスタマーストーリー
- 白浜シンポジウム
- CODE BLUE
- 情報モラル
- クラブ活動
- 初心者向け
- 趣味
- カルチャー
- 子育て、生活
- 広報・マーケティング
- コーポレート
- ライター紹介
- IR