Coda

論文メモ The Seven Sins: Security Smells in Infrastructure as Code Scripts

March 20, 2020

概要

OSSの調査にもとづき、Infrastrucure as Code(IaC)スクリプトに潜む主要なセキュリティ上の不吉な匂い(Security Smells)を7つ列挙し、これらを検出するツールを実装した論文である。 論文のねらいは、開発者がIaCスクリプトに不吉な匂いを混ぜないようにすることにある。 著者らは、本論文で、ICSE2019のDistinguished Paper Awardを受賞した。

調査方法

第一著者が、Mozilla, Openstack, Wikimedia CommonsのPuppetスクリプトから不吉な匂いにあたる箇所をみつけ、分類した。 分類は共通脆弱性一覧(CWE)の項目と対応関係をとるように配慮されている。 調査したスクリプトは、これらの組織が管理する74のリポジトリの2017年7月30日時点のmasterブランチのものである。 分類は、著者ら以外の2人の評価者によって、CWEとの対応関係があるか確認されている。

The Seven Sins

分類した項目と対応するCWEを表で示す。

|The Seven Sins|CWE|説明| |————–|–|—| |Admin by default|250|デフォルトユーザが管理者権限をもつ| |Empty pasword|258|パスワードが空文字| |hard-coded secret|798|機密情報がハードコードされている| |Invalid IP address binding|284|0.0.0.0をクラウドサービスやDBに割り当てている| |Suspicious comment|546|システムに不足する機能や脆弱性へのコメントがある| |Use of HTTP without TLS|319|TLSを通さずHTTPを使用している| |Use of weak cryptography algorithms|327, 326|脆弱な暗号化アルゴリズムを使用している|

ツールによる検出調査

著者らは分類した不吉な匂いを検出するツールを実装し、ツールにより、Mozilla, Openstack, Wikimedia Commons, GitHub上の293のリポジトリにある15232個のIaCスクリプトに対して、不吉な匂いがないか調査した。 オラクルデータセットによるツールの性能評価では、全ての匂いについてPrecision, recallともに0.95を超えている。 調査結果を次に示す。

table8

感想

ルールベースは比較的単純であり、また、The Seven Sinsは意外性のあるものではないので、多くのリポジトリを調査したことことが受賞につながったように感じた。