2019年に世間を驚かせたセキュリティ事件といえば、利用者に金銭被害が生じるなど多大なインパクトがあった「7pay」の不正アクセスではないでしょうか。
それ以外にも、「クロネコメンバーズ」の不正ログインや、ゆうちょ銀行を騙ったフィッシング詐欺など、2019年も世間を騒がしたセキュリティ事故が相次ぎました。
JNSAの調査分析で2018年の調査報告書を見ますと、セキュリティ事故の件数としては「紛失・置忘れ」や「誤操作」が多く、次いで「不正アクセス」「管理ミス」と続き、割合としてはセキュリティ事故の75%を占めています。
一方でWebサイトの改竄や乗っ取り等のセキュリティホールに起因する被害は、前述のケースと比較して少ない件数となっていました。
これはWebシステムの開発で利用しているフレームワークの進化や、開発の現場でセキュリティ対策の取り組みが進んでいるからといえるでしょう。
つまり、Webシステム開発においては正しくセキュアに取り組むことで、不用意なセキュリティ事故を避けることができるということです。
本記事でオプスインではどのようなセキュリティ対策に取り組んでいるのかを紹介したいと思います。
1.Webシステム開発での取り組み
オプスインの手掛けるWebシステムではRuby on Railsベースのシステムが多いのですが、Rubyのgemライブラリには「brakeman」というセキュリティに重点を置いたRailsプロジェクトの静的解析ツールがあります。
これはソースコード上にSQLインジェクションやXSS等の脆弱性と疑わしき箇所がある場合に検知してくれるツールで、例えばURLパラメータを検証せずにそのままプログラム内で利用しようとすると「Security Warnings」として該当箇所のコードが分かる仕組みになっています。
この「brakeman」を利用することによって、システム開発時のコーディング段階で作り込んでしまった脆弱性を洗い出すことが可能となり、セキュアなシステム開発に取り組むことができています。
■参考:https://github.com/presidentbeef/brakeman
また、開発完了時には「OWASP ZAP」を用いたセキュリティテストを実施しています。
この「OWASP ZAP」はWebシステムのセキュリティに関するガイドやツールを公開している「OWASP (The Open Web Application Security Project)」が開発しているオープンソースのWebシステム脆弱性診断ツールです。「OWASP ZAP」には様々な使用方法がありますが、そのうちの一つとして実際にブラウザを操作して対象のWebシステムの使用方法を記録し、データの入出力なども再現しながら各機能ごとに脆弱性診断を行う機能があり、CSRF対策しているWebシステムでも大部分の機能を網羅することができ、とても重宝しています。
■参考:OWASP Zed Attack Proxy Project
Webシステム開発時の取り組みとして活用している「brakeman」や「OWASP ZAP」ですが、これらは機械的に検知するため、どうしても誤検知の可能性が付いて回ります。
何に対してアラートが上がっているのか、最終的にはしっかりと人間の目で確認することで、出来る限り脆弱性を作り込まないシステム開発が可能になるように取り組んでいます。
2.基盤のセキュリティ対策
セキュリティ対策において、セキュアなコーディングを車輪の片輪とするならば、もう片方はセキュアなインフラの構築にあると考えています。オプスインでは主にクラウドサービスを利用しているため、基盤のセキュリティには十二分に留意しています。
まず、サーバーにアクセスできるユーザーを限定するため、原則として公開鍵認証を必須としたサーバー運用を行っています。
そして、特にセンシティブな情報を取り扱う本番サーバーへのアクセスにおいては、接続元のIPアドレスも限定することで、不用意に第三者がサーバーへアクセスすること自体をできないように対策を行っています。
アクセスできるユーザー、環境を制限することで、悪意のある攻撃者にサーバーそのものが晒されないように対策しているのです。
また、WAF(Web Application Firewall)やIDS(Intrusion Detection System)、IPS(Intrusion Prevention System )など、プロジェクトによって要求されるセキュリティレベルに応じて、さらなる対策も講じています。
3.まとめ
冒頭に述べたように、昨今のセキュリティ事故は不正アクセスや人為ミスに起因した情報漏洩がその大半を占めています。これは、そうしたシステム外の脆弱性を通してでしか悪意ある攻撃者が情報資産にアクセスし辛くなってきているからとも言えるのかもしれません。すなわち、システム的なセキュリティ対策の取り組みは当然のこととして、その上で、システム開発/運用に携わる人が情報漏洩の一助にならないよう意識していくことが、今後いっそう大切な要素になると考えられます。
オプスインではセキュリティチェックシートの活用や、運用手順の明文化/実施時のダブルチェックの徹底など、人が原因となるセキュリティ事故を起こさないようにも取り組んでいます。セキュアなWebシステムを実現するために、開発/基盤/運用の全てのフェーズにおいて、悪意のある攻撃者に隙を見せないことが大事なのです。
Author Profile
-
東京都のwebアプリ、スマートフォンアプリ開発会社、オプスインのメディア編集部です。
・これまで大手企業様からスタートアップ企業様の新規事業開発に従事
・経験豊富な優秀なエンジニアが多く在籍
・強みはサービス開発(初期開発からリリース、グロースフェーズを経て、バイアウトするところまで支援実績有り)
これまでの開発の知見を元に、多くのサービスが成功するように、記事を発信して参ります。