Owasp Là Gì?

OWASP là gì?

OWASP là viết tắt của open Web Application Security Project là một trong những tổ chức phi lợi nhuận nước ngoài chuyên về bảo mật thông tin ứng dụng web. Một trong những nguyên tắc mấu chốt của OWASP là toàn bộ các tư liệu của tổ chức triển khai đều miễn phí tổn và dễ ợt truy cập trên trang web chính thức http://owasp.org, giúp phần đông người đặc biệt là ngành an toàn mạng tất cả thể nâng cấp tính bảo mật thông tin của áp dụng web. Các tài liệu OWSAP cung cấp bao gồm tài liệu, công cụ, video clip và diễn đàn. OWASP được nghe biết nhiều độc nhất qua OWASP vị trí cao nhất 10.

Bạn đang xem: Owasp là gì?

OWASP đứng đầu 10 là gì?

OWASP đứng top 10 là một báo cáo được cập nhật thường xuyên về các nguy hại bảo mật so với bảo mật ứng dụng web, triệu tập vào 10 xui xẻo ro/lỗ hổng quan trọng nhất. Báo cáo được tổng hợp bởi một đội nhóm các chuyên gia bảo mật tự khắp vị trí trên nạm giới. OWASP đề cập đến Top 10 như 1 “tài liệu nâng cấp nhận thức” với họ khuyến cáo tất cả những công ty yêu cầu kết hợp báo cáo này vào những quy trình của mình để sút thiểu rủi ro bảo mật.

Dưới đấy là các khủng hoảng rủi ro bảo mật được báo cáo trong OWASP top 10:

Injection

Injection attack xẩy ra khi tài liệu không an toàn được gửi mang lại trình thông dịch mã (code interpreter) thông qua việc điền những form (biểu mẫu) hoặc một số dữ liệu khác giữ hộ đến áp dụng web. Ví dụ, kẻ tấn công rất có thể nhập SQL databasecode vào trong 1 biểu mẫu yêu ước username làm việc dạng plaintext. Nếu việc điền những biểu chủng loại đó ko được bảo mật thông tin đúng cách, điều đó sẽ dẫn tới sự việc SQL code này được thực thi. Đây được gọi là 1 trong những cuộc tiến công SQL injection.

Các cuộc tiến công injection hoàn toàn có thể được phòng chặn bằng cách xác thực và / hoặc “khử trùng” tài liệu do người tiêu dùng gửi. (Xác thực nghĩa là lắc đầu các tài liệu đáng ngờ, trong những lúc “khử trùng” nghĩa là làm cho sạch những phần dữ liệu dường như đáng ngờ.) quanh đó ra, quản lí trị viên cơ sở dữ liệu có thể thiết lập các biện pháp điều hành và kiểm soát để giảm thiểu lượng thông tin bị lòi ra qua một cuộc tiến công injection.

Broken Authentication

Các lỗ hổng trong hệ thống xác thực (login) gồm thể có thể chấp nhận được kẻ tấn công truy cập vào tài khoản người tiêu dùng và thậm chí có khả năng xâm nhập toàn bộ hệ thống bằng tài khoản quản trị viên. Ví dụ: kẻ tấn công rất có thể lấy một list chứa hàng ngàn tổ phù hợp tên người tiêu dùng / mật khẩu vẫn biết dành được trong một lần vi phạm luật dữ liệu và sử dụng tập lệnh nhằm thử tất cả các tổ hợp đó trên hệ thống đăng nhập giúp thấy có tổng hợp nào hoạt động không.

Một số kế hoạch để giảm thiểu lỗ hổng xác thực là áp dụng xác thực 2 nguyên tố two-factor authentication (2FA) tương tự như hạn chế hoặc trì hoãn những nỗ lực singin lặp lại bằng cách sử dụng số lượng giới hạn về chu kỳ đăng nhập & thời gian giãn giải pháp giữa những lần đăng nhập sai.

Sensitive Data Exposure

Nếu những ứng dụng web không bảo đảm an toàn dữ liệu nhạy cảm như thông tin tài thiết yếu và mật khẩu, hacker hoàn toàn có thể giành quyền truy cập vào tài liệu đó cùng sử dụng cho những mục đích bất chính. Một cách thức phổ biến để đưa cắp tin tức nhạy cảm là thực hiện một cuộc tấn công on-path attack.

