2020.02.02目次SQLインジェクションクロスサイトスクリプティングディレクトリトラサーバルDNSキャッシュポイズニングDNSキャッシュポイズニングの仕組みDNSキャッシュポイズニングの対策SQLインジェクションアプリケーションが提供する入力フォームなどに悪意あるスクリプトを入力し、それを送信することで不当なSQL文を実行させる攻撃方法です。多くの場合は不正ログインを行うといったケースが多いようです。SQL文によってはサービス自体のデータベースを削除されるという最悪なシナリオケースもありますので非常に危険です。アプリケーションの入力欄から特殊文字を入力されることが原因です。対策方としては特殊文字の入力を禁止したり、エスケープしたりするなどが挙げられます。アプリケーションから実行できるtableの権限を制限するのも被害を最小限にする上で有効な方法です。クロスサイトスクリプティングXXSとも呼ばれます。SPAなどの動的なアプリケーションに対して悪意のあるスクリプトを仕込むことで、悪意ある操作を実行させたり、別のサイトのクッキーなどをデータを盗むことで個人情報を略奪する攻撃方法です。HTMLタグをそのまま出力している部分は攻撃者の攻撃対象の箇所になってくるのでHTMLタグをそのまま出力しない、HTMLの特殊文字をエスケープするなどが有効な対策手段と言われています。Vue.jsの開発で<v-html>というタグを使ってhtmlをそのまま出力しようとするとeslintでXXSの危険があるとの警告がでました。ディレクトリトラサーバル攻撃者はこの部分を狙ってサーバー側が意図しない親ディレクトリを指定するパスを入力して、本来見せるはずではないファイルを閲覧しようとします。この攻撃をディレクトリトラサーバルと呼びます。対策方法としてはディレクトリ移動を行う../の文字列をエスケープするなどの処理を実装するなどが挙げられます。wikipediaにPHPで書かれた脆弱なアプリケーションの実例が記載されていたのでシェアしておきます。https://ja.wikipedia.org/wiki/ディレクトリトラバーサルDNSキャッシュポイズニングDNSは高速化、負荷軽減をするためにキャッシュを蓄えています。このキャッシュを書き換えて、DNSサーバーに対する問い合わせがあったときに偽物の名前解決方法を送信することで悪意のあるWebサイトに誘導する攻撃方法です。あるWebサーバーにアクセスしようとした時に、異なるWebサーバーに転送させるといった事例があります。転送先を空にしてDNSをそもそも使えない状態にすることも可能です。DNSキャッシュポイズニングの仕組み名前解決の仕組みである再帰的な問い合わせと反復問い合わせをまずは理解しましょう。再帰的な問い合わせはリゾルバから名前解決のリクエストを受けて、他のDNSサーバーに問い合わせるなどをして最終的にURLに該当するIPアドレスをリゾルバに返す必要のある問い合わせのことを指します。反復問い合わせはDNSサーバー同士で名前解決するためにお互いにやりとりしあうことを指します。DNSキャッシュポイズニングは攻撃者が悪意ある再帰的な問い合わせをDNSキャッシュサーバーに対して実行することをきっかけに発生します。この悪意ある再帰的な問い合わせに対してDNSキャッシュサーバーは反復問い合わせを行います。その問い合わせのURLは存在しないものであり、反復問い合わせで取得できるIPアドレスは存在しません。攻撃者は偽物のレスポンスをDNSキャッシュサーバーに対して送信することで存在しないURLと架空のIPアドレスがキャッシュサーバーに登録されます。問題なさそうに見える攻撃ですが、DNSキャッシュサーバーは反復問い合わせをするとき名前解決ごとにIDを付与します。攻撃者はこのIDと自身の悪意ある問い合わせが一致するようにしつこく攻撃を仕掛けてきます。IDがDNSキャッシュサーバーが持つレコードと一致する場合、既存の正しい名前解決レコードが書き換えられてしまいます。DNSキャッシュポイズニングの対策ことの発端は攻撃者が再帰的な問い合わせをしてくることです。再帰的な問い合わせを許可するパケットを社内のネットワークのみと設定することでDNSキャッシュポイズニングを避けることができます。開発がもっと快適に、楽しくなるアイテムを紹介します。アイテム1つで開発の楽しさが全然変わるので、良いアイテムにはじゃんじゃんお金を投資すると良いですよ。おすすめアイテム1自分はオフィス次の2点の座布団と背もたれクッションを利用してます。姿勢が安定し、お尻への負担が激減します。オフィスにいるのに自宅で作業しているような感覚になるので気に入ってます。疲労感もかなり減るので費用対効果が非常に高いアイテムです。介護用クッションおすすめアイテム2ブックスタンドみなさん使ってますか?PCを打ちながら参考書見る時に手で抑える必要がなくなるので非常に便利です。自分も購入した時なんでいままで使ってなかたんだろうと後悔したのでまだ持ってない方は買っておくと作業効率があがります。mouseを購入してから、開発効率があがり、身体的負担が減って快適に開発ができるようになりました。別の記事でエンジニアとして知っておくべき技術本についてまとめました。初心者には最低限読んでおいて欲しい技術本をまとめました。「リーダブルコード」などは技術力の高いエンジニアなら必ず過去に読んでいる本だと思います。時短アイテム!日々の生活の質を上げる日常生活における無駄を省く表品をまとめました。1日無駄な作業時間が10分発生するとしたら1年間で3600時間もその無駄な作業に時間を費やすことになります。このような魔の作業を消し去ってくれる商品をまとめました。日常の無駄な作業を効率化する商品まとめ気軽にお声かけくださいこのような形でほぼ毎日、情報発信を行ってます。技術的な部分で誤っている点などもあるかもしれません。その様な部分を発見した方はTwitterのDMなどで知らせていただければ凄い嬉しいです。自身自身のエンジニアのネットワークを広げたいと思ってます。日頃六本木や渋谷にいることが多いですので気軽にお誘いください。今回の記事の内容は以上で終了です。最後まで読んでくれてありがとうございました。通信途中でデータが改竄されていないことを証明するための仕組みです。ハッシュ関数と呼ばれるアルゴリズムを用いてこの仕組みを実現しています。RSAは公開鍵暗号方式で使用される暗号化技術です。Networkの略です。日本語訳をすると仮想プライベートネットワークですね。Protoclの略です。芝浦工業大学に合格し、法政大学を選んだ理由。芝浦工業大学に合格し、法政大学を選んだ理由。初心者が買うべきの技術本まとめ生活の無駄な作業を削除するアイテムまとめ理系の学生・社会人の登録必須マッチングアプリタイトルとURLをコピーしました。