小規模な社内Webアプリのセキュリティ|発注前に最低限確認すべきこと

「社内の数人しか使わない小さなツールだから、セキュリティはそれほど気にしなくてよいだろう」。そう考えてしまいがちですが、インターネット上で動くWebアプリである以上、規模にかかわらず外部から見つけられ、攻撃を受ける可能性があります。技術的な詳細は開発会社の領域ですが、発注者として最低限確認しておきたい項目を、非エンジニア向けに整理します。

発注前に確認したい7つの項目

1. ログインの仕組み

パスワードが安全な形で保存されるか、パスワードを忘れたときの再設定の方法は安全か、同じパスワードで何度も試されたときの対策があるか。重要な情報を扱う場合は、二段階認証などの追加の対策も検討します。

2. 権限

ログインした人が、見てよい情報だけを見られるようになっているか。画面に表示しないだけでなく、仕組みの裏側でも制御されているかが重要です。権限の考え方は社内ツールの権限設計で解説しています。

3. 通信の暗号化

ブラウザとサーバーの間の通信が暗号化されているか(URLが「https」で始まるか)。現在では基本となる対策ですが、確認しておきましょう。

4. 入力された値の扱い

フォームなどから入力された値を悪用して、データを盗んだり、画面に不正な内容を表示させたりする攻撃があります。入力された値を安全に扱う作りになっているかを確認します。

5. 更新への対応

Webアプリは多くの部品(ライブラリやフレームワーク)を組み合わせて作られています。部品に弱点が見つかったときに更新できる体制があるか、公開後の保守の中で対応するかを確認します。

6. バックアップ

データが定期的にバックアップされているか、障害や誤操作があったときに戻せるか、戻す手順は確認されているか。

7. 操作の記録

誰が、いつ、どのデータにアクセスし、何を変更したかを後から確認できるか。問題が起きたときの調査に役立ちます。

発注前のチェックリスト

  • パスワードの保存方法と、再設定の仕組みを説明してもらった
  • 権限の制御が、画面だけでなく仕組みの裏側でも行われることを確認した
  • 通信が暗号化されることを確認した
  • 入力された値の扱いについて、どう対策しているかを説明してもらった
  • 公開後の部品の更新を、誰がどのように行うか決めた
  • バックアップの頻度、保管場所、戻す手順を確認した
  • 操作の記録をどこまで残すか決めた

すべてを発注者が理解する必要はありません。大切なのは、それぞれの項目について「どう対策しているか」を開発会社に説明してもらい、納得できるかを確認することです。専門用語ばかりで分かりやすく説明してもらえない場合は、遠慮なく質問しましょう。

運用の中で守ること

セキュリティは、作るときの対策だけでは完結しません。公開後の運用の中で、発注者側が守るべきこともあります。

運用の項目発注者が行うこと
アカウントの管理退職者・異動者のアカウントを速やかに停止する
パスワード使い回しを避け、共有アカウントを作らない
管理者の権限管理者の権限を持つ人を必要最小限にする
データの書き出し顧客情報などの出力ファイルの扱いを社内で決める
更新と保守部品の更新や保守の方針を、開発会社と決めて実行する

保守の範囲と費用については小規模Webアプリの保守・運用費はどう考える?で解説しています。

参考にできる公的な情報

Webアプリのセキュリティについては、独立行政法人 情報処理推進機構(IPA)がWebサイトの安全な作り方に関する資料を公開しています。発注者が開発会社と対策を確認する際の参考にもなります。内容は更新されることがあるため、最新の版を確認してください。

扱う情報が重要な場合は

多くの個人情報を扱う、取引先から特定の対策を求められている、といった場合は、専門の会社によるセキュリティ診断や、社内の情報セキュリティ規程との照らし合わせも検討してください。必要な対策の水準は、扱う情報と事業の状況によって異なります。

開発会社への質問の仕方

セキュリティについて開発会社に確認するとき、専門的な知識がなくても、次のように質問すれば、対策の考え方を説明してもらえます。

確認したいこと質問の例
ログインパスワードはどのように保存されますか。何度も間違えたときはどうなりますか
権限担当者が、権限のない情報を見られないことは、どのように確認しますか
更新使っている部品に問題が見つかったとき、誰がどのように対応しますか
バックアップデータはどのくらいの頻度で保存され、戻すときはどうしますか
障害時システムが止まったとき、どのように連絡し、対応しますか

答えの内容だけでなく、分かりやすく説明しようとしてくれるかどうかも、依頼先を判断する材料になります。

秘密情報の扱いにも注意する

Webアプリを動かすには、外部サービスのパスワードや鍵など、秘密にすべき情報がいくつも使われます。これらの扱いも、発注者として確認しておきたい点です。

  • 秘密の情報がソースコードの中に直接書かれていないか
  • 秘密の情報を知っている人、管理している場所はどこか
  • 開発会社との契約が終わるときに、パスワードや鍵を変更する手順があるか
  • 社内でパスワードをメールやチャットでそのまま送っていないか

こうした情報が漏れると、システムそのものに問題がなくても、外部から不正に利用されるおそれがあります。

完璧を目指すより、基本を確実に

小規模な社内ツールでは、高度な対策より、ここで挙げた基本の対策を確実に行い、運用の中で守り続けることのほうが重要です。

アカウントや秘密の情報を自社で管理できる状態にしておく方法は、外注したシステムを自社で持ち続けるためにで解説しています。

Tailboneの取り組み

Tailboneでは、業務用Webアプリや社内ツールの開発にあたり、扱う情報の重要度や利用者の範囲を伺ったうえで、ログイン、権限、通信の暗号化、バックアップなどの基本的な対策をどう行うかをご説明しています。社内のセキュリティ規程などの前提条件があれば、最初にお伝えください。

よくあるご質問

社内の人しか使わないツールでも、セキュリティ対策は必要ですか?

必要です。社内向けであっても、インターネット上に公開されたWebアプリは、外部から見つけられ、攻撃を受ける可能性があります。社内のネットワークからしか使えないようにする方法もありますが、その場合も基本的な対策は必要です。

二段階認証は入れたほうがよいですか?

扱う情報の重要度と、利用者の負担のバランスで判断します。顧客の個人情報や金額などの重要な情報を扱う場合、特に管理者のアカウントについては、二段階認証などの追加の対策を検討する価値があります。

セキュリティ診断を受けたほうがよいですか?

扱う情報の重要度や、取引先からの要請によって判断します。個人情報を多く扱う場合や、社外の利用者が多い場合は、専門の会社による診断を検討する価値があります。診断の費用は開発費とは別にかかるのが一般的です。

あわせて読みたい

コラム一覧へ戻る