開発者向け
ユーザブルセキュリティ研究の動向
2022/10/24 ユーザブルセキュリティワークショップ
⽇本電信電話株式会社 社会情報研究所

⾦井 ⽂宏

⾃⼰紹介︓⾦井 ⽂宏（Fumihiro Kanei）• 所属/役職• 2015年 ⽇本電信電話株式会社 ⼊社• 社会情報研究所 所属 （研究員）• 研究分野• ユーザブルセキュリティ› 開発者向けユーザブルセキュリティ
CSS2020 最優秀論⽂賞, ACSAC2021 採択• モバイルセキュリティ• 出⾝⼤学• 横浜国⽴⼤学
修⼠: 2015卒, 博⼠: 2021卒

Copyright 2022 NTT CORPORATION› Androidアプリ/マルウェアの解析• Webセキュリティ› 広告不正検知1

本⽇の内容• 開発者向けユーザブルセキュリティ研究の概要• 主な研究トピック• 開発者向けユーザ調査を⾏うにあたって

Copyright 2022 NTT CORPORATION

2

本⽇の内容• 開発者向けユーザブルセキュリティ研究の概要• 主な研究トピック• 開発者向けユーザ調査を⾏うにあたって

Copyright 2022 NTT CORPORATION

3

開発者向けユーザブルセキュリティ研究とは︖• ユーザブルセキュリティ研究︓• ⼈間的側⾯からセキュリティ技術を検討する研究分野• ユーザ属性とコンテキストの組み合わせによる様々な検討領域が存在
⾮専⾨家（Non-expert）

開発者向けユーザブルセキュリティ研究専⾨家（Expert）

ユーザブルセキュリティ研究のうち、対象とするユーザ属性として開発者に着目した研究領域

エンドユーザ など

ソフトウェア開発者
システム管理者
SOCアナリスト
CISO など

Copyright 2022 NTT CORPORATION

4

なぜ「開発者」に着⽬する必要があるか︖• システムの設計・実装段階でセキュリティ対策を講じる事で脆弱性に起因する被害を未然に防ぎたい• 性能的に優れたセキュリティ技術でも現場の開発者視点で効果や利便性が⾼くないと活⽤は困難• 例︓とても⾼精度な脆弱性検査ツールらしいけど、ウチの環境だと導⼊しづらい...
どれくらい効果があるかわからないから導⼊判断が難しい...

開発者の認識/行動を分析し理解することで、開発者にとって利用しやすいセキュリティ対策技術を創出したいCopyright 2022 NTT CORPORATION

5論⽂数から⾒る
開発者向けユーザブルセキュリティ研究
開発者向けユーザブルセキュリティ研究に関する論⽂件数*

SOUPSにおける開発者向け
ユーザブルセキュリティ論⽂
SOUPSʼ22, SOUPSʼ21のDistinguished paper awardが開発者向けユーザブル研究

2016年頃から急速に論⽂件数が増加

近年のSOUPS論⽂における1〜2割が開発者向けユーザブルセキュリティ研究*参考元：Mokhberi et al. SoK : Human , Organizational , and Technological Dimensions of Developers ’ Challenges in Engineering Secure Software, （EuroUSEC’21）
Kaur et al. Where to Recruit for Security Development Studies: Comparing Six Software Developer Samples, （SEC’21）
Tahaei et al. A Survey on Developer-Centred Security,（EuroUSECʼ19）
Copyright 2022 NTT CORPORATION

6

国際会議ごとに⾒てみると…
国際会議 / 論⽂誌ごとの開発者向け
ユーザブルセキュリティ論⽂の発表件数*• ソフトウェア⼯学分野でもユーザブルセキュリティに関連する論⽂が増加中• ICSE, ESEC/FSE, ASE（SW⼯学分野Tier1会議）で、数年前からHCIのセッションが新設• IEEE SecDev が2016年から開始• セキュアなシステム開発に関する研究に特化した国際会議※2007年-2020年に発表された論⽂が集計対象*参考元：Mokhberi et al. SoK : Human , Organizational , and Technological Dimensions of Developers ’ Challenges in Engineering Secure Software, （EuroUSEC’21）
Kaur et al. Where to Recruit for Security Development Studies: Comparing Six Software Developer Samples, （SEC’21）
Tahaei et al. A Survey on Developer-Centred Security,（EuroUSECʼ19）
Copyright 2022 NTT CORPORATION

