Minimalist Forum Reader
Em chào các bác,
Chả là em đang được assign fix ATTT của một dự án. Trước mấy dự án công ty cũ để quét ATTT thì thường do team ATTT trực tiếp test nên họ sẽ bắn request thật vào API, nên code chỉ cần qua được là được (em xử lý logic authen/ check bằng custom code). Dạo gần đây thì trước khi qua bước đó phải qua quét STS bằng công cụ checkmarx. Tuy nhiên em cảm giác nó gây False positive khá nhiều, mà khổ nỗi khách hàng yêu cầu phải pass cái công cụ đó trước đã. Em lấy ví dụ đơn giản 2 lỗi, mong các bác tư vấn hướng để pass qua công cụ lỏ này ạ
1. Ví dụ về lỗi relative path traversal, trong code java của em thì có request body là 1 file string path, có annotation validated rồi, sau đó bị công cụ nó bắt lỗi ở dòng
File file = new File(normalize(path.toString()) + DOCX_EXTENSION);, trong đó normalize là hàm e tự viết em chỉ cho chuỗi ký tự và số, không cho ký tự đặc biệt như ../, path cũng có annotation validate rồi. Nhưng vẫn không qua được công cụ do checkmarx nó báo path là lấy từ body, sau tạo như kia có rủi ro ;(
2. Ví dụ lỗi Parameter tampering, đơn giản là mấy cái như @PathVariable Long id , rồi dùng findbyid . công cụ cũng sẽ bắt lỗi này
Có bác nào có kinh nghiệm fix 2 lỗi trên để pass sts cho e tham khảo kinh nghiệm đc ko ạ. Em cảm ơn các bác
Chả hiểu con mẹ gì. Em cảm giác là thế đéo nào.
Reactions: devadmin
ATTT là gì ?

2 case trên liên quan đến lỗi bảo mật, nói thật là đọc cũng ko hiểu thớt muốn gì.

Edited: Sau khi tìm hiểu cái checkmarx thím nói, thì cái này nó quét code để tìm các lỗ hổng bảo mật trong code, và có vẻ nó ko nhận diện được các custom code như normalize của thím.

1- case path file, thường thì chỉ nhận file name, ko nhận path
2- lỗi id thường sẽ có nguy cơ thay đổi id để chiếm quyền, dò code lại xem có validate đúng quyền truy cập id ko
ATTT là gì ?

2 case trên liên quan đến lỗi bảo mật, nói thật là đọc cũng ko hiểu thớt muốn gì.

Edited: Sau khi tìm hiểu cái checkmarx thím nói, thì cái này nó quét code để tìm các lỗ hổng bảo mật trong code, và có vẻ nó ko nhận diện được các custom code như normalize của thím.

1- case path file, thường thì chỉ nhận file name, ko nhận path
2- lỗi id thường sẽ có nguy cơ thay đổi id để chiếm quyền, dò code lại xem có validate đúng quyền truy cập id ko
Uh, case em đang có tầm 100 api có cái findbyId thím ạ, ko biết sửa kiểu gì. Ko biewts bt pathvaroable này thì sửa thế nào , vì bt em code thì mấy cái findbyId này cũng ít để ý, ko if else gì
Uh, case em đang có tầm 100 api có cái findbyId thím ạ, ko biết sửa kiểu gì. Ko biewts bt pathvaroable này thì sửa thế nào , vì bt em code thì mấy cái findbyId này cũng ít để ý, ko if else gì
thử thêm biến role, check id cùng với role thử thím, do không biết logic flow bên thím như thế nào, có phân quyền ko, hoặc có multiple tenant ko, tool checkmarx thì nó chỉ theo logic là nhận thẳng request id và get sẽ ko bảo mật nên nó false positive

1 hàm get theo id bảo mật thường sẽ là:
  • nhận id từ request , role/userid/tenant từ auth context và truy xuất db từ 2 biến này (bảo đảm client có quyền truy xuất data từ id)
  • các tool scan security thông thường sẽ có config bypass, thường sẽ cần role để làm, dùng để bypass 1 số case cụ thể ko cần scan
thử thêm biến role, check id cùng với role thử thím, do không biết logic flow bên thím như thế nào, có phân quyền ko, hoặc có multiple tenant ko, tool checkmarx thì nó chỉ theo logic là nhận thẳng request id và get sẽ ko bảo mật nên nó false positive

1 hàm get theo id bảo mật thường sẽ là:
  • nhận id từ request , role/userid/tenant từ auth context và truy xuất db từ 2 biến này (bảo đảm client có quyền truy xuất data từ id)
  • các tool scan security thông thường sẽ có config bypass, thường sẽ cần role để làm, dùng để bypass 1 số case cụ thể ko cần scan
Oke e cám ơn bác
t nhớ cái cherkmarx nó xuất report có chỉ cách fix mà ta
t nhớ cái cherkmarx nó xuất report có chỉ cách fix mà ta
Vậy hả b, tại mình request attt họ quét họ chỉ chỉ ra lỗi thôi, cách fix nó có export ra file ko b nhỉ
Vậy hả b, tại mình request attt họ quét họ chỉ chỉ ra lỗi thôi, cách fix nó có export ra file ko b nhỉ
có. nó đưa lỗi , rồi recomend cách fix