Nguy cơ lộ dữ liệu có thể được sút thiểu bằng phương pháp mã hóa (encypt) tất cả dữ liệu nhạy cảm cảm cũng như vô hiệu *cache của bất kỳ thông tin mẫn cảm nào. Quanh đó ra, những nhà cải cách và phát triển ứng dụng web nên cẩn thận để đảm bảo an toàn rằng bọn họ không lưu lại trữ bất kỳ dữ liệu nhạy cảm cảm nào một bí quyết không đề xuất thiết.

*Cache giữ trữ trong thời điểm tạm thời dữ liệu để thực hiện lại. Ví dụ: trình lưu ý web thường vẫn lưu vào bộ lưu trữ cache những trang web để nếu người dùng truy cập lại những trang đó trong một khoảng thời gian cố định, trình duyệt không phải tìm nạp các trang web đó từ đầu.

XML External Entities (XEE)

Đây là 1 trong cuộc tấn công ứng dụng web bằng phân tích cú pháp đầu vào XML * (parses XML* input). Input này rất có thể tham chiếu mang đến một thực thể phía bên ngoài (external entity), đang nỗ lực khai thác lỗ hổng trong trình so với cú pháp (parser). External entity có thể là một đơn vị chức năng lưu trữ, chẳng hạn như ổ cứng. XML parsercó thể bị lừa để gửi dữ liệu đến một thực thể bên ngoài trái phép và đưa trực tiếp dữ liệu nhạy cảm cho kẻ tấn công.

Các cách cực tốt để phòng chặn những cuộc tiến công XEE là để những ứng dụng web đồng ý một loại tài liệu ít tinh vi hơn, chẳng hạn như JSON **, hoặc vô hiệu hóa việc sử dụng những thực thể bên ngoài trong một ứng dụng XML.

*XML tuyệt Extensible Markup Language là 1 trong markup language nhằm mục tiêu mục đích đến phép toàn bộ cơ thể & đồ vật đều có thể đọc gọi được. Vị tính phức tạp và lỗ hổng bảo mật, XML hiện tại đang bị loại bỏ dần trong không ít ứng dụng web.

** Java
Script Object Notation (JSON) là 1 trong những loại cam kết hiệu dễ dàng và đơn giản được thực hiện để truyền tài liệu qua internet. Khoác dù ban đầu được khiến cho Java
Script, JSON là ngôn ngữ rất có thể được thông dịch vày nhiều ngôn ngữ lập trình khác nhau.

Broken Access Control

Access Control hay kiểm soát truy cập đề cập mang lại một hệ thống kiểm soát quyền truy cập vào tin tức hoặc chức năng. Access Control chứa lỗ hổng chất nhận được kẻ tấn công bỏ qua ủy quyền (authorization) và thực hiện các tác vụ như thể là người tiêu dùng có sệt quyền, chẳng hạn như quản trị viên (admin). Ví dụ: một áp dụng web bao gồm thể có thể chấp nhận được người dùng biến đổi tài khoản mà người ta đã đăng nhập chỉ bằng phương pháp thay đổi một trong những phần của url mà lại không cần bất kỳ xác minh làm sao khác.

Kiểm rà soát truy cập có thể được bảo mật bằng cách đảm nói rằng ứng dụng web sử dụng authorization tokens* với đặt những kiểm soát chặt chẽ đối với các token này.

Xem thêm: Nghĩa Của Từ Điển Anh Việt "Patented", Bản Dịch Của Patent Trong Việt Là Gì

*Nhiều dịch vụ chất nhận được sử dụng authorization tokens khi người tiêu dùng đăng nhập. Các yêu cầu đặc quyền mà người dùng đưa ra sẽ yêu mong phải bao gồm authorization tokens. Đây là một trong những cách bình an để đảm bảo rằng đúng người dùng với đúng đặc quyền.

Security Misconfiguration

