Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (950.17 KB, 31 trang )
<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">
NGÂN HÀNG NHÀ NƯỚC VIỆT NAM BỘ GIÁO DỤC VÀ ĐÀOTẠO
<b>TRƯỜNG ĐẠI HỌC NGÂN HÀNG TP. HỒ CHÍ MINHKHOA HỆ THỐNG THƠNG TIN QUẢN LÝ</b>
<i>Thành phố Hồ Chí Minh, ngày 02 tháng 04 năm 2024</i>
</div><span class="text_page_counter">Trang 2</span><div class="page_container" data-page="2">Đặng Ngui Tiểu Mi 030238220126
Phần nội dung3,4,5,7.Căn chỉnh word.
</div><span class="text_page_counter">Trang 3</span><div class="page_container" data-page="3"><b>1.1. Khái niệm API:...6</b>
<b>1.2. Khái niệm Web API:...6</b>
<b>1.3. Ví dụ:...6</b>
<b>2. Chức năng của API:...7</b>
<b>3. Các đặc điểm nổi bật:...8</b>
<b>4. Cách thức hoạt động:...9</b>
<b>5. Các hình thức tấn công web API phổ biến:...11</b>
<b>6. Biện pháp bảo mật Web API khỏi tấn công Cross- Site Scripting:...12</b>
<b>7. Một số biện pháp để tăng tính bảo mật API hơn:...14</b>
<b>8. Ưu và nhược điểm của Web API:...19</b>
<b>8.1. Ưu điểm:...19</b>
<b>8.2. Nhược điểm:...19</b>
<b>9. Ứng dụng API:...20</b>
<b>9.1. API và ERP hoạt động cùng nhau:...20</b>
<b>9.2. OpenAPI trong lĩnh vực tài chính ngân hàng:...21</b>
<b>PHẦN KẾT LUẬN...24</b>
<b>TÀI LIỆU THAM KHẢO...25</b>
</div><span class="text_page_counter">Trang 4</span><div class="page_container" data-page="4"><b>Hình 1: Web App with ASP .NET Core (Nguồn: wakeupandcode)...8</b>
<b>Hình 2: Minh họa về cách hoạt động của API (Nguồn: postman)...10</b>
<b>Hình 3: Role-based Access Control (Nguồn: WhiteHat)...15</b>
<b>Hình 4: Attribute Based Access Control (Nguồn: Axiomatics)...15</b>
<b>Hình 5: Data Transfer Objects (Nguồn: Elan)...17</b>
<b>Hình 6: Rate Limiting (Nguồn: VIBLO)...18</b>
<b>Hình 7: Phần mềm ERP Fast Business Online (Nguồn: fast)...21</b>
<b>Hình 8: BIDV Open API (Nguồn: openapi.bidv)...22</b>
<b>Hình 9: BIDV Open API định hình dịch vụ tài chính tương lai (Nguồn: openapi.bidv)...22</b>
</div><span class="text_page_counter">Trang 5</span><div class="page_container" data-page="5">Trong thời đại kỹ thuật số phát triển nhanh chóng như ngày nay, việc trao đổidữ liệu giữa các ứng dụng và hệ thống đã trở thành một phần không thể thiếu củamôi trường công nghệ thông tin. Đồng thời, với sự gia tăng về quy mô và phức tạpcủa các ứng dụng, việc bảo vệ dữ liệu trở nên càng trở nên cấp bách hơn bao giờhết. Trong bối cảnh này, việc sử dụng Web API (Application ProgrammingInterface) đã trở thành một phần quan trọng trong quá trình phát triển và triển khaitrong việc kết nối với các ứng dụng và dịch vụ web, cho phép chúng giao tiếp vàtrao đổi dữ liệu với nhau. Ngoài ra, Web API đóng vai trị thiết yếu trong sự pháttriển của Internet ngày nay và nó đóng vai trị như cầu nối giữa các ứng dụng, dịchvụ, website cho phép chúng giao tiếp và chia sẻ dữ liệu với nhau một cách dễ dàng,bất kể là nền tảng hay là ngơn ngữ lập trình.Thơng qua Wed API, website và mạngxã hội hồn tồn có thể trao đổi tài liệu qua lại thuận tiện hơn. Web API cung cấpkhả năng tương tác với các dịch vụ và nguồn dữ liệu rất lớn có thể được mở rộngvới rất nhiều nguồn tài nguyên mà doanh nghiệp có thể cung cấp cho các nhà pháttriển. Đồng thời thông qua truy cập và xác thực, Web API có thể bảo vệ dữ liệu vàngười dùng ra khỏi mối đe dọa bảo mật. Với tính năng linh hoạt, tương tác và khảnăng mở rộng Web API trở nên quan trọng trong việc kết nối và tạo ra các ứngdụng trực tuyến hiện đại. Nhìn chung, API là một công cụ quan trọng cho các doanhnghiệp thuộc nhiều ngành, API mang đến cho các công ty cơ hội mở rộng quy mô,thúc đẩy sự đổi mới và tiếp cận nhiều đối tượng hơn. Nhưng bên cạnh đó nó cũng đikèm với nhiều thách thức.
<b>2. Lý do chọn đề tài:</b>
Trong thời đại mạng lưới kết nối tồn cầu ngày nay, Web API đóng vai trịkhơng thể phủ nhận trong việc kết nối và trao đổi dữ liệu giữa các ứng dụng và hệ thống. Tuy nhiên, cùng với sự phát triển và sự phổ biến của Web API, cũng xuất hiện nhiều rủi ro và thách thức về bảo mật thông tin. Để đảm bảo an toàn và bảo
</div><span class="text_page_counter">Trang 6</span><div class="page_container" data-page="6">mật cho dữ liệu được trao đổi thông qua Web API, việc nghiên cứu và áp dụng các biện pháp bảo mật hiệu quả là hết sức cần thiết.. Là sinh viên để nắm bắt được xu hướng công nghệ thực tế và nâng cao kiến thức về an ninh mạng nên nhóm em quyết định chọn chủ đề “Bảo mật wed API” để tìm hiểu và nghiên cứu, thơng qua tưliệu, kiến thức và kinh nghiệm của những người đi trước.
Trong quá trình nghiên cứu đề tài khơng tránh khỏi thiếu sót, nhóm em kính mong sự góp ý chân thành của thầy để đề tài nghiên cứu được hoàn thiện hơn.
</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="7"><b>1.1. Khái niệm API:</b>
API (Application Programming Interface) là một tập hợp các quy tắc và giao thức cho hai hoặc nhiều ứng dụng trao đổi, tương tác với nhau, tạo ra tương tác giữangười dùng với ứng dụng hiệu quả và tiện lợi hơn. Nó cung cấp một cách chuẩn để các ứng dụng và dịch vụ có thể trao đổi dữ liệu và chức năng mà không cần tiết lộ chi tiết về cách mà chúng được triển khai bên trong.
<b>1.2. Khái niệm Web API:</b>
Web API là một phương thức cho phép các ứng dụng và dịch vụ khác có thể truy cập và tương tác với các tài nguyên và chức năng của một ứng dụng web hoặc hệ thống thông qua mạng. Mỗi khi thực hiện truy xuất thông tin, Web API sẽ trả lại dữ liệu ở dạng JSON (JavaScript Object Notation) hoặc XML (Extensible Markup Language) thông qua giao thức HTTP hoặc HTTPS. Web API là hệ thống API đượcsử dụng trong các hệ thống website. Hầu hết các website đều ứng dụng đến Web API cho phép bạn kết nối, lấy dữ liệu hoặc cập nhật cơ sở dữ liệu.
<b>1.3. Ví dụ:</b>
Giả sử bạn có hai ứng dụng: một ứng dụng thương mại điện tử
(E-commerce) và một ứng dụng thanh toán trực tuyến (Payment Gateway). Ứng dụng thương mại điện tử cần tích hợp chức năng thanh toán trực tuyến để cho phép kháchhàng thanh toán đơn hàng một cách thuận tiện. Bằng cách sử dụng Web API của ứng dụng thanh toán trực tuyến, ứng dụng thương mại điện tử gửi yêu cầu thanh toán, bao gồm thông tin về đơn hàng và thông tin thanh toán của khách hàng.
Hệ thống thanh toán nhận yêu cầu và tiến hành xác thực thơng tin thanh tốn,bao gồm việc kiểm tra tính hợp lệ của thẻ tín dụng hoặc tài khoản ngân hàng. Sau khi xác thực thành cơng, hệ thống thanh tốn tiến hành xử lý giao dịch thanh toán và trả về kết quả cho ứng dụng thương mại điện tử thông qua Web API. Ứng dụng
</div><span class="text_page_counter">Trang 8</span><div class="page_container" data-page="8">thương mại điện tử nhận kết quả giao dịch từ hệ thống thanh toán và cập nhật trạng thái của đơn hàng tương ứng (thành cơng, đang xử lý, hoặc thất bại).
Từ đó, q trình thanh toán trở nên thuận tiện và tự động, đồng thời cung cấpcho khách hàng và người bán hàng thông tin cập nhật về trạng thái đơn hàng mà không biết cách triển khai bên trong.
<b>2. Chức năng của API:</b>
Chức năng chính của API là cho phép các ứng dụng tương tác với nhau bất kể chúng được viết bằng ngơn ngữ lập trình nào. Theo đó, API có thể được sử dụng với nhiều mục đích khác nhau, bao gồm:
- Kết nối ứng dụng và dịch vụ : API cho phép các ứng dụng truy cập vào các dịch vụ của các ứng dụng khác, ví dụ như Google Maps, Facebook, Twitter, v.v. Kết nối này giúp tăng cường tính linh hoạt của ứng dụng, cho phép sử dụng các tính năng và dữ liệu từ các dịch vụ ngoại vi mà không cần phải xây dựng lại.
- Mở rộng tính năng : API cho phép các ứng dụng mở rộng các tính năng của mình bằng cách tích hợp với các API khác. Điều này giúp giảm thời gian phát triển và nâng cao trải nghiệm người dùng, ví dụ như cho phép thanh tốn trực tuyến hoặc đặt phịng từ các dịch vụ bên ngồi.
- Bảo mật và quản lý quyền truy cập : API cho phép các ứng dụng kiểm soát quyền truy cập vào các dịch vụ và dữ liệu của mình. Điều này giúp doanh nghiệp bảo vệ các thông tin và dữ liệu quan trọng, như trong trường hợp ứng dụng ngân hàng yêu cầu xác thực trước khi truy cập dữ liệu khách hàng.- Tối ưu hóa hiệu suất : API giúp tối ưu hóa hiệu suất bằng cách cho phép ứng
dụng chỉ lấy những dữ liệu cần thiết. Điều này giảm tải cho hệ thống và tăng tốc độ tương tác, đồng thời giúp tiết kiệm tài nguyên mạng.
</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="9"><i><b>Hình 1: Web App with ASP .NET Core (Nguồn: wakeupandcode).</b></i>
<b>3. Các đặc điểm nổi bật:</b>
- Hỗ trợ xây dựng HTTP service:
Web API hỗ trợ RESTful đầy đủ các phương thức GET, POST, PUT,
DELETE dữ liệu cũng như các thành phần HTTP khác như request/response header, content format, versioning,… Điều này giúp người dùng có thể xây dựng HTTP service đơn giản và nhanh chóng.
- Khả năng tự động hóa hiệu quả :
Web API có khả năng tự động hóa giúp cho người dùng có thể tự động hóa q trình quản lý cơng việc, cập nhật cơng việc,… Từ đó nâng cao năng suất và hiệu quả công việc.
</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="10">- Khả năng tích hợp linh động :
Nếu được cấp quyền, API sẽ dễ dàng truy cập và lấy thông tin từ bất kỳ website nào, giúp cải thiện trải nghiệm khách hàng. Hiểu theo cách đơn giản,API được ví như một chiếc cổng và qua đó các cơng ty có thể chia sẻ thông tin một cách tự do nhưng vẫn hạn chế được những yêu cầu không mong muốn, tránh rủi ro.
- Cập nhật thông tin thời gian thực :
API được thiết kế với chức năng thay đổi và cập nhật những thay đổi một cách nhanh nhất, theo thời gian thực. Với tính năng này, thơng tin, dữ liệu được truyền đi nhanh và đảm bảo được sự chính xác hơn, kéo theo dịch vụ cung cấp sẽ được linh hoạt hơn.
- Tiêu chuẩn sử dụng chung dễ sử dụng :
Bất kỳ người dùng hay doanh nghiệp nào cũng có thể tự điều chỉnh các nội dung, dịch vụ mà họ đang dùng. Điều này là bởi vì API hỗ trợ đầy đủ các thành phần MVC như Routing, Filter, Controller, Model Binder,…
<b>4. Cách thức hoạt động:</b>
Web API hoạt động theo mơ hình tương tác giữa các hệ thống với nhau (System - System interaction). Cụ thể, dữ liệu hay thơng tin từ một hệ thống có thể được mộthệ thống khác xử lý. Sau đó, dữ liệu kết quả sẽ được hiển thị cho người xem.
Theo nguyên tắc, Web API nhận yêu cầu từ các loại thiết bị khách khác nhau như điện thoại, laptop… Những yêu cầu này sẽ được đến máy chủ web để xử lý và trả về dữ liệu mong muốn cho máy khách.
Thông thường, một Web API sẽ hoạt động theo quy trình cơ bản sau:
- Xây dựng URL PAI bằng cách thông qua giao thức quen thuộc HTTP hoặc HTTPS, API sẽ được gửi thông tin đến máy chủ cung cấp nội dung, dịch vụ.- Máy chủ sẽ thực hiện quá trình kiểm tra xác thực nếu cần thiết, sau đó tìm
đến nguồn tài ngun phù hợp để tạo nội dung trả về sao cho thích hợp.- Máy chủ sẽ trả lại kết quả thông qua HTTP hoặc HTTPS dưới định dạng
</div><span class="text_page_counter">Trang 11</span><div class="page_container" data-page="11">JSON hoặc XML.
- Tại website, ứng dụng smartphone của bạn (nơi yêu cầu ban đầu), sau khi nhận dữ liệu trả về sẽ tiến hành phân tích và thực hiện các hành động tiếp theo trong quá trình như lưu và hiển thị dữ liệu,...
- Máy chủ gửi một phản hồi đến API với thông tin được yêu cầu.
- API chuyển dữ liệu đến ứng dụng yêu cầu ban đầu, trong trường hợp này là trang web sản phẩm.
Kết luận: API ủy quyền và cấp quyền truy cập vào dữ liệu mà người dùng và các ứng dụng khác yêu cầu. API thường có cơ chế kiểm sốt quyền truy cập để bảo vệ dữ liệu và đảm bảo rằng chỉ những ứng dụng được ủy quyền mới có thể sử dụng API.
</div><span class="text_page_counter">Trang 12</span><div class="page_container" data-page="12"><i><b>Hình 2: Minh họa về cách hoạt động của API (Nguồn: postman).</b></i>
<b>5. Các hình thức tấn công web API phổ biến:</b>
- Tấn công Cross-Site Scripting (XSS):
Tấn công này thường xuyên xảy ra khi API trả về dữ liệu không được xử lý đúng cách, cho phép tin tặc chèn mã JavaScript độc hại vào các trang web hoặc ứng dụng khác.
- Tấn công Injection:
<i>+ SQL Injection: Cố gắng chèn câu lệnh SQL độc hại thông qua các tham</i>
số của API để thực hiện các truy vấn không hợp lệ và thu thập thông tin nhạy cảm từ cơ sở dữ liệu.
<i>+ XPath Injection: Tương tự như SQL Injection, nhưng thay vì tấn cơng </i>
vào cơ sở dữ liệu, tin tặc tìm cách can thiệp vào các truy vấn XPath được sử dụng trong API.
- Tấn công Man-in-the-Middle (MitM):
Tin tặc có thể theo dõi và sửa đổi dữ liệu truyền qua API giữa các bên để đánh cắp thông tin nhạy cảm hoặc thực hiện tấn công khác.
- Tấn công Cross-Site Request Forgery (CSRF):
Tin tặc cố gắng thực hiện các yêu cầu không được ủy quyền từ người sử dụng đã xác thực để thực hiện các hành động không mong muốn.
- Truy cập trái phép:
Cố gắng truy cập vào các tài nguyên và chức năng không được phép thông qua API bằng cách thay đổi yêu cầu hoặc tìm ra các lỗ hổng xác thực.
- Tấn công Denial of Service (DoS):
Tấn công nhằm làm ngừng hoạt động hoặc giảm hiệu suất của API bằng cách gửi lượng lớn yêu cầu không hợp lý hoặc tận dụng các lỗ hổng khác trong hệ thống.
- Cấu hình bảo mật sai:
Tận dụng các cài đặt không đúng, lỗi cấu hình và quyền truy cập khơng
</div><span class="text_page_counter">Trang 13</span><div class="page_container" data-page="13">an toàn trong API.
</div><span class="text_page_counter">Trang 14</span><div class="page_container" data-page="14"><b>6. Biện pháp bảo mật Web API khỏi tấn công Cross- Site Scripting:</b>
- Tấn công XSS (Cross-Site Scripting) là loại tấn công phổ biến nhất trong lĩnh vực bảo mật web. XSS xảy ra khi kẻ tấn công chèn mã độc (thường là mã JavaScript) vào một trang web hoặc ứng dụng web, chẳng hạn như trong các trường nhập liệu, phần mô tả sản phẩm, bình luận, hoặc URL. Khi người dùng khác truy cập vào trang web hoặc ứng dụng đó, mã độc sẽ chạy trên trình duyệt của họ và có thể thực hiện các hành động độc hại như đánh cắp thông tin cá nhân, thay đổi nội dung trang, hoặc thực hiện các hành động không mong muốn khác
</div><span class="text_page_counter">Trang 15</span><div class="page_container" data-page="15">- Bảo mật của một web API là một quá trình liên tục và đa lớp, nhằm đảm bảo rằng dữ liệu và tài nguyên trong API được bảo vệ khỏi các mối đe dọa và cuộc tấn công. Tùy vào nhu cầu mỗi doanh nghiệp, ứng dụng mà việc bảo mật Web API cũng khác nhau, dưới đây là một số nguyên tắc và biện pháp bảo mật quan trọng để bảo vệ web API:
<i>+ Xác thực và ủy quyền: API cần triển khai quá trình xác thực và ủy quyền </i>
mạnh mẽ để đảm bảo rằng chỉ những người dùng hợp lệ và có quyền truy cậpmới có thể gọi và sử dụng API. Sử dụng các phương pháp xác thực như JWT(JSON Web Tokens) hoặc OAuth 2.0 để quản lý quyền truy cập.
<i>+ Mã hóa dữ liệu: API nên sử dụng mã hóa để bảo vệ dữ liệu trong quá trình</i>
truyền đi và lưu trữ. Sử dụng mã hóa SSL/TLS để bảo vệ dữ liệu truyền qua mạng và mã hóa dữ liệu nhạy cảm trong cơ sở dữ liệu.
<i>+ Kiểm tra và xử lý đầu vào: API cần kiểm tra và xử lý đầu vào từ người </i>
dùng để ngăn chặn các cuộc tấn công như XSS (Cross-Site Scripting) và SQL injection. Đảm bảo rằng dữ liệu đầu vào được kiểm tra, ràng buộc và vệsinh đúng cách trước khi xử lý.
<i>+ Content Security Policy (CSP): (là một cơ chế bảo mật trình duyệt web dùng để giới hạn và kiểm sốt các nguồn tài nguyên được tải từ trên một trang web) Thiết lập CSP để hạn chế nguồn tài nguyên được tải từ. CSP có </i>
thể giúp ngăn chặn việc chèn mã độc từ các nguồn không tin cậy.
<i>+ Giới hạn và kiểm soát tài nguyên: API nên áp dụng các biện pháp giới hạn </i>
và kiểm soát tài nguyên để ngăn chặn tấn công quét, tấn công từ chối dịch vụ(DDoS) và sử dụng tài nguyên quá mức. Sử dụng giới hạn tần suất yêu cầu, giới hạn tài nguyên và xác thực yêu cầu để đảm bảo rằng người dùng không thể gây ra ảnh hưởng tiêu cực lên hệ thống.
<i>+ Quản lý lỗi và ghi nhật ký: API nên được cấu hình để quản lý và ghi nhật </i>
ký các sự kiện, lỗi và hoạt động không thường xuyên. Việc theo dõi và phân tích nhật ký giúp phát hiện và đối phó với các hoạt động đáng ngờ và bảo vệ khỏi các cuộc tấn công.
</div><span class="text_page_counter">Trang 16</span><div class="page_container" data-page="16"><i>+ Cập nhật và kiểm tra bảo mật định kỳ: API cần được cập nhật thường </i>
xuyên với các bản vá lỗi, bản vá bảo mật và các cập nhật mới nhất để phát hiện và khắc phục các lỗ hổng XSS. Kiểm tra bảo mật định kỳ, bao gồm kiểm tra mã độc và kiểm tra xâm nhập, giúp phát hiện và khắc phục các lỗ hổng bảo mật.
<i>+ Giáo dục và đào tạo: Quan trọng nhất là tạo ra một môi trường nhận thức </i>
bảo mật. Đảm bảo nhân viên và nhà phát triển có kiến thức về các phương pháp tấn công phổ biến, lỗ hổng bảo mật và quy trình phịng ngừa. Điều này giúp xây dựng một nhóm làm việc bảo mật có ý thức và có khả năng phản ứng nhanh chóng đối với các mối đe dọa bảo mật.
Từ đó giúp đảm bảo rằng API hoạt động an toàn và không mở ra cánh cửa cho các cuộc tấn công XSS.
- Ví dụ:
Nếu API chấp nhận nội dung do người dùng tạo và trả về dưới dạng phản hồiHTML, kẻ tấn cơng có thể đưa các tập lệnh độc hại vào nội dung thực thi khiphản hồi được hiển thị trong trình duyệt của người dùng. Để ngăn chặn các cuộc tấn công XSS, API web phải triển khai xác thực đầu vào và mã hóa đầura. Xác thực đầu vào đảm bảo rằng đầu vào của người dùng đáp ứng các tiêu chí mong đợi và khơng bao gồm mã độc. Mã hóa đầu ra đảm bảo rằng mọi dữ liệu được API trả về đều được vệ sinh đúng cách để trình duyệt của ngườidùng khơng thể thực thi nó dưới dạng mã.
<b>7. Một số biện pháp để tăng tính bảo mật API hơn:</b>
</div>