MySQL/PostgreSQLの脆弱性が発表された時に、RDS Aurora使いはどう対処すべきか

MySQL/PostgreSQLの脆弱性が発表された時に、RDS Aurora使いはどう対処すべきか
目次

アプリケーションの脆弱性対応は調査にも時間がかかりますし、大変ですよね。RDS Auroraのようなマネージドサービスの場合、互換性のあるデータベースエンジン(MySQLやPostrgeSQL)の脆弱性が発表されたら、どうしたらよいのでしょうか。少し気になったので調べてみました。

[経緯]セキュリティバスターズからの依頼

そこそこ大きい会社になってくると、セキュリティを専門とする部署があって、 CVE の情報を収集しては

「こんな脆弱性が発表されたぞ!君たちのプロダクトは大丈夫なのか!?報告したまえ!」

みたいなやりとりが発生します。情報を展開してくれるのは大変ありがたいのですが、やりたまえって、なんかそういうエージェント仕込むやつでもいいから少しは手伝ってくだされ。

例のごとく、

「MySQLの脆弱性が発表されたぞ!これな!」

というお達しと共に

1CVE-2018-XXXX
2CVE-2018-XXXX
3CVE-2018-XXXX
4(以下略)

対象と思しきCVEのリストが展開されるのです。

純粋なMySQL/PostgreSQLでないにせよ、OSSのデータベースエンジンに互換性のあるAuroraを使用している場合、我々は公表された脆弱性にどう対処するのが良いのか?とふと思ったわけです。

なお、私の使っているAuroraのバージョンは 1.15.1 、互換のあるMySQLのバージョンは 5.6.10-log でした。

Auroraの仕組み

そもそも「互換性がある」 からと言って、内部的な仕組みは違うので、一概に言えないのが難しい所です。

例えば、このスライド を見ると少しわかるのですが、ストレージ部分のアーキテクチャはAurora独自な感があるので、CVE-2018-2755 みたいなレプリケーションに関連する脆弱性は対象にならないのではないか、と推察したりもできます。

サポートに聞いてみよう

ただ、推察の域を出ないので、AWSのサポートに聞いてみました。

結果、結論を簡単にまとめると、

  • MySQLのバージョンに存在する脆弱性は一概にAuroraにもあるとは限らない
  • AWSのセキュリティ適用状況は Latest Bulletins を確認して欲しい
  • インスタンスへのセキュリティパッチの適用状況についてはユーザが確認することはできない
  • メンテナンスウィンドウにて必須のパッチの適用がスケジューリングされ、時限的に適用される(緊急の場合にはその限りではない)

マネージドサービスだし、「まかせておけ」ということか。

Latest Bulletins を見てみよう

過去にどのような対応があったかを見てみます。 Latest Bulletins はRDSだけでなく、 他のAWSサービス全般のセキュリティアップデートが表示されます。

その中から、過去のRDSの対応した脆弱性を探してみます。

Auroraのものは見つかりませんでした。

CVEの脆弱性とリンクされている上の2つを確認してみると、CVEがアップデートされてから半年後くらいに対応した感じでしょうか。 AWSサービス単位でまとめられているわけでもないので、とりあえず、この情報だけでは脆弱性対処の早い/遅いの判断もできなさそうです。

まとめ

今回はRDS Auroraのセキュリティへの対応を調べてみました。 結論を言うと、ユーザはAWS側におまかせする形になる ので、ブラックボックスになってしまいます。

もし特定の脆弱性が気になるようなら、サポートセンター経由で個別に相談するのもよいでしょうし、 MySQLエンジンのバージョンを上げれそうであれば、それで対処してしまう、という割り切りもありかな、とぼんやり思いました。

逆に、脆弱性と思しき事象がある場合には、メールにて報告をする窓口も設けられていたので(調査のお手伝いをする必要がありますが)、がっぷりおつで対峙するのも手かもしれませんね。

参考にさせていただいたサイト