7

本⽇の内容• 開発者向けユーザブルセキュリティ研究の概要• 主な研究トピック• 開発者向けユーザ調査を⾏うにあたって

Copyright 2022 NTT CORPORATION

8

開発者向けユーザブルセキュリティ研究︓

主な研究トピック• 開発プロセスの理解 / セキュリティ阻害要因の特定• 暗号API / 静的解析ツール• 開発者が参照する情報とセキュリティ

Copyright 2022 NTT CORPORATION

9主な研究トピック︓

開発プロセスの理解 / セキュリティ阻害要因の特定• 開発者がセキュアな開発を⾏うためのプロセスの理解や、セキュアな開発を妨げている要因の特定を⽬的に、開発者の認識・⾏動を調査する研究• 研究例• 開発時のセキュリティ実践内容とベストプラクティスの乖離を分析（SOUPSʼ18）• セキュア開発を⾏うモチベーション・戦略・阻害要因を調査（CHIʼ19）• デベロッパ/マネージャ双⽅の視点からセキュア開発を妨げる要因を調査（ACSACʼ21）•Ethnographic studyにより開発現場でセキュリティの⽂化が形成されていくプロセスを分析（SOUPS’21） ※Distinguished paper award

Assal et al. Security in the Software Development Lifecycle（SOUPS’18）
Assal et al. “Think secure from the beginning”: A Survey with Software Developers（CHI’19）
Kanei et al. A Cross-role and Bi-national Analysis on Security Efforts and Constraints of Software Development Projects (ACSAC’21)
Tuladhar et al. An analysis of the role of situated learning in starting a security culture in a software company (SOUPS’21)
Copyright 2022 NTT CORPORATION

10

開発プロセスの理解 / セキュリティ阻害要因の特定

論⽂紹介︓ セキュア開発の阻害要因（ACSAC’21）• デベロッパ/マネージャ双⽅に対するアンケート調査により、セキュア開発を妨げる要因を定量的に調査・⽐較

Manager (N =162) * w/sig diff (p<.05)
Developer (N=149) **w/sig diff (p<.05)

セキュリティ阻害要因に対する回答のスコア
全く同意できない (-2) -強く同意できる (+2)

セキュリティ対策 [E1-E15] の実施状況に関する質問に「分からない（Not sure）」と回答した参加者の割合⇛ デベロッパ/マネージャの間にセキュリティに対する認識・⾏動のギャップが存在
e.g., デベロッパには意思決定権が無い など

Kanei et al. A Cross-role and Bi-national Analysis on Security Efforts and Constraints of Software Development Projects (ACSAC’21)

Copyright 2022 NTT CORPORATION

11セキュア開発の実践を妨げる要因の例• 開発者の課題• 組織の課題• スキル・経験の不⾜• リソース不⾜（時間、予算、⼈）• セキュリティに対する誤解・楽観• セキュリティ⽂化の⽋如• 機能実装を優先（セキュリティは⾮機能要件）• ガイドライン/ポリシーの⽋如• 管理/経営層の理解・サポート不⾜• 技術の課題• 暗号API/ライブラリの誤った利⽤• 利⽤しやすい脆弱性検査ツールの⽋如• チーム間のコミュニケーション

他にどのような課題があるか︖
調査が不⼗分な領域は︖

参考︓Mokhberi et al. SoK : Human , Organizational , and Technological Dimensions of Developers ʼ Challenges in Engineering Secure
Software (EuroUSECʼ21)
Copyright 2022 NTT CORPORATION

