さまざまなUnixベースのオペレーティングシステムにおける10年前の脆弱性についてどう思いますか, Linuxのように, OpenBSD, NetBSF, FreeBSDとSolaris? 不運にも, この質問は、そのような脆弱性として理論的な質問ではありません (CVE-2017-1000364として識別) 発見されました, ルートアクセスが許可され、システム全体の乗っ取りが行われている場合に、攻撃者に特権の昇格攻撃を実行させる.
CVE-2017-1000364はStackSlashと呼ばれ、ユーザースペースバイナリのスタックにメモリが割り当てられている方法で発見されました, によって説明されるように 研究者 誰がそれを発見したか.
CVE-2017-1000364スタックスラッシュ欠陥テクニカルレジュメ
バグはどのように説明されていますか? それは非常に簡単です–プログラムはスタックと呼ばれる特別なメモリ領域を使用します, 短期データの保存に使用. スタックは、プログラムの実行中に自動的に拡張および縮小できます, 与えられたプログラムのニーズに関連して.
Qualysの研究者は、悪意を持って作成されたプログラムが、スタックで使用可能なメモリスペースよりも多くのメモリスペースを使用しようとする可能性があることを明らかにしました. これは簡単にメモリオーバーフローにつながる可能性があります, スタックを近くのメモリ領域と衝突させ、それらのコンテンツを上書きします.
上記に加えて, 欠陥はスタックガードページをバイパスする可能性があります. これはからのメモリ管理保護です 2010 これは、過去数年間に欠陥が悪用された後に導入されました. クオリスの研究者がアドバイザリーで説明したように:
不運にも, 数キロバイトのスタックガードページでは不十分です: スタックポインタがジャンプした場合’ ガードページ上(ガードページにアクセスせずにスタックから別のメモリ領域に移動した場合)、ページフォールト例外は発生せず、スタックは他のメモリ領域に拡張されます。.
CVE-2017-1000364は、脆弱なシステムへのローカルアクセスも必要とします. でも, 関連するアプリケーションに応じて、リモートで悪用される可能性もあります.
実際に, CVE-2017-1000364は、最近パッチが適用されたSudoの脆弱性などの他の重大な欠陥と一緒に悪用される可能性があります. Sudoの脆弱性, CVE-2017-1000367, Qualysの研究者によって再び発見された深刻なルートLinuxの脆弱性です. この欠陥は、Sudoの「get_process_ttyname」にあることが判明しました。()」はLinuxの機能であり、Sudo権限を持つユーザーがrootとしてコマンドを実行したり、権限をrootに昇格したりできるようにすることができます。.
不運にも, 悪いニュースはここで終わらない 7 Linuxに適した脆弱性に対して、概念実証エクスプロイトが作成されました, OpenBSD, NetBSD, FreeBSD, 両方のSolaris 32- および64ビットプロセッサ. 研究者たちは当初、概念実証をプッシュしないように十分に配慮しており、ユーザーと管理者の両方が脆弱なシステムにパッチを適用することで欠陥に対処できるようにしました。. ただし、これらはFedoraとSlackwareによって更新が公開された後に公開されました. FreeBSDとNetBSDもパッチを発行しました.
概念実証には、スタックを別のメモリ領域と衝突させるという4つのステップが含まれます。, スタックの開始へのスタックポインタの実行, スタックガードページを飛び越える, そして最後に, スタックまたは他のメモリ領域を破壊する.
CVE-2017-1000364に対する緩和策
彼らの研究に基づく, Qualysの研究者は、影響を受けるオペレーティングシステムが次のことを行うことを推奨しています:
スタックガードページのサイズを少なくとも1MBに増やします, システム管理者がこの値を簡単に変更できるようにします (例えば, grsecurity/PaXは/proc/ sys / vm/heap_stack_gapを導入しました 2010). これが最初, 短期的な解決策は安い, しかし、それは
非常に大きなスタックベースのバッファ.すべてのユーザーランドコードを再コンパイルします (ld.so, ライブラリ, バイナリ) GCCの “-fstack-チェック” オプション, これにより、スタックガードページにアクセスせずにスタックポインタが別のメモリ領域に移動するのを防ぎます。 (スタックに割り当てられた4KBページごとに1ワードを書き込みます). この秒, 長期的な解決策は高価です, しかし、それを打ち負かすことはできません (スタックガードページがわずか4KBであっても, 1ページ) — スタックガードページまたは “-fstack-チェック” オプション.
その他のオペレーティングシステム (ウィンドウズ, アンドロイド, マック) CVE-2017-1000364にも脆弱
研究者たちは、WindowsやmacOS、さらにはAndroidなどの他のオペレーティングシステムもこの欠陥に対して脆弱である可能性があると考えているため、ここで終わらないかもしれません。. ただし、これはさらに確認する必要があります.
それにもかかわらず, 影響を受ける当事者は、できるだけ早く更新するように促されます.
特定のOSで利用可能なパッチがまだない場合, ユーザーと管理者は、エクスプロイトを回避するために、システムを再起動するか、ローカルユーザーのアプリにスタック制限を手動で適用しようとする場合があります. もう1つの便利なヒントは、-fstack-check機能を使用してすべてのユーザーランドコードを再コンパイルすることです。, 上記のヒントに見られるように.