Security misconfiguration hay lỗi cấu hình sai bảo mật là lỗ hổng thông dụng nhất trong list và thường xuyên là tác dụng của câu hỏi sử dụng thông số kỹ thuật mặc định hoặc thông báo hiển thị lỗi rất nhiều thông tin. Ví dụ: một ứng dụng có thể hiển thị lỗi tế bào tả quá nhiều thông tin rất có thể tiết lộ những lỗ hổng trong ứng dụng. Điều này hoàn toàn có thể được giảm thiểu bằng cách loại bỏ bất kỳ tính năng không áp dụng nào trong code và đảm bảo an toàn rằng các thông tin lỗi sẽ mang ý nghĩa tổng quát thông thường chung hơn.

Cross-Site Scripting

Cross-Site Scripting xẩy ra khi những ứng dụng web chất nhận được người sử dụng thêm code thiết lập cấu hình vào đường dẫn url hoặc vào một trong những trang web cơ mà những người tiêu dùng khác sẽ nhìn thấy. Lỗ hổng này có thể bị khai quật để chạy mã Java
Script ô nhiễm (malicious Java
Script code) trên trình chăm chú của nạn nhân. Ví dụ: kẻ tấn công hoàn toàn có thể gửi email cho nạn nhân có vẻ là từ một ngân hàng đáng tin cậy, cùng với một links đến website của ngân hàng đó. Mặc dù nhiên, liên kết này rất có thể có một trong những mã Java
Script độc hại được thêm thẻ vào thời gian cuối url. Nếu trang web của ngân hàng không được đảm bảo an toàn thích hợp ngăn chặn lại Cross-Site Scripting, thì mã độc hại đó sẽ tiến hành chạy trong trình lưu ý web của nạn nhân khi chúng ta nhấp vào liên kết.

Các chiến lược giảm thiểu tấn công Cross-Site Scripting bao gồm thoát các yêu cầu HTTP không tin cậy cũng như đảm bảo và / hoặc đào thải các ngôn từ do người dùng thêm vào. Sử dụng các web development frameworks văn minh như React
JS và Ruby on Rails cũng hỗ trợ một số tính năng bảo đảm khỏi những cuộc tiến công Cross-Site Scripting.

Insecure Deserialization

Tấn công này bao hàm Serialization và Deserialization.

Serialization có nghĩa là lấy các đối tượng người dùng (object) từ mã áp dụng (application code) và chuyển đổi chúng thành một định dạng rất có thể được thực hiện cho mục tiêu khác, ví dụ như lưu trữ tài liệu vào đĩa hoặc phát trực tuyến tài liệu đó. Deserialization thì trái lại với Serialization.

Serialization y hệt như đóng gói đồ vật vào các hộp trước khi chuyển đi, với deserialization hệt như mở hộp cùng lắp ráp đồ gia dụng đạc sau khi chuyển đi. Một cuộc tiến công deserialization y như việc xáo trộn nội dung của các hộp trước khi chúng được giải nén trong quy trình di chuyển.

Sử dụng các thành phần tất cả lỗ hổng vẫn biết

Nhiều nhà cải cách và phát triển (developer) web hiện giờ sử dụng những thành phần như tủ sách (libraries) và framework trong những ứng dụng website của họ. đều thành phần này là những ứng dụng giúp các nhà phát triển tránh các bước thừa và cung cấp công dụng cần thiết; lấy ví dụ phổ biến bao hàm các framework front-end như React và các thư viện nhỏ dại hơn được thực hiện để thêm các biểu tượng chia sẻ hoặc a/b testing. Một số trong những kẻ tiến công tìm kiếm các lỗ hổng trong số thành phần này mà tiếp nối chúng có thể sử dụng để điều phối những cuộc tấn công. Một số thành phần thịnh hành hơn được thực hiện trên hàng ngàn nghìn trang web; kẻ tiến công tìm thấy lỗ hổng bảo mật trong những thành phần này có thể khiến hàng trăm ngàn nghìn website bị khai thác.

Các nhà cải cách và phát triển các yếu tố này thường cung ứng các phiên bản vá bảo mật thông tin và update để bổ sung các lỗ hổng sẽ biết, nhưng những nhà phát triển ứng dụng web chưa phải lúc nào cũng có các phiên bạn dạng được vá hoặc update mới nhất. Để giảm thiểu khủng hoảng rủi ro khi chạy các thành phần có lỗ hổng sẽ biết, những nhà trở nên tân tiến nên xóa các thành phần không áp dụng khỏi dự án, cũng như bảo vệ rằng đang nhận những thành phần xuất phát điểm từ một nguồn an toàn và đảm bảo chúng được cập nhật.

