moodleの脆弱性対応方法につきまして

moodleの脆弱性対応方法につきまして

- Taka Hatt の投稿
返信数: 59

皆様、いつも参考にさせて頂いております。

当方のmoodleシステムがMicroFocusの脆弱性検査において
Cookie関連で3つ脆弱性を指摘されております。
恥ずかしい話、この対処をどのようにしたらよいか分からず
対処方法をご教示頂けたら幸いでございます。

【MicroFocusより指摘された脆弱性】
1.
This policy states that any area of the website or web application that
contains sensitive information or access to privileged functionality such as remote site
administration requires that all cookies are sent via SSL during an SSL session.

The URL: https://xxxxx/seminar/auth/saml/index.php has failed this policy.
If a cookie is marked with the "secure" attribute,
it will only be transmitted if the communications channel with the host is a secure one.
Currently this means that secure cookies will only be sent to HTTPS (HTTP over SSL) servers.
If secure is not specified, a cookie is considered safe to be sent in the clear over unsecured channels.


2.
Cookies are small bits of data that are sent by the web application but stored locally in the browser.
This lets the application use the cookie to pass information between pages and store variable information.
The web application controls what information is stored in a cookie and how it is used.
Typical types of information stored in cookies are session Identifiers,
personalization and customization information, and in rare cases even usernames to enable automated logins.
There are two different types of cookies: session cookies and persistent cookies.
Session cookies only live in the browser's memory, and are not stored anywhere.
Persistent cookies, however, are stored on the browser's hard drive.
This can cause security and privacy issues depending on the information stored in the cookie and how it is accessed.

Persistent cookies are stored on the browsing clients hard drive even when
that client is no longer browsing the Web site that set the client.
Depending on what information is stored in the cookie, this could lead to security and privacy violations.
The Office of Management and Budget has decreed that no federal websites shall use persistent cookies except in very specific situations.


3.
A username was found in the query string of a GET request or Set-Cookie header.
Unknown application testing seeks to uncover new vulnerabilities in both custom and commercial software.
Because of this, there are no specific patches or descriptions for this issue.

以下の環境にてMoodleが稼働している状況でございます。
OS:Windows NT GSV001 10.0 build 14393 (Windows Server 2016) i586
moodleバージョン:3.4 (Build: 20171113)
PHPバージョン:7.0.26RC1

session関連の設定
    Local Value Master Value
session.cookie_domain  no value no value
session.cookie_httponly  Off  Off
session.cookie_lifetime  0  0
session.cookie_path  /seminarp/ /
session.cookie_secure  On  Off
session.use_cookies  On  On
session.use_only_cookies On  On

以上、宜しくお願い致します。

Taka Hatt への返信

Re: moodleの脆弱性対応方法につきまして

- Mitsuhiro Yoshida の投稿
画像 Developers 画像 Particularly helpful Moodlers 画像 Translators

「管理 > サイト管理 > サーバ > セッションハンドリング」ページの「セッション情報にデータベースを使用する dbsessions」を有効にした場合でも同じ結果でしょうか?

Mitsuhiro Yoshida への返信

Re: moodleの脆弱性対応方法につきまして

- Taka Hatt の投稿

吉田様、

早速のご案内どうもありがとうございます。

ご教示頂きました設定を行わさせていただきましてもう一度、脆弱性検査のプロセスを実施致します。

結果が出るまで少々お時間を頂きたいと思います。

またご報告させていただきます。


よろしくお願いいたします。

Mitsuhiro Yoshida への返信

Re: moodleの脆弱性対応方法につきまして

- Taka Hatt の投稿

吉田様

>「管理 > サイト管理 > サーバ > セッションハンドリング」ページの

>「セッション情報にデータベースを使用する dbsessions」を有効にした場合でも同じ結果でしょうか?

ご教示頂きました施策を実施し、再度脆弱性検査を行いましたが、状況は変わりませんでした。

指摘されております1から3のHTTP要求に対する応答を取得いたしましたので添付させて頂きます。


moodle上でcookieの扱いをOFFにした場合どのような影響がございますでしょうか。

何卒よろしくお願いいたします。


Taka Hatt への返信

Re: moodleの脆弱性対応方法につきまして

- Mitsuhiro Yoshida の投稿
画像 Developers 画像 Particularly helpful Moodlers 画像 Translators

> moodle上でcookieの扱いをOFFにした場合どのような影響がございますでしょうか。

「管理 > サイト管理 > サーバ > セッションハンドリング」ページの「セッション情報にデータベースを使用する dbsessions」を有効にした場合、下記投稿のようにアクセス数の多いMoodleサイトではデータベースの動作が遅くなる場合があります。

[Moodle in English: File or Database Sessions?]
https://moodle.org/mod/forum/discuss.php?d=264600#p1146840

Mitsuhiro Yoshida への返信

Re: moodleの脆弱性対応方法につきまして

- udagawa mitsuru の投稿

うだがわです

回答内容に間違いがあるかもしれませんが、誰かがマサカリを投げてくれるでしょう…

脆弱性として指摘されているブラウザに保存されるHTTP CookieとMoodleのセッションをDBに保存する設定は異なるものです。

MoodleのセッションはMoodleにログインした時にDBなどから生成したセッション情報(ユーザ情報など)をサーバ内のどこに保存するかという問題です。
一方MoodleではHTTP Cookieはサーバ内に保存されたセッション情報を取り出すキー(セッションID)の保存先として利用されています。

HTTP Cookieにはサイズの制約がありますが任意の情報を保存できます。ただしユーザ側から容易に内容の閲覧や書き換えができるためユーザ名やパスワードなどの情報は保存するべきではありません。Moodleではログインセッション用Cookieにユーザ名のようなものは保存して居ないはずです。(指摘項目の(2))(ユーザ名を記憶させるにチェックを入れると60日間RC4で暗号化したユーザ名を記憶させるCookieを別途発行するようです)
そのため、指摘項目の(3)はユーザ名を保存する機能のことか、(1)で指摘されているSAML認証用プラグインに問題があるのではないかと思われます。

指摘事項(1)についてはセキュア属性の付いているCookieが平文でやりとりされているために表示されたもののようですが、URLを見るとHTTPSになっているため一見すると不自然ですが、リバースプロキシ経由でアクセスしているのであればリバースプロキシ配下で平文通信になっているのが原因です。リバースプロキシ配下の通信路が信頼できるのであれば問題ないのではと考えます。

また、サーバの設定で"session.use_only_cookies on"になっていますので、ブラウザ側でCookieを無効にするとMoodleにログインできなくなります。Cookieが使えなくてもセッションを利用する方法はあるのですが、URLにセッションIDが表示されるなどセキュリティに問題があるとされるため推奨しません。

udagawa mitsuru への返信

Re: moodleの脆弱性対応方法につきまして

- Taka Hatt の投稿

うたがわ様
お世話になっております。ご回答どうもありがとうございます。
無知で大変恐縮なのですが、ご質問させて下さい。

