Ở phần trước, chúng ta đang dừng lại ở việc tìm ra tiến trình xử lý chính của công đoạn Extractor, chung quy lại thì phần core của nó vẫn được xử lý bằng java, với main class com.semmle.extractor.java.JavaExtractor.

Image for post
Image for post

Tiến hành debug tại bước này để tìm hiểu cách hoạt động của nó,

Để dựng lại môi trường, cần phải copy các file yêu cầu trong folder: “/log/ext/*“ (có thể tìm thấy trong folder database sau khi chạy lệnh create xong):


Mình được biết đến Semmle/CodeQL từ một người anh trong làng bảo mật, theo như quảng cáo của ông anh này thì đây sẽ là “tương lai của việc tìm lỗ hổng bảo mật”.

Vào khoảng thời gian đó, mình đang trong trạng thái betak khi nghiên cứu về 1 công cụ tự động tìm kiếm lỗ hổng — GadgetInspector.

Không lâu sau đó, vào tháng 9–2019, Github mua lại Semmle và đổi tên thành CodeQL như hiện tại. (https://techcrunch.com/2019/09/18/github-acquires-code-analysis-tool-semmle/).

Cũng vừa đúng lúc vào mùa đồ án tốt nghiệp, mình đề xuất luôn đề tài nghiên cứu về CodeQL và được accept luôn. …


Vài ngày vừa rồi, khi lượn lờ trên 1 group bảo mật, mình có đọc được bài báo nói về HPE vừa release bản vá cho 0day nào đó có CVSS 9.8/10.

Có thể với những người làm về java đủ lâu sẽ nhận ra CVSS 9.8/10 thì chỉ có Deserialization chứ còn gì nữa ¯\_(ツ)_/¯.

Product bị ảnh hưởng ở đây là một enterprise product có tên: HPE System Insight Manager (SIM).

Product này có thể dùng ở dạng trial, link down tại đây:

Và tình cờ khi lướt qua ZDI, mình cũng thấy bug này xuất hiện trên published advisory, bug này được mô tả như…


Mấy ngày nay mình có lượn lờ quanh các trang mạng để tìm kiếm nguồn cảm hứng mới cho công việc, hết twitter, reddit, ròi tới facebook …

Tình cờ có liếc qua published advisories của ZDI thì thấy khá nhiều bug về deserialization được publish, đếm sơ sơ thì từ đầu năm đến giờ cũng đã có tới ~100 bug về deserialization được report cho ZDI:

Image for post
Image for post

Hmm, nếu vậy thì con số bug ngoài thực tế (mà ko đc report cho ZDI) có thể sẽ còn lớn hơn gấp 4–5 lần thế này.

Vì không phải researcher nào cũng có hứng với ZDI, nhiều người họ lấy việc tìm bug làm thú vui, public PoC trước khi có patch lại là 1 thú vui bệnh hoạn hơn nữa =))). …


TL;DR

Image for post
Image for post

Mới đó mà đã ngót nghét 1 năm, tầm này năm ngoái mình đang loay hoay với GadgetInspector, tìm ra CVE-2020–2555 và report cho ZDI.

//Tản mạn ltinh xíu, ai muốn đọc thì kéo xuống dưới luôn cũng được

Ngày đó, mỗi lần Oracle CPU release là lại ngóng chờ, xem bug của mình đã được vá chưa, tầm nào thì được public PoC … Cuối cùng, sau 6 tháng, Oracle cũng đã release bản vá cho cái bug mình report.

Hồi đó cũng hơi ngây ngô, ko nghĩ việc tìm ra 1 cái chain deserialization mới cũng được tính là bug mới, và được đánh số 9.8/10 …


[Tiếng Việt phía dưới]

It’s been a while since last blog post,
Partly because of work, another is I have lost motivation to write :(, so there is no more writing since the project until now.
Last week, there was an IBM Qradar SIEM Java Deser bug released — CVE-2020–4280 (details at: https://www.securify.nl/advisory/java-deserialization-vulnerability-in-qradar-remotejavascript-servlet ). Right into the product I am using for several months now, so let take a look at it!

#SETUP
Previously, I mistakenly thought that Qradar only had Enterprise version, until I read the detailed blog about this bug that it actually has a Community Edition.

Image for post

The CE version can be downloaded at: https://developer.ibm.com/qradar/ce/
If it required login, you can use the shared credentials at: http://bugmenot.com/view/idaas.iam.ibm.com (I also use it with oracle.com). …


Kết thúc đồ án tốt nghiệp và quay trở lại với công việc thường ngày, mình được giao job hỗ trợ audit 1 product IoT. Do tâm trạng còn đang rối bời nên ko dám nhận xử lý chính vụ này.

Policy của bên X (bên yêu cầu audit) hơi ngặt nghèo và cồng kềnh vô lý, do đó bọn mình ko thể có đc source code của product để audit thực tế. Bên họ cho người xách 1 con lap chứa source code sang, bắt team audit bằng cơm … nhưng đó chưa là gì, ngày xưa họ còn in code ra giấy thành 7 quyển, mỗi quyển dày 5–7 cm và xách sang cho mình đọc cơ =)))). …


Chào mọi người, mình đã quay trở lại với part 2 đây.

Nếu bạn chưa đọc thì nên đọc qua part 1 trước khi bước vào part 2 này, link bài viết tại đây: https://medium.com/@testbnull/codeql-th%E1%BA%A7n-ch%C6%B0%E1%BB%9Fng-part-1-544a2b0df9d7

Trong phần trước, mình đang dừng lại ở đoạn tìm ra các method call tới JSONFactoryUtil.deserialize(String):

Image for post
Image for post

Tuy nhiên như vậy là chưa đủ để trace được từ input tới phần code xảy ra lỗi.

Trong part 2 này mình sẽ viết về TaintTracking, DataFlow tracking, 1 chức năng trong CodeQL cho phép trace data từ phần input cho tới phần bị lỗi, hay còn được gọi là từ source tới sink! …


Chào mọi người, cũng phải gần 2 tháng kể từ blog cuối, dạo này hơi bận bịu với nghề tay trái nên cũng chưa có thời gian viết lách, chứ ko phải là bị dính phốt nên phải chạy trốn đâu ae, hoho …

Mấy nay bên Github SecurityLab (GHSL) có tổ chức CTF về CodeQL, mình cũng có hóng hớt và đợt này mới có CTF về CodeQL for Java. Trước đó cũng có các CTF cho C/C++, JS nhưng mình ko có nhiều khái niệm của mảng đó nên cũng ko đủ tự tin để tham gia. Giải CTF đợt này các bạn có thể xem tại: https://securitylab.github.com/ctf/codeql-and-chill


Vậy là ngày 05/03 vừa rồi, ZDI đã publish bài phân tích chi tiết về CVE-2020–2555 (https://www.thezdi.com/blog/2020/3/5/cve-2020-2555-rce-through-a-deserialization-bug-in-oracles-weblogic-server).

Trước đó mình cũng định viết bài về cái bug này, mà bận quá chưa có time để ngồi viết lách gì cả. Đành để các bạn ZDI publish trước, còn mình sẽ viết về cách mà mình đã tìm ra cái bug này!

Tầm 6 tháng trước, mình có nhận job về mấy con weblogic này và bắt đầu lún sâu vào Weblogic từ đó tới giờ chưa rút được được ra :(.

(Event log về đợt đó vẫn còn tại đây: https://www.facebook.com/notes/nguy%E1%BB%85n-ti%E1%BA%BFn-giang/t%C3%B4i-%C4%91%C3%A3-chi%E1%BA%BFm-quy%E1%BB%81n-assmin-c%E1%BB%A7a-r%E1%BA%A5t-nhi%E1%BB%81u-trang-web-nh%C6%B0-th%E1%BA%BF-n%C3%A0o-weblogic-122130-sh/2234157883364831/). …

Jang

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store