Kiểm tra log & tính toán không hiệu quả

Nhiều áp dụng web không tiến hành đủ các bước để phân phát hiện vi phạm luật dữ liệu. Thời gian phát hiện nay trung bình mang lại một vi phạm là khoảng tầm 200 ngày sau khoản thời gian đã xảy ra. Điều này chất nhận được những kẻ tấn công có khá nhiều thời gian để gây nên thiệt hại trước khi có ngẫu nhiên phản ứng nào. OWASP lời khuyên rằng những nhà phát triển web nên thực hiện ghi log và giám sát (monitor) cũng như lên những kế hoạch ứng phó sự núm để bảo đảm an toàn rằng họ nhận thức được các cuộc tiến công vào các ứng dụng.

Số là ngày trước tiên đi làm, CCO (Chief Consulting Officer) xếp mình vào một trong những dự án nội bộ của công ty. Trước đó đã gồm source code, tuy nhiên để kịp test hay sao ấy, chúng ta chỉ gồm mainflow với không vâng lệnh theo tiêu chuẩn chỉnh của OWASP. Họ ước muốn mình làm cho lại bối cảnh cho gọn gàng hơn và áp dụng tiêu chuẩn OWASP. Trong quá trình tìm hiểu, mình share với mọi fan luôn.

*

Giới thiệu về OWASP

OWASP là 1 trong những tiêu chuẩn chỉnh để ship hàng việc kiểm thử của Penetration Testing (Pentest) vày tổ chức mở cửa Web Application Security Project(OWASP) đề xuất. OWASP là tổ chức phi roi và đưa ra chuẩn chỉnh OWASP phục vụ cho quá trình pentest hiệu quả và chi tiết. Mặc dù nhiên, nhằm rõ hơn, mình xin trình làng sơ qua Pentest là gì.

Pentest là gì?

Penetration Testing tốt thường call là "pentest" hoặc “security testing" hoàn toàn có thể hiểu dễ dàng là đánh giá độ bình an bằng cách tấn công vào hệ thống (gọi là đánh trận giả). Người triển khai một phân tích xâm nhập được hotline là đánh giá xâm nhập hoặc pentester. Tất cả một định nghĩa khác mà nhiều khi ta thường nhầm lẫn với Penetration Testing (PT) sẽ là Vulnerability Assessment (VA). Vậy VA là gì với nó không giống gì so với PT? thực tế VA là quá trình rà thẩm tra lại những dịch vụ và hệ thống để tra cứu ra các vấn đề bình yên tiềm tàng hoặc dò tìm các dấu vệt khi hệ thống bị tổn thương. Ngược lại PT thực hiện khai thác và tiến công thử nghiệm (POC attack) nhằm mục đích để đưa ra vấn đề bình yên tồn tại. Cho nên vì thế PT đi xa hơn VA một bước bằng cách dựa theo các hoạt động thực sự của một hacker. Thâm nhập thử nghiệm bao gồm một yêu mong là các bạn phải cảm nhận sự có thể chấp nhận được của fan sở hữu hệ thống. Trường hợp không, bạn sẽ được coi như là đang gian lận hệ thống, kia là phạm pháp ở số đông các quốc gia. Nói phương pháp khác: Sự khác hoàn toàn giữa test nghiệm xâm nhập và hack là bạn có sự có thể chấp nhận được của chủ cài đặt hệ thống.

OWASP là một trong trong một số tiêu chuẩn chỉnh để nhận xét bảo mật. Ko kể ra, còn có các tiêu chuẩn khác như:

Nội dung

chúng ta cũng có thể tham khảo nhanh OWASP Secure Coding Practices - Quick Reference Guide. Ở đây, mình xin liệt kê một số thành phần trong tiêu chuẩn chỉnh này.

Input Validation chúng ta phải chất vấn format, min, max, độ dài cho phép của các ô nhập liệu. Quanh đó ra, chúng ta nhớ mã hoá các ký tự sệt biệt. Không lúc nào tin tưởng trọn vẹn người dùng, đó là 1 trong phương châm rất đặc biệt quan trọng đối với lập trình viên. Bài toán kiểm tra tài liệu được nhập vào từ người dùng là quá trình vô cùng quan trọng. Mục đích để tránh số đông sai sót không đáng bao gồm và những kiểu tấn công XSS, CSRF.

