ホーム DoRuby CERT Oracle Java セキュアコーディングスタンダードをAndroidアプリケーション開発へのルールの適用に合わせてソートしてついでにリンクをつけてみた。

CERT Oracle Java セキュアコーディングスタンダードをAndroidアプリケーション開発へのルールの適用に合わせてソートしてついでにリンクをつけてみた。

この記事はアピリッツの技術ブログ「DoRuby」から移行した記事です。情報が古い可能性がありますのでご注意ください。

Android開発者が必要なのがどれなのか破滅的にわかりづらいのでとりあえずソートしてみた。

JPCERT/CCCERT Oracle Java セキュアコーディングスタンダード 日本語版を公開しております。

その中で、Androidアプリケーション開発へのルールの適用という項目があるのですが、順番が項目順で破滅的に分かりづらいので、Android開発でガリガリ下がりまくったSAN値を回復するためにソートしなおしてrubyでリンクもつけて見ました。

以下が、その表になります。リンク間違ってたらTwitterのsmellmanに適当にMention送ってください。

ルール評価コメント
IDS07-JA
IDS09-JA
EXP00-JA
NUM02-JA
MET00-JA
MET02-JAAndroid SDKにもdeprecatedやobsoleteなAPIが存在する
MET04-JA
MET05-JA
MET12-JA
ERR02-JA
ERR07-JA
ERR08-JA
VNA00-JA
VNA02-JA
LCK01-JA
LCK02-JA
LCK06-JA
FIO03-JA
FIO05-JA
FIO08-JA
SER01-JA
SER03-JA
SER08-JA
SEC03-JAAndroidではDexClassLoaderやPathClassLoaderの使い方に気をつける必要がある
SEC05-JAリフレクションを使うと非公開のAPIにアクセスすることができるので気を付ける必要がある
ENV02-JAコード例にあるuser.nameはAndroidでは使われないので空になっているが、環境変数という仕組みはもちろんAndroidにも存在するので当てはまる
MSC00-JA
MSC02-JA
MSC03-JA
IDS00-JBコード例ではMS SQL Serverを使った接続例を示しているが、AndroidではSQLiteのDatabaseHelperクラスを使ってDBにアクセスする。
EXP02-JB
EXP03-JB
EXP04-JB
NUM09-JB
NUM10-JB
NUM11-JB
MET06-JB
LCK03-JB
TSM03-JB
SER05-JB
SER11-JB
IDS01-JC
IDS03-JC
IDS11-JC
MET01-JCAndroidでassertを使う場合は、adb shell setprop debug.assert 1かdalvikvm -ea
MET03-JCコード例で使われているSystem.getSecurityManager(); はAndroidでは使われていない。コードの互換性のために存在。
LCK08-JC
FIO14-JCAndroidでは、Activity#finish(), Activity#moveTaskToBack(boolean flag), android.os.Process.killProcess(ind pid), System.exit()
SER04-JC
SEC00-JC
SEC01-JC
SEC02-JC
SEC04-JC
SEC06-JC
SEC07-JC
ENV00-JCAndroidでのコード署名は、開発者の識別、アプリケーション間の信頼関係を確立するため
ENV01-JC
ENV03-JC
ENV04-JCdalvikvm -Xverify:all とかで設定できる
ENV05-JC

作成は、エクセルにコピペしてCSV作成してnkfかましたあとのファイルをこんなスクリプトでサクッと。出力は安心のはてな記法です。

require 'csv'

open("jpcertlist_utf8.csv") do |file|
  file.each_with_index do |aline, idx|
    line = CSV.parse_line(aline)
    if idx == 0
      puts "|*#{line[0].to_s.strip}|*#{line[1].to_s.strip}|*#{line[2].to_s.strip}|"
    else
      url = "https://www.jpcert.or.jp/java-rules/" + line[0].strip.downcase + ".html"
      puts "|[#{url}:title=#{line[0].to_s.strip}]|#{line[1].to_s.strip}|#{line[2].to_s.strip}|"
    end
  end
end

しかし、SJISですらSAN値下がりますね>エクセル

記事を共有

最近人気な記事