Your query should have worked.. i.e.
index= firewall NOT [|inputlookup whitelist.csv | fields signature,source,destination]
But please ensure your data in index=firewall contains precisely the fields signature, source, destination (The field names are case-sensitive too) and contains ALL of the fields in each Event. If a single field is missing, you will get empty results.
to debug this, do the fields individually, and test if each of the field works. something like below and test for each field
index= firewall NOT [|inputlookup whitelist.csv | fields signature]
..
... View more