その他
    ホーム 技術発信 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値下がりますね>エクセル

    記事を共有
    モバイルバージョンを終了