https://www.giaosucan.com/2022/10/voice-ai-van-ly-truyen-am-hoi-2.html
Tiếp tục câu chuyện về công ty VA của CEO Humbrey Doan, khởi nghiệp từ startup rồi nhanh chóng trở thành công ty triệu đô.
Hệ thống CICD của VA được build trên Azure DevOps, build scan code bằng SonarQuebe rồi deploy lên Azure App service. Cơ bản thì đáp ứng được nhu cầu release liên tục của đội Dev. Cho đến một ngày security incident xảy ra
Leaking snapshot RDS
https://thehackernews.com/2022/11/researchers-discover-hundreds-of-amazon.html
Cũng tương tự như hệ thống khác, data của VA được lưu trong RDS và được snapshot thường xuyên để backup data. Tuy nhiên do sai sót của kĩ sư, các RDS snapshot này được set ở chế độ public, dẫn tới các AWS account khác có thể truy cập. Hacker đã lợi dụng lỗ hổng bảo mật trên để truy cập được thông tin khách hàng của VA
Azure Application Insights burn cost
Được deploy trên Azure App Services, VA sử dụng Azure Application Insights , công cụ APM (Application Performance Monitoring) để kĩ sư có thể monitor ứng dụng, check logs… Tuy nhiên một vấn đề mà các kĩ sư VA đã bỏ quên, đó là lượng data ingested và stored trong hệ thống. Data này do application generate hàng ngày (như log, event, message…) Log Analytics
Reporting billing thông báo cost đã tăng x3 lần, CTO đã yêu cầu một cuộc họp khẩn cấp đều thực hiện RCA cho incident này
Nguyên nhân là việc Cost Optimization trên Application Insight đã bị bỏ qua, đặc biệt là vấn đề Log Retention
Sau cuộc họp thì một số action item được thực hiện
Set daily cap trong Log Analytics để tránh chi phí data tăng lên quá cao
Team DevOps cũng implement một số alert khi daily cap reached Threshold. Alert được send vào slack channel và email
Code optimize
Việc developer implement logging đẩy log vào Log Analytics bừa bãi, thiếu sàng lọc loại info nào cần log, loại nào không cũng là một nguyên nhân
Data retentions được điều chỉnh giảm so với default là 90 ngày, sau 1 khoảng thời gian sẽ xóa bớt log không cần thiết đi. Thực tế hệ thống chỉ cần giữ lượng data trong 30 ngày là đủ
Data sampling
Mục đích của sampling là giảm bớt lượng data telemetry gửi từ SDK (ASP.NET, .NET core) vào Log Analytics. Data telemetry ở đây không phải là log được viết bởi developer mà là log được gen từ Framework. Việc điều chỉnh data sampling có thể được thực hiện trong code của application hoặc set trực tiếp trên Log Analytics
0 Nhận xét