12主な研究トピック︓

暗号API / 静的解析ツール• 開発者が利⽤する暗号API、静的解析ツールなどソフトウェアのセキュリティに関わる各種ツール/技術のユーザビリティに着⽬した研究• 研究例• Pythonの有名な暗号化ライブラリ５種のユーザビリティ評価 (S&P17)• 暗号APIの適切な利⽤⽅法に関するアドバイスを提⽰する環境を提案し評価（SOUPSʼ18）• 静的解析ツール（Clang SA, Libfuzzer）のユーザビリティを評価（SOUPSʼ21）• 静的解析ツールの出⼒内容が脆弱性を修正する上でどれくらい効果的か調査（CHIʼ21）

Acar et al. Comparing the Usability of Cryptographic APIs (S&P17)
Gorski et al. Developers Deserve Security Warnings, Too: On the Effect of Integrated Security Advice on Cryptographic API Misuse (SOUP’18)
Plöger et al. A Qualitative Usability Evaluation of the Clang Static Analyzer and libFuzzer with CS Students and CTF Players (SOUPS’21)
Tahaei et al. Security Notifications in Static Analysis Tools: Developers’ Attitudes, Comprehension, and Ability to Act on Them (CHI’21)
Copyright 2022 NTT CORPORATION

13

暗号API / 静的解析ツール︓

論⽂紹介︓暗号APIのデザイン（SOUPS’18)• 暗号APIを正しく利⽤するために効果的なセキュリティアドバイス表⽰を検討• 暗号APIの誤った利⽤を検知し、利⽤⽅法に関する効果的なセキュリティアドバイスを表⽰する開発環境を提案• 提案環境により正しく暗号APIを利⽤できる開発者の割合が有意に増加（26%→50%）

セキュアに実装するためのサンプルコード

参考情報のリンク

