オプスインのセキュリティ対策の取り組み
2019年に世間を驚かせたセキュリティ事件といえば、利用者に金銭被害が生じるなど多大なインパクトがあった「7pay」の不正アクセスではないでしょうか。 それ以外にも、「クロネコメンバーズ」の不正ログインや、ゆうちょ銀行を騙ったフィッシング詐欺など、2019年も世間を騒がしたセキュリティ事故が相次ぎました。 JNSAの調査分析で2018年の調査報告書を見ますと、セキュリティ事故の件数としては「紛失・置忘れ」や「誤操作」が多く、次いで「不正アクセス」「管理ミス」と続き、割合としてはセキュリティ事故の75%を占めています。 一方でWebサイトの改竄や乗っ取り等のセキュリティホールに起因する被害は、前述のケースと比較して少ない件数となっていました。 ■引用:JNSA セキュリティ被害調査ワーキンググループによる個人情報漏えい事件・事故の調査分析(2018年) これは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 […]
