#author("2023-02-12T23:45:49+09:00","default:irrp","irrp")
→Java関連

→Java関連Tips

→開発支援ツール

#contents

*一般 [#p7af5c27]
-[[System.Loggerって知ってる? - Javaの標準Loggerインタフェースに今更気がついた | 豆蔵デベロッパーサイト>https://developer.mamezou-tech.com/blogs/2023/02/12/java-system-logging/]] 2023.2


*logback [#a1092691]
-[[logback日本語マニュアル>http://logback.qos.ch/manual/index_ja.html]] 2016.12
-[[logbackのソース>http://logback.qos.ch/dist/]]


*2021年12月 Log4jRCE問題 [#uf322ed9]
-[[最悪の脆弱性「Log4Shell」、依然として数百万のJavaアプリに存在 | TECH+>https://news.mynavi.jp/techplus/article/20220428-2332533/]] 2022.4

-[[Log4Shellで何が起こっていたのかを追ってみる - SSTエンジニアブログ>https://techblog.securesky-tech.com/entry/2022/04/21/what-happened-log4shell]] 2022.4
-[[Log4ShellのためのLDAP - SSTエンジニアブログ>https://techblog.securesky-tech.com/entry/2022/04/21/ldap-for-log4shell]] 2022.4

-[[Java Log4JShellの脆弱性についての調査内容まとめ(翻訳版) by Nairuz Abulhul - Qiita>https://qiita.com/kai-utsunomiya/items/a3517ace3075f353bd8d]] 2022.2

-[[Log4j 脆弱性に対する AWS セキュリティサービスを利用した保護、検知、対応 | Amazon Web Services ブログ>https://aws.amazon.com/jp/blogs/news/using-aws-security-services-to-protect-against-detect-and-respond-to-the-log4j-vulnerability/]] 2021.12

-[[log4shell/README.md at main · NCSC-NL/log4shell · GitHub>https://github.com/NCSC-NL/log4shell/blob/main/software/README.md]] 2021.12

-[[Log4j – Apache Log4j Security Vulnerabilities>https://logging.apache.org/log4j/2.x/security.html]] 2021.12

-[[【緊急公開資料】『Apache Log4j 脆弱性の影響緩和のために今できること』(公開日 2021.12.14) | 株式会社セキュアスカイ・テクノロジー>https://www.securesky-tech.com/topics/20211214.html]] 2021.12

-[[LogbackにもLog4j 2と同様のリモートコード実行の問題、ただし悪用は困難 | TECH+>https://news.mynavi.jp/techplus/article/20211215-2228128/]] 2021.12

-[[Log4j 脆弱性を緩和するAWS WAFの「Log4JRCE」DevelopersIOサイトの3日間の検出結果を紹介します | DevelopersIO>https://dev.classmethod.jp/articles/log4jrce-devio-3day/]] 2021.12

-[[(翻訳) 続報版 - Apache Log4j2 の脆弱性 "CVE-2021-44228" に関する AWS からのアナウンス - サーバーワークスエンジニアブログ>https://blog.serverworks.co.jp/aws-announcement-about-log4j2-cve-2021-44228-translate-updates]] 2021.12
-[[CVE-2021-44228 Log4jの脆弱性のAWS環境への影響 - Qiita>https://qiita.com/tsukamoto/items/858f2bb863e75d4225c4]] 2021.12

-[[「Log4j」の脆弱性を突く攻撃手段の情報共有は違法? 日本ハッカー協会に聞いた - ITmedia NEWS>https://www.itmedia.co.jp/news/articles/2112/13/news163.html]] 2021.12

-[[【緊急】HeartbleedやShellshockに並ぶ最悪の脆弱性「Log4Shell」とは? | TECH+>https://news.mynavi.jp/techplus/article/20211213-2226381/]] 2021.12

-[[Log4jの深刻な脆弱性CVE-2021-44228についてまとめてみた - piyolog>https://piyolog.hatenadiary.jp/entry/2021/12/13/045541]] 2021.12

-[[シスコ製品に影響を与えるApache Log4jライブラリの脆弱性:2021年12月 - Cisco>https://www.cisco.com/c/ja_jp/support/docs/csa/2021/cisco-sa-apache-log4j-qRuKNEbd.html]] 2021.12

-[[【図解】Log4jの脆弱性 CVE-2021-44228 (Log4shell or LogJam) について | SEの道標>https://milestone-of-se.nesuke.com/sv-advanced/sv-security/cve-2021-44228-log4shell-logjam/]] 2021.12

-[[log4j 2の脆弱性(log4shell/CVE-2021-44228)について調べてみた - Qiita>https://qiita.com/ktA222/items/1141d9ae5c9725098fbc]] 2021.12
--[[GitHub - tangxiaofeng7/CVE-2021-44228-Apache-Log4j-Rce: Apache Log4j 远程代码执行>https://github.com/tangxiaofeng7/CVE-2021-44228-Apache-Log4j-Rce#bypass-waf]]
--WAFによる対策はバイパスされるという例

-[[WafCharm で Log4j2 の脆弱性に備えるための対応手法について - サーバーワークスエンジニアブログ>https://blog.serverworks.co.jp/wafcharm/awsmanagedrulesknownbadInputsruleset-log4jrce]] 2021.12

-[[脅威に関する情報: Apache Log4jに新たな脆弱性(CVE-2021-44228) 実際の悪用も確認>https://unit42.paloaltonetworks.jp/apache-log4j-vulnerability-cve-2021-44228/]] 2021.12

-[[30億のデバイスで任意コードが実行できちゃうJava - Qiita>https://qiita.com/shun-g/items/93d05d9ce9681e50c18a]] 2021.12

-[[Log4j2 脆弱性問題における SpringBoot アプリケーションの検証 | DevelopersIO>https://dev.classmethod.jp/articles/log4jrce-springboot-research/]] 2021.12

-[[Apache Log4jの任意のコード実行の脆弱性(CVE-2021-44228)に関する注意喚起>https://www.jpcert.or.jp/at/2021/at210050.html]]
--JPCERTの情報

-[[log4jの脆弱性について>https://ezoeryou.github.io/blog/article/2021-12-10-log4j.html]] 2021.12

-[[Log4jのLookup機能のドキュメント>Log4j – Log4j 2 Lookups>https://logging.apache.org/log4j/2.x/manual/lookups.html]]
--この中のJndi Lookupが問題を起こす

-[[Exploiting JNDI Injections in Java | Veracode blog>https://www.veracode.com/blog/research/exploiting-jndi-injections-java]] 2019.3

-[[marshalsec/LDAPRefServer.java at master · mbechler/marshalsec · GitHub>https://github.com/mbechler/marshalsec/blob/master/src/main/java/marshalsec/jndi/LDAPRefServer.java]] 2021.12

-https://twitter.com/knqyf263/status/1469256733105483781
--Java 8系では8u191以降でLDAPのtrustURLCodebaseがデフォルトでfalseになっているので今のPoCでは刺さらない
--trustURLCodebase=trueに設定していれば刺さる
--8u191以降であってもclasspathのガジェット次第ではバイパスして刺さる

-[[「やばすぎる」 Javaライブラリ「Log4j」にゼロデイ脆弱性、任意のリモートコードを実行可能 iCloudやSteam、Minecraftなど広範囲のJava製品に影響か - ITmedia NEWS>https://www.itmedia.co.jp/news/articles/2112/10/news157.html]] 2021.12

-[[Log4Shell: RCE 0-day exploit found in log4j, a popular Java logging package | LunaSec>https://www.lunasec.io/docs/blog/log4j-zero-day/]] 2021.12

-[[マイクラもハッキング 〜「Apache Log4j」ライブラリに致命的なリモートコード実行のゼロデイ脆弱性 - やじうまの杜 - 窓の杜>https://forest.watch.impress.co.jp/docs/serial/yajiuma/1373242.html]] 2021.12



**対策 [#df280b45]
-[[Hotpatch for Apache Log4j | AWS Open Source Blog>https://aws.amazon.com/de/blogs/opensource/hotpatch-for-apache-log4j/]] 2021.12
--[[GitHub - corretto/hotpatch-for-apache-log4j2: An agent to hotpatch the log4j RCE from CVE-2021-44228.>https://github.com/corretto/hotpatch-for-apache-log4j2]] 2021.12

-https://twitter.com/mattn_jp/status/1470027729466978306
 log4j の件は環境変数 LOG4J_FORMAT_MSG_NO_LOOKUPS=true にするのが一番手堅いんじゃないかな。
 java コマンドのオプションを指定したとしても、実はそのシェルから起動されてなかったとか、
 java コマンドから別のプロセスが起動されてたとか、想定してないケースもあるし。

-[[GitHub - tangxiaofeng7/CVE-2021-44228-Apache-Log4j-Rce: Apache Log4j 远程代码执行>https://github.com/tangxiaofeng7/CVE-2021-44228-Apache-Log4j-Rce#bypass-waf]] 2021.12

-[[Log4jの脆弱性対策としてAWS WAFのマネージドルールに「Log4JRCE」が追加されました | DevelopersIO>https://dev.classmethod.jp/articles/aws-waf-new-rule-log4jrce/]] 2021.12 →Amazon Web Service
--[[Log4jの脆弱性を緩和するAWS WAFをCloudFormationで設定してみた | DevelopersIO>https://dev.classmethod.jp/articles/aws-waf-log4jrce-cloudformation/]] 2021.12

-[[Log4j 2.14.1の脆弱性対応>https://zenn.dev/yuitosato/articles/ed283add200e2a]]


*log4jのサイト [#g7eda9c4]
-[[APIドキュメント>http://www.ingrid.org/jajakarta/log4j/jakarta-log4j-1.1.3/docs-ja/api/index.html]]
-http://logging.apache.org/
-[[log4j徹底解説>http://www.nurs.or.jp/~sug/soft/log4j/index.htm]]
-[[log4j クラス図>http://web.tiscalinet.it/mtavern/diagram.htm]]
-[[download site>http://logging.apache.org/log4j/1.2/download.html]]
-[[Chainsaw解説>http://www.nurs.or.jp/~sug/soft/log4j/chainsaw1.htm]]
--Chainsawとはlog4jのログビューワみたいなもの

-[[ソースダウンロード>https://www.apache.org/dyn/closer.lua/logging/log4j/2.16.0/apache-log4j-2.16.0-src.zip]]

*log4j:WARN No appenders could be found for logger [#j7fe3a56]
-log4j:WARN No appenders could be found for logger
--http://phew-hum.cocolog-nifty.com/blog/2008/01/log4j_log4jwarn.html
   1. log4j.properties or log4j.xml がクラスパスに無い。
   2. log4j.propertiesなら、log4j.category以下に存在していない
      パッケージが記述してある。


*log4jの初期化 [#y21d1665]
 ClassLoader loader =
 Thread.currentThread().getContextClassLoader();
 URL url = loader.getResource("log4j.properties");
 PropertyConfigurator.configure(url);
-[[参考:ルート以外のlog4j.propertiesを読み込む>http://d.hatena.ne.jp/shinya_s/?of=5]]



*log4jのログファイルが出力されない、もしくはサイズ0のまま [#m67c369b]
-WindowsでEclipseで動かしたときは動くのにTomcatにJarをロードさせて動かすと出ない場合
-Usersグループのフォルダへの書き込み権限がなかったのをフルコントロールOKに
してやると出力されるようになった(Windows Server 2008)
-ログファイルの所有者はAdministratorsなのにtomcat上のWebアプリはUsers権限で動いている模様。不思議だ

-似たような問題として、パスの区切り文字を \ で与えているケース。\\にするか、/にするかどっちかする必要がある

-log4jのjarファイルを2箇所(例えばTomcatのlibフォルダと webapps 下のwarファイルの中のWEB-INF/libフォルダ)に入れていると、WebAppLoaderとstandardLoader で二重にロードしたというエラーがstdout.logに出力されてログが出力されない現象が起きる。


*log4jでスタックトレースを出力 [#g6e95ce7]
 static public void printStackTrace(Exception e){
   StringWriter sw  =new StringWriter();
     PrintWriter pw = new PrintWriter(sw);
      e.printStackTrace(pw);
      error(sw.toString());
 }

トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS