Realmのセキュリティ周りについて調べてみた2022
Jan 30, 2022 09:45 · 1275 words · 3 minute read
3年ほど前の2019年7月にRealmのセキュリティについて調査した。
realmのセキュリティまわりについて調べてみた - kapieciiのブログ (hatenablog.com)
その後、RealmがMongoDBに買収され、サービスの内容が色々変わったらしい。
変更後の状況について、調べた内容をメモしておく。
目次
公式ドキュメント
MongoDBに買収されたことで、公式のドキュメントも大きく変わった。
- 昔のドキュメント Realm Platform Documentation (mongodb.com)
- 現在のドキュメント Realm SDKs — MongoDB Realm
現状のRealmは大きく分けて「Realm SDKs」と「MongoDB Realm Application Services」の2つ。 スマートフォンアプリで端末側にデータを保存する昔ながらの機能は「Realm SDKs」に該当している。
Objective-C
SDKの名前をみるとObjective-CのSDKが存在しないようにも見えるが、Objective-CはSwiftの中に含まれている。
MongoDB Realm Swift SDK — MongoDB Realm
サンプルコードもある。
Read & Write Data - Swift SDK — MongoDB Realm
セキュリティについての記述
以前はセキュリティに関するドキュメントがあり、SQLインジェクションやデータベースの暗号化についての情報が公開されていた。
MongoDB買収後のドキュメントでは、暗号化に関する記述は見つけたが、SQLインジェクションについてのドキュメントは見当たらない。
暗号化についてのドキュメント
Googleを使ってドメイン内を検索してみたが、見つからなかった。
site:docs.mongodb.com/realm/ sql injection - Google 検索
ちなみに、RealmのSQL Injectionに関する記述は無いが、MongoDBのSQL Injectionについての記述は存在している。
FAQ: MongoDB Fundamentals — MongoDB Manual
参考までに、以前のRealmのドキュメントにあった記載はこちら。
Realm Java uses a type safe query engine, that doesn’t allow you to execute multiple commands nor inject commands inside other commands. So something like SQL injection is impossible.
参照: realmのセキュリティまわりについて調べてみた - kapieciiのブログ (hatenablog.com)
MongoDBに買収されはしたが、GitHubのRepository及びソースコードは買収前と同じだった。
全ての変更履歴を追いかけたわけではないが、セキュリティの重要性が叫ばれている昨今の情勢も考えると、わざわざセキュリティレベルを下げるというのは考えにくい。
というわけで、「買収前に公開されていたRealmのセキュリティ機能についての情報は今でも有効」と考えて良いのかもしれない。
realm/realm-swift: Realm is a mobile database: a replacement for Core Data & SQLite (github.com)
既知の脆弱性
2022年1月現在も、Exploit Databaseには既知の脆弱性は登録されていない。
下記のCchangelogも確認したが、セキュリティに関わる更新や脆弱性に関する記載はなかった。
- realm-swift/CHANGELOG.md at master · realm/realm-swift (github.com)
- realm-java/CHANGELOG.md at master · realm/realm-java (github.com)
- realm-kotlin/CHANGELOG.md at master · realm/realm-kotlin (github.com)
- realm-dart/CHANGELOG.md at master · realm/realm-dart (github.com)
最後に
買収されたことでサービスが拡張されたのは良いことだが、セキュリティに関する情報が削除されてしまったのは残念に感じた。
安心して使うために、セキュリティに関する情報や、推奨設定を公開してくれると嬉しいのだけれど。