LINEにおける脆弱性対策
• LINE Security Bug Bounty Program を実施
• 有効な脆弱性報告に対し、報奨金を支払う
• https://hackerone.com/line
• LINE Android は Google Play Security Reward Program の対象
• Google Play上の著名なアプリに対して対象
• https://www.google.com/about/appsecurity/play-rewards/
2. 社外報告者による報告
#1 SQL Injection
SQLクエリの生成時に不正なクエリを発行できる脆弱性
val input = "t' OR 't' = 't"
val sql = "SELECT * FROM users WHERE name = '${input}';”
db.rawQuery(sql, null)
// 実際に実行されるSQL文
SELECT * FROM users WHERE name = 't' OR 't' = 't';
#1 SQL Injection
• SQLiteDatabaseクラスのプレースホルダーを使用する
• Room等のフレームワークを使用する
対策
@Query("SELECT * FROM users WHERE id = :id")
fun getUser(id: String): User
val selection = "id = ?"
db.query(table, selection, arrayOf(id))