近期新披露兩個安全漏洞,一個是 Kylin 的 SQL 注入漏洞,一個是 Tomcat 的安全漏洞,因爲 Kylin 使用 Tomcat 因此也受到影響。請大家參考下面的方法來儘快修復安全漏洞。
Apache Kylin
• CVE(Common Vulnerabilities and Exposures 通用漏洞披露)ID:CVE-2020-1937(https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-1937)
• 漏洞類型:SQL 注入
• 重要程度:重要
• 影響 Kylin 版本:Kylin 2.3.0 至 2.3.2,Kylin 2.4.0 至 2.4.1,Kylin 2.5.0 至 2.5.2,Kylin 2.6.0 至 2.6.4, Kylin 3.0.0-alpha,Kylin 3.0.0-alpha2,Kylin 3.0.0-beta,Kylin 3.0.0
問題描述:
上述 Kylin 版本中存在若干 Restful API 會通過輸入參數拼接成 SQL 語句進行查詢,這可能使得攻擊者可以通過在這些 API 的參數拼接上額外的 SQL 元素,進行未經授權的查詢等操作。
處理方法(建議採取其中一種):
方法一:
升級到 2.6.5 或者 3.0.1 版本
方法二:
修改 Restful API 權限配置,禁用部分 API,步驟爲:
a) 停止 Kylin 服務
b) 修改 $KYLIN_HOME/tomcat/webapps/kylin/WEB-INF/classes/kylinSecurity.xml 文件,在配置 API 權限配置部分的
<scr:intercept-url pattern="/api/cubes/src/tables" access="hasAnyRole('ROLE_ANALYST')"/>
這一行下面,插入如下兩行:
<scr:intercept-url pattern="/api/cubes/**/cuboids/**" access="denyAll"/>
<scr:intercept-url pattern="/api/dashboard/metric/**" access="denyAll"/>
後果是會導致 Dashboard 和 Cube Planner 功能不可用
C) 重啓 Kylin 服務
特此感謝 Jonathan Leitschuh 發現並協助修復了該漏洞。
Apache Tomcat
• CVE(Common Vulnerabilities and Exposures 通用漏洞披露)ID:CVE-2020-1938(https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-1938)
• 漏洞類型:信息泄露
• 重要程度:重要
• 影響 Kylin 版本:所有 Kylin 版本
問題描述:
該漏洞是由於 Tomcat AJP 協議存在缺陷而導致,攻擊者利用該漏洞可通過構造特定參數,讀取服務器 webapp 下的任意文件。若目標服務器同時存在文件上傳功能,攻擊者可進一步實現遠程代碼執行。由於 Kylin 打包了 Tomcat 作爲 web 容器,因而也存在此問題。
處理方法:
a) 停止 Kylin 服務
b) 打開配置文件 $KYLIN_HOME/tomcat/conf/server.xml
c) 找到如下配置(具體端口根據初始配置可能有差異,協議確認爲 protocol=”AJP/1.3″)
<Connector port="9009" protocol="AJP/1.3" redirectPort="8443" />
d) 註釋如下代碼:
<Connector port="9009" protocol="AJP/1.3" redirectPort="8443" />
e) 啓動 Kylin 服務