Ein Dialog mit einem Virenscanner via ICAP (Internet Content Adaptation Protocol) läuft typischerweise so ab, dass ein ICAP-Client (z. B. ein Proxy) eine Anfrage an einen ICAP-Server (z. B. einen... [mehr]
Um binäre Daten (z. B. eine Datei) direkt an einen Virenscanner über das ICAP-Protokoll zu senden, wird typischerweise der ICAP-Request mit einem eingebetteten HTTP-Request oder HTTP-Response aufgebaut, in dessen Body die zu prüfenden binären Daten enthalten sind. Die meisten Virenscanner erwarten dabei eine HTTP-Response mit einem Content-Body. **Beispiel für einen ICAP-Request (REQMOD oder RESPMOD) mit binären Daten:** Angenommen, du möchtest eine Datei prüfen lassen, dann wird meist das RESPMOD-Kommando verwendet. Der Aufbau sieht so aus: ``` RESPMOD icap://virenscanner.example.com/scan ICAP/1.0 Host: virenscanner.example.com Allow: 204 Encapsulated: res-hdr=0, res-body=xxx HTTP/1.1 200 OK Content-Type: application/octet-stream Content-Length: <Länge der Datei in Bytes> <binäre Daten der Datei> ``` **Erklärung der wichtigsten Teile:** - `RESPMOD icap://... ICAP/1.0`: ICAP-Request-Zeile, gibt das Kommando und die Service-URL an. - `Encapsulated`: Gibt an, ab welchem Byte-Offset im ICAP-Request die jeweiligen HTTP-Teile beginnen. `res-hdr=0` bedeutet, dass die HTTP-Response-Header direkt nach den ICAP-Headern beginnen. `res-body=xxx` gibt den Offset an, ab dem der Body (also die binären Daten) beginnt. - Der eingebettete HTTP-Response-Header (`HTTP/1.1 200 OK` usw.) ist erforderlich, weil ICAP immer HTTP-Nachrichten kapselt. - Im Body folgt dann die Datei im Binärformat. **Chunked Encoding (optional):** Falls die Datei sehr groß ist oder die Länge nicht bekannt ist, kann auch Chunked Transfer Encoding verwendet werden. Dann sieht der Body so aus: ``` HTTP/1.1 200 OK Content-Type: application/octet-stream Transfer-Encoding: chunked <chunked binäre Daten> ``` **Wichtige Hinweise:** - Die genaue Implementierung kann je nach Virenscanner und ICAP-Server leicht variieren. Die Dokumentation des jeweiligen ICAP-Dienstes sollte beachtet werden. - Die ICAP-Spezifikation findest du hier: [RFC 3507](https://datatracker.ietf.org/doc/html/rfc3507) - Beispielhafte Implementierungen und weitere Details findest du z. B. bei [C-ICAP](http://c-icap.sourceforge.net/) oder [Symantec ICAP](https://techdocs.broadcom.com/us/en/symantec-security-software/web-and-network-security/proxySG/6-7/icap-and-icap-adaptation/Content/Topics/ICAP/icap_intro.htm). **Zusammengefasst:** Der HTTP-Teil im ICAP-Request besteht aus einem vollständigen HTTP-Response-Header (z. B. `HTTP/1.1 200 OK`), gefolgt von den binären Daten im Body. Die ICAP-Header geben an, wo die jeweiligen Teile beginnen.
Ein Dialog mit einem Virenscanner via ICAP (Internet Content Adaptation Protocol) läuft typischerweise so ab, dass ein ICAP-Client (z. B. ein Proxy) eine Anfrage an einen ICAP-Server (z. B. einen... [mehr]
Ein Dialog mit einem Virenscanner via ICAP (Internet Content Adaptation Protocol), bei dem ein Preview in mehreren Chunks gesendet wird, läuft typischerweise wie folgt ab: **1. ICAP-REQMOD-Anfra... [mehr]
Beim Einsatz von ICAP (Internet Content Adaptation Protocol) zur Virenprüfung gibt der ICAP-Server nach der Analyse einer Datei eine Antwort an den Client zurück. Die wichtigsten Statuscodes... [mehr]