신뢰 모델의 기본: 사용자가 인터넷에서 소프트웨어를 다운로드할 때, 그 소프트웨어에 악성 코드가 없다는 커다란 신뢰가 필요합니다.
위와 같은 코드에서는 사용자 이름과 비밀번호를 확인하여 사용자 계정 자격이 유효한지 확인하는 가상의 로그인 프로그램을 코드로 구현했습니다. 1행부터 7행까지 사용자 이름과 비밀번호를 데이터베이스에 들어 있는 것과 비교합니다. strcmp는 두 문자열이 동일한 지 비교하는 함수입니다.
사용자 이름과 비밀번호가 맞는지 확인한 후 시스템에 대한 액세스 권한을 부여하는 또다른 방법이 쓰여진 코드가 8행부터 12행까지 있습니다. 사용자들이 원래 시스템에 접속하는 방법과 다른 비상식적인 수단으로 시스템에 접속하는 방법을 백도어(Back Door)라고 부릅니다.
프로그램을 다운로드 하기 전에 프로그램의 코드를 볼 수 있고, 그 코드에 악성 코드나 백도어가 없어 보인다고 해도 프로그램 자체가 안전한 것은 아닙니다. 소스 코드를 오브젝트 코드로 변환시키는 프로그램인 컴파일러가 익스플로잇(exploit)의 원천일 가능성이 있습니다. 만약 소스 코드가 악성 컴파일러에 의해 컴파일 되었다면, 결과적으로 프로그램에는 백도어가 있을 것입니다.
결론적으로, 컴파일러의 소스 파일과 로그인 프로그램의 소스 파일이 악성 코드나 백도어를 포함하지 않을 지라도, 소스 파일을 컴파일 하는 과정에서 악성 코드가 주입될 수 있습니다.