※現職でスキルアップ発表会等で作成していたものをQiitaに書き起こすシリーズ②
元がppt資料で口頭説明ありきな文章なのでちょっと分かりづらい部分はごめんなさい。
脆弱性とは?
- Webアプリケーション系の脆弱性
- Webページで想定していないページに直リンできてしまう
- たくさんクリックされると簡単にサーバダウンする
- 組込みシステム系の脆弱性
- 「root/root」でログインできてしまう
- 偽造されたパケットを受け取ると大切な情報を返信してしまう
…等々
- 放っておくとリスクに晒されることはもちろん
ユーザから「脆弱性に関する認識が甘い」という烙印を押されてしまう
脆弱性調査(Webアプリケーション編)
-
自社開発のWebアプリケーションに対し、単体・結合テストで様々なオペレーションを試すものの
あらゆる入力パターン等をテストで網羅することは不可能
そのままだと脆弱性が潜んでいるかも… -
IPAが提示している主なWebアプリケーションの脆弱性11個
①SQLインジェクション
②OSコマンドインジェクション
③パス名パラメータの未チェック/ディレクトリ・トラバーサル
④セッション管理の不備
⑤クロスサイト・スクリプティング
⑥クロスサイト・リクエスト・フォージェトリ
⑦HTTPヘッダ・インジェクション
⑧メールヘッダ・インジェクション
⑨クリックジャッキング
⑩バッファオーバーフロー
⑪アクセス権限や認可制御の欠落 -
これだけある脆弱性要素をどうやって検出するか?
⇒脆弱性診断ソフトを使おう!
OWASP ZAP
-
様々な攻撃パターンでWebサーバを攻撃し判明した脆弱性を8段階の深刻度に分けてユーザに教えてくれる
-
弱点
あくまで簡易チェックが目的の無料ツールなので、OSコマンドインジェクションやメールヘッダインジェクションは
満足に検出できないという欠点を抱えている
脆弱性調査(組込みシステム編)
- 組込みシステムの脆弱性対応のよくある流れ
①各団体が「○○というソフトに××な脆弱性がある」と公表
②CVE等の脆弱性情報データベースに登録される
③それを見て各エンジニアが自社製品に影響がないか調査
④影響があれば修正しファームウェア更新
例:ntp-4.2.8p7で発覚した脆弱性の対処
(システムの時刻を調整するデーモンNTPDのこと)
①CVEやJVNにまとめられた脆弱性概要を確認
②NTPのReadmeを見て更新内容を確認(全文英語)
③4.2.8p6と4.2.8p7のdiffを取り、細かい変更点を確認
④変更された箇所を自社製品が使用しているかどうか確認
⑤使用している場合は部分修正したF/Wを作成しリリース
まとめ
-
Webアプリケーションの脆弱性調査は製品リリース前に是非とも実施しておきたい。ツールは便利。
-
CVEに上がるような脆弱性も、顧客から問い合わせを受けることを想定して早めに調査をしておきたい。
-
クリエイティブな仕事とは程遠いため退屈な作業だが我慢して推進すべし。