発注者が決めないと、作られない
開発会社は、見積もりに書かれたものを作ります。セキュリティの要件が書かれていなければ、最低限の作りになるか、会社ごとにばらばらになります。後から追加すると、作り直しになって費用も期間も増えます。
- IPA「情報セキュリティ10大脅威 2026」: 組織向けの 2 位に「サプライチェーンや委託先を狙った攻撃」、4 位に「システムの脆弱性を悪用した攻撃」が入っている
- 外注しても責任は残る: 開発を任せても、顧客の情報を預かっているのは発注した会社
- 公開後のほうが長い: システムは作った後に何年も使う。その間の更新を誰がするかで安全性が決まる
見積もり依頼に書いておきたい 10 項目
- 1ログインの方法: パスワードの条件、2 段階認証の要否、ログイン試行の回数制限
- 2権限の分け方: 誰が何を見られ、何を変えられるか(管理者・一般社員・取引先など)
- 3扱うデータの種類: 個人情報・決済情報・機密情報を扱うか。扱うなら保存の要否と暗号化
- 4入力された値の検証: 不正な入力(SQL インジェクションなど)への対策を行うこと
- 5通信の暗号化: すべての通信を https にすること
- 6操作の記録(ログ): 誰が・いつ・何をしたかを、どのくらいの期間残すか
- 7脆弱性への対応: 公開前にどんな確認をするか。公開後に部品(ライブラリ)の脆弱性が見つかったときに、誰が・どのくらいで直すか
- 8バックアップと復旧: どのくらいの頻度で取り、どのくらいで戻せるか
- 9再委託: 開発の一部をさらに別の会社に任せるか。任せる場合の条件
- 10事故が起きたときの連絡: 不正アクセスや情報漏洩が疑われたときに、何時間以内に誰へ連絡するか
全部を細かく決める必要はありません。「自社のシステムで当てはまるか」を開発会社と一緒に確認するだけでも、見積もりの精度と安全性が大きく変わります。
公開後の「更新」をどうするか
今のシステムは、多くの外部の部品(ライブラリやフレームワーク)を組み合わせて作られています。その部品に脆弱性が見つかるのは珍しいことではなく、放置すると、作った時点では安全だったシステムも危なくなります。
| 決めること | 例 | 決めていないと |
|---|---|---|
| 誰が更新するか | 保守契約で開発会社が対応 | 誰も更新しないまま何年も使う |
| どのくらいの速さで | 重大な脆弱性は公表から数日以内に対応 | 対応が後回しになり、その間に狙われる |
| 費用の扱い | 月額の保守費に含むか、都度見積もりか | 直すたびに費用の話から始まり、対応が遅れる |
開発会社に聞いてみたいこと
- IPA の「安全なウェブサイトの作り方」にある対策は、どう実装していますか
- 公開前にどんなセキュリティの確認をしていますか
- 使っている部品の脆弱性は、どうやって把握していますか
- 納品後、ソースコードやサーバーの管理者権限は自社でも持てますか
- 保守契約が終わったときに、データとソースコードはどう引き渡されますか
答えの正しさを判断できなくても、具体的に答えられるかどうかで、その会社がセキュリティを普段から考えているかが分かります。
Co-Craft が自社のサービスで実際に行っていること
参考までに、このサイト(Co-Craft の業務システムを含む)で実際に行っている対策を挙げます。
- 画面ごと・処理ごとに権限を確認: 管理画面や管理用の処理は、入口だけでなく処理の直前でも権限を確かめる
- 部品の脆弱性を継続的に確認し更新: 公表された脆弱性に合わせて、使っている部品を更新している
- データベースの毎日のバックアップ: 社外にも複数世代を保存し、定期的に戻せるかを確認している
- お客様向けの秘密のリンクは推測できない値にする: 見積書や請求書のリンクは、番号の連番ではなく長いランダムな値
よくあるご質問
- セキュリティの知識がなくても要件を決められますか?
- 決められます。本記事の 10 項目について「自社のシステムに当てはまるか」「どこまで求めるか」を、開発会社と一緒に確認すれば十分です。専門的な実装方法まで発注者が決める必要はありません。
- セキュリティ対策を入れると費用は上がりますか?
- 最初から要件に入れておけば、設計の中で対応できる部分が多く、大きな上乗せにならないことがほとんどです。後から追加すると作り直しが発生し、かえって高くつきます。
- 小さな社内ツールでも同じように考えるべきですか?
- 扱うデータの重さに合わせて調整すれば大丈夫です。社内の数人だけが使い、個人情報を扱わないツールなら、ログインと権限、バックアップ、更新の 3 つを押さえれば十分なことが多いです。
- 納品後のセキュリティは誰の責任ですか?
- 契約で決めた範囲によります。保守契約が無い場合、更新は発注者側の責任になるのが一般的です。誰が更新を行うかを、発注の時点で必ず決めておきましょう。
- 脆弱性診断は必要ですか?
- 個人情報や決済を扱うシステムでは、専門の会社による診断を検討する価値があります。扱うデータが少ない小さなツールなら、まずは開発会社が行う公開前の確認内容を聞いて、足りるかを判断するのが現実的です。
1
2
3
4
5
関連ページ
