#忘れもしない2021年夏
ITエンジニアになって1年と半分が過ぎて仕事にも慣れてきた時でした。
その時の業務は開発しているサービスのページに広告を表示して、そこを叩いたらあらかじめ設定されていたページへとばすものでした。
順調に実装を進めていって、問題がないか動作を確認していました。
その時は検証用の環境にデプロイをして確認をしていました。検証用の環境は自分以外にチームのメンバーも見れます。
その時にメンバーのベテランエンジニアさんからありがたいお言葉をもらいました。
「これ広告以外にも飛ばされね?」
実はパラメータには飛ばされる先のURLを仕込んでいて、広告をクリックしたときにそのURLに飛ばすようにしていました。
(あとから知ったのですがこの脆弱性を利用して意図しないリダイレクトを行わせることをオープンリダイレクト攻撃といいます)
この時は結構ヒヤッとしました。
#対策
オープンリダイレクト攻撃には対策として以下の2点があります
####そもそもパラメータで渡さない
穴があるなら埋めればいい。
外部パラメータで渡すのをやめれば、攻撃の穴を防ぐことができます。
####URLのホワイトリストを作る
あらかじめリダイレクトを行うURLをホワイトリストとしてサーバ内に置いておき、リダイレクトを行う際にチェックを行う方法です。
#それから
この一件があってからセキュリティに向き合おうと思って勉強を始めました。
今はまだまだ知識はないかもしれませんが、この頃に比べたら多少の知識がついたのと、セキュリティに意識をした開発を進められているのかなと思います。
余談ですがセキュリティの勉強を始めた頃、どの本もなかなかの分厚さがあって苦労しました。
そこで偶然、IPAの「安全なウェブサイトの作り方」という資料(無料)を見つけたのでこれからセキュリティを勉強する方にはおすすめです。
ページ数も100ページほど短く、簡潔でわかりやすく、1年ごとに改訂があるので新しい情報を得ることができます。
#参考
安全なウェブサイトの作り方
https://www.ipa.go.jp/security/vuln/websecurity.html