Output Encoding Mã hoá những giá trị được trao từ các nguồn cho trang web. Đôi khi, làm việc client được nhận các giá trị ko đáng tất cả như đoạn mã tương quan đến XSS, nếu không có những giải pháp xử lý trước lúc hiển thị đang vô tình kích hoạt bẫy của hacker.

Authentication and Password Management Kiểm tra bảo mật với tác dụng đăng nhập là vấn đề cực kì quan trọng, các bạn phải bảo đảm việc đăng nhập đề nghị sự bình yên và đúng với ý định ở trong nhà phát hành ứng dụng.

Session Management tìm tra phiên đăng nhập để tránh những lỗi tiến công như Session Hijacking, Man in the Middle,... Bạn cũng có thể tìm phát âm qua bài viết sau

Access Control Khi người dùng bị hạn chế kiểm soát điều hành truy cập, hacker rất có thể khai thác và truy vấn các tính năng hoặc tài liệu trái phép. Kiểm soát truy cập nhằm mục đích kiểm soát người cần sử dụng được ủy quyền được phép hay không được phép làm gì trong một vận dụng và để tùy chỉnh quyền kiểm soát điều hành truy cập một giải pháp hợp lí, vận dụng phải bảo đảm an toàn rằng nó đang nghiêm túc thực hiện soát sổ ủy quyền và đảm bảo hợp lệ để khẳng định người dùng được quánh quyền, thực tế là những người dùng Internet ngẫu nhiên.

Cryptographic Practices chất vấn mã hóa thông tin trên đường truyền. Đối cùng với đối thượng là mọi website thương mại dịch vụ điện tử hay giao dịch thì bài toán kiểm tra, mã hóa mặt đường truyền là 1 vấn đề hết sức quan trọng. Phần này sẽ gợi ý bạn một số lời khuyên hữu ích.

Error Handling và Logging Kiểm tra phương pháp xử lý lỗi của ứng dụng tin tức về lỗi cũng là một trong những nguồn thu thập dữ liệu cho hacker hoàn toàn có thể tấn công vào website. Mọi lúc kia ứng dụng cần phải có cơ chế cách xử trí để không gặp phải hiện tượng tự nhiên lăn đùng ra bị tiêu diệt mà cai quản trị chẳng giỏi chết lúc nào và do sao lại chết. Để biết điều, kia ta yêu cầu ghi Log các hoạt động của hệ thống. Tuy nhiên, hacker có thể khai thác log để đánh hệ thống.

Communication Security chúng ta nên kiểm soát chặt chẽ quá trình giao tiếp với những thành phần khác ví như API, hệ thống khác trải qua giao thức kết nối, VPN,... Ví dụ như HTTPS không được thực hiện đúng chuẩn và vướng lại lỗ hổng, góp tin tặc hoàn toàn có thể ăn cắp thông tin tài khoản, mật khẩu, địa chỉ hay bất cứ thông tin có mức giá trị làm sao khác.

System Configuration Cần đánh giá về hệ thống máy chủ, không chỉ có dừng ở bước reviews ứng dụng, bạn phải đánh túi tiền nền tảng mà những ứng dụng chạy trên đó bởi nó có thể gây gian nguy không chỉ đến web mà còn đến cả khối hệ thống server. Hiệ tượng kiểm tra được sử dụng là whitebox với graybox. Quanh đó ra, do cấu hình an ninh lỏng lẻo tại các tầng bản vẽ xây dựng của web như nền tảng, framework, trang bị chủ, cơ sở tài liệu và mã tùy chỉnh thiết lập nên tin tặc hoàn toàn có thể khai thác tấn công và có quyền truy vấn dữ liệu. Do thế, toàn bộ các tầng phong cách xây dựng của web đề nghị được update thường xuyên.

Tài liệu liên quan

khoảng tầm vài năm, OWASP có chào làng các lỗi bảo mật thường tốt gặp. Bạn có thể tham khảo trên Official OWASP đứng top 10 Document Repository.

Leave a Reply

Your email address will not be published. Required fields are marked *