Coders Conquer Security: Share & Learn Series - Verwendung von Komponenten mit bekannten Sicherheitslücken
Was ist die eine Sache, die alle Anwendungen haben? Komponenten, auch bekannt als Abhängigkeiten oder Bibliotheken. Es gibt nur sehr wenig Code auf der Welt, der nicht irgendwann von anderem Code abhängt. Sie beginnen sogar mit einem Berg von Abhängigkeiten ab dem Zeitpunkt, an dem Sie die Anwendung erstellen!
Da alle Anwendungen Komponenten verwenden, von denen Sie die meisten nicht geschrieben haben, können Schwachstellen in den von Ihnen verwendeten Komponenten zu Verbindlichkeiten werden. Lassen Sie uns besprechen, was die Verwendung von Komponenten mit bekannten Schwachstellen bedeutet, wie gefährlich sie ist und wie man sie beheben kann.
Die Verwendung von Komponenten mit bekannten Schwachstellen verstehen
Jede komplexe Software hat Schwachstellen. Das liegt in der Natur der Sache. Ihre Komponenten werden also nie 100 % sicher sein. Wenn jedoch Schwachstellen in Komponenten gefunden werden, wissen Sie dann davon? Sind Sie darauf vorbereitet?
Probleme treten am häufigsten auf, wenn Komponenten über ihre Nutzungsdauer hinaus verwendet werden oder nachdem Sicherheitslücken gefunden wurden. Die meisten Komponenten und Bibliotheken veröffentlichen Patches für Sicherheitslücken zur gleichen Zeit oder früher als die Schwachstelle bekannt gegeben wird. Wenn Sicherheitslücken in Komponenten entdeckt und bekannt gegeben werden, ist es daher von größter Bedeutung, die Komponenten so schnell wie möglich zu aktualisieren. Lassen Sie anfällige Software nicht in der Produktion.
Komponenten können aus verschiedenen Quellen stammen. Manchmal kaufen Sie Produkte von Drittanbietern, die sich direkt in Ihren benutzerdefinierten Code integrieren. Diese Komponenten werden zu einem Teil Ihres Codes und arbeiten auf der gleichen Berechtigungsebene. Eine weitere Quelle sind Open-Source-Projekte, die auf Websites wie GitHub gehostet werden. Offene Quellen können gefährlich sein, da nicht alle Open-Source-Bibliotheken sorgfältig geprüft oder auf Schwachstellen untersucht worden sind.
Angreifer nutzen die Informationen über Sicherheitslücken in Komponenten zu ihrem Vorteil. Da die Schwachstellen öffentlich bekannt gegeben werden, wissen Angreifer zur gleichen Zeit wie Sie von den Schwachstellen. Angreifer verfügen auch über Techniken, mit denen sie herausfinden können, welche Komponenten Sie verwenden. Sobald sie diese Informationen kennen, wissen sie, wie sie Ihre Anwendung angreifen können, wenn sie nicht gepatcht ist.
Wissen, warum anfällige Komponenten gefährlich sind
Wenn Sie nach einem Beweis dafür suchen, wie gefährlich die Verwendung von Komponenten mit bekannten Schwachstellen ist, suchen Sie nicht weiter als die Equifax-Verletzung von 2017.
Im Juli 2017 entdeckte Equifax, eine US-amerikanische Kreditauskunftei, eine massive Datenpanne, durch die die persönlichen Daten von über 147 Millionen Menschen bekannt wurden. Der Umfang und die Auswirkungen dieser Datenpanne sind beispiellos. Kürzlich wurden Nachrichten über die laxen Sicherheitspraktiken von Equifax bekannt.
Eine dieser laxen Praktiken war das Patch-Management. Equifax hatte keine gute Patch-Management-Praxis, was bedeutete, dass ihre Komponenten eine ganze Weile nicht gepatcht wurden. Dies war die direkte Ursache für die Sicherheitsverletzung.
Die Website von Equifax verwendete das Apache Struts-Webframework. Einige Monate bevor sich die Angreifer in das Netzwerk hackten, wurde eine Schwachstelle im Struts-Framework gefunden, Apache Struts CVE-2017-5638. Equifax hat die Sicherheitslücke jedoch nicht gepatcht. Die Angreifer nutzten diese Schwachstelle, um sich Zugang zum Netzwerk von Equifax zu verschaffen. Von dort aus verschafften sie sich Zugang zu einer Fundgrube persönlicher Daten.
Viele Websites basieren auf Web-Frameworks, die nicht vom Unternehmen selbst geschrieben wurden. Dies ist gängige Praxis, da es ein zu großes Unterfangen wäre, alle notwendigen Funktionen von Grund auf neu einzubauen. Die starke Abhängigkeit von einem Framework kann Sie jedoch für Sicherheitslücken öffnen. Werden Sie nicht das nächste Equifax.
So schützen Sie sich vor gefährdeten Komponenten
Es gibt kein Patentrezept zum Schutz vor der Verwendung anfälliger Komponenten. Es gibt jedoch Richtlinien und Kontrollen, mit denen Sie das Risiko verringern können, dass anfällige Komponenten zur Kompromittierung Ihrer Systeme verwendet werden.
Sie müssen wissen, welche Komponenten und welche Version der einzelnen Komponenten Sie zum Erstellen Ihrer Anwendungen verwenden. Tools zur Verwaltung von Abhängigkeiten, wie z. B. Dependency Check von OWASP, helfen Ihnen, die von Ihnen verwendeten Abhängigkeiten in den Griff zu bekommen. Dependency Check sagt Ihnen auch, ob eine dieser Komponenten eine öffentlich bekannte Schwachstelle aufweist.
Eine Patch-Management-Methodik ist ebenfalls unerlässlich. Wenn Schwachstellen entdeckt werden, muss ein System vorhanden sein, mit dem die Patches reibungslos heruntergeladen, getestet und für die Produktion freigegeben werden können. Wenn Sie Ihre Software gepatcht halten, verhindern Sie, dass Monate alte Schwachstellen von Angreifern ausgenutzt werden.
Schließlich sollten Sie über Richtlinien verfügen, die die Verwendung von Open-Source- und Drittanbieter-Komponenten regeln. Entwickler mögen keinen bürokratischen Aufwand, und das ist auch verständlich. Es muss jedoch einen Prüfprozess für Code geben, der nicht von Ihrem Unternehmen geschrieben wurde. Er muss nicht schwergewichtig sein, ist aber ein Muss, um zu verhindern, dass unbekannte Komponenten verwendet werden. Zumindest muss ein Inventar der verwendeten Komponenten aktuell gehalten werden.
Lassen Sie sich nicht von der Drittanbieter-Wanze anstecken
Komponenten werden Schwachstellen haben. Ihre Geschäftsanwendungen werden Komponenten verwenden, ob von einem Anbieter oder aus einer Open-Source-Bibliothek. Das bedeutet nicht, dass Ihr Unternehmen anfällig für Angriffe sein muss.
Auch wenn Angreifer zur gleichen Zeit wie Sie wissen, welche Schwachstellen existieren, werden Patches in der Regel zur gleichen Zeit wie die öffentlichen Ankündigungen zur Verfügung gestellt. Informieren Sie sich also unbedingt darüber, was Ihre Anwendung verwendet. Wissen Sie, was verwundbar ist. Halten Sie Ihre Komponenten gepatcht!
Sind Sie bereit, einige verwundbare Komponenten zu entdecken (und zu besiegen)? Begeben Sie sich in die Arena und nehmen Sie den Kampf auf: [Hier starten]
Da alle Anwendungen Komponenten verwenden, von denen Sie die meisten nicht geschrieben haben, können Schwachstellen in den von Ihnen verwendeten Komponenten zu Verbindlichkeiten werden. Lassen Sie uns besprechen, was die Verwendung von Komponenten mit bekannten Schwachstellen bedeutet, wie gefährlich sie ist und wie man sie beheben kann.
Jaap Karan Singh ist ein Secure Coding Evangelist, Chief Singh und Mitbegründer von Secure Code Warrior.
Secure Code Warrior ist für Ihr Unternehmen da, um Sie dabei zu unterstützen, Ihren Code über den gesamten Lebenszyklus der Softwareentwicklung hinweg zu sichern und eine Kultur zu schaffen, in der Cybersicherheit an erster Stelle steht. Ganz gleich, ob Sie AppSec-Manager, Entwickler, CISO oder ein anderer Sicherheitsverantwortlicher sind, wir können Ihrem Unternehmen helfen, die mit unsicherem Code verbundenen Risiken zu reduzieren.
Demo buchenJaap Karan Singh ist ein Secure Coding Evangelist, Chief Singh und Mitbegründer von Secure Code Warrior.
Was ist die eine Sache, die alle Anwendungen haben? Komponenten, auch bekannt als Abhängigkeiten oder Bibliotheken. Es gibt nur sehr wenig Code auf der Welt, der nicht irgendwann von anderem Code abhängt. Sie beginnen sogar mit einem Berg von Abhängigkeiten ab dem Zeitpunkt, an dem Sie die Anwendung erstellen!
Da alle Anwendungen Komponenten verwenden, von denen Sie die meisten nicht geschrieben haben, können Schwachstellen in den von Ihnen verwendeten Komponenten zu Verbindlichkeiten werden. Lassen Sie uns besprechen, was die Verwendung von Komponenten mit bekannten Schwachstellen bedeutet, wie gefährlich sie ist und wie man sie beheben kann.
Die Verwendung von Komponenten mit bekannten Schwachstellen verstehen
Jede komplexe Software hat Schwachstellen. Das liegt in der Natur der Sache. Ihre Komponenten werden also nie 100 % sicher sein. Wenn jedoch Schwachstellen in Komponenten gefunden werden, wissen Sie dann davon? Sind Sie darauf vorbereitet?
Probleme treten am häufigsten auf, wenn Komponenten über ihre Nutzungsdauer hinaus verwendet werden oder nachdem Sicherheitslücken gefunden wurden. Die meisten Komponenten und Bibliotheken veröffentlichen Patches für Sicherheitslücken zur gleichen Zeit oder früher als die Schwachstelle bekannt gegeben wird. Wenn Sicherheitslücken in Komponenten entdeckt und bekannt gegeben werden, ist es daher von größter Bedeutung, die Komponenten so schnell wie möglich zu aktualisieren. Lassen Sie anfällige Software nicht in der Produktion.
Komponenten können aus verschiedenen Quellen stammen. Manchmal kaufen Sie Produkte von Drittanbietern, die sich direkt in Ihren benutzerdefinierten Code integrieren. Diese Komponenten werden zu einem Teil Ihres Codes und arbeiten auf der gleichen Berechtigungsebene. Eine weitere Quelle sind Open-Source-Projekte, die auf Websites wie GitHub gehostet werden. Offene Quellen können gefährlich sein, da nicht alle Open-Source-Bibliotheken sorgfältig geprüft oder auf Schwachstellen untersucht worden sind.
Angreifer nutzen die Informationen über Sicherheitslücken in Komponenten zu ihrem Vorteil. Da die Schwachstellen öffentlich bekannt gegeben werden, wissen Angreifer zur gleichen Zeit wie Sie von den Schwachstellen. Angreifer verfügen auch über Techniken, mit denen sie herausfinden können, welche Komponenten Sie verwenden. Sobald sie diese Informationen kennen, wissen sie, wie sie Ihre Anwendung angreifen können, wenn sie nicht gepatcht ist.
Wissen, warum anfällige Komponenten gefährlich sind
Wenn Sie nach einem Beweis dafür suchen, wie gefährlich die Verwendung von Komponenten mit bekannten Schwachstellen ist, suchen Sie nicht weiter als die Equifax-Verletzung von 2017.
Im Juli 2017 entdeckte Equifax, eine US-amerikanische Kreditauskunftei, eine massive Datenpanne, durch die die persönlichen Daten von über 147 Millionen Menschen bekannt wurden. Der Umfang und die Auswirkungen dieser Datenpanne sind beispiellos. Kürzlich wurden Nachrichten über die laxen Sicherheitspraktiken von Equifax bekannt.
Eine dieser laxen Praktiken war das Patch-Management. Equifax hatte keine gute Patch-Management-Praxis, was bedeutete, dass ihre Komponenten eine ganze Weile nicht gepatcht wurden. Dies war die direkte Ursache für die Sicherheitsverletzung.
Die Website von Equifax verwendete das Apache Struts-Webframework. Einige Monate bevor sich die Angreifer in das Netzwerk hackten, wurde eine Schwachstelle im Struts-Framework gefunden, Apache Struts CVE-2017-5638. Equifax hat die Sicherheitslücke jedoch nicht gepatcht. Die Angreifer nutzten diese Schwachstelle, um sich Zugang zum Netzwerk von Equifax zu verschaffen. Von dort aus verschafften sie sich Zugang zu einer Fundgrube persönlicher Daten.
Viele Websites basieren auf Web-Frameworks, die nicht vom Unternehmen selbst geschrieben wurden. Dies ist gängige Praxis, da es ein zu großes Unterfangen wäre, alle notwendigen Funktionen von Grund auf neu einzubauen. Die starke Abhängigkeit von einem Framework kann Sie jedoch für Sicherheitslücken öffnen. Werden Sie nicht das nächste Equifax.
So schützen Sie sich vor gefährdeten Komponenten
Es gibt kein Patentrezept zum Schutz vor der Verwendung anfälliger Komponenten. Es gibt jedoch Richtlinien und Kontrollen, mit denen Sie das Risiko verringern können, dass anfällige Komponenten zur Kompromittierung Ihrer Systeme verwendet werden.
Sie müssen wissen, welche Komponenten und welche Version der einzelnen Komponenten Sie zum Erstellen Ihrer Anwendungen verwenden. Tools zur Verwaltung von Abhängigkeiten, wie z. B. Dependency Check von OWASP, helfen Ihnen, die von Ihnen verwendeten Abhängigkeiten in den Griff zu bekommen. Dependency Check sagt Ihnen auch, ob eine dieser Komponenten eine öffentlich bekannte Schwachstelle aufweist.
Eine Patch-Management-Methodik ist ebenfalls unerlässlich. Wenn Schwachstellen entdeckt werden, muss ein System vorhanden sein, mit dem die Patches reibungslos heruntergeladen, getestet und für die Produktion freigegeben werden können. Wenn Sie Ihre Software gepatcht halten, verhindern Sie, dass Monate alte Schwachstellen von Angreifern ausgenutzt werden.
Schließlich sollten Sie über Richtlinien verfügen, die die Verwendung von Open-Source- und Drittanbieter-Komponenten regeln. Entwickler mögen keinen bürokratischen Aufwand, und das ist auch verständlich. Es muss jedoch einen Prüfprozess für Code geben, der nicht von Ihrem Unternehmen geschrieben wurde. Er muss nicht schwergewichtig sein, ist aber ein Muss, um zu verhindern, dass unbekannte Komponenten verwendet werden. Zumindest muss ein Inventar der verwendeten Komponenten aktuell gehalten werden.
Lassen Sie sich nicht von der Drittanbieter-Wanze anstecken
Komponenten werden Schwachstellen haben. Ihre Geschäftsanwendungen werden Komponenten verwenden, ob von einem Anbieter oder aus einer Open-Source-Bibliothek. Das bedeutet nicht, dass Ihr Unternehmen anfällig für Angriffe sein muss.
Auch wenn Angreifer zur gleichen Zeit wie Sie wissen, welche Schwachstellen existieren, werden Patches in der Regel zur gleichen Zeit wie die öffentlichen Ankündigungen zur Verfügung gestellt. Informieren Sie sich also unbedingt darüber, was Ihre Anwendung verwendet. Wissen Sie, was verwundbar ist. Halten Sie Ihre Komponenten gepatcht!
Sind Sie bereit, einige verwundbare Komponenten zu entdecken (und zu besiegen)? Begeben Sie sich in die Arena und nehmen Sie den Kampf auf: [Hier starten]
Was ist die eine Sache, die alle Anwendungen haben? Komponenten, auch bekannt als Abhängigkeiten oder Bibliotheken. Es gibt nur sehr wenig Code auf der Welt, der nicht irgendwann von anderem Code abhängt. Sie beginnen sogar mit einem Berg von Abhängigkeiten ab dem Zeitpunkt, an dem Sie die Anwendung erstellen!
Da alle Anwendungen Komponenten verwenden, von denen Sie die meisten nicht geschrieben haben, können Schwachstellen in den von Ihnen verwendeten Komponenten zu Verbindlichkeiten werden. Lassen Sie uns besprechen, was die Verwendung von Komponenten mit bekannten Schwachstellen bedeutet, wie gefährlich sie ist und wie man sie beheben kann.
Die Verwendung von Komponenten mit bekannten Schwachstellen verstehen
Jede komplexe Software hat Schwachstellen. Das liegt in der Natur der Sache. Ihre Komponenten werden also nie 100 % sicher sein. Wenn jedoch Schwachstellen in Komponenten gefunden werden, wissen Sie dann davon? Sind Sie darauf vorbereitet?
Probleme treten am häufigsten auf, wenn Komponenten über ihre Nutzungsdauer hinaus verwendet werden oder nachdem Sicherheitslücken gefunden wurden. Die meisten Komponenten und Bibliotheken veröffentlichen Patches für Sicherheitslücken zur gleichen Zeit oder früher als die Schwachstelle bekannt gegeben wird. Wenn Sicherheitslücken in Komponenten entdeckt und bekannt gegeben werden, ist es daher von größter Bedeutung, die Komponenten so schnell wie möglich zu aktualisieren. Lassen Sie anfällige Software nicht in der Produktion.
Komponenten können aus verschiedenen Quellen stammen. Manchmal kaufen Sie Produkte von Drittanbietern, die sich direkt in Ihren benutzerdefinierten Code integrieren. Diese Komponenten werden zu einem Teil Ihres Codes und arbeiten auf der gleichen Berechtigungsebene. Eine weitere Quelle sind Open-Source-Projekte, die auf Websites wie GitHub gehostet werden. Offene Quellen können gefährlich sein, da nicht alle Open-Source-Bibliotheken sorgfältig geprüft oder auf Schwachstellen untersucht worden sind.
Angreifer nutzen die Informationen über Sicherheitslücken in Komponenten zu ihrem Vorteil. Da die Schwachstellen öffentlich bekannt gegeben werden, wissen Angreifer zur gleichen Zeit wie Sie von den Schwachstellen. Angreifer verfügen auch über Techniken, mit denen sie herausfinden können, welche Komponenten Sie verwenden. Sobald sie diese Informationen kennen, wissen sie, wie sie Ihre Anwendung angreifen können, wenn sie nicht gepatcht ist.
Wissen, warum anfällige Komponenten gefährlich sind
Wenn Sie nach einem Beweis dafür suchen, wie gefährlich die Verwendung von Komponenten mit bekannten Schwachstellen ist, suchen Sie nicht weiter als die Equifax-Verletzung von 2017.
Im Juli 2017 entdeckte Equifax, eine US-amerikanische Kreditauskunftei, eine massive Datenpanne, durch die die persönlichen Daten von über 147 Millionen Menschen bekannt wurden. Der Umfang und die Auswirkungen dieser Datenpanne sind beispiellos. Kürzlich wurden Nachrichten über die laxen Sicherheitspraktiken von Equifax bekannt.
Eine dieser laxen Praktiken war das Patch-Management. Equifax hatte keine gute Patch-Management-Praxis, was bedeutete, dass ihre Komponenten eine ganze Weile nicht gepatcht wurden. Dies war die direkte Ursache für die Sicherheitsverletzung.
Die Website von Equifax verwendete das Apache Struts-Webframework. Einige Monate bevor sich die Angreifer in das Netzwerk hackten, wurde eine Schwachstelle im Struts-Framework gefunden, Apache Struts CVE-2017-5638. Equifax hat die Sicherheitslücke jedoch nicht gepatcht. Die Angreifer nutzten diese Schwachstelle, um sich Zugang zum Netzwerk von Equifax zu verschaffen. Von dort aus verschafften sie sich Zugang zu einer Fundgrube persönlicher Daten.
Viele Websites basieren auf Web-Frameworks, die nicht vom Unternehmen selbst geschrieben wurden. Dies ist gängige Praxis, da es ein zu großes Unterfangen wäre, alle notwendigen Funktionen von Grund auf neu einzubauen. Die starke Abhängigkeit von einem Framework kann Sie jedoch für Sicherheitslücken öffnen. Werden Sie nicht das nächste Equifax.
So schützen Sie sich vor gefährdeten Komponenten
Es gibt kein Patentrezept zum Schutz vor der Verwendung anfälliger Komponenten. Es gibt jedoch Richtlinien und Kontrollen, mit denen Sie das Risiko verringern können, dass anfällige Komponenten zur Kompromittierung Ihrer Systeme verwendet werden.
Sie müssen wissen, welche Komponenten und welche Version der einzelnen Komponenten Sie zum Erstellen Ihrer Anwendungen verwenden. Tools zur Verwaltung von Abhängigkeiten, wie z. B. Dependency Check von OWASP, helfen Ihnen, die von Ihnen verwendeten Abhängigkeiten in den Griff zu bekommen. Dependency Check sagt Ihnen auch, ob eine dieser Komponenten eine öffentlich bekannte Schwachstelle aufweist.
Eine Patch-Management-Methodik ist ebenfalls unerlässlich. Wenn Schwachstellen entdeckt werden, muss ein System vorhanden sein, mit dem die Patches reibungslos heruntergeladen, getestet und für die Produktion freigegeben werden können. Wenn Sie Ihre Software gepatcht halten, verhindern Sie, dass Monate alte Schwachstellen von Angreifern ausgenutzt werden.
Schließlich sollten Sie über Richtlinien verfügen, die die Verwendung von Open-Source- und Drittanbieter-Komponenten regeln. Entwickler mögen keinen bürokratischen Aufwand, und das ist auch verständlich. Es muss jedoch einen Prüfprozess für Code geben, der nicht von Ihrem Unternehmen geschrieben wurde. Er muss nicht schwergewichtig sein, ist aber ein Muss, um zu verhindern, dass unbekannte Komponenten verwendet werden. Zumindest muss ein Inventar der verwendeten Komponenten aktuell gehalten werden.
Lassen Sie sich nicht von der Drittanbieter-Wanze anstecken
Komponenten werden Schwachstellen haben. Ihre Geschäftsanwendungen werden Komponenten verwenden, ob von einem Anbieter oder aus einer Open-Source-Bibliothek. Das bedeutet nicht, dass Ihr Unternehmen anfällig für Angriffe sein muss.
Auch wenn Angreifer zur gleichen Zeit wie Sie wissen, welche Schwachstellen existieren, werden Patches in der Regel zur gleichen Zeit wie die öffentlichen Ankündigungen zur Verfügung gestellt. Informieren Sie sich also unbedingt darüber, was Ihre Anwendung verwendet. Wissen Sie, was verwundbar ist. Halten Sie Ihre Komponenten gepatcht!
Sind Sie bereit, einige verwundbare Komponenten zu entdecken (und zu besiegen)? Begeben Sie sich in die Arena und nehmen Sie den Kampf auf: [Hier starten]
Klicken Sie auf den unten stehenden Link und laden Sie die PDF-Datei dieser Ressource herunter.
Secure Code Warrior ist für Ihr Unternehmen da, um Sie dabei zu unterstützen, Ihren Code über den gesamten Lebenszyklus der Softwareentwicklung hinweg zu sichern und eine Kultur zu schaffen, in der Cybersicherheit an erster Stelle steht. Ganz gleich, ob Sie AppSec-Manager, Entwickler, CISO oder ein anderer Sicherheitsverantwortlicher sind, wir können Ihrem Unternehmen helfen, die mit unsicherem Code verbundenen Risiken zu reduzieren.
Bericht ansehenDemo buchenJaap Karan Singh ist ein Secure Coding Evangelist, Chief Singh und Mitbegründer von Secure Code Warrior.
Was ist die eine Sache, die alle Anwendungen haben? Komponenten, auch bekannt als Abhängigkeiten oder Bibliotheken. Es gibt nur sehr wenig Code auf der Welt, der nicht irgendwann von anderem Code abhängt. Sie beginnen sogar mit einem Berg von Abhängigkeiten ab dem Zeitpunkt, an dem Sie die Anwendung erstellen!
Da alle Anwendungen Komponenten verwenden, von denen Sie die meisten nicht geschrieben haben, können Schwachstellen in den von Ihnen verwendeten Komponenten zu Verbindlichkeiten werden. Lassen Sie uns besprechen, was die Verwendung von Komponenten mit bekannten Schwachstellen bedeutet, wie gefährlich sie ist und wie man sie beheben kann.
Die Verwendung von Komponenten mit bekannten Schwachstellen verstehen
Jede komplexe Software hat Schwachstellen. Das liegt in der Natur der Sache. Ihre Komponenten werden also nie 100 % sicher sein. Wenn jedoch Schwachstellen in Komponenten gefunden werden, wissen Sie dann davon? Sind Sie darauf vorbereitet?
Probleme treten am häufigsten auf, wenn Komponenten über ihre Nutzungsdauer hinaus verwendet werden oder nachdem Sicherheitslücken gefunden wurden. Die meisten Komponenten und Bibliotheken veröffentlichen Patches für Sicherheitslücken zur gleichen Zeit oder früher als die Schwachstelle bekannt gegeben wird. Wenn Sicherheitslücken in Komponenten entdeckt und bekannt gegeben werden, ist es daher von größter Bedeutung, die Komponenten so schnell wie möglich zu aktualisieren. Lassen Sie anfällige Software nicht in der Produktion.
Komponenten können aus verschiedenen Quellen stammen. Manchmal kaufen Sie Produkte von Drittanbietern, die sich direkt in Ihren benutzerdefinierten Code integrieren. Diese Komponenten werden zu einem Teil Ihres Codes und arbeiten auf der gleichen Berechtigungsebene. Eine weitere Quelle sind Open-Source-Projekte, die auf Websites wie GitHub gehostet werden. Offene Quellen können gefährlich sein, da nicht alle Open-Source-Bibliotheken sorgfältig geprüft oder auf Schwachstellen untersucht worden sind.
Angreifer nutzen die Informationen über Sicherheitslücken in Komponenten zu ihrem Vorteil. Da die Schwachstellen öffentlich bekannt gegeben werden, wissen Angreifer zur gleichen Zeit wie Sie von den Schwachstellen. Angreifer verfügen auch über Techniken, mit denen sie herausfinden können, welche Komponenten Sie verwenden. Sobald sie diese Informationen kennen, wissen sie, wie sie Ihre Anwendung angreifen können, wenn sie nicht gepatcht ist.
Wissen, warum anfällige Komponenten gefährlich sind
Wenn Sie nach einem Beweis dafür suchen, wie gefährlich die Verwendung von Komponenten mit bekannten Schwachstellen ist, suchen Sie nicht weiter als die Equifax-Verletzung von 2017.
Im Juli 2017 entdeckte Equifax, eine US-amerikanische Kreditauskunftei, eine massive Datenpanne, durch die die persönlichen Daten von über 147 Millionen Menschen bekannt wurden. Der Umfang und die Auswirkungen dieser Datenpanne sind beispiellos. Kürzlich wurden Nachrichten über die laxen Sicherheitspraktiken von Equifax bekannt.
Eine dieser laxen Praktiken war das Patch-Management. Equifax hatte keine gute Patch-Management-Praxis, was bedeutete, dass ihre Komponenten eine ganze Weile nicht gepatcht wurden. Dies war die direkte Ursache für die Sicherheitsverletzung.
Die Website von Equifax verwendete das Apache Struts-Webframework. Einige Monate bevor sich die Angreifer in das Netzwerk hackten, wurde eine Schwachstelle im Struts-Framework gefunden, Apache Struts CVE-2017-5638. Equifax hat die Sicherheitslücke jedoch nicht gepatcht. Die Angreifer nutzten diese Schwachstelle, um sich Zugang zum Netzwerk von Equifax zu verschaffen. Von dort aus verschafften sie sich Zugang zu einer Fundgrube persönlicher Daten.
Viele Websites basieren auf Web-Frameworks, die nicht vom Unternehmen selbst geschrieben wurden. Dies ist gängige Praxis, da es ein zu großes Unterfangen wäre, alle notwendigen Funktionen von Grund auf neu einzubauen. Die starke Abhängigkeit von einem Framework kann Sie jedoch für Sicherheitslücken öffnen. Werden Sie nicht das nächste Equifax.
So schützen Sie sich vor gefährdeten Komponenten
Es gibt kein Patentrezept zum Schutz vor der Verwendung anfälliger Komponenten. Es gibt jedoch Richtlinien und Kontrollen, mit denen Sie das Risiko verringern können, dass anfällige Komponenten zur Kompromittierung Ihrer Systeme verwendet werden.
Sie müssen wissen, welche Komponenten und welche Version der einzelnen Komponenten Sie zum Erstellen Ihrer Anwendungen verwenden. Tools zur Verwaltung von Abhängigkeiten, wie z. B. Dependency Check von OWASP, helfen Ihnen, die von Ihnen verwendeten Abhängigkeiten in den Griff zu bekommen. Dependency Check sagt Ihnen auch, ob eine dieser Komponenten eine öffentlich bekannte Schwachstelle aufweist.
Eine Patch-Management-Methodik ist ebenfalls unerlässlich. Wenn Schwachstellen entdeckt werden, muss ein System vorhanden sein, mit dem die Patches reibungslos heruntergeladen, getestet und für die Produktion freigegeben werden können. Wenn Sie Ihre Software gepatcht halten, verhindern Sie, dass Monate alte Schwachstellen von Angreifern ausgenutzt werden.
Schließlich sollten Sie über Richtlinien verfügen, die die Verwendung von Open-Source- und Drittanbieter-Komponenten regeln. Entwickler mögen keinen bürokratischen Aufwand, und das ist auch verständlich. Es muss jedoch einen Prüfprozess für Code geben, der nicht von Ihrem Unternehmen geschrieben wurde. Er muss nicht schwergewichtig sein, ist aber ein Muss, um zu verhindern, dass unbekannte Komponenten verwendet werden. Zumindest muss ein Inventar der verwendeten Komponenten aktuell gehalten werden.
Lassen Sie sich nicht von der Drittanbieter-Wanze anstecken
Komponenten werden Schwachstellen haben. Ihre Geschäftsanwendungen werden Komponenten verwenden, ob von einem Anbieter oder aus einer Open-Source-Bibliothek. Das bedeutet nicht, dass Ihr Unternehmen anfällig für Angriffe sein muss.
Auch wenn Angreifer zur gleichen Zeit wie Sie wissen, welche Schwachstellen existieren, werden Patches in der Regel zur gleichen Zeit wie die öffentlichen Ankündigungen zur Verfügung gestellt. Informieren Sie sich also unbedingt darüber, was Ihre Anwendung verwendet. Wissen Sie, was verwundbar ist. Halten Sie Ihre Komponenten gepatcht!
Sind Sie bereit, einige verwundbare Komponenten zu entdecken (und zu besiegen)? Begeben Sie sich in die Arena und nehmen Sie den Kampf auf: [Hier starten]
Inhaltsübersicht
Jaap Karan Singh ist ein Secure Coding Evangelist, Chief Singh und Mitbegründer von Secure Code Warrior.
Secure Code Warrior ist für Ihr Unternehmen da, um Sie dabei zu unterstützen, Ihren Code über den gesamten Lebenszyklus der Softwareentwicklung hinweg zu sichern und eine Kultur zu schaffen, in der Cybersicherheit an erster Stelle steht. Ganz gleich, ob Sie AppSec-Manager, Entwickler, CISO oder ein anderer Sicherheitsverantwortlicher sind, wir können Ihrem Unternehmen helfen, die mit unsicherem Code verbundenen Risiken zu reduzieren.
Demo buchenHerunterladenRessourcen für den Einstieg
Benchmarking von Sicherheitskompetenzen: Optimierung von Secure-by-Design im Unternehmen
Die Secure-by-Design-Bewegung ist die Zukunft der sicheren Softwareentwicklung. Erfahren Sie mehr über die wichtigsten Elemente, die Unternehmen berücksichtigen müssen, wenn sie über eine Secure-by-Design-Initiative nachdenken.
DigitalOcean verringert Sicherheitsverschuldung mit Secure Code Warrior
DigitalOceans Einsatz von Secure Code Warrior hat die Sicherheitsverschuldung deutlich reduziert, so dass sich die Teams stärker auf Innovation und Produktivität konzentrieren können. Die verbesserte Sicherheit hat die Produktqualität und den Wettbewerbsvorteil des Unternehmens gestärkt. Mit Blick auf die Zukunft wird der SCW Trust Score dem Unternehmen helfen, seine Sicherheitspraktiken weiter zu verbessern und Innovationen voranzutreiben.
Ressourcen für den Einstieg
Trust Score zeigt den Wert von Secure-by-Design-Upskilling-Initiativen
Unsere Forschung hat gezeigt, dass Schulungen für sicheren Code funktionieren. Trust Score verwendet einen Algorithmus, der auf mehr als 20 Millionen Lerndaten aus der Arbeit von mehr als 250.000 Lernenden in über 600 Organisationen basiert, und zeigt, wie effektiv die Initiative ist, um Schwachstellen zu beseitigen und wie man sie noch effektiver gestalten kann.
Reaktive versus präventive Sicherheit: Prävention ist das bessere Heilmittel
Der Gedanke, Legacy-Code und -Systeme zur gleichen Zeit wie neuere Anwendungen mit präventiver Sicherheit auszustatten, kann entmutigend erscheinen, aber ein Secure-by-Design-Ansatz, der durch die Weiterbildung von Entwicklern durchgesetzt wird, kann die besten Sicherheitsverfahren auf diese Systeme anwenden. Dies ist für viele Unternehmen die beste Chance, ihre Sicherheitslage zu verbessern.
Die Vorteile eines Benchmarking der Sicherheitskompetenzen von Entwicklern
Der zunehmende Fokus auf sicheren Code und Secure-by-Design-Prinzipien erfordert, dass Entwickler von Beginn des SDLC an in Cybersicherheit geschult werden, wobei Tools wie Secure Code Warrior's Trust Score dabei helfen, ihre Fortschritte zu messen und zu verbessern.
Wesentlicher Erfolg für Enterprise Secure-by-Design-Initiativen
Unser jüngstes Forschungspapier „Benchmarking Security Skills: Streamlining Secure-by-Design in the Enterprise“ ist das Ergebnis einer umfassenden Analyse echter Secure-by-Design-Initiativen auf Unternehmensebene und der Ableitung von Best-Practice-Ansätzen auf Grundlage datengesteuerter Erkenntnisse.