タグ

javaとsecurityに関するclavierのブックマーク (14)

  • 13部門のLog4j対応を7時間で実現した、地道な取り組み

    去る2021年12月10日。Apache Log4jの脆弱性がセキュリティ界隈で大きなニュースになったことをご存知でしょうか。この脆弱性は、攻撃も非常に容易で、危険性もとても高いため、数多くの企業が緊急脆弱性対応を余儀なくされました。この記事を読まれている方の中には「対応が大変だった」と感じている方もいらっしゃるかもしれません。 Visionalでは、全13プロダクトの緊急脆弱性対応を7時間で実現しました。 全国の警察施設のセンサーで観測された攻撃数のグラフを見ますと、攻撃が増え始めたのが2021年12月12日頃です。それより2日前に、プロダクト開発部が13部門もある中で、全部門の回答が7時間で出そろったのですから、爆速対応と言っても過言ではありません。 これは、セキュリティ室とプロダクト開発部が一丸となって成し遂げた快挙です。 …恥じらいもなく厚顔で申し上げましたが、2年前までは事業部と

    13部門のLog4j対応を7時間で実現した、地道な取り組み
  • Struts2が危険である理由

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

    Struts2が危険である理由
  • メモリリーク、デッドロック、リダイレクトループ、JVMクラッシュ...バグだらけのWebアプリケーションを使ってバグを理解する - Qiita

    メモリリーク、デッドロック、リダイレクトループ、JVMクラッシュ...バグだらけのWebアプリケーションを使ってバグを理解するJavaバグ脆弱性トラブルシューティングjconsole 概要 Webアプリケーションの開発や保守をしていると、いろいろなバグに遭遇します。メモリリーク、デッドロック、リダイレクトループ、JVMクラッシュ等々、バグは様々です。こういったバグは、実際にコードを書いて、実行・再現させてツールで解析してみると理解が深まります。 ということで、いろいろなバグを実装したWebアプリケーションをつくってみました。現時点では、以下を簡単に再現できます。 メモリリーク (Javaヒープ領域) メモリリーク (Permanent領域) メモリリーク (Cヒープ領域) デッドロック (Java) デッドロック (SQL) 完了しないプロセスの待機 無限ループ リダイレクトループ JVM

    メモリリーク、デッドロック、リダイレクトループ、JVMクラッシュ...バグだらけのWebアプリケーションを使ってバグを理解する - Qiita
  • 業務システムにおけるロールベースアクセス制御 - Qiita

    RBACの基礎 業務システムの権限制御の基形はロールベースアクセスコントロール(RBAC)です。簡単化すると、以下のようなモデルです。 Subject(システムユーザ)は、複数のRole(ロール)を持っている。 Role(ロール)は、Permission(権限)のセットからなる。 Permission(権限)は、オペレーション(許可される操作)のセットからなる 具体的に、Redmineでの例をみてみましょう。 ユーザにはデフォルトで「管理者」「開発者」「報告者」のロールが割当可能である。 「報告者」ロールは、「Add Issues」の権限をもつ。 「Add Issues」の権限をもつユーザは、「Issueの新規作成」ができる。 このモデルをRedmineでは、以下のように表現しています。 Redmineは1人のユーザを、複数のプロジェクトに異なるロールでアサインすることができるので、上記

    業務システムにおけるロールベースアクセス制御 - Qiita
  • POODLE攻撃の検知とJavaによる検証コード

    はじめに SSLv3のパディングに注目した攻撃手法であるPOODLEは、以前こちらのブログのエントリで取り上げたことがあるBEASTとCRIMEに非常によく似た攻撃です。今回はこのPOODLEについて、一般的な視点とはやや異なる、筆者独自の意見を述べてみたいと思います。 必ずしもSSLv3を無効にする必要はない POODLEの対策として書かれている情報はそのほぼ全てが「SSLv3を無効にする」というものですが、個人的には技術的にもう少し踏み込んで考えてみても良いのではないかと感じます。私は以前のエントリで次のように指摘しています。 BEASTもCRIMEも、意図しないリクエストが飛ばされ、そこにCookieが自動的に含まれてしまう点を攻撃するという意味で、CSRF攻撃の一種だと言えるでしょう。BEASTが発表されたらBEAST対策(RC4にする/TLSをバージョンアップする)を行い、CRI

    POODLE攻撃の検知とJavaによる検証コード
  • 第八回 #渋谷java - Java 8 で造る認証系

    第八回 #渋谷java http://shibuya-java.connpass.com/event/8212/ での発表資料です。 サンプル実装は https://gist.github.com/komiya-atsushi/6ffac79533c3bfad8bba こちらです。

    第八回 #渋谷java - Java 8 で造る認証系
  • LINE DEVELOPER DAY 2016 開催のお知らせ « LINE Engineers' Blog

    LINE株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。 LINEヤフー Tech Blog saegusa2017-04-16Yoshihiro was a network engineer at LINE, responsible for all levels of LINE's infrastructure. Since being named Infra Platform Department manager, he is finding ways to apply LINE's technology and business goals to the platform. こんにちは。LINEでネットワークやデータセンターを担当している三枝です。2017年1月にJANOG39で登壇する機会を頂きましたので、今回

    LINE DEVELOPER DAY 2016 開催のお知らせ « LINE Engineers' Blog
  • JavaBeansに対するリフレクションとClassLoader脆弱性 - ひがやすを技術ブログ

    今回の問題は、(SA)Strutsだけの問題ではなく、いろんなフレームワークでもちゃんと調べた方が良い話しなので、もう少し詳しく書いておきます。 Javaで、JavaBeansのプロパティにアクセスする場合、 PropertyDescriptor[] descriptors = Introspector.getBeanInfo(クラス).getPropertyDescriptors();で取得できるPropertyDescriptorを使うことがほとんどです。この中に、classプロパティは含まれます。 ここまでは良くて、ネストしたリクエストパラメータ(class.classLoader.xxxなど)をJavaBeansにセットする時に、BeanInfo.getPropertyDescriptors()で取得したものをそのまま使うのが問題なのです。 Seasar2(BeanDesc)では、

    JavaBeansに対するリフレクションとClassLoader脆弱性 - ひがやすを技術ブログ
  • 例えば、Strutsを避ける

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

    例えば、Strutsを避ける
  • IPAが注意喚起をしたApache Struts2の脆弱性CVE-2014-0094について調べてみた。 - piyolog

    Apache Struts2の脆弱性についてIPAが注意喚起を4月17日に掲載しました。 Apache Struts2 の脆弱性対策について(CVE-2014-0094)(S2-020) Apache Struts 2 Documentation S2-020 ニュース - Apache Struts 2の脆弱性対策が急務、攻撃プログラムが出回る:ITpro Apache Struts2に脆弱性攻撃の恐れ、IPAが緊急勧告 - ITmedia エンタープライズ 検証コードが既にインターネット上で公開されていること、そして悪用が比較的容易であることから、ここではS2-020のClassLoaderが操作されてしまう脆弱性CVE-2014-0094について調べた結果をまとめます。 1.検証環境の準備 検証にあたり、Apache Struts2の環境のメモです。Struts2を動かすだけであれば

    IPAが注意喚起をしたApache Struts2の脆弱性CVE-2014-0094について調べてみた。 - piyolog
  • Java BouncyCastle と PHP mcrypt のパディング処理の違い - ..たれろぐ..

    OpenPNE の DBJava から叩こうとしたときにはまったメモ。 先に結論を書くと、 PHP mcrypt の zero padding は元データが8の倍数長の場合は padding しない。 Java BouncyCastle の zero padding は元データが8の倍数長でも padding ( 8 バイトの 0x00 を追加 )する。 という挙動の違いのおかげで、元データのサイズ(バイト町)が 8 の倍数長である場合は、Java 側で得られた暗号化ストリームの末尾 8 バイトを削除/無視してやなければ PHP 側で得られる暗号化ストリームと合致しない。 やろうとしたことは、外部から受け取ったメールアドレスを元に、Java から OpenPNE の DB に直接つないで、対応するメンバID c_member_id の取得。 DB 内では各ユーザのメールアドレスは r

    Java BouncyCastle と PHP mcrypt のパディング処理の違い - ..たれろぐ..
  • Androidアプリの配布パッケージapkの解析について

    はじめに 昨年10月に、テキサス州オースティンにてOWASP AppSec USA 2012が開催されました。OWASP(Open Web Application Security Project)とは、WebアプリケーションやWebサービスなどのセキュリティを対象としているボランティアによるコミュニティで、AppSecはそのカンファレンスです。 AppSecでは、さまざまなセキュリティ関連のセッションが行われていましたが、残念ながらAndroid向けのものはほとんどなく、いくつかあった内の1つが「Cracking the Code of Mobile Application」(講演者:Sreenarayan Ashokkumar)というセッションです。 AndroidやiOS、Windows Phoneといったプラットフォームで動作するアプリケーションを解析する方法について紹介するセッシ

    Androidアプリの配布パッケージapkの解析について
  • 難読化していないAndroidアプリケーションは脆弱性か

    このエントリでは、Androidアプリケーションにおいて、難読化が施されていない場合、脆弱性にあたるかについて議論します。 はじめに Androidアプリケーションは主にJava言語で記述され、DEX形式のファイルにコンパイルされたコードを、DalvikというJava互換VM上で実行します。DEXおよびAPKファイルの仕様は公開されており、DEXにはクラスやメソッド等のシンボル名も含まれているため、リバースエンジニアリングが容易であると言われています。このため、Android SDKには標準でProGuardという難読化ツールが添付されています。 それでは、難読化の目的はそもそも何で、難読化でその目的は達成されるのでしょうか。 難読化の目的 Webアプリケーションの場合は、重要なロジックは主にサーバー側に存在するため、ソースコードを外部から取得することはできません。これに対して、スマートフ

  • IBM Developer

  • 1