デシリアライズの脆弱性へのパッチ適用の難しさ

2017年9月11日発行
ピーテル・デ・クレマー著
ケーススタディ

デシリアライズの脆弱性へのパッチ適用の難しさ

2017年9月11日発行
ピーテル・デ・クレマー著
リソースを見る
リソースを見る

先週、Equifax社のデータ流出の背景には、Apache Struts RESTプラグインの脆弱性があることが報告されました。古いバージョンのプラグインは、XMLペイロードを処理するXStreamハンドラと一緒に使用されると、リモートコード実行攻撃を受ける可能性があります。原因は、信頼されていないデータのデシリアライゼーションであり、これはよく知られた脆弱性のタイプです。この脆弱性は、CVE-2017-9805として正式に認識されており、Apacheが9月5日にStrutsのバージョン2.5.13でパッチを適用しました。その後、Apache Strutsのドキュメントで発表され、明確に文書化されました。

Strutsの最新バージョンにアップグレードするだけで、この攻撃からアプリケーションを守ることができるのに、なぜ企業はすぐにアップグレードしないのでしょうか?デシリアライゼーションの脆弱性の問題点は、悪用されるルーチンが、アプリケーションコードが依存しているルーチンであることが多いことです。この場合、Strutsの新しいパッチを適用すると、副作用が生じる可能性があります。この脆弱性に関する文書には、"It is possible that some REST actions stop working because of applied default restrictions on available classes. "と記載されています。新しいバージョンのStrutsでアプリケーションが動作し続けることを確認するには、時間がかかる可能性が高いです。

しかし、ハッカーたちは、公開された脆弱性を悪用し始めるのに、それほど時間を必要とせず、すでにいくつかの悪用法が公開されています。Metasploitのモジュールは9月8日に追加されましたが、これはApacheが脆弱性にパッチを当ててから3日後のことです。パッチを先延ばしにするのは、明らかに良くありません。

解決策としては、Apacheが提案する回避策を実装することで、より短期間での対応が可能になります。この回避策を実施する、あるいは自動的に適用するための設定可能なコーディングガイドラインを備えたセキュリティツールがあれば、このプロセスを大幅に短縮することができます。

信頼されていないデータのデシリアライズを含むコードを識別して安全にする方法について、もっと知りたいと思いませんか?Secure Code Warrior ポータルにアクセスして、わかりやすい説明とトレーニングの課題をご覧ください。

この脆弱性は、Strutsがこの種のデータをどのように解析し、Javaプログラミング言語で解釈可能な情報に変換するかに関係しています。この脆弱性がうまく利用されると、悪意のあるコードがそのようなデータの中に隠され、Strutsがそのデータを変換しようとしたときに実行されてしまいます。

https://qz.com/1073221/the-hackers-who-broke-into-equifax-exploited-a-nine-year-old-security-flaw/

リソースを見る
リソースを見る

著者

ピーテル・デ・クレマー

もっと知りたい?

セキュアコーディングに関する最新の知見をブログでご紹介しています。

当社の豊富なリソースライブラリは、安全なコーディングアップスキルに対する人間的なアプローチを強化することを目的としています。

ブログを見る
もっと知りたい?

開発者主導のセキュリティに関する最新の研究成果を入手する

ホワイトペーパーからウェビナーまで、開発者主導のセキュアコーディングを始めるために役立つリソースが満載のリソースライブラリです。今すぐご覧ください。

リソース・ハブ

デシリアライズの脆弱性へのパッチ適用の難しさ

2017年9月11日発行
Pieter De Cremer 著

先週、Equifax社のデータ流出の背景には、Apache Struts RESTプラグインの脆弱性があることが報告されました。古いバージョンのプラグインは、XMLペイロードを処理するXStreamハンドラと一緒に使用されると、リモートコード実行攻撃を受ける可能性があります。原因は、信頼されていないデータのデシリアライゼーションであり、これはよく知られた脆弱性のタイプです。この脆弱性は、CVE-2017-9805として正式に認識されており、Apacheが9月5日にStrutsのバージョン2.5.13でパッチを適用しました。その後、Apache Strutsのドキュメントで発表され、明確に文書化されました。

Strutsの最新バージョンにアップグレードするだけで、この攻撃からアプリケーションを守ることができるのに、なぜ企業はすぐにアップグレードしないのでしょうか?デシリアライゼーションの脆弱性の問題点は、悪用されるルーチンが、アプリケーションコードが依存しているルーチンであることが多いことです。この場合、Strutsの新しいパッチを適用すると、副作用が生じる可能性があります。この脆弱性に関する文書には、"It is possible that some REST actions stop working because of applied default restrictions on available classes. "と記載されています。新しいバージョンのStrutsでアプリケーションが動作し続けることを確認するには、時間がかかる可能性が高いです。

しかし、ハッカーたちは、公開された脆弱性を悪用し始めるのに、それほど時間を必要とせず、すでにいくつかの悪用法が公開されています。Metasploitのモジュールは9月8日に追加されましたが、これはApacheが脆弱性にパッチを当ててから3日後のことです。パッチを先延ばしにするのは、明らかに良くありません。

解決策としては、Apacheが提案する回避策を実装することで、より短期間での対応が可能になります。この回避策を実施する、あるいは自動的に適用するための設定可能なコーディングガイドラインを備えたセキュリティツールがあれば、このプロセスを大幅に短縮することができます。

信頼されていないデータのデシリアライズを含むコードを識別して安全にする方法について、もっと知りたいと思いませんか?Secure Code Warrior ポータルにアクセスして、わかりやすい説明とトレーニングの課題をご覧ください。

この脆弱性は、Strutsがこの種のデータをどのように解析し、Javaプログラミング言語で解釈可能な情報に変換するかに関係しています。この脆弱性がうまく利用されると、悪意のあるコードがそのようなデータの中に隠され、Strutsがそのデータを変換しようとしたときに実行されてしまいます。

https://qz.com/1073221/the-hackers-who-broke-into-equifax-exploited-a-nine-year-old-security-flaw/

弊社製品や関連するセキュアコーディングのトピックに関する情報をお送りする許可をお願いします。当社は、お客様の個人情報を細心の注意を払って取り扱い、マーケティング目的で他社に販売することは決してありません。

送信
フォームを送信するには、「Analytics」のCookieを有効にしてください。完了したら、再度無効にしてください。