タグ

ブックマーク / www.scutum.jp (14)

  • SpringのRCE脆弱性(CVE-2022-22965)について

    はじめに Log4jやStruts2など、Java製ソフトウェアにおいてリモートからの任意のコード実行(RCE)の脆弱性が目立つ時代になってしまっていますが、これにさらにSpringも加わってきました。この記事では特にCVE-2022-22965に焦点を当て、技術的な視点からの解説を行ってみます。 なぜJavaアプリでRCEとなるのか? Javaの(特にウェブアプリケーションで)RCEとなるパターンはいくつか知られており、以前こちらの記事にまとめました。今回のCVE-2022-22965はこの記事の「3. クラスローダを操作できてしまうパターン」のパターンになります。 なぜクラスローダを操作できるのか? そもそも「クラスローダの操作」とは何を意味しているのでしょうか。この文脈では、Javaのプロセス内のクラスローダ系のクラスのインスタンスの、getterやsetterのメソッドを攻撃者が実

    SpringのRCE脆弱性(CVE-2022-22965)について
    sudo_vi
    sudo_vi 2022/04/16
  • Log4jで話題になったWAFの回避/難読化とは何か

    はじめに 2021年12月に発見されたLog4jCVE-2021-44228は、稀に見るレベル、まさに超弩級の脆弱性となっています。今回、私はTwitterを主な足がかりとして情報収集を行いましたが、(英語・日語どちらにおいても)かなりWAFそのものが話題になっていることに驚きました。ある人は「WAFが早速対応してくれたから安心だ!」と叫び、別の人は「WAFを回避できる難読化の方法が見つかった。WAFは役に立たない!」と主張する。さらにはGitHubに「WAFを回避できるペイロード(攻撃文字列)一覧」がアップロードされ、それについて「Scutumではこのパターンも止まりますか?」と問い合わせが来るなど、かなりWAFでの防御とその回避方法について注目が集まりました。 実はWAFにおいては、「回避(EvasionあるいはBypass)」との戦いは永遠のテーマです。これは今回Log4jの件で

    Log4jで話題になったWAFの回避/難読化とは何か
    sudo_vi
    sudo_vi 2021/12/18
  • シグネチャ依存型のWAFは避けよう

    はじめに 先日、とあるScutumを利用中のお客様からうれしいフィードバックを頂きました。 「ウェブサーバをオンプレからクラウドに移した際に、WAFを(一時的にScutumをやめて)そのクラウドにメニューとして用意されていたWAFに切り替えてみたところ、誤検知が多発して当に苦労した。Scutumがいかに楽なのかが実感できた」というものです。そのお客様はその後、そのクラウドのWAFから、再びScutumに戻ってきてくれました。 最近では著名なクラウドサービスにメニューとしてWAFがあるようですが、私が知っている範囲では、それらの多くは「シグネチャ」あるいは「ルール」を使って攻撃を見つけようとする種類のWAFのようです。ブログではこれらの「シグネチャあるいはルールのみによって防御を行う」タイプのWAFを、「シグネチャ依存型」のWAFと定義します。 シグネチャ依存型のWAFは2020年という

    シグネチャ依存型のWAFは避けよう
    sudo_vi
    sudo_vi 2020/04/14
  • 高度なコマンドインジェクション攻撃とその対策

    はじめに ScutumはフルマネージドなWAFサービスなので、利用しているユーザさんが気づかない間にどんどん変化し、防御能力を強化しています。これらの強化された点について、これまではあまり宣伝や周知を行っていなかったのですが、今後は少しずつ、このブログでお知らせしていこうと思っています。 防御を強化しているポイントはマニアックな細かなものから重要なものまで多岐に渡ります。今回紹介するのは、我々としてはかなりインパクトがあると考えているものです。 2019年の秋に、コマンドインジェクションに対する防御能力を強化しました。コマンドインジェクションといっても普通のものではなく、比較的最近になって知られるようになった、「WAFを回避する」種類のコマンドインジェクションです。 WAFを回避するコマンドインジェクション 攻撃者とWAFの間では互いに「見つからないように」「見逃さないように」というイタチ

    高度なコマンドインジェクション攻撃とその対策
    sudo_vi
    sudo_vi 2020/03/19
  • IPレピュテーションでウェブアプリへの攻撃は防げるか - WAF Tech Blog | クラウド型 WAFサービス Scutum 【スキュータム】

    はじめに IPレピュテーションはIPアドレスそのものの信頼性をスコアリングし共有する手法で、主にスパムメール対策において使われてきました。しかし近年では(他社さんの)WAFがウェブアプリケーションへの攻撃を防ぐためにIPレピュテーションを利用する、というケースが増えてきたように感じます。 筆者は、あくまで個人的な感覚としてですが、「IPレピュテーションはウェブの攻撃検知・防御では役に立たないだろう」と思っていたのですが、今回これを客観的に評価してみることにしました。 何を調べるか? IPレピュテーションというのは要するに「一度(あるいはそれ以上)悪さをしたIPアドレスは、次から許さないぞ」というアプローチです。つまりあるIPアドレスからの最初の攻撃に対しては無力ですが、一度攻撃を見つけたら、次からはそのIPアドレスからの攻撃を防ぐことができる、ということになります。 そのため調べるべきなの

    IPレピュテーションでウェブアプリへの攻撃は防げるか - WAF Tech Blog | クラウド型 WAFサービス Scutum 【スキュータム】
    sudo_vi
    sudo_vi 2018/10/01
  • 異常検知システム開発の難しさ

    はじめに 「異常検知したい」と考えている人は多いと思います。もはや囲碁ですら機械が人間を上回る時代となったので、システムの故障を発見したりクレジットカード詐欺を見つけたりという異常検知システムも、データサイエンスを使えば人間以上に優秀なものを作れるのではないか?と考えるのも自然でしょう。 一方で、実際に異常検知システムの開発に乗り出してみたものの、意外と上手く完成まで辿りつけなかったり、せっかく作ったけれども結局誤検知だらけでお蔵入りしたり、というケースもあるのではないかと思います。この記事では実際に異常検知システムをゼロから開発してみた経験からいくつかの点について書いてみたいと思います。 この記事にはアルゴリズム的な、技術的な知見は含まれていません。「もし居酒屋で異常検知をネタに呑むとしたら、このへんで盛り上がるかな」的な記事として書いてみましたので、お時間あるときに気軽に読んでいただけ

    異常検知システム開発の難しさ
    sudo_vi
    sudo_vi 2018/04/03
  • さよならCSRF(?) 2017

    はじめに 2017年、ついにOWASP Top 10が更新されました。筆者が一番印象的だったのは「Top 10にCSRFが入っていない」ということです。 なぜCSRFが圏外になってしまったのかは4ページのリリースノートで軽く説明されています。「retired, but not forgotten」つまり「引退したね...でも君の事は忘れてないよ」という感じでしょうか。全米がCSRFのために泣きそうです。 それはさておき、具体的には「as many frameworks include CSRF defenses, it was found in only 5% of applications.」という部分が引退理由だと思われます。「多くのフレームワークがCSRF対策を備えた結果、5%のアプリケーションにしかCSRFは見つからなかった」というのが引退の理由です。 この理由を読むと、「というこ

    さよならCSRF(?) 2017
    sudo_vi
    sudo_vi 2017/11/29
  • Struts2が危険である理由

    はじめに 2017年3月、Struts2にまたしても新たな脆弱性(S2-045、S2-046)が見つかり、複数のウェブサイトにおいて情報漏洩等の被害が発生しました。筆者は2014年4月(およそ3年前)に「例えば、Strutsを避ける」という記事を書きましたが、今読み返してみると「やや調査不足の状態で書いてしまったな」と感じる点もあります。今回、良いタイミングなのでもう一度Struts2のセキュリティについてざっとまとめてみたいと思います。 なぜJavaなのにリモートからの任意のコード実行(いわゆるRCE)が可能なのか Struts2はJavaアプリケーションであり、Java製のアプリケーションサーバ上で動作します。Javaはいわゆるコンパイル型の言語であるため、通常はランタイムにおいて任意のコードを実行することはできず、RCEは難しいはずです。 JavaのウェブアプリケーションでRCEが成

    Struts2が危険である理由
    sudo_vi
    sudo_vi 2017/03/28
    タイトル575
  • HTTP/2のRFCを読んだ感想

    はじめに 私は自ら「串職人」と名乗るほどウェブの(つまりHTTPの)Proxyサーバが好きで、もう10年以上もプロキシサーバを作り続けています。このブログの主題であるクラウド型WAF、Scutumもそのひとつです。そもそもプロトコルとしてのHTTPが好きです。ウェブの裏側に、とてもシンプルな、テキストベースのHTTPプロトコルが活躍しているということが私の串職人としての出発点です。 HTTP/2が出た 先日、ついにHTTP/2が出ました。 数年前から、「SPDY」などのキーワードに代表される次世代のHTTPが模索されていることは何となく知っていましたが、どうもGoogleのような非常に大きいトラフィックを処理している組織が主導しているもので、一般の開発者やウェブの利用者にとってそれほど魅力的なものではなさそうだな、という印象を抱いていました。 サーバ側を作っているのもGoogle、ブラウザ

    HTTP/2のRFCを読んだ感想
    sudo_vi
    sudo_vi 2015/05/27
  • JavaのString生成方法がボトルネックになっていた話 - WAF Tech Blog | クラウド型 WAFサービス Scutum

    はじめに 先日、私たちが開発しているクラウド型WAFサービス、Scutum(スキュータム)において、予想していなかった箇所の修正によってサーバの負荷が大幅に減るということがありました。原因はこのエントリのタイトルにもあるように、Stringクラスのインスタンスを生成する際の方法にありました。 Stringクラスのコンストラクタとcharset Stringクラスにはいくつかのコンストラクタが用意されています。我々が使っていたのはString(byte[] bytes, String charsetName)です。2つめの引数で、"MS932"や"UTF-8"のような文字集合(以下charset)を明示的に指定するものです。 ScutumのようなWAF(Web Application Firewall)は通常のウェブアプリケーションとは異なり、起動している間にさまざまなcharsetを扱うこ

    JavaのString生成方法がボトルネックになっていた話 - WAF Tech Blog | クラウド型 WAFサービス Scutum
    sudo_vi
    sudo_vi 2015/05/07
  • ScutumはPOODLE攻撃を検知・防御する唯一のWAFです

    はじめに この記事をお届けできることを非常にうれしく思います。タイトルは「ScutumはPOODLE攻撃を検知・防御する唯一のWAFです」となっていますが、実は末尾に「(キリッ」が抜けているイメージです。 2015年1月26日より、クラウド型WAFのScutum(スキュータム)において、SSLv3を従来通り(AES/3DES/RC4)に使いつつ、POODLE攻撃を検知・防御できるようになりました。エントリでは、その内容について説明をおこないます。 SSLv3を一律に無効にするのがデファクトスタンダードなPOODLE対策 POODLEはHeartbleedとならび、去年の「SSL/TLS脆弱性祭り」を彩った主役のひとりです。その対策として挙げられたのは、基的には「SSLv3を無効にする」というものでした。 単なるウェブサーバであればともかく、WAFのようなセキュリティベンダーが開発するテ

    ScutumはPOODLE攻撃を検知・防御する唯一のWAFです
    sudo_vi
    sudo_vi 2015/02/08
  • 例えば、Strutsを避ける

    はじめに 筆者は10年以上ウェブアプリケーション開発を主な業務とするJavaプログラマであったにも関わらず、Strutsについてはこれまでずっとわず嫌いでした。初期のStrutsは「XMLだらけで効率が悪そう」というイメージが強かったためです。最近はRuby on Rails等の影響を受けCoC(convention over configuration)を採り入れ、XML地獄もだいぶ解消したようです。 StrutsはJavaアプリケーションらしくない種類(任意のコード実行等)の脆弱性を連発することでも知られており、最近は我々の提供するSaaS型WAFサービス、Scutum(スキュータム)のお客様からも頻繁にStrutsについての問い合わせを受けるようになりました。また、去年見つかった任意のコード実行の脆弱性では、脆弱性の公表後すぐにPoCが出回り実際に攻撃が発生するなど、悪い意味で注目

    例えば、Strutsを避ける
    sudo_vi
    sudo_vi 2014/04/23
  • ベイジアンネットワークを使ったウェブ侵入検知

    はじめに 私たちが提供しているSaaS型のWAFサービス、Scutum(スキュータム)では、より高精度な攻撃検知を実現するために、ベイジアンネットワークの技術を利用しています。今回は「ウェブセキュリティ」「不正検知」「異常検知」「攻撃検知」といった観点から、ベイジアンネットワークについて解説します。 ベイジアンネットワークとは? ウィキペディアによると、ベイジアンネットワークは次のようなものです。 ベイジアンネットワーク(英: Bayesian network)は、因果関係を確率により記述するグラフィカルモデルの1つで、複雑な因果関係の推論を有向グラフ構造により表すとともに、個々の変数の関係を条件つき確率で表す確率推論のモデルである。 非常に的を射た説明ですが、「わかっている人にはわかるし、わかっていない人にはわからない」という感じもするかもしれません。基からしっかり理解したいという場合

    ベイジアンネットワークを使ったウェブ侵入検知
    sudo_vi
    sudo_vi 2014/02/11
  • BEAST(Browser Exploit Against SSL/TLS)とは何か

    はじめに CBCモードへの選択平文攻撃を扱った前回のエントリに引き続き、BEASTについて見ていきます。今回は、BEASTの全体像について解説します。なお、BEASTの実際の攻撃コードはパブリックにされていないため、この記事の内容はあくまでも推測に基づくものとなっていることをご了承ください。 BEAST以前の情報 BEASTはSSLに対する「100%新しい画期的な攻撃方法」ではありません。過去に発見されていたいくつかのテクニックを適切に組み合わせ、さらに最後のひとさじを加えることで華麗にまとめあげたものとなっています。 BEASTの基となっている技術は、ほぼ次の2つの論文にまとまっていると考えられます。 The Vulnerability of SSL to Chosen-Plaintext Attack A Challenging but Feasible Blockwise-Adapt

    BEAST(Browser Exploit Against SSL/TLS)とは何か
    sudo_vi
    sudo_vi 2014/02/01
  • 1