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は意外性のあるものではないので、多くのリポジトリを調査したことことが受賞につながったように感じた。