OWASP ZAP を使った脆弱性診断

本日のブログは岩石が担当です。秋も深まり各地で秋祭りが催される時期になりました。 来週には旧暦で神無月に入りますが、弊社のある島根県出雲地方では神有月(かみありつき)となります。 今年も多くの神様方がいらっしゃることでしょう。

今回のブログは私のことでは無く、社内での社員の活動について書きます。

先ごろから、契約管理などに使用する事務システムの開発を社内で行っています。これまで事務管理は表計算ソフトで行っていましたが、社員の増加や役割の分割、また顧客数の増加などにより表計算ソフトでの対応では効率が悪いケースが発生しているため、以前よりシステムのWeb化を目論んでおりました。

今年度開発業務担当の新卒社員を迎え入れたことから、OJTの対象として取り組んでいます。スクラム手法で開発に取り組んでいますが、先日最初のリリースを行いました。

社内の規程で、業務に使用するアプリケーションをリリースする前の手順を定めています。そのうちの一つとして脆弱性診断の実施を定めており、開発メンバーに取り組んでもらいました。

Webアプリケーション診断

ソフトウェアにバグ(意図した動作と異なる動きを生むソフトウェア上のミス)は付き物です。
テストを重ね、ミスを生まない様に開発に取り組みますが、想定外の運用環境であるなど動作条件の問題や動作環境の問題など様々な理由で修正が必要なバグが発生します。
中には、ソフトウェア作成時には問題として認識されていなかったが、時が経ち問題点と認識され修正が必要となったものなどもあります。

脆弱性(ぜいじゃくせい) とはこれらバグのうち、ソフトウェア動作上の弱点となり、セキュリティ的な危険性があるものを指します。

診断を行うにあたって

今回開発で「社内システムでそこまでやる必要があるか?」という思いもありましたが、開発業務が教育的活動を含んでおり、今後社外向けやOSSなどの開発を行うようになったときに初めてこの様なトライをするよりは、リスクの小さい対象で体験し、自分のスキルとして身につける方が良いと感じましたので、時間は余分にかかりましたが取り組むことにしました。

開発の中心でありOJTの対象である社員は、学校の情報教育の中で一部の脆弱性やそれを用いた攻撃についての教育を受け、一通りの理解はしていたとのことです。
ただし、名前や概要を覚えた程度で意識することはあまりなかったとのことでした。
また 自分が作成するソフトウェアに脆弱性が存在するかもしれない ということは意識したことがなかったとのことでした。

OWASP ZAP

社内のセキュリティ検査に関する規程については、

を参考に要件を定義しています。
開発メンバーには社内の規程だけを見て対策するのでは無く、これらの参考文書を参考にして対策に取り組むことをお願いしています。

今回は診断のツールとして OWASPのZAP を使用しました。

担当するメンバーには、ZAPの使い方などを紹介されている書籍「Webセキュリティ担当者のための脆弱性診断スタートガイド」(株式会社トライコーダ代表 上野宣さん著)を読んでもらい、診断の基準として IPA 安全なウェブサイトの作り方別冊「ウェブ健康診断仕様」 を採用し診断を行いました。

Webセキュリティ担当者のための脆弱性診断スタートガイド

診断結果については、脆弱性ではないものの意図しない動作があり、ソフトウェアの修正を行った箇所もあったようです。

開発担当の感想

脆弱性診断を実際に行った開発担当者に感想を聞いてみました。

診断結果について

レスポンスヘッダの設定が幾つか不足していたり、エスケープ処理が無効になっているフォームあることがわかったので、修正を行いました。  
レスポンスヘッダなどは今までほぼ確認したことがなく、設定の種類なども初めて知ったので、診断をしなければ絶対に気づかないままだったと思います。  
今回はRuby on Railsで作ったWebアプリケーションの診断を行ったのですが、フレームワーク側で対策済みの部分が多く、驚きました。  

診断そのものについて

診断作業は主に
・ 「安全なWebサイトの作り方のチェック」のチェックシートを用いた確認作業
・ ツール( OWASP ZAP )を用いた自動検査
・ ツール( OWASP ZAP )を用いた脆弱性別/URL別検査
という形で行いました。  
「こういう脆弱性や攻撃が存在する」というところは多少知っていましたが、「それらに対してどう対策をとればいいか」ということは全く知らなかったので、結果1からの勉強となりました。  
今まで意識したこともありませんでしたが、こうして実際に自分で診断をすることで、セキュリティ対策の必要性なども感じることができ、良かったです。  

今後の取り組みについて

今回多少学びましたが、私が知らない脆弱性はたくさんあります。  
それが脆弱性となると知らなければ気づくことができないし、対策などできないので、今後はどんな脆弱性があるのかなど勉強していきたいと思います。  
また、社内で情報漏えい(〇〇会社でこういった理由で情報漏洩が起きた)などのニュースが共有されているので、そういった情報からもいろいろ学び取っていけそうです。  

まとめ

診断をしなくても、また診断した結果見つかった脆弱性を直さなくてもアプリケーションは動作します。

今回は社内で使用するツールであり、特定の社員のみが限定された環境で使用するため、脆弱性を含んでいても攻撃などにつながる可能性は低いかもしれません。しかしながら、今後そのシステムを使用する人数が増えたり、対象者が変わっていく可能性があります。また、現在は想定していませんが、その業務を外部に委託するなどの将来が全く無いとは言い切れません。

そのときに必要に迫られて対策を行うのは、システム規模が小さいうちから対策を施すと比較し、結果としてコストが嵩んでしまいます。

作成するソフトウェアの仕様・環境から考えると開発メンバーにはとても面倒で余分な時間を費やしてしまったかもしれません。しかしながら、今回行ったことを自分たちのスキルとして、今後の開発活動に役立ててもらえると嬉しいです。

追伸:第5回ビッグデータ活用展

弊社パートナー企業の株式会社アジャイルウェアが、本日10月26日(水)〜28日(金)に幕張メッセで開催される「第5回ビッグデータ活用展」において、オープンソースのプロジェクト管理ソフトウェア「Redmine」の機能を大幅に向上させる製品「Lychee Redmine」を展示します。
弊社が提供しているRedmineベースのクラウドサービス「My Redmine」の運用・サポートを担当しているスタッフも明日明後日(10月27日〜10月28日)同ブースにて対応いたします。Redmineの運用・使い方についてお困りのことがあればぜひこの機会にご来場ください!

第5回ビッグデータ活用展(10/26〜28開催) でRedmineについてのご相談にお応えします

ファーエンドテクノロジーからのお知らせ(2018/7/5更新)
Redmineの最新情報をメールでお知らせする「Redmine News」配信中
新バージョンやセキュリティ修正のリリース情報、そのほか最新情報を迅速にお届け