とある診断員の備忘録スマートフォン用の表示で見るとある診断員の備忘録この広告は、90日以上更新していないブログに表示しています。関して検証してみたどうも、Drupalを一回も運用したことがないのに、インストールするのがどんどん早くなっていく、とある診断員です。関してちょこっと検証してみました。検証した内容についてブログに記載をしておきます。Execution)です。リモートの攻撃者よりWebサーバの動作権限にて任意のコードを実行されてしまう危険性があります。利用するモジュールが有効になっている場合、影響を受けます。ServicesモジュールJSON:APIモジュール上記モジュールについてはデフォルトでは無効です。7系でも同様のモジュールが有効になっている場合は本脆弱性の影響を受けるようです。8系のバージョンは、サポートが終了しており、今回のセキュリティに関する情報は提供されていません。8.5.11また、該当モジュールの無効化でも対応可能です。Security社のブログにて詳細が解説されています。2017にもランクインしたいわゆる「安全ではないデシリアライゼーション」の問題に起因するものです。「安全ではないデシリアライゼーション」については徳丸さんの以下の記事が参考になります。API経由にてJSON形式で定義された値にシリアライズ化されたデータを指定して送信した場合に、その値がそのままデシリアライズされてしまうこと利用して、任意のコードを実行するというものです。advisoriesでは攻撃は「POST」や「PATCH」メソッド経由であるため、該当メソッドのリクエストを受け付けないようにすることが緩和策である旨の記載がされていましたが、それだけではなく、「GET」リクエストでも本攻撃は成立します。脆弱性の検証についてとりあえずPoCを試したり、攻撃リクエストなどを速攻確認したい場合には@knqyf263さんが公開してくれている素晴らしいdockerイメージがあるのでこちらを利用するのが良いと思います。(Drupal)PoCの詳細はここには書きませんがcurlコマンドのみでお手軽に実行が可能です。自分でも環境を構築いたしましたが、今回の検証は現在のPoCが対応している8系にて実施しました。環境構築について脆弱性の影響を受けるバージョンのDrupalをインストール後、以下のモジュールを有効にする必要があります。モジュールはコアに組み込まれていない為、別途ダウンロードする必要があります。モジュールを有効化すると、環境設定のウェブサービスに「REST」という項目が現れます。そこから、「コンテンツ」の項目を有効にし、以下のように設定すればOKです。RESTリソースの設定なお、こちらの解説が参考になります。Umiまた、検証にはdrupal上のノードが必要なため、適当なコンテンツを追加する必要があります。結論から言えば、手元でも以下のように、curlコマンドを利用してPoCを打ち込んだ所、任意のコマンドが実行されることを確認しています。以下はPoCにてidコマンドを実行した結果となります。現在のPoCを試していくつか分かったこととしては、GETリクエストでの実行では一度打ち込むとキャッシュに残ってしまうため連続で実行ができません(キャッシュをクリアすれば再度成功することは確認しています)。POSTメソッドやPATCHメソッドで実行した場合には連続で試行できます。デバッガでの解析PoCの実行をデバッガを利用して解析した結果、以下のようにPoCにて送信したシリアライズ化された値が、LinkItem.phpのunserializeメソッドに渡っており、デシリアライズされたことが分かります。用して任意のコードを実行するものとなります。Guzzleのdestructor処理にて恐らくガジェットチェーンを利用して任意のコードを実行していると思われます。guzzleのdestract処理が実行されている対策済みバージョンでは?脆弱性が対策済みである8.6.10で検証してみた結果、PoCを実行すると以下のような応答となり、コードが実行されないことを確認しています。応答結果デバッガで追跡した結果、対策として追加されたcheckForSerializedStringsメソッドに値が渡され、例外が発生していることがわかります。2(CVE-2018-7600)などよりかはまだマシなほうなのかなという印象を受けています。条件がそろってしまえば攻撃の実行は非常に簡単であり、危険度の高い脆弱性ではあることは間違いないので、注意が必要です。単純に外部から受け渡された値を検証なしにデシリアライズしていることが問題であるため、「安全ではないデシリアライゼーション」の結構良い事例となるような脆弱性なのではないかと思いました。Security社のブログに、記載しているシリアライズ化されたペイロードはPHPGGCというツールを利用して作成している旨がと書かれています。このツールは指定したライブラリに対応したデシリアライズ処理を悪用するPHP用の攻撃ペイロードを自動生成してくれるもののようで、非常に面白そうなので、その内時間を見つけて調べてみようかなと思っています。Shopを触ってみた!月別アーカイブはてなブログをはじめよう!tigerszkさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。