2015-01-12

アンチウイルスソフトウェアの脆弱性

Breaking av software

市場に出回っているアンチウイルスソフトウェアの脆弱性についての研究発表のスライド資料が公開されている。

アンチウイルスソフトウェアは、セキュリティ向上のために重要だという意見があるが、このスライド著者は疑問を投げかけている。そもそも、ソフトウェアの追加は、攻撃できる箇所が増えるということだ。アンチウイルスソフトウェアは果たしてセキュアに作られているのか。

特に、多くのアンチウイルスソフトウェアは、カーネルドライバーを使ったりしている。もし脆弱性があればとんでもないことだ。

アンチウイルスソフトウェアの攻撃手段としては、細工されたファイルフォーマットをスキャンさせる事が大半だ。アンチウイルスソフトウェアは、様々なフォーマットのファイルをパースする必要がある。もし、そのパーサーにバッファーオーバーフローなどの不具合があれば任意のコードを実行させることができるし、パースに時間がかかりすぎれば、DOS攻撃に使える。

傑作なのは、既存のほとんどのアンチウイルスソフトウェアが、10年以上前の古臭い手法である、ゼロパディングされた巨大なファイルに展開される圧縮ファイルを現実的な時間で処理できずにリソースを浪費するということだ。

さて、アンチウイルスソフトウェア自体のセキュリティはどうかというと、これまた悲惨だ。

多くのアンチウイルスソフトウェアは、アップデートに素のHTTPを使い、しかもアップデートファイルは署名されていない。信じられない。

多くのアンチウイルスソフトウェアは、ASLRを無効にしている。これは、ヒューリスティックな検証をするために、ファイルをエミュレーター上で実行して挙動を確認するために、ASLRが邪魔になるからだ。問題は、一部のアンチウイルスソフトウェアは、システムのすべてのプロセスにASLRが無効化されたDLLを注入する。セキュアであるべきソフトウェアのセキュリティが聞いて呆れる。

多くのアンチウイルスソフトウェアは、ファイルのパースやネットワークパケットの検証に、エミュレーターやVMどころか、基本的なサンドボックスすら設けておらず、検証がroot権限で行われている。root権限が必要なのはネットワークパケットのキャプチャだけであり、そのデータの検証は、もっと権限の低いプロセスで行うべきである。

また、この研究者は、昔のコードを削除するべきであると主張している。MS-DOS時代のマルウェアや、もはや誰も使っていないファイルフォーマット用のチェックは、現代においては不必要であるし、長年誰も触っていない昔のコードには、脆弱性のある可能性が高い。アンチウイルスソフトウェア自体に脆弱性があるのと、大昔のもはやほとんど問題にならないマルウェアを検出できるのと、どちらがいいというのか。

筆者は、もうアンチウイルスソフトウェアの時代ではないと思っている。

10 comments:

  1. 自分はWin8の標準の物を使っています。セキキュリティエッセンシャル的な感じで動いてると思います。
    MSがタコだったら自分のPCはサクッと死んでしまいます。
    まぁ、そんなに実行ファイルを落としたりしませんが。
    基本拡張するから脆弱性が出るんですよね。
    自分の環境を把握してれば必要なソフトだけ入れて放置が基本だと思いますので、ソフトライブラリとかにはいかなくなりますね。

    ReplyDelete
  2. はてブで話題になっていて拝見しました。大変重要そうな記事なのですが、すみません、私のレベルではそもそも知識が不足しすぎているのだとは思うのですが、

    ・カーネルドライバー(脆弱性に繋がる?)
    ・パーサー(ファイルのチェックをするプログラム?)にバッファーオーバーフローなどの不具合があれば任意のコードを実行できる
    ・ゼロパディング
    ・ASLR

    が何かについて、いくつかだけでも教えていただけるとありがたいです。。。

    ReplyDelete
  3. とりあえず、使用中に例外落ちするようなやつは脆弱性あると思ってる。
    かといって無防備なのも考え物なんで、VM導入してwebとかハイリスクな用途に使うのがベストかなと。
    んで、拾ってきたソフトの検証したいときもVM内にアンチウィルス入れてという感じで。

    ReplyDelete
  4. カーネルドライバーは特権で動きます。これにウイルスが感染したら完全に乗っ取られてしまいます。アンチウィルスがウイルスに感染するとかお笑いでしかないですが。
    パーサーは無限長の可能性のある特定のデータ列をパースするものです。ポインタチェックを一回しなかっただけでバッファオーバーフロー攻撃ができてしまいます。
    ゼロパティングは0で詰め物がされてる意です。現在のコンピュータではただの0が10GB並んでいるだけで処理能力が足りません。
    ASLRは初めて聞きました。検索したところウィキペディアが引っかかりました。
    ttp://ja.wikipedia.org/wiki/%E3%82%A2%E3%83%89%E3%83%AC%E3%82%B9%E7%A9%BA%E9%96%93%E9%85%8D%E7%BD%AE%E3%81%AE%E3%83%A9%E3%83%B3%E3%83%80%E3%83%A0%E5%8C%96

    ReplyDelete
  5. なんかギガジンに乗ってましたよ。

    ReplyDelete
  6. ポインタ切り捨てバグを報告したらこっちの環境のせいにしたくせに、その後の更新内容にはっきりポインタ切り捨てバグによるクラッシュを明記していたトレンドマイクロ社は本当にクソ

    ReplyDelete
  7. 「ゼロパディング(中略)圧縮ファイル」に関してもWikipediaに記事があります。
    http://ja.wikipedia.org/wiki/%E9%AB%98%E5%9C%A7%E7%B8%AE%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E7%88%86%E5%BC%BE

    ZIP爆弾と言ったほうが通りがいいかも。

    ReplyDelete
  8. The blog shares very impressive article about the software. thanks for sharing it. full version software

    ReplyDelete
  9. The article has an impressive things to understand and I am glad to read this posting. download full version software

    ReplyDelete
  10. The information guides many of the people about the software and its uses. free software download full version

    ReplyDelete

You can use some HTML elements, such as <b>, <i>, <a>, also, some characters need to be entity referenced such as <, > and & Your comment may need to be confirmed by blog author. Your comment will be published under GFDL 1.3 or later license with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.