Standardkonform programmieren wg. Virenschutz



  • Ja, in bestimmten Unternehmen gibts ja immer so IT-Chefs, die sich irgendwann mal "PC" beigebracht haben und dann zu Stolz sind, einfach zuzugeben, dass sie keine Ahnung haben, worüber sie da eigentlich sprechen. Das unterscheidet sie auch von den Entwicklern, die einfach wissen, dass sie keine Ahnung haben und deshalb immer dazulernen...



  • Frag doch einfach mal nett ob du einen Link auf diese weltweiten Standards haben kannst. Und bitte hier posten.
    Meine Vermutung: Die exe wird als x86-exe interpretiert und enthält zufällig dieselben Bitmuster der Befehle um was mit dem Local Descriptor Table zu machen, was man benutzen kann um in Speicher zu schreiben in den man eigenlich nicht schreiben können sollte -> Malware. Mein Vorschlag: nenn die exe in bin oder executable oder gpu um. Der Grafikkarte ist es bestimmt egal.



  • Dieser Thread wurde von Moderator/in SeppJ aus dem Forum C++ (auch C++0x und C++11) in das Forum Rund um die Programmierung verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • Quatsch: Hier wird einfach nur der schwarze Peter hin- und hergeschoben anstatt das Problem zu untersuchen. Anstatt zu labern sollte das Problem angegangen werden. Eine vernuenftige Ausgangsthese ist: Kopiervorgaenge stuerzen nicht aufgrund des Inhaltes der kopierten Datei ab. Warum sollte das Lockern der Richtlinien was bringen? Es ist ja nicht so, dass der Virenscanner einen Crash absichtlicht ausloest, wenn etwas verdaechtig ist. D.h. es liegt weder an den Richtlinien noch am Inhalt.



  • dasdsfdggfhgjg schrieb:

    Unsere Entwickler-PCs sind 1000fach abgesichert durch Virenschutz, Firewall, usw..., worauf wir aber keinen Einfluss haben.

    Folglich muss sich die IT Abteilung darum kümmern. Diese sagt nun, dass unser Programm wohl als Virus erkannt wird und es deswegen wohl dazu kommt, dass es beim Kopieren zu Problemen kommt und folglich der Entwickler PC abstürzt.

    Die PCs dürfen nicht abstürzen, sonst ist der Virenkiller fehlerhaft.

    Euer Produkt (das Executable) enthält offensichtlich eine Signatur, die vom Virenkiller erkannt wird. Das passiert uns auch selten schonmal, dass unser Virenkiller unser soeben kompiliertes Produkt als potentiell gefährlich ansieht und vorsorglich gleich wieder von der Festplatte löscht.
    Grundsätzlich sehen wir das genauso, aber dann hätten wir nichts zu verkaufen. 😉 Also muss unser Produkt auf die White-List. Entweder kann man das Programm selbst auf die Whitelist setzen (bzw. das entsprechende Verzeichnis vom Scannen ausnehmen) oder der Virenkiller-Hersteller muss das tun, in dem er seine Signatur so anpasst, dass euer Produkt nicht als gefährlich eingestuft wird.



  • Üblicherweise kann man sowas dem Antivierenhersteller melden, der dann nach 10 Monaten mal nachsieht, ob das Problem weggegangen ist.



  • nwp3 schrieb:

    Üblicherweise kann man sowas dem Antivierenhersteller melden, der dann nach 10 Monaten mal nachsieht, ob das Problem weggegangen ist.

    Nach meiner bisherigen Erfahrung reagieren Antivirenhersteller (zumindest bei kostenpflichtigen Versionen) innerhalb weniger Tage und bringen eine neue Definitionsdatei heraus.



  • dasdsfdggfhgjg schrieb:

    Nun stürzen unsere Entwicklungs PCs recht oft ab, wenn wir das Programm (in Form einer EXE Datei, welche auf Windows CE läuft) auf die Speicherkarte kopieren.

    Wie sind die Speicherkarten angebunden? Und lässt sich das reproduzieren?
    Also z.B.
    100x irgendwelche anderen .EXEn/.DLLs draufkopieren = kein Crash
    10x eigene .EXE draufkopieren = verlässlich min. 1 Crash
    ?

    Unsere Entwickler-PCs sind 1000fach abgesichert durch Virenschutz, Firewall, usw..., worauf wir aber keinen Einfluss haben.

    Könnt ihr zu testzwecken den Virenscanner von der IT mal zwischenzeitlich deaktivieren bzw. gleich de-installieren lassen?
    Oder habt ihr Crashdumps aus denen hervorgeht dass irgend ein Hilfstreiber des Virenscanners/der Firewall schuld ist?
    Sonst ist die Behauptung dass es am Virenscanner liegt wohl etwas gewagt.

    Und: was genau meinst du mit "stürzt ab"? So richtig mit Blue-Screen? Oder meinst du einfach nur dass der Kopiervorgang abbricht/fehlschlägt?

    dasdsfdggfhgjg schrieb:

    Die IT verneint: es gibt weltweite Standards wie Programme auszusehen haben, damit es keine Probleme mit dem Virenschutz gibt, folglich: wir müssen unsere SW anpassen.
    Außerdem arbeiten wir mit veralteten Tools (Compilern), das kann auch zu Problemen führen. Auch hier sind uns die Hände gebunden, der Compiler für die Plattform ist unmal alt, aber deswegen NICHT schlecht!!!

    Die IT soll sich um ihren Kram kümmern, und euch eure Arbeit machen lassen. Ist ja wohl lächerlich dass ein Haufen möchtegern-Spezialisten den Softwareentwicklern vorschreiben will wie sie zu arbeiten haben.



  • Admins und "IT-Spezialisten" kommen hier aber nicht grad gut weg. Wieso? Was habt ihr gegen die? Oder was machen die falsch? Wieso sind wir Entwickler besser?



  • hustbaer schrieb:

    dasdsfdggfhgjg schrieb:

    Nun stürzen unsere Entwicklungs PCs recht oft ab, wenn wir das Programm (in Form einer EXE Datei, welche auf Windows CE läuft) auf die Speicherkarte kopieren.

    Wie sind die Speicherkarten angebunden? Und lässt sich das reproduzieren?
    Also z.B.
    100x irgendwelche anderen .EXEn/.DLLs draufkopieren = kein Crash
    10x eigene .EXE draufkopieren = verlässlich min. 1 Crash
    ?

    Unsere Entwickler-PCs sind 1000fach abgesichert durch Virenschutz, Firewall, usw..., worauf wir aber keinen Einfluss haben.

    Könnt ihr zu testzwecken den Virenscanner von der IT mal zwischenzeitlich deaktivieren bzw. gleich de-installieren lassen?
    Oder habt ihr Crashdumps aus denen hervorgeht dass irgend ein Hilfstreiber des Virenscanners/der Firewall schuld ist?
    Sonst ist die Behauptung dass es am Virenscanner liegt wohl etwas gewagt.

    Und: was genau meinst du mit "stürzt ab"? So richtig mit Blue-Screen? Oder meinst du einfach nur dass der Kopiervorgang abbricht/fehlschlägt?

    dasdsfdggfhgjg schrieb:

    Die IT verneint: es gibt weltweite Standards wie Programme auszusehen haben, damit es keine Probleme mit dem Virenschutz gibt, folglich: wir müssen unsere SW anpassen.
    Außerdem arbeiten wir mit veralteten Tools (Compilern), das kann auch zu Problemen führen. Auch hier sind uns die Hände gebunden, der Compiler für die Plattform ist unmal alt, aber deswegen NICHT schlecht!!!

    Die IT soll sich um ihren Kram kümmern, und euch eure Arbeit machen lassen. Ist ja wohl lächerlich dass ein Haufen möchtegern-Spezialisten den Softwareentwicklern vorschreiben will wie sie zu arbeiten haben.

    Explorer stürzt ab, und danach ist der Compuer nicht mehr verwendbar. Klar kann man mit Neuer Task den Explorer neustarten, aber damit wieder alle Komponenten korrekt funktionieren hilft nur noch ein Neustart.

    Anbindung mit USB, Dateisystem ist FAT (16bit).

    Ich teste gerade mit einem anderen File Explorer (Total Commander), und kopiere testweise auch immer wieder andere EXE Dateien rauf.

    Virenscanner kann nicht komplett deaktviert werden (meines Wissens nicht mal testweise!), da das von "ganz oben" vorgegeben ist.

    Änderung des Virenscanners wurde bereits gesagt dass es keine geben wird. IT: "Wer glauben Sie wird sich nach wem richten müssen, Virenhersteller nach Ihrer SW oder umgekehrt?"



  • dasdsfdggfhgjg schrieb:

    da das von "ganz oben" vorgegeben ist. ... IT: "Wer glauben Sie wird sich nach wem richten müssen, Virenhersteller nach Ihrer SW oder umgekehrt?"

    Bist Du dort als Fachkraft angestellt oder um die Sch... aufzuwischen?

    Lass mich die Frage anders formulieren: Hat eure Firma ein gemeinsames Ziel? Redet ihr miteinander oder ist es der berühmte Baum, wo oben der Chef-Vogel auf die Abteilungsleiter kackt und die Abteiltungsleiter die Arbeitenden ankackt? Womit wir wirder bei Frage sind, wer das aufwischen darf, bzw. was die Firma so herstellt?

    Bei uns muss sich der Virenhersteller nach uns richten. Zum einen zahlen wir aber auch für den Virenschutz, zum anderen ist unser BOfH ein netter Kerl, der sich auch um Probleme kümmert.



  • Also wenn mir jemand mit haltlosen Anschuldigungen entgegentritt, dann wuerde ich ihn auch wegschicken/abwimmeln. Keine Ahnung, was ihr gegen die IT-Abeitlung habt.

    Und wenn ich sowas lese:

    Euer Produkt (das Executable) enthält offensichtlich eine Signatur, die vom Virenkiller erkannt wird ...

    Ja alles sehr offensichtlich ...

    na was weiß denn ich, die IT behauptet halt dass es das sein kann

    Behauptet es koennte sein ... alles sehr offensichtlich.

    Dabei ist es egal, was es wirklich ist. Auf Grundlage der gegebenen Information ist alles moeglich. Also was soll der Scheiss?



  • Und vor allem...

    Ich würde in so einem Fall die IT bei meinem AL/Chef anschwärzen, und zwar gröber. Also nach dem Motto "unsere PCs funktionieren nicht richtig, die IT weigert sich etwas zu unternehmen und sabotiert damit unsere Arbeit".

    Natürlich würde ich erstmal probieren es selbst mit denen zu regeln, aber wenn die auf stur schalten und mit so völlig behämmerten Aussagen daherkommen... tjoah.

    Ihr macht das ja nicht zum Spass, also was soll der ganze Bockmist?

    Wenn die IT behauptet dass da ne böse Signatur in euren Files ist, dann sollen sie euch sagen was für ne Signatur und wie ihr dafür sorgen könnt dass die nicht mehr erkannt wird.
    Wenn aber das einzige was sie liefern können irgend ein unspezifisches Gelaber von "internationale Standards" ist (von denen ich noch nie gehört hätte!), dann sollen sie verdammtnochmal die Fresse halten.

    Und am Ende des Tages bleibt: ihr müsst Files kopieren und es funktioniert nicht. Die IT ist zuständig dass eure PCs funktionieren, und dazu gehört nunmal auch dass man Files kopieren kann. => Die IT soll nicht rumspinnen sondern zusehen dass ihr mit euren PCs arbeiten könnt.



  • dasdsfdggfhgjg schrieb:

    Hallo!

    Wir entwickeln Software für embedded systems, welche NICHT auf x86 aufbauen.

    Nun stürzen unsere Entwicklungs PCs recht oft ab, wenn wir das Programm (in Form einer EXE Datei, welche auf Windows CE läuft) auf die Speicherkarte kopieren.
    Unsere Entwickler-PCs sind 1000fach abgesichert durch Virenschutz, Firewall, usw..., worauf wir aber keinen Einfluss haben.

    Folglich muss sich die IT Abteilung darum kümmern. Diese sagt nun, dass unser Programm wohl als Virus erkannt wird und es deswegen wohl dazu kommt, dass es beim Kopieren zu Problemen kommt und folglich der Entwickler PC abstürzt.

    Meiner Meinung nach sollte also der Virenschutz lockerer eingestellt werden.
    Die IT verneint: es gibt weltweite Standards wie Programme auszusehen haben, damit es keine Probleme mit dem Virenschutz gibt, folglich: wir müssen unsere SW anpassen.
    Außerdem arbeiten wir mit veralteten Tools (Compilern), das kann auch zu Problemen führen. Auch hier sind uns die Hände gebunden, der Compiler für die Plattform ist unmal alt, aber deswegen NICHT schlecht!!!

    Wir haben es hier mit einer EXE Datei zu tun, die unmöglich auf x86 ausgeführt werden kann. Außerdem steht bereits im EXE Header drinnen, dass es sich hierbei nicht um ein Programm für den Desktop handelt, und Windows somit die Ausführung sowieso nicht ermöglicht.

    Das Programm ist in C++ geschrieben, ich habe keinen direkten Enfluss darauf, wie der binäre Output aussieht, geschweige denn habe ich eine Ahnung welches binäre Muster den Virenscanner dazu bringt, zu schreien.

    Frage: Was soll ich davon halten?
    Ich jedenfalls finde es ziemlich sinnlos, eine Software anzupassen, nur damit der Virenscanner nicht mehr anschlägt und der PC nicht abstürzt.
    Was heißt außerdem "standardkonformes programmieren", damit der Virenscanner nicht anschlägt.

    Warum gebt ihr eurem Binary die Programmendung *.exe?

    Das sind doch genau die Programmendungen die Dateien kennzeichnen und deswegen von Antivireprogrammen durchsucht werden.
    Mein Vorschlag, ändert die Dateiendung in *.bin oder *.dat um, dann durchwühlt auch keine Antivirensoftware diese Datei. Vorrausgesetzt natürlich, sie ist so eingestellt, dass nur bekannte Dateinamen durchgeprüft werden.

    Ansonsten gilt. Antivirensoftware verwendet bestimmte Heuristicen und sucht nach Mustern in Binärdateien, die so aussehen, wie sie auch Virenschreiber schreiben würden.
    Dazu zählen dann so Sachen wie selbstmodifizierender Code und so etwas muss man nun nicht wirklich selbst in seinem eigenen Binary umsetzen.

    Es ist auch aus Kundensicht doof.

    Jetzt stell dir mal vor, ihr entwickelt Firmware für PC Hardware und ein Kunde will seine Firmware updaten und läd eure Firmware erstmal auf jotti hoch, weil er euch nicht traut und dann schlagen 10 von 30 Antivirenscanner alarm, was meinst du, welches Licht das auf eure Firma wirft?
    False positiv gibt's zwar immer, aber ein einziger führt schon zu einem faden Beigeschmack und im Zweifelsfall entscheidet man sich lieber gegen einen potentiellen Virus.

    Ich würde also, wenn möglich diese Codetricks vermeiden, auf die die Heuristicscanner der Antivirensoftware anspringen.
    Insofern hat eure IT Abteilung da recht.

    Ob nun ein Entwickler PC unbedingt die ganze Antivirensoftware braucht ist natürlich ein ganz anderes Thema. Wenn es nach mir ginge, dann wären die Entwickler PCs vom Firmen LAN getrennt und hätten zumindest ihr eigenes getrenntes LAN.
    Internetzugriffe erfolgen über VPN auf einer anderen Maschine und dann braucht man auch keine aktiven Virenscanner auf dem Entwickler PC.



  • hustbaer schrieb:

    Wenn aber das einzige was sie liefern können irgend ein unspezifisches Gelaber von "internationale Standards" ist (von denen ich noch nie gehört hätte!), dann sollen sie verdammtnochmal die Fresse halten.

    Das sind so Dinge, auf die Antivirensoftware anspringt:

    http://en.wikipedia.org/wiki/Self-modifying_code
    http://en.wikipedia.org/wiki/Oligomorphic_code
    http://en.wikipedia.org/wiki/Polymorphic_code
    http://en.wikipedia.org/wiki/Metamorphic_code

    Solche Sachen sollte man also vermeiden.



  • Au Danke Herr Haswell, das weiss ich selbst. Und wo ist jetzt der internationale Standard nach den man sich richten kann?
    Und dabei ignorierst du immerzu eines, genau wie die superschlaue IT des OP: es handelt sich hier nicht um x86 Code, sondern was anderes (vermutlich ARM Code).

    Was interessiert es einen x86 Virenscanner dann was da drinnen steht oder nicht drinnen steht?



  • Klar gibt es DEN Standard nicht, das ist alles ungeschriebenes Gewohnheitsrecht.

    Und das mit ARM habe ich nicht ignoriert, sondern darauf hingewiesen, die Dateiendung nicht *.EXE zu nennen.

    Außerdem gibt's auch Crossantivirensoftware, Androidsysteme sind ja inzwischen auch stark verbreitet, und wer seine E-mails auf seinem PC weiterleiten will, der will sein Android ja auch nicht verseuchen. Da bieten sich dann solche Antivirenkiller an.


  • Mod

    Haswell schrieb:

    Und das mit ARM habe ich nicht ignoriert, sondern darauf hingewiesen, die Dateiendung nicht *.EXE zu nennen.

    Wenn das funktioniert, dann hätte ich da ein geniales Konzept, wie man Viren ganz leicht zu 100% vor Scannern schützen kann...



  • SeppJ schrieb:

    Haswell schrieb:

    Und das mit ARM habe ich nicht ignoriert, sondern darauf hingewiesen, die Dateiendung nicht *.EXE zu nennen.

    Wenn das funktioniert, dann hätte ich da ein geniales Konzept, wie man Viren ganz leicht zu 100% vor Scannern schützen kann...

    .COM schon... verrat's uns. 😉



  • Stürzt der Explorer ab, ist der Explorer Buggy. Stürzt der Virenscanner ab ist er Buggy. Stürzt das Betriebssystem ab, ist es Buggy. All das ist unabhängig davon, was so auf dem Rechner rum liegt. Gerade ein Anwender, der keine Admin-Rechte auf dem System hat, darf ein System nicht zum Absturz bringen können.

    Wenn Du Deine Arbeit erledigen musst und nicht kannst, da Dir die notwendige Technik verwehrt wird, dann spreche mit Deinem Vorgesetzten, um das Problem aus der Welt zu schaffen. Und zwar ganz Sachlich und Zielorientiert und ohne auf die "blöden Admins" zu schimpfen.


Anmelden zum Antworten