Top 20 Secure PLC Coding Practices

About the Project

For many years, Programmable Logic Controllers (PLCs) have been insecure by design. Several years into customizing and applying best practices from IT gave rise to secure protocols, encrypted communications, network segmentation etc.

However, to date, there has not been a focus on using the characteristic features in PLCs (or SCADA/DCS) for security, or how to program PLCs with security in mind. This project – inspired by the existing Secure Coding Practices for IT – fills that gap.

divider 1 divider 2

Written for engineers by engineers

The aim of this project is to provide guidelines to engineers that are creating software (ladder logic, function charts etc.) to help improve the security posture of Industrial Control Systems.

These practices leverage natively available functionality in the PLC/DCS. Little to no additional software tools or hardware is needed to implement these practices. They can all be fit into the normal PLC programming and operating workflow. More than security expertise, good knowledge of the PLCs to be protected, their logic, and the underlying process is needed for implementing these practices.

To fit the scope of the Top 20 Secure PLC Coding practices list, practices need to involve changes made directly to a PLC.

Current version of the Top 20 Secure PLC Coding Practices


PLC-top20 pdf

Top_20_Secure_PLC_
Coding_Practices_V1.0.pdf

Size: 1.2 MB
Date: 06.15.2021

PLC Security Logo PLC Security Logo

Help us improve and give us feedback! Be part of the Top 20 project!

Top 20 Secure PLC Coding Practices in other languages


Arabic/عربي Date: 09.28.2021 PLC Security Logo PLC Security Logo PLC Security Logo PLC Security Logo
Chinese/中文 Date: 09.27.2021 PLC Security Logo PLC Security Logo PLC Security Logo PLC Security Logo

Read This / Watch This


Contact


kontaktperson-foto
Your contact person

Vivek Ponnada
Co-organizer

Email: plc-security-at-admeritia.de
Twitter: @ControlsCyber
LinkedIn: Linkedin

kontaktperson-foto
Your contact person

Sarah Fluchs
Co-organizer

Email: plc-security-at-admeritia.de
Twitter: @SarahFluchs
LinkedIn: Linkedin

You know a thing or two about PLCs and security? Join the Top 20 community!

License


Copyright (c) 2021 admeritia GmbH, Langenfeld/Rheinland, Germany

Permission is hereby granted, free of charge, to any person obtaining a copy of “Top 20 Secure PLC Coding Practices” and associated documentation files, to deal in the “Top 20 Secure PLC Coding Practices” without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the “Top 20 Secure PLC Coding Practices”, and to permit persons to whom the “Top 20 Secure PLC Coding Practices” is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the “Top 20 Secure PLC Coding Practices”.

THE “Top 20 Secure PLC Coding Practices” IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE “Top 20 Secure PLC Coding Practices” OR THE USE OR OTHER DEALINGS IN THE “Top 20 Secure PLC Coding Practices”.

Copyright (c) 2021 admeritia GmbH, Langenfeld/Rheinland, Deutschland

Jedem, der eine Kopie der “Top 20 Secure PLC Coding Practices” und der zugehörigen Dokumentationsdateien erhält, wird hiermit kostenlos die Erlaubnis erteilt, ohne Einschränkung mit den “Top 20 Secure PLC Coding Practices” zu handeln, einschließlich und ohne Einschränkung der Rechte zur Nutzung, zum Kopieren, Ändern, Zusammenführen, Veröffentlichen, Verteilen, Unterlizenzieren und/oder Verkaufen von Kopien der “Top 20 Secure PLC Coding Practices”, und Personen, denen die “Top 20 Secure PLC Coding Practices” zur Verfügung gestellt wird, dies unter den folgenden Bedingungen zu gestatten:

Der obige Urheberrechtshinweis und dieser Genehmigungshinweis müssen in allen Kopien oder wesentlichen Teilen der “Top 20 Secure PLC Coding Practices” enthalten sein.

DIE “Top 20 Secure PLC Coding Practices” WIRD OHNE MÄNGELGEWÄHR UND OHNE JEGLICHE AUSDRÜCKLICHE ODER STILLSCHWEIGENDE GEWÄHRLEISTUNG, EINSCHLIESSLICH, ABER NICHT BESCHRÄNKT AUF DIE GEWÄHRLEISTUNG DER MARKTGÄNGIGKEIT, DER EIGNUNG FÜR EINEN BESTIMMTEN ZWECK UND DER NICHTVERLETZUNG VON RECHTEN DRITTER, ZUR VERFÜGUNG GESTELLT. DIE AUTOREN ODER URHEBERRECHTSINHABER SIND IN KEINEM FALL HAFTBAR FÜR ANSPRÜCHE, SCHÄDEN ODER ANDERE VERPFLICHTUNGEN, OB IN EINER VERTRAGS- ODER HAFTUNGSKLAGE, EINER UNERLAUBTEN HANDLUNG ODER ANDERWEITIG, DIE SICH AUS, AUS ODER IN VERBINDUNG MIT DEN “Top 20 Secure PLC Coding Practices” ODER DER NUTZUNG ODER ANDEREN GESCHÄFTEN MIT DER “Top 20 Secure PLC Coding Practices” ERGEBEN.



Special thanks to these organizations who generously provided infrastructure to use for the project team like domains, hosting, web design and graphic design: