Apparatus for preventing access to a resource, the apparatus comprising a processor and a memory storing instructions that, when executed by the processor , cause the processor to: receive a request from a subject communication device (102 1...N ) for access to the resource, the subject communication device (102 1...N ) having a device type; cause transmission of computer executable code to the subject communication device (102 1...N ), which computer executable code is arranged, when executed by the subject communication device (102 1...N ), to retrieve from the subject communication device (102 1...N ) actual values of a plurality of attributes of the subject communication device (102 1...N ) and to transmit the actual values of the plurality of attributes to the apparatus ; and receive the actual values of the plurality of attributes from the subject communication device (102 1...N ), wherein the instructions also causing the processor to: retrieve from a device property store reference values of the plurality of attributes for the device type of the subject communication device (102 1...N ); compare the actual values to the reference values to identify a group of attributes for which the actual values and the reference values either do or do not match; retrieve from the device property store a confidence parameter for each of the reference values of the group of attributes; determine a confidence score for the subject communication device (102 1...N ) by combining the confidence parameters of the reference values of the group of attributes; and prevent the subject communication device (102 1...N ) from accessing the resource based on the confidence score. receive a request from a subject communication device (102 1...N ) for access to the resource, the subject communication device (102 1...N ) having a device type; cause transmission of computer executable code to the subject communication device (102 1...N ), which computer executable code is arranged, when executed by the subject communication device (102 1...N ), to retrieve from the subject communication device (102 1...N ) actual values of a plurality of attributes of the subject communication device (102 1...N ) and to transmit the actual values of the plurality of attributes to the apparatus ; and receive the actual values of the plurality of attributes from the subject communication device (102 1...N ), wherein the instructions also causing the processor to: retrieve from a device property store reference values of the plurality of attributes for the device type of the subject communication device (102 1...N ); compare the actual values to the reference values to identify a group of attributes for which the actual values and the reference values either do or do not match; retrieve from the device property store a confidence parameter for each of the reference values of the group of attributes; determine a confidence score for the subject communication device (102 1...N ) by combining the confidence parameters of the reference values of the group of attributes; and prevent the subject communication device (102 1...N ) from accessing the resource based on the confidence score. <EOS>