In this chapter, we explore adversarial attack surfaces. We examine how they can exploit vulnerabilities in machine learning and how to make learning algorithms robust to attacks on security and privacy of the learning system. To explore the vulnerabilities, we can simulate various model training processes under a range of various attack scenarios in supervised and unsupervised settings. Each attack strategy is assumed to be formulated by an intelligent adversary that is capable of either feature manipulation, label manipulation, or both. The optimal attack policy of the adversaries is determined by the solution for optimization problems that output the adversarial data. We can then apply the knowledge that we learned to improve and reinforce the learning procedure so as to better defend against attacks. The sensitivity analysis summarized in this chapter can be used to develop computational algorithms for optimization objectives and statistical inferences in adversarial learning algorithm's capacity for randomization, discrimination, reliability, and learnability. It creates research pathways into robustness, fairness, explainability, and transparency of machine learning models.