# LCNC-SEC-09: 資産管理の不備

### リスク評価 [\*](https://owasp.org/www-project-top-ten/2017/Note_About_Risks)

| 普及度 | 検出難易度 | 悪用難易度 | 技術的影響 |
| --- | ----- | ----- | ----- |
| 3   | 2     | 3     | 2     |

### 要旨

ローコード/ノーコード開発の目的は、誰でも簡単に、比較的低いメンテナンスコストで作成できるようにすることです。 これはまた残念なことに、これによりアプリがまだアクティブな状態でありながら放置されがちです。 さらに、内部アプリケーションは使用量が拡大するにつれてビジネス継続性の懸念に対処することなく、急速に普及する可能性があります。

### ビジネスユーザーへの説明

組織内のアプリケーションのインベントリを明確に保つことは、健全なエコシステムを維持するために非常に重要です。LCNC アプリケーションは迅速かつ容易に開発できるため、どのようなアプリケーションが存在するか、どのように保守するか、誰が「所有」しているかを追跡することが困難になります。

### 説明

新しいアプリケーションの作成が簡単であること、メンテナンスコストが比較的低いこと、SaaS サービスで管理されることが多いことなどが要因として挙げられます。 このため、組織内のアクティブなアプリケーションの数は急激に増加する傾向にあり、人気のあるビジネスアプリケーションが所有者不在の状態になることがよくあります。

さらに、大規模な組織では有用な内部のビジネスアプリケーションのバイラルな性質により、一人のビジネスユーザーが開発したアプリケーションが組織全体で多くのユーザーによって信頼されることになります。 ローコード/ノーコード開発は重要なビジネスアプリケーションに期待されるビジネス継続性の対策、例えば、複数の所有者がいる、IT によって監視されている、SLA を提供しているなど、を欠いている可能性があります。

### 攻撃シナリオの例

#### シナリオ #1

ある開発者が作成したアプリケーションが社内ツールとして普及しました。 その開発者が組織を去ったり、別の役職に移ったりします。 API の変更によりアプリケーションが動かなくなり、業務に支障をきたすようになりました。 IT 部門はそのアプリに気づいておらず、アプリを修正して生産性を維持することができません。

#### シナリオ #2

ある開発者はそのプラットフォームのマーケットプレイスを閲覧し、アプリケーションテンプレートを探します。 クリックするたびに外部向け URL を伴うアプリが作成されます。 これらのアプリはビジネスデータを公開する可能性があるにもかかわらず、ユーザーはそのことを忘れてしまいます。 このシナリオは開発者数の増加に伴い、古くなったアプリの数は増え続けていきます。

### 攻撃と悪用のシナリオの例 - ビジネスユーザー

#### シナリオ #1

ある開発者はネットワーク上の場所から金融システムにデータをロードして注文処理を完了する自動プロセスを構築しました。マネージャはプロセスが実行されていないと警告されました。その開発者は現在別の会社で働いており、ドキュメントを残していません。すぐに修正すべきものに数週間かかり、トランザクションを手作業で処理するために数千時間もの時間外労働が発生します。

#### シナリオ #2

セキュリティチームは一人のユーザーによって複数のレコードを同時に保存するために、あるアカウントが使用されていることに気付きました。このパターンは脆弱性の一つ ([LCNC-SEC-01 アカウントのなりすまし](lcnc-sec-01-account-impersonation)) が発生した可能性があることを示しています。セキュリティチームはアプリケーションを特定して個々のユーザーの認証情報へのアクションを記録するための変更を実装したいと考えています。インベントリ管理が不十分なため、IT 部門はどのアプリケーションがこの問題を引き起こしているのか特定できず、そのため適切な変更を実施できません。

#### シナリオ #3

セキュリティチームはすべてのアプリケーションの脆弱性テストを計画しています。インベントリ管理が不十分なため、LCNC が開発したアプリケーションのいくつかがこのテストで見落とされています。これらのアプリケーションには脆弱性があり、後にデータ侵害につながりました。セキュリティチームがアプリケーションをテストできていれば、この侵害は防げたはずです。

### 防止方法

* アプリケーション、コンポーネント、ユーザーをリストアップした包括的なインベントリを保守する。
* 未使用の依存関係、不要な機能、コンポーネント、ファイル、ドキュメントを削除または無効にする。

### 参考資料

* [3 Ways No-Code Developers Can Shoot Themselves in the Foot](https://www.darkreading.com/dr-tech/3-ways-no-code-developers-can-shoot-themselves-in-the-foot)
* [Why So Many Security Experts Are Concerned About Low-Code/No-Code Apps](https://www.darkreading.com/dr-tech/why-so-many-security-experts-are-concerned-about-low-code-no-code-apps)
* [You Can't Opt Out of Citizen Development](https://www.darkreading.com/edge-articles/you-can-t-opt-out-of-citizen-development)