Gorski et al. Developers Deserve Security Warnings, Too: On the Effect of Integrated
Security Advice on Cryptographic API Misuse (SOUP'18)
Copyright 2022 NTT CORPORATION

セキュリティアドバイスの例

14

暗号API / 静的解析ツール︓

論⽂紹介︓静的解析ツールの出⼒内容 (CHI’21)• 既存の静的解析ツールの出⼒内容が、脆弱性を修正する上でどれくらい効果的であるかを調査
静的解析ツールにより正答率は• 静的解析ツールの出⼒を⾒た場合/⾒なかった場合に、脆弱なサンプルコードを正しく修正できるか⽐較全体的に向上するが、統計的に有意な変化は⼀部のみ• 静的解析ツールの出⼒を⾒ても67%〜86%の開発者が少なくとも1つ以上のサンプルコードの修正⽅法を誤って回答した⇛ 出⼒内容の⾒せ⽅に改善の余地あり
e.g., フレーズ選び、情報の構造化 など
Data exposure
Tahaei et al. Security Notifications in Static Analysis Tools: Developers’
Attitudes, Comprehension, and Ability to Act on Them (CHI’21)
Copyright 2022 NTT CORPORATION

Encryption

HC credentials

SQL injection

脆弱性の修正⽅法を正しく回答できた参加者の割合
15主な研究トピック︓

開発者が参照する情報とセキュリティ• 開発者が参照する情報の安全性（＝それらを参照するとソフトウェアがどれくらい安全に/脆弱になりやすいか）に着⽬した研究• 研究例• 開発者が参照する情報ソースとソフトウェアの機能性/安全性の関係を調査（S&Pʼ16）• Stack Overflow上のスニペットに警告ナッジを表⽰するシステムを提案し評価（SECʼ19）• Web検索で脆弱なスニペットを表⽰されにくくするランク付け⼿法を提案し評価（CCSʼ21）• 開発者にとって利⽤しやすくかつ安全な情報を提⽰するシステムLetʼs Hashを提案し評価（SOUPSʼ22） ※Distinguished paper award
Acar et al. You Get Where You’re Looking For The Impact of Information Sources on Code Security（S&P’16）
Fischer et al. Stack Overflow Considered Helpful ! Deep Learning Security Nudges Towards Stronger Cryptography (SECʼ19)
Fischer et al. The Effect of Google Search on Software Security: Unobtrusive Security Interventions via Content Re-ranking (CCS’21)
Geierhaas et al. Letʼs Hash: Helping Developers with Password Security (SOUPSʼ22)
Copyright 2022 NTT CORPORATION16

開発者が参照する情報とセキュリティ︓

論⽂紹介︓情報ソースの⽐較 （S&P’16）• 参照する情報ソースを制限した状態で参加者にプログラミングタスクを⾏ってもらう
ラボ実験を実施•

情報ソース︓公式ドキュメント, 書籍,
Stack Overflow, ⾃由（何でも可）• 成果物の機能性/安全性を⽐較•

Stack Overflowを参照すると機能的に正しく実装しやすい反⾯、脆弱になりやすい•

公式ドキュメントを参照すると安全に実装しやすい反⾯、機能的に正しく実装しにくい⇛ 公式ドキュメントのユーザビリティ向上が必要

機能を正しく実装できた参加者の割合（上）と機能を安全に実装できた参加者の割合（下）Acar et al. You Get Where You’re Looking For The Impact of Information Sources on Code Security（S&P’16）
Copyright 2022 NTT CORPORATION

17

開発者が参照する情報とセキュリティ︓

論⽂紹介︓適切な情報選択の補助（SEC’19）• Stack Overflow上のコードスニペットに対して安全性に関するナッジ（警告）を付与するシステムを提案し評価

Stack Overflowのスニペット上に表⽰されるナッジ•

スニペットが Secure orInsecure どちらかを機械学習ベースの⼿法で判定（AUC-ROC: 0.992）•

判定結果に基づき、StackOverﬂow上のスニペットにナッジを表⽰•

当該システムを利⽤することでセキュアに機能を実装できる開発者の割合が有意に増加

Fischer et al. Stack Overflow Considered Helpful ! Deep Learning Security Nudges Towards Stronger Cryptography (SECʼ19)
Copyright 2022 NTT CORPORATION

18

開発者が参照する情報とセキュリティ︓

論⽂紹介︓ 安全かつ利⽤しやすい開発リソース（SOUPS’22）※Distinguished paper award• パスワードに関する機能をセキュアに実装可能かつ Ready-to-Useなスニペットを提⽰するシステム Letʼs Hash を提案• デザインのコンセプト︓「Stack Overflowのように簡単に使えて公式ドキュメントのように安全に実装可能」• Letʼs Hashを利⽤することで、セキュアにパスワード機能を実装できる確率が有意に増加（5倍〜32倍）
Geierhaas et al. Letʼs Hash: Helping Developers with Password Security (SOUPSʼ22)
Copyright 2022 NTT CORPORATION

プログラミングタスクにおいてセキュアな実装ができた開発者の割合
19開発者が参照する情報とセキュリティ︓

論⽂紹介︓ 安全かつ利⽤しやすい開発リソース（SOUPS’22）※Distinguished paper award

1. 実装したい機能に関する質問を提⽰
2. Ready-to-useなスニペットを表⽰
Geierhaas et al. Letʼs Hash: Helping Developers with Password Security (SOUPSʼ22)
Copyright 2022 NTT CORPORATION

20

開発者向けユーザブルセキュリティ研究︓

その他の研究トピック• Security Champions / Advocates （e.g., セキュリティ提唱者への質的調査）•Haney et al. "Itʼs Scary. . . Itʼs Confusing. . . Itʼs Dull": How Cybersecurity Advocates Overcome Negative
Perceptions of Security (SOUPSʼ18)•Tahaei et al. Privacy Champions in Software Teams: Understanding Their Motivations, Strategies, andChallenges (CHIʼ21)• 開発者の教育/啓発（e.g., セキュア開発に関する効率的な教育⽅法を提案/評価）•Weir et al. Light-Touch interventions to improve software development security (SecDevʼ18)•Weir et al. Interventions for Software Security: Creating a Lightweight Program of Assurance Techniques
for Developers（ICSE-SEIPʼ19）

本⽇ご紹介した以外にも開発者向けユーザブルセキュリティに関する様々なトピックが研究されていますので、冒頭にご紹介した国際会議の論⽂を是⾮チェックしてみて下さい
Copyright 2022 NTT CORPORATION

21

本⽇の内容• 開発者向けユーザブルセキュリティ研究の概要• 代表的な研究トピック• 開発者向けユーザ調査を⾏うにあたって

Copyright 2022 NTT CORPORATION

22

開発者向けユーザ調査における注意点• エンドユーザ向けユーザ調査における基本的な注意点は開発者を調査対象にした場合でも同様• 適切な属性を持つ参加者の選定• 実験環境の⼀定化• 不良回答への対応• 各種バイアスの軽減• Ecological Validity• 倫理的配慮

Copyright 2022 NTT CORPORATIONなど

23

開発者向けユーザ調査における注意点︓

適切な属性を持つ参加者の選定• 開発者向けユーザ調査では開発者特有のユーザ属性も考慮した調査設計/参加者募集が必要
⼀般的なユーザ属性の例

開発者特有のユーザ属性の例• 年齢• ⽴場︓プロ, フリーランス, 学⽣• 性別• プログラミングスキルの有無• ⺟国語• 役職︓デベロッパ、マネージャ...

• 教育的バックグラウンド• 業務内容︓実装、テスト...

• ハンディキャップ

• 所属企業︓⼤企業、中⼩企業など

例えば下記のような調査設計は Ecological Validityに問題があるとされる•

プロ向けの開発サポートツールの評価に⼤学⽣を募集

Copyright 2022 NTT CORPORATION

24

開発者向けユーザ調査における注意点︓

開発者のリクルーティング• ⼀般的にエンドユーザと⽐較して開発者のリクルーティングは難しい• スキルのある参加者を募集しづらい、コンタクト先が少ない、費⽤がかかりやすい、など• 既存研究で⽤いられている開発者のリクルーティング⽅法 [SECʼ22]• 研究者のコネクション活⽤（e.g., 個⼈的な連絡先、スノーボールサンプリング、MLでのCS学⽣募集）• 有料サービス（e.g., Prolific, Upwork, Freelancer）• ソーシャルメディア（e.g., Twitter, Facebook Groups）• オンラインフォーラム/ブログ (e.g., Reddit)• ネットワーキング（e.g., LinkedIn）• メール募集（e.g., Github, Google Play）（過去にやってる研究はあるが）GitHubやGoogle Play 経由の開発者の募集はサービスの利⽤規約違反のため
⾮推奨 [CHIʼ22]

Tahaei et al. Recruiting Participants With Programming Skills: A Comparison of Four Crowdsourcing Platforms and a CS Student Mailing List (CHIʼ22)
Kaur et al. Where to Recruit for Security Development Studies from: Comparing Six Software Developer Samples (SEC’22)
Copyright 2022 NTT CORPORATION

25

開発者のリクルーティング︓

論⽂紹介︓開発者のスクリーニング (ICSE’21)• プログラミングスキルがある開発者を募集するためのスクリーニング質問を設計main{print(func(”hello world”))}• 提案されたスクリーニング質問により、以下の参加者を区別できるか評価

String func(String in){を提⽰
int x = len(in)String out = “”for (int i = x -1; i >= 0; i--){out.append(in[i])}return out}

1. プログラミングの講義を受けた学⽣ + ⼤学教授
＝ プログラミングスキルのある⼈
2. ⾏動経済学科の学⽣（プログラミング経験無し）＋ Clickworker で開発経験無しと申告している⼈= プログラミングスキルのない⼈⇛ 1と2のグループ間で正答率に有意な差が⾒られた

Q. What is the parameter of the function?
• String out• String inプログラミングスキルの• I don’t know
ある⼈であれば正解を選択• int i = x-1; i>=0; i-できるような質問を実施• Outputting a String• int x = len(in)提案されたスクリーニング質問（⼀部抜粋）Danilova et al. Do you really code? Designing and Evaluating Screening Questions for Online Surveys with Programmers (ICSEʼ21)

Copyright 2022 NTT CORPORATION

簡単なコード例

26

開発者のリクルーティング︓

論⽂紹介︓募集チャネルの⽐較 (SEC’22, CHI’22)• 開発者の募集チャネルごとに集まった参加者の開発経験・スキル、セキュリティ意識等がどのように異なるか⽐較
CHI’22
比較対象

推奨する
開発者の募集方法

••
•

MTurk
ProlificAppen•

少人数の調査の場合⇛ CS学生の募集を検討すべき
大規模調査の場合⇛ Prolific での募集を検討すべき•••

Clickworker
CS学生

SEC’22•••

MTurk
ProlificUpwork•

少人数調査の場合⇛ Upworkでの募集を検討すべき
大規模調査の場合⇛ MTurkでの募集を検討すべき••••

Freelancer
Google PlayCS学生※ 両論⽂で実験設定や⽐較内容、推奨される募集⽅法が異なるので、両論⽂を熟読の上、⾃⾝の研究におけるRQ / 仮説などを踏まえて募集⽅法を決定する事を推奨します
Tahaei et al. Recruiting Participants With Programming Skills: A Comparison of Four Crowdsourcing Platforms and a CS Student Mailing List (CHIʼ22)
Kaur et al. Where to Recruit for Security Development Studies from: Comparing Six Software Developer Samples (SEC’22)
Copyright 2022 NTT CORPORATION

27

開発者向けユーザ調査の⽅法論︓

調査設計にあたってその他に参考にすべき研究• プログラミングタスクの説明を⾏う際の様々なDeception（e.g., 本来の実験⽬的を伝えるかどうか、タスクの依頼元を詐称するかどうか, etc.）が実験結果に与える影響を分析（CCSʼ17, SOUPSʼ18, CHIʼ19）• セキュア開発に関する⾃⼰効⼒感（＝⾃分がどれくらいセキュアにソフトウェアを開発できると思うか）を図る指標SSD-SESを提案（CHIʼ20）• オンラインでプログラミングタスク等のラボ実験を⾏うためのプラットフォームを提案（SOUPSʼ22）

既存研究を参考に確⽴された実績のある⽅法を採⽤すべき（我流はNG）
Naiakshina et al. Why Do Developers Get Password Storage Wrong? A Qualitative Usability Study (CCS’17)
Naiakshina et al. Deception Task Design in Developer Password Studies: Exploring a Student Sample (SOUPS’18)
Naiakshina et al. "If you want, I can store the encrypted password": A Password-Storage Field Study with Freelance Developers (CHI’19)
Votipka et al. Building and Validating a Scale for Secure Software Development Self-Efficacy (CHI’20)
Huaman et al. If You Can ’ t Get Them to the Lab : Evaluating a Virtual Study Environment with Security Information Workers (SOUPS’22)
Copyright 2022 NTT CORPORATION

28

まとめ
• 開発者向けユーザブルセキュリティは、脆弱性に起因する被害の防⽌に向けた重要かつホットな研究分野• 開発者向けユーザブルセキュリティにける主な研究トピック• 開発プロセスの理解 / セキュリティ阻害要因の特定• 暗号API / 静的解析ツール• 開発者が参照する情報とセキュリティ• 開発者向けユーザ調査の際には開発者独⾃のユーザ属性を考慮すべき• 既存研究を参考に確⽴された実績のある⽅法を採⽤すべき
Copyright 2022 NTT CORPORATION

29