The rate of threats against IT systems is directly proportional to the rate of growing technology. The emergence of new technology requires researchers and practitioner's attention to discover new threats in order to make it reliable. Cloud computing is an emerging technology paradigm that migrates current technological and computing concepts into utility-like solutions similar to electricity and water systems. Security issues in cloud computing is shown to be the biggest obstacle that could subvert the wide benefits of cloud computing. The new concepts that the cloud introduces, such as multi-tenancy, creates new challenges to the security community. Addressing these challenges requires, in addition to the ability to cultivate and tune the security measures developed for other systems, proposing new security policies, models, and protocols to address the unique cloud security challenges. In this work, we provide comprehensive study of cloud computing security that includes classification of known security threats and the state-of-the-art practices in the endeavor to calibrate these threats. This paper also provides the dependency level within classification and provides a solution in form of preventive actions rather than proactive actions.