セキュリティコミュニティ「WEST-SEC」

セキュリティ初心者の方でも参加できる「わかりやすい」セキュリティイベント、8割解けるCTFを開催しています。

ノーコード、ローコード開発

1. スクラッチ開発の現状

1.1 スクラッチ開発の定義

・コーディングをイチから行うシステム開発
・開発言語・フレームワークを自由に選べる

1.2 スクラッチ開発の限界・デメリット

・開発工数・期間・コストが大きい
・要件変更に弱い(柔軟性に欠ける)
・保守が属人化しやすい

1.3 セキュリティ面の課題

・実装者のセキュリティ知識に依存
・脆弱性(例:SQLインジェクション)が入りやすい
・アップデートや脆弱性対策を自前で対応する必要あり

2. ローコード開発について

2.1 ローコード・ノーコード開発とは

・ローコード:少量のコードで開発できる
・ノーコード:GUI操作で完結、プログラミング不要

2.2 代表的なプラットフォーム

・kintone:業務アプリ構築向け
・Power Platform:Microsoft製。Power Appsなど
・Salesforce:CRM分野に強い
・OutSystems:エンタープライズ向けの大規模対応

2.3 ローコード開発のメリット

・短期間で開発できる
・非エンジニアでも開発可能
・標準的なセキュリティ機能が初めから備わっている

2.4 ローコード開発のデメリット

・本格的な業務アプリには向かない(制約あり)
・JavaScriptなどでカスタマイズ可能だが限界あり

2.5 セキュリティ面のメリット

(1) 初期開発

・標準で認証・認可・監査ログなどの機能あり
・コーディングによる脆弱性が入りにくい

(2) 運用

・パッチ適用やセキュリティ更新はベンダー側で実施
・クラウド・SaaSの前提により安全性・メンテ性が高い

> ※将来的にはSaaSやノーコードでの構築が望ましいという意見もある

2.6 セキュリティ面のデメリット

・脆弱性があっても自力で修正できない(ベンダー依存)
・ISMAPなど組織のセキュリティ基準と合わない可能性あり

以下、落とし穴というテーマで解説があります。
www.nri-secure.co.jp

3.kintoneについて

3.1 kintone概要

(1)会社概要

1997年に創業したサイボウズ株式会社。グループウェア「サイボウズ Office」をはじめとする業務アプリケーションを提供。社名の由来は「サイエンス+ボウズ(坊さん)」。

(2)kintone開発の背景

2011 年、ノンプログラマでも業務アプリを自由に作れるクラウド基盤として「kintone(キントーン)」をリリース。

(3)kintoneの概要

kintoneは、クラウド上で動作するローコード/ノーコード型の業務アプリ開発プラットフォームです。Web ブラウザやモバイルアプリからアクセスでき、フォーム設計からワークフロー、レポート、外部連携まで一気通貫で提供します。プログラミング不要で、部署横断の業務システムを迅速に立ち上げられる点が大きな特長です。

(4)kintoneによるローコード開発の利点

・PIVOTで公開されています。
https://www.youtube.com/watch?v=bidwYxQMd0A

3.2 kintoneの機能概要

(1)機能概要

・機能概要
・実際の操作手順
 たとえば、顧客管理システムを作るにあたり、ユーザ登録から顧客管理、帳票などの出力まで。問合せ管理も同様に、顧客からの問合せ登録、問い合わせをDBで管理、アウトプットまで。

(2)プラグインの例

・以下からプラグインを検索することができる
https://kintone-sol.cybozu.co.jp/integrate/search/
・トヨクモ社のプラグインの場合
(出典:https://contents.kintoneapp.com/tkalp

機能名 詳細
FormBridge Webフォームを作成してkintoneにデータを入力できます。お問い合わせ受付や各種登録フォームなどに最適です。
kViewer 公開したいデータを選んでWebページを作成できます。kintoneユーザーではない組織外の人にも情報共有できます。
kMailer kintone上のアドレス宛に自動でメールを配信します。テンプレートを作成して件名や本文にkintoneの情報を引用できます。
PrintCreator 既存の帳票デザインに、kintoneのデータを引用できます。はがきやラベルなど各種サイズに対応しています。
kBackup kintone上のデータや添付ファイルをバックアップします。人的ミスや災害によるデータ消失に対しても安心です。
(3)プラグインやコード開発の活用

・バックアップを例に考える。BCPの観点では、kintoneとしてバックアップデータを取得している。だが、ユーザが任意のタイミングでバックアップデータから復元するなどはできない。
・kintoneでは、GUIの画面からデータを出力できるので、バックアップを取ることはもちろん可能である。
・「ファイル入出力やAPIで取得できない情報」が以下に記載されている。これは、APIを利用しているプラグインでも同じであろう。
https://cybozu.dev/ja/kintone/tips/best-practices/colum/kintone-backup-and-migration-guide/#information-that-cannot-be-obtained
・ユーザーが任意のタイミングでバックアップを取るには、プラグインを活用する方法がある。たとえば、トヨクモのkBackupがあり、他にも2から3社のバックアップソフトがある。
・または、無料でクライアントツールがあって、CLIでコマンドラインで取ることもできる。

「kintoneコマンドラインツール(cli-kintone)」
https://cybozu.dev/ja/kintone/sdk/backup/cli-kintone/

具体的なバックアップの方法は、以下に記載あり。
https://cybozu.dev/ja/tutorials/hello-cli-kintone/backup/

3.3 kintoneのセキュリティ

・セキュリティ対策状況
・ISMAPの登録
・プラグインのセキュリティ
 以下のYoutubeでは、若干、弱気な発言をしている。
 https://www.youtube.com/watch?v=bidwYxQMd0A
・責任分界点

(出典:https://www.cybozu.com/jp/support/data/cybozucom_boundary.pdf
・参考:開発環境からのデプロイの注意点
https://kintone.cybozu.co.jp/kintone-signpost/guide/development_environment.html

4.ローコード開発のWEST-SECに関して

・8月、9月くらいの平日(火、木、金)、時間は15時~17時(2時間)
・参考
 7/24(木) 19:00〜 フォレンジック解析の全体像と実演
 8/26(火) 19:00〜 8割解けるCTF
・カリキュラム案
## 当日のタイムスケジュール(予定)

項番 時刻 内容 講師
Program0 14:55〜 部屋解放
Program1 15:00〜15:20 ローコード開発の言葉の定義とセキュリティ対策の優位性(概要) WEST-SEC
Program2 15:20〜16:10 KINTONEによるローコード開発
・KINTONE概要
・KINTONEの機能概要
・KINTONEで簡単なアプリを作ってみよう
・KINTONEのセキュリティ機能
・追加機能の実現(プラグイン、ローコード開発)
サイボウズ様
(休憩) 16:10〜16:15    
Program3 16:15〜16:35 ローコード開発のセキュリティについて(詳細) ※調整中
Program4 16:35〜16:45 質疑 、アンケートなど