Hello there, ('ω')ノ
下記は、おなじみのOWASP TOP10で。
経済産業省情報セキュリティサービス基準には。
あくまでも例示ではありますが、下記のように書いてあって。
・ OWASP の定める ASVS(Application Security Verification Standard)
レベル1以上
・ 独立行政法人情報処理推進機構による「ウェブ健康診断仕様」が定める
診断内容
・ OWASP が定める「Security Testing Guideline」
・ 日本セキュリティオペレーション事業者協議会及び OWASP による脆弱性
診断士スキルマッププロジェクトが定める「脆弱性診断ガイドライン」
下記が、ウェブ健康診断仕様で。
この中にはXXEについては記述がなく。
下記が、脆弱性診断ガイドラインで。
ここにはXXEについてはOS別の記述があって。
これらの問題は、更新がされていないという点で。
このような姿勢が世界に取り残される理由であって。
国のデジタル事業やアプリ開発のレベルを疑問視する理由だったりと。
さて、XXEの診断ですが。
Exploiting XXE to perform SSRF attacksを例にすると。
いきなり、脆弱性診断ガイドラインのペイロードを試す前に。
シンプルなDTDで構文チェックをしてからのほうがお勧めで。
エラーメッセージからどこに問題があるかを把握して。
<!DOCTYPE foo [
<!ELEMENT foo ANY >
<!ENTITY xxe "hack" >]>
<foo>&xxe;</foo>
下記のように修正すると、エラーメッセージは構文にあるわけではないので。
<productId>&xxe;</productId>
慣れないうちは、少しずつ構文を変えてはエラーメッセージで把握して。
<!ENTITY xxe SYSTEM "hack" >]>
診断したいペイロードを完成させるようにステップバイステップのほうが。
勘違いして脆弱性を見逃すことはないのかと。
<!ENTITY xxe SYSTEM "file:///etc/hosts" >]>
次にBlind XXE with out-of-band interactionを例に。
ここで、脆弱性診断ガイドラインのペイロードを試すと。
記述どおりのレスポンスを確認できないので。
脆弱性なしと判断するのかと。
要は、脆弱性診断はそれほど簡単なものではなく。
ツール頼みだったり、マニュアルに頼るだけでは。
外部からの侵入を防ぐことはできず。
セキュリティに国境はないので。
日ごろのトレーニングを怠らずに。
常に世界レベルでスキルを身につけていくべきかと。
日本では、本やセミナー等を通じて有名になった者勝ちのような風潮もありますが。
本当に目指すレベルは、そういった有名人レベルなのだろうかと。
Best regards, (^^ゞ