This paper investigates the problem of detection and classification of unmanned aerial vehicles (UAVs) in the presence of wireless interference signals using a passive radio frequency (RF) surveillance system. The system uses a multistage detector to distinguish signals transmitted by a UAV controller from the background noise and interference signals. First, RF signals from any source are detected using a Markov models-based naive Bayes decision mechanism. When the receiver operates at a signal-to-noise ratio (SNR) of 10 dB, and the threshold, which defines the states of the models, is set at a level 3.5 times the standard deviation of the preprocessed noise data, a detection accuracy of 99.8% with a false alarm rate of 2.8% is achieved. Second, signals from Wi-Fi and Bluetooth emitters, if present, are detected based on the bandwidth and modulation features of the detected RF signal. Once the input signal is identified as a UAV controller signal, it is classified using machine learning (ML) techniques. Fifteen statistical features extracted from the energy transients of the UAV controller signals are fed to neighborhood component analysis (NCA), and the three most significant features are selected. The performance of the NCA and five different ML classifiers are studied for 15 different types of UAV controllers. A classification accuracy of 98.13% is achieved by k-nearest neighbor classifier at 25 dB SNR. Classification performance is also investigated at different SNR levels and for a set of 17 UAV controllers which includes two pairs from the same UAV controller models.