指摘事項(1)についてですが、
再度リバースプロキシー配下の平文通信の確認を行ってみます。

>リバースプロキシ配下の通信路が信頼できるのであれば問題ないのではと考えます。
>SAML認証用プラグインに問題があるのではないかと思われます。
こちらのコメントどうもありがとうございました。
SAML認証用プラグインに関しても確認致します。

指摘項目の(2)についてですが、
>HTTP Cookieにはサイズの制約がありますが任意の情報を保存できます。
>ただしユーザ側から容易に内容の閲覧や書き換えができるためユーザ名やパスワードなどの
>情報は保存するべきではありません。
>Moodleではログインセッション用Cookieにユーザ名のようなものは保存して居ないはずです。
こちらに関してですが、MoodleではCookieにはユーザ名のようなものは保存していないので、
FicroFocusによる脆弱性の検査システムがCookieにユーザ名やパスワードを保存していると
解釈させていただいて宜しかったでしょうか。

>(ユーザ名を記憶させるにチェックを入れると60日間RC4で暗号化したユーザ名を記憶させるCookieを別途発行するようです)
こちらは、Moodleの機能ということで宜しかったでしょうか。
この機能を無効にするには、ログイン画面に表示されている「ユーザ名を記憶する」の
チェックボックスをマスクするような施策が必要でしょうか。

以上、宜しくお願い致します。

Taka Hatt への返信

Re: moodleの脆弱性対応方法につきまして

- udagawa mitsuru の投稿

うだがわです

こちらに関してですが、MoodleではCookieにはユーザ名のようなものは保存していないので、
FicroFocusによる脆弱性の検査システムがCookieにユーザ名やパスワードを保存していると
解釈させていただいて宜しかったでしょうか。

実際どのようなCookieが保存されているか確認してみないとわかりませんが、前述のようにユーザ名を記憶する設定のCookieはWebブラウザに2ヶ月間保存されるため、検査プログラムが複数パターンの動作を試す過程で出てきたものの可能性があるのではと思います。
SAML認証用プラグインのソースを確認するとログアウト時にCookieを発行しているようですので、あるいはこちらを見たのかもしれません。

SSOを利用する場合は通常は $CFG->alternateloginurl でSSOログイン用のページを表示させますが、その場合はユーザ名の記憶機能については無視して良いのではと思います。

また、

udagawa mitsuru への返信

Re: moodleの脆弱性対応方法につきまして

- Taka Hatt の投稿

うたがわさま

早速のご回答どうもありがとうございます。

・moodleログイン時に、SAML認証(Azure AD)画面へリダイレクトし、認証後にmoodleへリダイレクトされます。

・この状態でログアウトを行って、再度ログインするとSAML認証(Azure AD)画面へへリダイレクトされます。

この時Azure AD認証画面のユーザIDの部分には一度目のアカウントが既に入っている状態となっております。

この状態がご教示をいただいた、

 >SAML認証用プラグインのソースを確認するとログアウト時にCookieを発行しているようですので、

が機能しているという認識で宜しかったでしょうか。

無知で大変申し訳ないのですが、"SAML認証用プラグインのソースを確認" とはどのソースを指していらっしゃいますかご教示頂けたら幸いです。”ログアウト時にCookieを発行しない”ような施策も対策となりますでしょうか。


よろしくお願いいたします。

Taka Hatt への返信

Re: moodleの脆弱性対応方法につきまして

- udagawa mitsuru の投稿

うだがわです

ソースは下記URLにあるSAML認証モジュールの事を言っています。
https://github.com/moodle-saml/auth/blob/master/auth.php

この157行目でユーザ名"nobody"としてCookieを発行しています。このCookieについてはユーザ名漏洩の脆弱性とはならないと考えます。

Azure ADのログイン画面についてはADサーバとMoodleの動作しているサーバとは別でしょうから別のCookieの話になります。通常異なるドメインのCookieにサーバがアクセスすることはできません。

udagawa mitsuru への返信

Re: moodleの脆弱性対応方法につきまして

- Taka Hatt の投稿

うたがわさま

ご返信大変遅くなりました。

>ソースは下記URLにあるSAML認証モジュールの事を言っています。

ご教示どうもありがとうございました。


>Azure ADのログイン画面についてはADサーバとMoodleの動作しているサーバとは別でしょうから

>別のCookieの話になります。通常異なるドメインのCookieにサーバがアクセスすることはできません。

こちらもありがとうございます。

ご指摘の通り、Azure ADはMoodleとは別のサーバで稼働しております。

Moodleからログアウト -> 再ログイン -> Azure ADのログインページへ遷移(この時にユーザ名が既に入っている状態でした。)

これが脆弱性と判断されていると思われMoodleとは別の問題にあたるという方向で調査致します。

また、

Moodleからログアウト -> Cookieを全て削除 -> 再ログイン -> Azure ADのログインページへ遷移(この時はユーザ名がNullの状態でした。)

Azure AD周りを調査致します。

よろしくお願いいたします。




udagawa mitsuru への返信

Re: moodleの脆弱性対応方法につきまして

- Taka Hatt の投稿

うたがわ様
お世話になっております。

>(1)で指摘されているSAML認証用プラグインに問題があるのではないかと思われます。

