特許に見る診断技術

WebアプリのDASTツール(スキャン技術関連)の日本国特許について少し調べました。

面白そうな出願がいくつかあったので下にまとめてみます。

権限周りの診断

特開2020-071637(2018年出願) イエラエセキュリティ/Archaic
特許6636222(2017年出願) 三菱電機

認可制御の自動診断。①と②で違いはあるが、ざっくり以下のようなイメージ。

1. ユーザA,Bそれぞれでログインした状態でサイトを巡回して、それぞれのリクエスト情報を集める。
2. ユーザA,Bのリクエスト情報の差を取り、相互に無いリクエストを抽出する。
 以下のような差があったとする。
 URL1: /order?id=1 -> ユーザAの巡回結果にのみ含まれている
 URL2: /order?id=2 -> ユーザBの巡回結果にのみ含まれている
3. URL1にユーザBのCookieでアクセスしてみる。
 応答をエラー応答等と比較して、脆弱性の疑いを判定する。

②は一般ユーザが特権ユーザ向け機能にアクセスできるかの診断を前提としている。

参照系の権限周りの診断では、あるページに認可制御があるべきか否かを判定する必要がある。本来はページに表示される情報の意味を考慮しないと判定出来ないが、上の2(巡回結果の差分)により簡易的な判定を行なう。

①は今のところ審査請求されていない。②は特許になっている。

②には関連しそうな論文あり。それによると、2つの異なる権限レベルのアカウントで巡回する方法は米国特許(US20170149782A1)にあるらしい。

応答差分解析

上の出願①では、3の応答比較の方法として、共通ワード数、bag-of-words、N-gram、潜在意味解析、WMD、str2vec、編集距離、木構造編集距離等を例示している(知らんものがいくつかある)。

Blind系の診断では、ロジック/テクニカル系にかかわらず、複数の応答間に有意な差があるかを判定する必要がある。その辺の技術について調べてみた。

特許4619867(2005年出願) 三菱電機
特許4193196(2007年出願) ファイブドライブ
特許5522850(2010年出願) KCCS

③⑤は、差分判定の誤りにつながりうる応答内のランダムな部分(例えば広告)等をやりすごすためのもので、③は応答のタグ構造の変化、⑤は正常応答に共通する部分、にそれぞれ着目する。④は主に送信する値に関するもの。

新しい話題ではないだけに最近のものは無さそう。③④は年金未納で抹消、⑤は有効。

その他

特開2010-39613(2008年出願) 個人

名称は「予約語の変更によるSQLインジェクション対策」。スキャン技術とは関係ないが、金床本(懐かしい)の「ONION SELECT」を彷彿とさせる。審査請求されておらず、みなし取下になっている。

特開2019-148917(2018年出願) NTTコミュニケーションズ

DASTツールの結果の精査(正誤判定)を機械学習する。例えば人間による正誤判定結果を教師データとする。うまくいけば、DASTツールの結果を与えると、自動で正誤判定結果が出てくることになる。関連する論文がある(有料)。

まとめ

Webアプリスキャン関連の国内特許出願は余り多くないので、新しい技術を探すためならば、US特許出願や学術論文を見ていった方がいいかもしれない。当然だが、特許より論文の方が情報は多いし読みやすい(加えて大抵の論文は専門家の査読を経る)。