CODE BLUE 2015 セッションレポート 第6回 「バッファオーバーフローが大好き」という学生が考えたスタックカナリア回避法 | ScanNetSecurity[国内最大級のサイバーセキュリティ専門ポータルサイト]
2018.07.19(木)

CODE BLUE 2015 セッションレポート 第6回 「バッファオーバーフローが大好き」という学生が考えたスタックカナリア回避法

研修・セミナー・カンファレンス セミナー・イベント

日本発の国際セキュリティ会議 CODE BLUE 2016 は10月14日(金)まで最終登録受付中。10 月 20 日、21 日の開催は来週に迫っている。本稿では昨年開催された CODE BLUE 2015 をふりかえり特に興味深かった講演をレポートしている。

CODE BLUE 2016
http://codeblue.jp/2016/registration/
※10月14日(金)迄 当日登録より5,000円オトクな最終登録受付中

●不足と言われるセキュリティ人材、でもそんなことはない?

とかく足りないと言われるセキュリティ人材。日本国内だけでも8万人のセキュリティ人材が不足している、などとする調査結果も報告されている。こうした状況を背景に政府も、2015年9月に閣議決定された「サイバーセキュリティ戦略」の中で、セキュリティ人材の育成に力を入れる方針を示している。

優れたセキュリティスキルを備えた人材の不足と育成は世界共通の課題となっているようだ。今回のCode Blueでは、若いセキュリティ研究者に発表の機会を与えるという目的で、新たに「U-25」枠を設けた。多くの申し込みがあった中から発表を行ったのは、いずれも日本の若い学生だった。

U-25枠で発表を行った小池悠生氏は、スタックカナリアを回避する手法を検討した「Master Canary Forging:新しいスタックカナリア回避手法の提案」と題し、堂々とプレゼンテーションを行った。「自分はROPが好き、バッファオーバーフローが大好き。だから、それを検出するスタックカナリアは嫌い」(同氏)というのが、このアイデアが生まれたきっかけという。

●スタック破壊を検知されずにバッファオーバーフローを起こす手法を提案

スタックカナリアは、リターンアドレスが書き換えられたかどうかが分かる一種の指標であり、もしこの値が変われば何らかの攻撃を受けたと判断できる。逆に言えば「値が変わらないと検知できない。そこで、値を変えないようにしつつバッファオーバーフローを起こせばいいのではないかと考えた」と小池氏は述べた。

これまでにもいくつかスタックカナリアの回避方法は提示されているが、小池氏はそれらとは異なる新しい回避手法を考えた。「マスターカナリアの初期値を書き換えてしまえばいいのではないか」というものだ。マスターカナリアは、mmap上のどこかの領域に位置することになり、ASLRなどの機構があるため特定するのは難しい。

しかしmmapには「必ずどこかの領域と隣接している」という特徴がある。その特徴を逆手に取って、ヒープメモリの割り当てをある程度自由に行い、その領域でヒープバッファーオーバーフローを引き起こせば実現できる、という結論に至った。

ただ、2つのバッファオーバーフローを必要とするこのコンセプトを実際に評価してみたところ「使いづらい(笑)」というのが正直なところだったそうだ。いずれにせよ、「スタックカナリアには攻略法がある」と同氏は指摘し、Random XORカナリアを使ってエントロピーを高める、あるいはガードページを設けると言った対策が考えられるとした。

CODE BLUE実行委員長の佐々木教授が述べるように、CODE BLUE 2015では、U-25枠を設けた他、満24歳以下の12名を招待し、セキュリティに興味を持つ若い人材が最新の情報に触れ、情報交換を行う場を用意した。不足、不足と言われるセキュリティ人材だが、確実に若い芽が育っていることも感じられる場となった。
《高橋 睦美》

関連記事

Scan PREMIUM 会員限定記事

もっと見る

Scan PREMIUM 会員限定記事特集をもっと見る

カテゴリ別新着記事

★★Scan PREMIUM 会員限定コンテンツにフルアクセスが可能となります★★
<b>★★Scan PREMIUM 会員限定コンテンツにフルアクセスが可能となります★★</b>

経営課題としてサイバーセキュリティに取り組む情報システム部門や、研究・開発・経営企画に携わる方へ向けた、創刊19年のセキュリティ情報サービス Scan PREMIUM を、貴社の事業リスク低減のためにご活用ください。

×