NEC サイバーセキュリティ戦略統括部 セキュリティ技術センターの山本和也です。セキュリティサービス開発のスクラムマスター [1]及びアジャイル開発におけるセキュリティ実装の推進活動を担当しております。今回のセキュリティブログでは、システム開発において採用が増えているローコード/ノーコード開発におけるセキュリティを考えるきっかけとして、OWASP Top 10 Low-Code/No-Code Security Risksを、OWASP Top 10との比較を交えつつ紹介します。
1.ローコード/ノーコード開発が注目される背景
近年、民間企業ならびに行政組織において、デジタルトランスフォーメーション(以下DX)の取り組みが盛んになっています。経済産業省は『DXレポート』[2]や『デジタルトランスフォーメーションを推進するためのガイドライン(DX推進ガイドライン)』[3]の中で、経営戦略だけでなく、システムとしても環境変化に対して柔軟かつスピーディーに対応していくことの必要性を挙げています。また既存システムを取り巻く環境の問題点の一つとして、これまで主流であったスクラッチ開発の多用による独自ノウハウのブラックボックス化なども課題として挙げています。
この課題に対する一つの解決策として、ローコード/ノーコード開発が注目されています。従来のプロコード開発と呼ばれる、プログラミングを主体としてアプリケーション開発を行うスタイルではなく、ツール・サービスを活用し、プログラミングなしでアプリケーションを開発することをノーコード開発と呼び、少しのプログラミングで開発することをローコード開発と呼びます[4]。
(※ ローコード、ノーコードは厳密には異なりますが、本ブログでは以降「ローコード」とまとめて記述します。)
書籍『ローコード革命』[5]では、DXを実現するためには圧倒的なスピードが重要である点、内製化・自社開発の推進、開発の手法の見直しにより組織の在り方の変革を実現するためのツールとしてローコード開発が挙げられています。
日本国内においては、ローコード開発は年々拡大しています。ITRのレポートでは、以下の通り報告されています。[6]
- ローコード/ノーコード開発市場の2020年度の売上金額は515億8,000万円、前年度比24.3%増
- 同市場のCAGR(2020~2025年度)は24.4%を予測
- 内製化による開発コストの大幅な削減にも寄与
ソースコードを書くことを主体としてシステムを開発するプロコード開発と比べて、ローコード開発ではUIの設計は直感的であり、総製造量も少なくなります。また、テストも共通プラットフォームの中で自動化されていくことが期待されています。そうしたときに、ローコード開発によって開発されたシステムのセキュリティについて考慮すべきことは何でしょうか。
2.ローコード開発で活用する機能
セキュリティを考える前に、まずローコード開発で活用する機能群について説明します。
ローコード開発では、共通機能を提供するようなソフトウェア群をサービスとして提供する、ローコードプラットフォームを用いるケースが多いです。
ローコード開発では、例えば以下のような点が期待されています。
- アプリケーションの迅速なプロトタイピング・システム開発
- プログラミングの知識への依存度を下げた開発
- 既存のビジネスアプリケーションとの連携
- 開発したアプリケーションの迅速な提供
これらを実現するために、開発を実施するローコードプラットフォームでは、例えば以下のように、共通的に利用可能な機能群を有しています。(『Gartner Magic Quadrant for Enterprise Low-Code Application Platforms』[7]にて掲載されているいくつかのサービスより抜粋)
(表1: ローコードプラットフォームが有する機能の例)
3.OWASP Top10 Low-Code/No-Code Security Risks
それでは、ローコード開発で考慮されるセキュリティ要素について説明します。
ここでは、ローコード開発において想定されるリスクの参考として、『OWASP Top10 Low-Code/No-Code Security Risks』[8]を紹介します。
本レポートは、OWASP Foundationにおいて、ノーコード/ローコードで開発されたアプリケーションに対するセキュリティソリューションの提供などを行うZenity社 [9]がプロジェクトスポンサーとなっているIncubator Projectで、2022年7月5日に初版がリリースされたものです。ローコード開発プラットフォームにおける顕著なセキュリティリスクや課題、およびそれらの対策例などがTop10の形式でまとめられています。
(表2: OWASP Top 10 Low-Code/No-Code Security Risks)
(Account Impersonation)
(Authorization Misuse)
(Data Leakage and Unexpected Consequences)
(Authentication and Secure Communication Failures)
(Security Misconfiguration)
(Injection Handling Failures)
(Vulnerable and Untrusted Components)
(Data and Secret Handling Failures)
(Asset Management Failures)
(Security Logging and Monitoring Failures)
各項目で想定されている攻撃シナリオの解釈によっては、リスクが存在する箇所は異なると考えますが、代表的な攻撃シナリオを元にそれぞれの項目を模擬的なシステムに対してマッピングした一例が下図になります。
これに対して、Webアプリケーションセキュリティ全般においてより有名で長い歴史を持つOWASP Top 10 [10]と比較します。OWASP Top 10は、Webアプリケーション全般のセキュリティのリスクについてのレポートです。同じくTop 10の形式でリスクに順位付けがされています。初版は2003年に公開されており、以降数年ごとに更新があります。なお、2022年現在の最新版は2021年に公開された「OWASP Top 10 - 2021」です。
(表3: OWASP Top 10 - 2021)
(2017年)
(Broken Access Control)
(Cryptographic Failures)
(Injection)
(Insecure Design)
(Security Misconfiguration)
(Vulnerable and Outdated Components)
(Identification and Authentication Failures)
(Software and Data Integrity Failures)
(Security Logging and Monitoring Failures)
(Server Side Request Forgery(SSRF))
項目ごとの詳細を確認すると、これらはローコード開発のみを対象としたリスクではないため、想定されるケースや防止方法などが多岐に渡りますが、ローコード開発のケースと類似の項目も見られます。
改めて、2つの項目を並べて比較します。
順位付けの基準、及び記述の粒度がそれぞれ異なるため、一概に比較することは難しいですが、いくつか特徴的な差異が伺えます。(本節では以下、それぞれ「ローコードTop10」と「Top10」と表記します。)
① ローコードTop10とTop10で共通と考えられるリスクは、以下の4種類があります(図2のピンクの項目)
・セキュリティ設定のミス
・インジェクション
・脆弱なコンポーネントの使用
・ログの活用
このうち、インジェクションはTop10では3番目ですが、ローコードTop10では6番目となっており差があります。これは、ローコード開発では開発者によるコーディングに起因するインジェクションの発生が抑えられるから、という見方もできると考えています。ローコード開発においてもインジェクションは存在しますが、フォーム自体は共通部品化されております。よって、そのフォームの品質は一定以上に保たれる傾向はあります。逆に、ローコードプラットフォーム自体の品質が低い場合は、インジェクションの可能性は高まるということも考えられます。
② ローコードTop10の1~4位は、ローコードプラットフォーム上で利用するコンポーネントの活用方法や、コンポーネントやサービス間の接続不備に関することです。一方、Top10において同様のリスクは、1位「アクセス制御の不備」、4位「安全が確認されない不安な設計」、7位「識別と認証の失敗」などに分かれて散らばっています。
ローコードプラットフォームは、多くのセキュリティ機能を提供しています。しかし、すべての箇所で自動的に適切な設定が行われるわけではありません。つまり、コードの量が少ないということは、開発スキルが不要ということと同義ではなく、ローコード開発においても、セキュリティに対する設計・テストが必要な点は変わりません。
ローコード開発の特徴である実装の速さが悪い方向に働き、適切な開発プロセスまでもがおろそかになってしまうと、設計フェーズで検討すべきだったセキュリティ要件(この場合では、認証/認可・データフロー設計など)が漏れてしまうケースがあります。表面上のビジネスロジックとしては動作しているように見えるため、セキュリティ上の問題が把握されないままリリースされるケースがリスクとして高い順位で想定されていると考えます。
③ Top10では2位に位置する「暗号化の失敗」については、ローコードTop10ではランク外でした。セキュリティ機能のひとつとして暗号化を備えたローコードプラットフォームは多く、適切に使用することでセキュリティリスクは減らせられるから、と解釈されたと考えられます。
以上、一面的な考察ですが、他にも多数の解釈は出来ると思いますので、是非一度、どういった側面があるかご一考いただけると幸いです。
4.各種認証制度
ローコードプラットフォームを活用すると、ここまで登場したリスクが発生する可能性に関して、コーディングに起因する部分が減らせます。一方で、外からは見えないプラットフォームの中の部分のセキュリティにも気を付ける必要があります。コーディングによって実現していた機能の一部をローコードプラットフォームが有する機能に任せるということは、開発者はユーザに対して、その機能を提供するプラットフォームベンダーのセキュリティのレベルを証明する必要があります。それを支えるのが、一つには各種認証制度です。
有名なローコードプラットフォーム製品が取得している認証には、例えば以下があります。 (『Gartner Magic Quadrant for Enterprise Low-Code Application Platforms』[7]にて掲載されているいくつかのサービスより抜粋)
● ISO/IEC 27000シリーズ (ISO/IEC 27017 , ISO/IEC 27018他)
● SOC報告書( SOC 1 Type II 他)
● Fed RAMP認定
● HIPAA法への準拠
● CSA STAR認証
● DoD影響レベル4
ローコードプラットフォームを選択する際には、開発するシステムが利用される業種やシステムの特徴、サービスとして確保したいセキュリティレベルなどの保証のために、期待する認証を取得しているか、という点は重要になるでしょう。
5.まとめ
DXを推進する中で、新しい開発方式として注目を集めているローコード開発とその活用の際のリスクについて、新たに公開された「OWASP Top 10 Low-Code/No-Code Security Risks」を紹介しました。また既存のOWASP Top 10とリスク項目を比較し、一般的なWebアプリケーションに対するリスクとの違い・特徴について考察しました。
認定を受けたローコードプラットフォームを用いることで、共通部品のセキュリティ品質はプラットフォーム側で担保されるため、セキュリティ実装の効率を改善できる可能性があります。
ローコードプラットフォームの使用に対するリスクとしては、その使い方が不適切(誤用や設定ミス等)で発生することが現時点では重視されているようでした。今回紹介したローコードTop10は、まだ登場したばかりです。今後の更新も期待されることから、ローコード開発の一つの参考としていただければ幸いです。
参考:
[1] What is a Scrum Master?, Scrum.org.
https://www.scrum.org/resources/what-is-a-scrum-master
[2] DXレポート ~ITシステム「2025年の崖」の克服とDXの本格的な展開~,経済産業省
https://www.meti.go.jp/shingikai/mono_info_service/digital_transformation/20180907_report.html
[3] デジタルトランスフォーメーションを推進するためのガイドライン(DX推進ガイドライン)Ver. 1.0, 経済産業省
https://www.meti.go.jp/policy/it_policy/dx/dx_guideline.pdf
[4] 超高速開発の本命 ローコード/ノーコード 最前線
日経クロステック(2021). 日経BP
[5] ローコード革命
篠田ヒロシ (2020). マイナビ出版
[6] ITRがローコード/ノーコード開発市場規規模推移および予測を発表, ITR
https://www.itr.co.jp/company/press/220217pr.html
[7] Gartner Magic Quadrant for Enterprise Low-Code Application Platforms
https://www.gartner.com/en/documents/3991199
[8] OWASP Top 10 Low-Code/No-Code Security Risks
https://owasp.org/www-project-top-10-low-code-no-code-security-risks/
[9] Zenity
https://www.zenity.io/
[10] OWASP Top 10 – 2021
https://owasp.org/Top10/ja/
執筆者プロフィール
山本 和也(やまもと かずや)
セキュリティ技術センター セキュア技術開発グループ
スクラムマスターとしてセキュリティSaaSのアジャイル開発、及びNEC社内外にてアジャイル開発におけるセキュア開発の推進活動に従事。CISSP、CISA、CSM、LSM、LSPO等を保持。NEC将棋部に所属。