Points can look normal on each feature yet be unusual jointly. The Mahalanobis distance accounts for correlations:
Implement mahalanobis(X, mu, cov) returning distances for each row, and flag_outliers(X, threshold) that estimates mu and cov (ddof=1) from X and flags rows whose distance exceeds threshold.