質問: クライアントから依頼を受けて WordPressで構築したサイトを、クライアントがセキュリティ調査会社にセキュリティ診断の依頼をしたそうです。 その結果、「セッション管理の不備」として「手作りセッション管理機能の利用」という指摘を受けました。 具体的な指摘内容は、以下の通りです。 > > セッション管理において、言語やミドルウェアにて標準で提供されるセッション管理機能を使用せず、独自のセッション管理機能を使用しています。 > > ミドルウェア固有のセッション管理機能を使用している場合についても、そのセッション管理機能が安全とは言い切れない場合があるため、指摘とする場合があります。 > > > 試験対象の画面がログイン画面ですので、ログイン認証におけるセッション管理が WordPress固有の処理で構築されている、ということを指摘していることになるのだと思いますが、WordPressは固有のセッション管理で行われているのでしょうか? WordPressですので、PHPでセッション管理の処理が作られている、ということになるわけですよね?
回答: その脆弱性診断は「ウェブ健康診断」という仕様によるものかと思います。元はLASDECという団体にて策定し、現在はIPAに仕様書が移管されて、安全なウェブサイトの作り方の別冊扱いになっています。 仕様書の注記として、以下のように書かれています。 > > 言語・ミドルウェアのセッション管理機構とは、以下のセッションID の場合とします。 > > ・ PHPSESSID > > ・ JSESSIONID > > ・ ASPSESSIONIDxxxx (xxxx はランダムな英数字) > > その他、検査実施者の既知のセッションID を判断材料として加えてもよいこととします。 > > > 診断をした会社では、WordPressを「既知のセッションID」とはみなさなかったということでしょう。 しかし、仕様書の意図としては、WordPressのような著名なCMSやフレームワークのセッション管理機構については、既知のものとみなすということであり、指摘は必ずしもあたらないと考えます。