Giaosucan's blog - Chia sẻ kiến thức theo cách bá đạo

Ticker

20/recent/ticker-posts

DevSecOps trên production – part 3

 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 VoiceAI 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 VoiceAI đượ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 VoiceAI đượ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 VoiceAI

cloud computing icon against a dark background

Azure Application Insights burn cost



https://medium0.com/@beyerleinf/azure-application-insights-how-not-to-burn-money-using-it-5f1bbe5816b4

Được deploy trên Azure App Services, VoiceAI 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ư VoiceAI đã 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

https://learn.microsoft.com/en-us/azure/architecture/framework/services/monitoring/application-insights/cost-optimization

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

Log Analytics configure data limit

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

Docker scanning

Chuyện đơn giản nhưng lại bị bỏ qua, đó là application được build thành docker rồi publish lên registry. Quy trình này được thực hiện bởi Azure pipeline tuy nhiên mới chỉ có SonarQuebe scanning (SAST), còn phần security khác như Docker scanning, IAST, DAST bị bỏ qua. Điều này dẫn tới một incident tiếp theo
Incident này như thế nào và kĩ sư VoiceAI khắc phục ra sao, đón đọc phần 4

Đăng nhận xét

0 Nhận xét