このSAML認証プラグインは、SimpleSAMLphp(https://simplesamlphp.org/

というプラグインを使用してMicroSoft AzureADで認証処理を行っております。


Taka Hatt への返信

Re: moodleの脆弱性対応方法につきまして

- Mitsuhiro Yoshida の投稿
画像 Developers 画像 Particularly helpful Moodlers 画像 Translators

SAML認証に下記非標準プラグインをお使いですか?

[Moodle plugins directory: SAML Authentication (simpleSAMLphp required)]
https://moodle.org/plugins/auth_saml

Mitsuhiro Yoshida への返信

Re: moodleの脆弱性対応方法につきまして

- Taka Hatt の投稿

吉田様
ご回答どうもありがとうございます。

SAML Authentication plugin(https://moodle.org/plugins/auth_saml)
をmoodleへインストールしております。

別途、SimpleSAMLphp(https://simplesamlphp.org/)を配置しております。
よろしくお願いいたします。

Taka Hatt への返信

Re: moodleの脆弱性対応方法につきまして

- Mitsuhiro Yoshida の投稿
画像 Developers 画像 Particularly helpful Moodlers 画像 Translators

Moodle設定ファイル (config.php) に下記設定を記述されていますでしょうか?

$CFG->sslproxy = true;

Mitsuhiro Yoshida への返信

Re: moodleの脆弱性対応方法につきまして

- Taka Hatt の投稿

吉田様

ご回答どうもありがとうございます。

Moodle設定ファイル上に、"$CFG->sslproxy = true;" の記載はございませんでした。

お恥ずかしい限りなのですがこの設定はどのようなものなのでしょうか。

自分なりに調べたところ、"リバースプロキシー配下にある場合は設定をするひつようがある"

との情報を得まして、まさしく指摘されているmoodleサービスはリバースProxy配下で稼働しております。


よろしくお願いいたします。

Taka Hatt への返信

Re: moodleの脆弱性対応方法につきまして

- Mitsuhiro Yoshida の投稿
画像 Developers 画像 Particularly helpful Moodlers 画像 Translators

> 自分なりに調べたところ、"リバースプロキシー配下にある場合は設定をするひつようがある" との情報を得まして、まさしく指摘されているmoodleサービスはリバースProxy配下で稼働しております。

下記Qiitaの@papillonさんのページをご覧になったのですね。

[Moodleのおすすめ隠しconfig by @papillon - Qiita]
https://qiita.com/papillon/items/3725d85d81b3a638bdcc

> この設定はどのようなものなのでしょうか。

具体的には下記3箇所で「クッキーにsecureフラグを立てる目的」および「httpをhttpsに置換する目的」で使用されています。

$CFG->sslproxy使用ファイル:
lib/formslib.php

$CFG->sslproxy使用箇所:
187行目

        if (empty($action)){
            // do not rely on PAGE->url here because dev often do not setup $actualurl properly in admin_externalpage_setup()
            $action = strip_querystring($FULLME);
            if (!empty($CFG->sslproxy)) {
                // return only https links when using SSL proxy
                $action = preg_replace('/^http:/', 'https:', $action, 1);
            }
            //TODO: use following instead of FULLME - see MDL-33015
            //$action = strip_querystring(qualified_me());
        }

備考:
$CFG->sslproxyが有効にされている場合、「http://」を「https://」に置換します。

----------------------------------------------------------------------------------------------

$CFG->sslproxy使用ファイル:
lib/sessionlib.php

$CFG->sslproxy使用箇所:
99行目

/**
 * Determine wether the secure flag should be set on cookies
 * @return bool
 */
function is_moodle_cookie_secure() {
    global $CFG;

    if (!isset($CFG->cookiesecure)) {
        return false;
    }
    if (!is_https() and empty($CFG->sslproxy)) {
        return false;
    }
    return !empty($CFG->cookiesecure);
}

備考:
http通信以下で$CFG->sslproxyが有効にされている場合、クッキーにsecureフラグを立てる準備をします。

----------------------------------------------------------------------------------------------

$CFG->sslproxy使用ファイル:
lib/weblib.php

$CFG->sslproxy使用箇所:
194行目

/**
 * Guesses the full URL of the current script.
 *
 * This function is using $PAGE->url, but may fall back to $FULLME which
 * is constructed from  PHP_SELF and REQUEST_URI or SCRIPT_NAME
 *
 * @return mixed full page URL string or false if unknown
 */
function qualified_me() {
    global $FULLME, $PAGE, $CFG;

    if (isset($PAGE) and $PAGE->has_set_url()) {
        // This is the only recommended way to find out current page.
        return $PAGE->url->out(false);

    } else {
        if ($FULLME === null) {
            // CLI script most probably.
            return false;
        }
        if (!empty($CFG->sslproxy)) {
            // Return only https links when using SSL proxy.
            return preg_replace('/^http:/', 'https:', $FULLME, 1);
        } else {
            return $FULLME;
        }
    }
}

備考:
$CFG->sslproxyが有効にされている場合、「http://」を「https://」に置換します。

Mitsuhiro Yoshida への返信

Re: moodleの脆弱性対応方法につきまして

- Taka Hatt の投稿

吉田様

お忙しいところ早速のご回答を感謝いたします。

>下記Qiita@papillonさんのページをご覧になったのですね。

はい、このページに辿り着きました。

また詳しいフラグのご解説をどうもありがとうごいざいます。

こちらの検証環境でお試しを行い、本番環境へ反映を行ったうえで、脆弱性検査を走らせたいと思っております。

進展がありましたらご報告をさせて頂きます。

以上、よろしくお願いいたします。

Taka Hatt への返信

Re: moodleの脆弱性対応方法につきまして

- Taka Hatt の投稿

脆弱性の日本語です。

1.

このポリシーは、機密情報を含んでいたり、
リモート サイトの管理などの権限が割り当てられた機能にアクセスしたりする
Web サイトや Web アプリケーションの領域では、SSL セッション中にすべての Cookie を SSL 経由で送信する
必要があることを定めています。
https://xxxxx/seminarp/auth/saml/index.php という URL はこのポリシーに違反しています。
「secure」属性でマークされた Cookie は、ホストとの通信チャネルがセキュリティで
保護されている場合にのみ転送されます。
つまり現時点では、secure が指定された Cookie は、HTTPS (HTTP over SSL) サーバーだけに送信されることになります。
secure が指定されていない Cookie は、セキュリティで保護されていないチャネルを経由して
平文で送信しても安全だと見なされます。

2.

cookie は、アプリケーションによって送信され、ブラウザによってローカルに格納される、小容量のデータです。
アプリケーションは、ページ間での情報の受け渡しと、変わりやすい情報の格納に cookie を使用します。
Web アプリケーションは、どの情報を cookie に格納し、それをどのように使用するかを制御します。
cookie に格納される一般的な情報は、セッション ID、パーソナライズとカスタマイズの情報などがあり、
時には自動ログインを有効にするためにユーザー名も格納されます。
cookie には、「セッション cookie」と「固定 cookie」の 2 種類があります。
セッション cookie はブラウザのメモリ上でのみ使用され、それ以外の場所には保存されません。
一方、固定 cookie はブラウザのハードディスク ドライブに保存されます。cookie に保存する情報や、
その情報へのアクセス方法によっては、セキュリティやプライバシーの問題が生じる可能性があります。


固定 cookie は、クライアントを設定した Web サイトをブラウズしなくなってからも、
クライアントのハードディスク ドライブに残されます。
cookie に保存されている情報によっては、これがセキュリティ上の、
またはプライバシーのリスクにつながる場合があります。
行政管理予算局は、非常に特殊な状況を除いて、
連邦機関の Web サイトで固定 cookie を使用することを禁止しています。

3.

GET 要求のクエリ文字列または Set-Cookie ヘッダーにユーザー名が見つかりました。

不明なアプリケーションのテストでは、カスタム ソフトウェアと商用ソフトウェアの両方に含まれる

新しい脆弱性の検出が試みられます。

このため、この問題に関する特定のパッチや具体的な説明は存在しません。


Taka Hatt への返信

Re: moodleの脆弱性対応方法につきまして

- Taka Hatt の投稿

吉田様、うだがわ様
お世話になっております。

皆様にご教示頂いた施策を行い、2番の脆弱性が解消されました。

行った施策ですが、
Moodle設定ファイル上に、"$CFG->sslproxy = true;" を設定
サイト管理->セキュリティ->ユーザ名を記憶するをNOへ設定

引き続き、宜しくお願い致します。

Taka Hatt への返信

Re: moodleの脆弱性対応方法につきまして

- Mitsuhiro Yoshida の投稿
画像 Developers 画像 Particularly helpful Moodlers 画像 Translators

たしか、Ubuntuサーバをリバースプロキシとして使われていたかと記憶しております。もし、Apacheをリバースプロキシサーバにされているのでしたら、下記ディレクティブを追加されてみてはいかがでしょうか。

RequestHeader set X-Forwarded-Proto "https"
RequestHeader set X-Forwarded-Port "443"

Mitsuhiro Yoshida への返信

Re: moodleの脆弱性対応方法につきまして

- Taka Hatt の投稿

吉田様

早速のご回答どうもありがとうございます。

TLSの無効化の件ではお世話になりました。

おっしゃるとおり、Ubuntuサーバをリバースプロキシーに使用しております。

Apache上の設定を再度確認致します。

よろしくお願いいたします。

Mitsuhiro Yoshida への返信

Re: moodleの脆弱性対応方法につきまして

- Taka Hatt の投稿

吉田様、お世話になっております。

ご教示頂いた下記ディレクティブをリバースプロキシ上のConflgファイルに設定し再び脆弱性検査を行ってみましたが

Cookie not Sent Over SSLは解消されませんでした。

【Set-Cookie: PHPSESSID=2b0193ff3fc55c24dcbc722f7f4e602a; path=/; HttpOnly】

(HTTP応答のset-cookei部にSecureが無い状態です。)

PHP.ini上にはsession.cookie_secure=1が設定されており、MoodleのPHP情報からもOnを示しております。

Moodle上の設定には問題はなさそうですので、やはりリバースプロキシの設定を疑った方が宜しいでしょうか。

よろしくお願いいたします。

>RequestHeader set X-Forwarded-Proto "https"
>RequestHeader set X-Forwarded-Port "443"

Taka Hatt への返信

Re: moodleの脆弱性対応方法につきまして

- Mitsuhiro Yoshida の投稿
画像 Developers 画像 Particularly helpful Moodlers 画像 Translators

> ご教示頂いた下記ディレクティブをリバースプロキシ上のConflgファイルに設定し再び脆弱性検査を行ってみましたがCookie not Sent Over SSLは解消されませんでした。

恐らく、リバースプロキシ用UbuntuサーバのApache設定ファイル (/etc/apache2/sites-available/000-default.conf) の「VirtualHost」ブロック内に下記ディレクティブを記述されたのですね。

RequestHeader set X-Forwarded-Proto "https"
RequestHeader set X-Forwarded-Port "443"

> Moodle上の設定には問題はなさそうですので、やはりリバースプロキシの設定を疑った方が宜しいでしょうか。

私もそのように思います。

もし、お使いの脆弱性検査用ソフトウェアがMicroFocus社 (https://www.microfocus.com/) の製品でしたら、東京にもオフィスがあるようですので、一度ご相談されても宜しいかと思います。

[Contact Us - Micro Focus]
https://www.microfocus.com/about/contact/

Midtown Tower
19th Floor, Unit 1902
9-7-1 Akasaka
Minato-ku, Tokyo
Japan 107-6219

Tel: +81-3-5413-4800
Fax: +81-3-5413-4777

Taka Hatt への返信

Re: moodleの脆弱性対応方法につきまして

- Taka Hatt の投稿

吉田様、うたがわ様

お世話になっております。

Cookie Security: Cookie not Sent Over SSL の脆弱性につきましてご報告致します。

simplesamlphpのconfig設定を見直したところ、session.sookie.secureをOnに設定致しました。

HTTPヘッダー上のset-cookie部に"secure"の表示があり解決見込みでございます。


もう一点のPrivacy Violation: HTTP GETにつきましてですが、ユーザIDを含んだGET要求に対しての応答があるので

”GET 要求のクエリ文字列または Set-Cookie ヘッダーにユーザー名が見つかりました。” と指摘されているようです。

GET要求のパラメータ(この場合はMoodle内のユーザID)が入るのはMoodleの仕様ということで宜しかったでしょうか。

GET /seminarp/grade/report/overview/index.php?userid=437&id=1 HTTP/1.1
Referer: https://xxxx/seminarp/user/profile.php?id=437

※右上のユーザ名->プロファイルを選択したときのGET要求です。


以上、よろしくお願いいたします。

Taka Hatt への返信

Re: moodleの脆弱性対応方法につきまして

- Mitsuhiro Yoshida の投稿
画像 Developers 画像 Particularly helpful Moodlers 画像 Translators

> GET /seminarp/grade/report/overview/index.php?userid=437&id=1 HTTP/1.1
> Referer: https://xxxx/seminarp/user/profile.php?id=437
> ※右上のユーザ名->プロファイルを選択したときのGET要求です。

恐らく、ユーザIDが「437」のユーザのプロファイルページで「レポート」セクションの「評定概要」リンクをクリックされたのではないでしょうか。

「評定概要」リンク例:
https://xxxx/seminarp/grade/report/overview/index.php?userid=437&id=1

この「評定概要」リンクは下記のように「grade/report/overview/lib.php」の462行目の関数「gradereport_overview_myprofile_navigation()」でユーザID ('userid' => $user->id) およびコースID ('id' => $course->id) を渡す形でURLが作成されます。

/**
 * Add nodes to myprofile page.
 *
 * @param \core_user\output\myprofile\tree $tree Tree object
 * @param stdClass $user user object
 * @param bool $iscurrentuser
 * @param stdClass $course Course object
 */
function gradereport_overview_myprofile_navigation(core_user\output\myprofile\tree $tree, $user, $iscurrentuser, $course) {
    if (empty($course)) {
        // We want to display these reports under the site context.
        $course = get_fast_modinfo(SITEID)->get_course();
    }
    $systemcontext = context_system::instance();
    $usercontext = context_user::instance($user->id);
    $coursecontext = context_course::instance($course->id);
    if (grade_report_overview::check_access($systemcontext, $coursecontext, $usercontext, $course, $user->id)) {
        $url = new moodle_url('/grade/report/overview/index.php', array('userid' => $user->id, 'id' => $course->id));
        $node = new core_user\output\myprofile\node('reports', 'grades', get_string('gradesoverview', 'gradereport_overview'),
                null, $url);
        $tree->add_node($node);
    }
}

> GET要求のパラメータ(この場合はMoodle内のユーザID)が入るのはMoodleの仕様ということで宜しかったでしょうか。

上記プロファイルページの「評定概要」リンクに関しましては「GET要求のパラメータ」にユーザIDおよびコースIDが入ります。

Mitsuhiro Yoshida への返信

Re: moodleの脆弱性対応方法につきまして

- Taka Hatt の投稿

吉田様、うたがわさま

お世話になっております。ご報告が遅くなりまして申し訳ございません。

Privacy Violation: HTTP GETの脆弱性につきまして、Microfocusへ確認を行いました。

・パブリックプロファイルが閲覧できる状態は、個人情報漏えいの恐れがある(アドレスや氏名)

・且つプロファイルへのURLを知っている方であればuserid=xxx部を任意で書き換えることによって他人のプロファイルが閲覧できる

ということが大まかな指摘事項でした。

そこで

プロファイルをマスクする施策は、https://moodle.org/mod/forum/discuss.php?d=324493   を参考させていただき

右上上部のMenu部をマスクする対応致しました。

もう一つ、Moodle画面下部に

「あなたは xxxxx としてログインしています」

と表示され、xxxxxのURLが脆弱性で指摘されたURLに相当する部分でございます。

この部分をソースを変更してマスクする方法などはございますでしょうか。

よろしくお願いいたします。

Taka Hatt への返信

Re: moodleの脆弱性対応方法につきまして

- Taka Hatt の投稿

ヘッダー部に表示されているユーザ名称をマスクできるか否か調査を致しました。

lib/outputrenderers.php の

return $loggedinas;

の前に

$loggedinas="";

としてマスクできたように見受けられましたが、正しい対応方法でしょうか。

Taka Hatt への返信

Re: moodleの脆弱性対応方法につきまして

- Mitsuhiro Yoshida の投稿
画像 Developers 画像 Particularly helpful Moodlers 画像 Translators

> 正しい対応方法でしょうか。

間違ってはいないと思います。

将来的なバージョンアップを考えまして可能な限りプログラムの修正は避けたほうが良いと思いますので、下記設定変更で氏名 (ユーザ名称) を非表示にされてはいかがでしょうか。

テーマが「Boost」の場合:
1.「サイト管理 > アピアランス > テーマ > Boost」に移動する。
2.「高度な設定」タブをクリックする。
3.「生先頭SCSS theme_boost」テキストエリアに下記CSSを記述する。

.usertext {
  display: none;
}

4.「変更を保存する」ボタンをクリックする。

テーマが「Clean」の場合:
1. 「管理 > サイト管理 > アピアランス > テーマ > Clean」に移動する。
2. 「カスタムCSS theme_clean」テキストエリアに下記CSSを記述する。

.usertext {
  display: none !important;
}

3.「変更を保存する」ボタンをクリックする。

Mitsuhiro Yoshida への返信

Re: moodleの脆弱性対応方法につきまして

- Taka Hatt の投稿

吉田様、ありがとうございます。

こちらも施策も是非検討させて頂きたいと思います。

よろしくお願いいたします。

Taka Hatt への返信

Re: moodleの脆弱性対応方法につきまして

- Mitsuhiro Yoshida の投稿
画像 Developers 画像 Particularly helpful Moodlers 画像 Translators

現在のお使いのMoodleで「管理 > サイト管理 > セキュリティ > サイトセキュリティポリシー」ページの「プロファイル閲覧にユーザのログインを強制する forceloginforprofiles」の設定はどのようにされていますでしょうか?

添付 Site security settings.png
Mitsuhiro Yoshida への返信

Re: moodleの脆弱性対応方法につきまして

- Taka Hatt の投稿

吉田さま、

早速ご連絡をどうもありがとうございます。

現設定はONになっております。

Taka Hatt への返信

Re: moodleの脆弱性対応方法につきまして

- Mitsuhiro Yoshida の投稿
画像 Developers 画像 Particularly helpful Moodlers 画像 Translators

ありがとうございます。

「プロファイル閲覧にユーザのログインを強制する forceloginforprofiles」を有効にしている状態でしたら、ユーザ名およびパスワードを不正に入手した上でMoodleにログインしない限り、個人情報 (メールアドレスや氏名等) を入手することは難しいと思います。

「パブリックプロファイルが閲覧できる状態」ということですが、別の場所でMoodleのユーザ情報を閲覧できるということでしょうか?

Mitsuhiro Yoshida への返信

Re: moodleの脆弱性対応方法につきまして

- Taka Hatt の投稿

吉田さん、ありがとうございます。

MicroFocus実行ユーザ(ロボットなのかもしれませんが)にはMoodleのアカウントを割り当てていて

そのユーザでMoodleへログイン後、アプリの脆弱性検査をしているようです。

よって、ログイン後に他者のプロファイルを閲覧できる状態であれば、情報漏えいに繋がらないか

という指摘だと思っております。

Moodleにログインできるユーザには他者のプロファイルを完全にマスクする制御はできるのでしょうか。

現在対策を行った施策は、

・プロファイルへ遷移できるURLをマスクした。

・プロファイルへ遷移できる知らない限り問題はない。

・意図的にプロファイルへのURL上のクエリストリング(id)を変更しないと他者のプロファイルは見れない

と思っております。


Taka Hatt への返信

Re: moodleの脆弱性対応方法につきまして

- Mitsuhiro Yoshida の投稿
画像 Developers 画像 Particularly helpful Moodlers 画像 Translators

「ログイン後に他者のプロファイルを閲覧できる状態」であるから脆弱性があるとのMicroFocusの判定は非常に厳しいですね。

> Moodleにログインできるユーザには他者のプロファイルを完全にマスクする制御はできるのでしょうか。

下記設定変更によりサイト管理者以外、ブラウザに直接URL (例) https://moodle.org/user/view.php?id=1177&course=14) を入力しても他のユーザのプロファイルページにアクセスできないようになります。

  1. サイト管理者としてMoodleにログインする。
  2. 「サイト管理 > ユーザ > ロールを定義する」に移動する。
  3. 「認証済みユーザ」行の編集 (歯車のアイコン) をクリックする。
  4. ケイパビリティ「ユーザプロファイルを表示する moodle/user:viewdetails」のパーミッションを「禁止」にする。
  5. 「変更を保存する」ボタンをクリックする。

添付 user_profile.png
Mitsuhiro Yoshida への返信

Re: moodleの脆弱性対応方法につきまして

- Taka Hatt の投稿

吉田様

ご回答どうもありがとうございました。この施策は適用されておりました。

プラスご教示頂いた右上メニューのマスク、Moodle下部の表示のマスクを実施して再脆弱性検査を実施しております。

(Moodleからprofile.phpへのリンクを塞いだ状態なので解消できるのではと期待しております)


下記のURLで指摘されているわけですが、

https://xxxx/seminarp/user/profile.php?id=437

でID=部分を任意で切り替えることによって他人のプロファイルを閲覧できるページに遷移することから

極論 profile.php をリネームすることのより指摘されたことへの対応はできるかなと思っております。

(プロファイルへのURLをMicrofocusで記憶されていなければこの対策は行わなくて良いと思うのですが。)

よろしくお願いいたします。

Taka Hatt への返信

Re: moodleの脆弱性対応方法につきまして

- Taka Hatt の投稿

吉田様、お世話になっております。

MicroFocusより指摘されていた脆弱性でしたが、プロファイルをマスク等の施策により解消されましたことを

ご報告申し上げます。


しかし、Moodleの制御において他の脆弱性が新たに指摘されております。

***Path Manipulation: Relative Path Overwrite***

相対パスによる上書き (RPO) の脆弱性 (相対パスによるスタイルシート インポート (PRSSI) とも呼ばれます) は、一部のサーバー上で利用され、アプリケーションが相対パスを使用して CSS ファイルを取り込む場合に、CSS ファイルへのパスを上書きすることを可能にします。この攻撃は、一部の Web 言語とフレームワークのパス処理機能を悪用して、ブラウザーに HTML コンテンツをスタイルシートとしてインポートさせます。次の条件で RPO 攻撃が成功します:

  • スタイルシートのインポートに相対パスを使用している
  • ブラウザーが Quirks モードを使用している (これはメタ タグまたは古い doctype を使用することでトリガーできます)
  • 相対パスを上書きする能力

挿入されたパスが応答に反映されている場合、クロスサイト スクリプティング攻撃が成功する可能性があります。これは、攻撃で実行可能な CSS 式を使用することにより可能になります。

スタイルシートを Web ページに含める際は、絶対パスを使用することをお勧めします。この問題を軽減する別の方法としては、X-Frame-Options や X-Content-Type-Options などのヘッダーを新しい doctype と合わせて使用し、MIME スニッフィングを回避することです。ただし、これらのオプションを使用しても、古いブラウザーや互換表示モードの Internet Explorer では脆弱性は軽減されません。このため、アプリケーションのユーザー基盤に基づいて正しい軽減策を使用することを推奨します。

***

ということで「スタイルシートが絶対パスになっていませんよ。」との警告のようです。

箇所はログイン後の画面HTMLの、

<link rel="stylesheet" type="text/css" href="https://xxxxxx/seminarp/theme/yui_combo.php?rollup/3.17.2/yui-moodlesimple-min.css" /><script id="firstthemesheet" type="text/css">/** Required in order to fix style inclusion problems in IE with YUI **/</script><link rel="stylesheet" type="text/css" href="https://xxxxx/seminarp/theme/styles.php/clean/1522372237_1/all" />

「?rollup/s.17.2/yui-moodlesimple-min.css」がその指摘されている箇所のようです(絶対パスになっていない)。

ソース修正で対応可能でしょうか。

よろしくお願いいたします。


Taka Hatt への返信

Re: moodleの脆弱性対応方法につきまして

- Mitsuhiro Yoshida の投稿
画像 Developers 画像 Particularly helpful Moodlers 画像 Translators

Moodle設定ファイル (config.php) に下記設定行を追加してください。

$CFG->yuislasharguments = 1;
Mitsuhiro Yoshida への返信

Re: moodleの脆弱性対応方法につきまして

- Taka Hatt の投稿

吉田さま

早速のご回答どうもありがとうございます。

HTML上、絶対パスとなっている事を確認できました。

もう一度脆弱性検査を実行致します。

Taka Hatt への返信

Re: moodleの脆弱性対応方法につきまして

- Taka Hatt の投稿

吉田さま、お世話になっております。

MicroFocusの検査でありますが、HTMLソース分析をしているようです。

Moodleの設定ではユーザプロファイルを非表示など、個人情報を含むものは全てOFF設定を行いました。

画面上非表示になっているのですが、HTMLソース上URLが出力されていてURLのクエリストリングにユーザIDがあります。

これを他のIDに変更しても閲覧できなくする設定で回避を行おうとしております。

結果はもう少々お時間を頂きたいと思います。


別途ご教示頂きたいのですが、ロールに関する権限設定を狭めてしまった行った影響で、

コース作成者が概要などの入力時にHTMLエディタが使用できなくなってしまい、常にプレーンテキストのテキストエリアで編集するように

なってしまいました。

HTMLエディタの使用権限を与えるにはどのような権限設定にするべきか、ご教示頂けないでしょうか。

お手数をおかけいたしますがよろしくお願いいたします。


***追伸***

何処かの文献でプリファレンスから設定を行う旨を拝見いたしました。

  1. サイト管理者としてMoodleにログインする。
  2. 「管理 > サイト管理 > アピアランス > テーマ > テーマ設定」にアクセスする。
  3. 「ユーザメニューアイテム customusermenuitems」テキストボックス内の文字をすべて取り除く。

の施策を行っていたため

3.をデフォルト値へ戻したのですが「評定」しか表示されませんでした。

Taka Hatt への返信

Re: moodleの脆弱性対応方法につきまして

- Mitsuhiro Yoshida の投稿
画像 Developers 画像 Particularly helpful Moodlers 画像 Translators

「管理 > サイト管理 > プラグイン > テキストエディタ」の「エディタを管理する」画面で「利用可能なテキストエディタ」の「Yes」カラムはすべて有効 (目が開いたアイコン) にされた状態でしょうか?

添付 Manage editors.png
Mitsuhiro Yoshida への返信

Re: moodleの脆弱性対応方法につきまして

- Taka Hatt の投稿

吉田さま

早速のご連絡をどうもありがとうございます。

はい、目のアイコンは開いております。

添付 screen.png
Taka Hatt への返信

Re: moodleの脆弱性対応方法につきまして

- Taka Hatt の投稿

吉田さま


>***追伸***

>3.をデフォルト値へ戻したのですが「評定」しか表示されませんでした。

本件大変失礼いたしました。

もう一度ユーザメニューアイテム customusermenuitemsを設定したところ右上のMenuすべて表示されました。

>何処かの文献でプリファレンスから設定を行う旨を拝見いたしました。

無知で大変申し訳ないのですが、正しい認識でしょうか。

プリファレンスページにアクセスると、空白となってしまい諸処プリファレンスリンクが表示されないようになっています。この現象も権限設定が影響しているのでしょうか。

Taka Hatt への返信

Re: moodleの脆弱性対応方法につきまして

- Mitsuhiro Yoshida の投稿
画像 Developers 画像 Particularly helpful Moodlers 画像 Translators

その「何処かの文献」をご提示頂けましたら、問題箇所を見極めることができやすくなると思います。

> プリファレンスページにアクセスると、空白となってしまい諸処プリファレンスリンクが表示されないようになっています。この現象も権限設定が影響しているのでしょうか。

もし、プログラムを修正されているのでしたら、「権限設定」よりも、プログラム修正の方が原因となる場合が多いのではないでしょうか。

Taka Hatt への返信

Re: moodleの脆弱性対応方法につきまして

- Taka Hatt の投稿

吉田さま

言葉足らずで済みませんでした。

プリファレンスページのプログラムはインストールの状態から変更しておりません。

参考文献は下記を閲覧しておりました。

https://mahakala.lesc.uec.ac.jp/mahoodle/moodle/docs/33/ja/Main_Page/Managing_a_Moodle_course/Editing_text/Formatting_text.html


Taka Hatt への返信

Re: moodleの脆弱性対応方法につきまして

- Mitsuhiro Yoshida の投稿
画像 Developers 画像 Particularly helpful Moodlers 画像 Translators

ありがとうございます。

「プリファレンスページにアクセスると、空白となってしまい諸処プリファレンスリンクが表示されないようになっています」とのことですが、ウェブブラウザに表示されるページすべてが空白になっていますでしょうか?

また、プリファレンスページへのアクセス時にウェブサーバ (ISS) のログに何らかのエラーは出力されていませんでしょうか?
 

Mitsuhiro Yoshida への返信

Re: moodleの脆弱性対応方法につきまして

- Taka Hatt の投稿

吉田さま

ご回答ありがとうございます。


>「プリファレンスページにアクセスると、空白となってしまい諸処プリファレンスリンクが表示されないよう>になっています」とのことですが、ウェブブラウザに表示されるページすべてが空白になっていますでょ>うか?

はい、空白のページとなっております。

HTMLソースには各種リンクが記載されておりますが画面上は空白です。

このページですが、一瞬リンクのようなものが表示されます。"F5"キーを押してブラウザを更新するとかすかに諸処プリファレンスリンクが表示されますがブラウザ上は空白となります。

>また、プリファレンスページへのアクセス時にウェブサーバ (ISS) のログに何らかのエラーは出力され>ていませんでしょうか?

はい。エラーは出力されておりませんでした。

直接ブラウザのアドレスに、http://xxxxxx/seminart/user/editor.php?id=xx と指定すると

エディタプリファレンス画面は開くことができます。


このプリファレンスページと、プラグインのエディタはあまり関連がないのでしょうか。

今このサイトで入力しているテキストエディタが表示されると幸いでございます。



Taka Hatt への返信

Re: moodleの脆弱性対応方法につきまして

- Mitsuhiro Yoshida の投稿
画像 Developers 画像 Particularly helpful Moodlers 画像 Translators

> このプリファレンスページと、プラグインのエディタはあまり関連がないのでしょうか。

関係は薄いと思います。

「プリファレンス」ページが空白になるトラブルを解消するため、下記4つの方法をお試しになってはいかがでしょうか。

  • ウェブブラウザのキャッシュをクリアする。
  • 別のウェブブラウザを試してみる。
  • Moodleの「管理 > サイト管理 > アピアランス > テーマ > テーマセレクタ」ページで「テーマキャッシュをクリアする」ボタンをクリックしてMoodleのキャッシュをクリアする。
  • Moodleの「管理 > サイト管理 > アピアランス > テーマ > テーマセレクタ」ページでMoodleのテーマを変えてみる。

Mitsuhiro Yoshida への返信

Re: moodleの脆弱性対応方法につきまして

- Taka Hatt の投稿

吉田さま

ご回答ありがとうございます。

>関係は薄いと思います。

ありがとうございます。施策を試してみたいともいます。(=>色々試してみたのですが空白のままでした。以前より空白でしたので現状の機能をしようする範囲では空白のままで差支えない範囲と判断いたしました。)


また、テキストエディタが正常に機能(表示)しない件はどのあたりを調査するのが良いか

ご教示いただけないでしょうか。

他の人々にヒアリングを行ったのですが、以前はこのフォーラムのようなテキストエリアのように表示されていたとのことでした。


何卒よろしくお願いいたします。

Taka Hatt への返信

Re: moodleの脆弱性対応方法につきまして

- Mitsuhiro Yoshida の投稿
画像 Developers 画像 Particularly helpful Moodlers 画像 Translators

ユーザのパーミッションに関わる設定を変更しただけでプリファレンス画面が空白になるとは考え難いため、非標準プラグインまたはWAF (Web Application Firewall) が影響していると思われます。

非標準プラグインを無効にするか、WAFの動作を一旦停止してプリファレンス画面が空白になるか確認されても宜しいかと思います。

また、「テキストエディタが正常に機能(表示)しない」に関しましては「管理 > サイト管理 > 開発 > デバッグ」ページで下記設定にすることで原因を特定できるエラーメッセージが表示される場合があります。

  • デバッグメッセージ debug = DEVELOPER: 開発者のための特別Moodleデバッグメッセージ
  • デバックメッセージを表示する debugdisplay = 有効

Mitsuhiro Yoshida への返信

Re: moodleの脆弱性対応方法につきまして

- Taka Hatt の投稿

吉田さま
お世話になっております。

テキストエディタが本来表示される画面にてブラウザのDevToolを立ち上げて観察していたところ
以下の様に404エラーが生じておりました。

>Failed to load resource: the server responded with a status of 404 (Not Found)
https://xxxxx/seminarp/theme/yui_combo.php/3.17.2/handlebars-compiler/handlebars-compiler-min.js&m/1512978560/core/handlebars/handlebars-min.js&3.17.2/timers/timers-min.js&3.17.2/querystring-stringify/querystring-stringify-min.js&m/1512978560/editor_atto/editor/editor-min.js&m/1512978560/editor_atto/menu/menu-min.js&m/1512978560/editor_atto/plugin/plugin-min.js&m/1512978560/atto_collapse/button/button-min.js&m/1512978560/atto_title/button/button-min.js&m/1512978560/atto_bold/button/button-min.js&m/1512978560/atto_italic/button/button-min.js&m/1512978560/atto_unorderedlist/button/button-min.js&m/1512978560/atto_orderedlist/button/button-min.js&m/1512978560/atto_link/button/button-min.js&m/1512978560/atto_image/button/button-min.js&m/1512978560/atto_media/button/button-min.js&m/1512978560/atto_managefiles/button/button-min.js&m/1512978560/atto_underline/button/button-min.js&m/1512978560/atto_strike/button/button-min.js&m/1512978560/atto_subscript/button/button-min.js
https://xxxxx/seminarp/theme/yui_combo.php/m/1512978560/atto_superscript/button/button-min.js&m/1512978560/atto_align/button/button-min.js&m/1512978560/atto_indent/button/button-min.js&3.17.2/arraylist/arraylist-min.js&3.17.2/widget-parent/widget-parent-min.js&3.17.2/widget-child/widget-child-min.js&3.17.2/tabview-base/tabview-base-min.js&3.17.2/node-focusmanager/node-focusmanager-min.js&3.17.2/tabview/tabview-min.js&3.17.2/array-extras/array-extras-min.js&m/1512978560/atto_equation/button/button-min.js&m/1512978560/atto_charmap/button/button-min.js&m/1512978560/atto_table/button/button-min.js&m/1512978560/atto_clear/button/button-min.js&m/1512978560/atto_undo/button/button-min.js&m/1512978560/atto_accessibilitychecker/button/button-min.js&m/1512978560/atto_accessibilityhelper/button/button-min.js&m/1512978560/atto_html/button/button-min.js
https://xxxxx/seminarp/theme/yui_combo.php/3.17.2/datatype-xml-parse/datatype-xml-parse-min.js&3.17.2/io-xdr/io-xdr-min.js&3.17.2/io-form/io-form-min.js&3.17.2/io-upload-iframe/io-upload-iframe-min.js&3.17.2/queue-promote/queue-promote-min.js&3.17.2/io-queue/io-queue-min.js&3.17.2/event-mousewheel/event-mousewheel-min.js&3.17.2/event-resize/event-resize-min.js&3.17.2/event-hover/event-hover-min.js&3.17.2/event-touch/event-touch-min.js&3.17.2/event-move/event-move-min.js&3.17.2/event-flick/event-flick-min.js&3.17.2/event-valuechange/event-valuechange-min.js&3.17.2/event-tap/event-tap-min.js&3.17.2/event-simulate/event-simulate-min.js&3.17.2/node-event-html5/node-event-html5-min.js&3.17.2/async-queue/async-queue-min.js&3.17.2/gesture-simulate/gesture-simulate-min.js&3.17.2/node-event-simulate/node-event-simulate-min.js&m/1512978560/core/notification/notification-confirm-min.js&m/1512978560/editor_atto/rangy/rangy-min.js&3.17.2/handlebars-base/handlebars-base-min.js

>Uncaught TypeError: Cannot read property 'Editor' of undefined
>    at editsection.php?id=1506&sr:803
>    at YUI._notify (yui-moodlesimple-min.js:9)
>    at YUI.T (yui-moodlesimple-min.js:9)
>    at e.Loader._finish (yui-moodlesimple-min.js:16)
>    at e.Loader._onFailure (yui-moodlesimple-min.js:16)
>    at e.Loader.p (yui-moodlesimple-min.js:17)
>    at e.Loader.onFailure (yui-moodlesimple-min.js:17)
>    at s._finish (yui-moodlesimple-min.js:12)
>    at s._next (yui-moodlesimple-min.js:12)
>    at s._progress (yui-moodlesimple-min.js:13)

物理Pathを見てみたのですが
theme\yui_combo.php\の下に"3.17.2"や"m" のディレクトリは存在していませんでした。


以前にMicrofocusより脆弱性を指摘されていた「スタイルシートの指定が絶対パスになっていない」
の対処方法として、

>Moodle設定ファイル (config.php) に下記設定行を追加してください。
>$CFG->yuislasharguments = 1;

をご教示頂いておりました。
もしかしてこの影響があるのではないかと思い
>$CFG->yuislasharguments = 1;
をコメントアウトしたところ、本来のテキストエディタを表示することが可能となりました。
どうもお騒がせ致しました。

ところで、このconfig設定を元に戻すことにより、スタイルシートが絶対パスではなくなってしまうため
再度MicroFocusの脆弱性に引っかかってしまう事になりそうです。
お手数をお掛けいたしますが、別の手段はございますでしょうか。

なにとぞ宜しくお願い致します。

Taka Hatt への返信

Re: moodleの脆弱性対応方法につきまして

- Mitsuhiro Yoshida の投稿
画像 Developers 画像 Particularly helpful Moodlers 画像 Translators

もし、MicroFocusに例外設定のようなものがあれば、スタイルシートの部分だけを脆弱性チェックから外されてはいかがでしょうか。

Mitsuhiro Yoshida への返信

Re: moodleの脆弱性対応方法につきまして

- Taka Hatt の投稿

吉田さま

承知致しました。

「相対パス」を「絶対パス」へ変更を行う設定は、ご教示いだたいたconfig.phpへの変数設定以外には

Moodle上に機能を持ち合わせていないとの認識で宜しかったでしょうか。

Taka Hatt への返信

Re: moodleの脆弱性対応方法につきまして

- Mitsuhiro Yoshida の投稿
画像 Developers 画像 Particularly helpful Moodlers 画像 Translators

「管理 > サイト管理 > サーバ > HTTP」ページに「スラッシュ引数を使用する slasharguments」という設定項目はあります。

Mitsuhiro Yoshida への返信

Re: moodleの脆弱性対応方法につきまして

- Taka Hatt の投稿

吉田さま

ご案内ありがとうございます。デフォルトのまま(ON)となっておりました。

Moodleアプリケーションの構造上の修正は不可能という事でしょうか。

以前ご教示頂いた

>Moodle設定ファイル (config.php) に下記設定行を追加してください。
>$CFG->yuislasharguments = 1;

にて「絶対パスになっていない」の脆弱性は対応可能でした。

その副作用として分かっている範囲では

・テキストエディタが正常に表示されない

・コースの"編集"、"活動またはリソースを追加する"のリンクが張られていない (FireFox以外に出現する)

・FireFoxで、"活動またはリソースを追加する"からファイルリソースを選択後の画面でのアップロードができないクルクルが表示されたまま

が分かっております。他のMoodleアプリケーションで「絶対パス」に関しての脆弱性は検知されておりませんでしょうか。

Taka Hatt への返信

Re: moodleの脆弱性対応方法につきまして

- Mitsuhiro Yoshida の投稿
画像 Developers 画像 Particularly helpful Moodlers 画像 Translators
Mitsuhiro Yoshida への返信

Re: moodleの脆弱性対応方法につきまして

- Taka Hatt の投稿

吉田さま

ご教示下さりどうもありがとうございました。

$CFG->yuislasharguments=1

の記述は、config-dist.phpの中に記載がありました。


Moodle TrackerのJIRAにて、$CFG->yuislasharguments=1するとの弊害をレポートすることにより

ディスカッションを行っていただけるのでしょうか。


よろしくお願いいたします。


Taka Hatt への返信

Re: moodleの脆弱性対応方法につきまして

- Taka Hatt の投稿

吉田さま

スタイルシートの絶対パス化を実現しようと思い、関連PHPを調査しておりました。


app\Lib\outputrequirementslib.phpの

function get_yui3lib_headcss()の

$code .= '<link rel="stylesheet" type="text/css" href="'.$this->yui3loader->local_comboBase.'rollup/'.$CFG->yui3version.'/yui-moodlesimple' . $yuiformat . '.css" />';

の'.$this->yui3loader->local_comboBase.'rollup/部を絶対パスに置き換えてみました。


$CFG->yuislashargumentsは使用しなくてもスタイルシートは絶対パスへ、その他の部分はシステム依存に出来るかと思った次第です。

テストを行っていますが今のところ問題なく稼働しております。

Taka Hatt への返信

Re: moodleの脆弱性対応方法につきまして

- Mitsuhiro Yoshida の投稿
画像 Developers 画像 Particularly helpful Moodlers 画像 Translators

> Moodle TrackerのJIRAにて、$CFG->yuislasharguments=1するとの弊害をレポートすることによりディスカッションを行っていただけるのでしょうか。

はい、数日以内に必ずということは難しいかと思いますが、何らかのアクションが取られると思います。

投稿される際は「Security Level」を「None」から別のレベルに変更してください。また、MicroFocus社の製品を使用されている点も記述された方が宜しいかと思います。

添付 moodle tracker.png