Architectural Decision Record: Naisdevice
Context
What is Naisdevice?
Naisdevice is the mechanism designed to secure developers’ laptops within NAV. It is a platform-agnostic solution intended to:
- Ensure endpoint security for developer machines.
- Promote awareness of endpoint security.
- Simplify access to runtime environments.
Why was Naisdevice developed?
NAV initially adopted an off-the-shelf Mobile Device Management (MDM) solution to address fleet management and endpoint compliance. However, several limitations became apparent, particularly for developers using Mac or Linux machines:
- Developer Autonomy Conflict:
- Developers require administrative access (“local admin”) to perform their work effectively. The MDM model—which assumes full IT control—clashes with this requirement.
- This resulted in loss of visibility into the true state of developer machines and created a false sense of security.
- Lack of Linux Support:
- Many developers prefer Linux due to its flexibility and suitability for their workflows.
- The MDM solution’s Linux support was either nonexistent or inadequate.
- User Frustrations:
- Developers experienced issues such as forced updates, unexpected reboots, and degraded system performance due to intrusive antivirus software.
- These issues led to inefficiencies and workarounds that introduced potential security risks.
- Insufficient Compliance Mechanisms:
- The compliance mechanism (“Compliant Device”) was binary and unreliable, offering either full access or none.
- Security flaws, such as the ability to export compliance certificates, undermined trust in the system.
Given these shortcomings, the decision was made to develop Naisdevice as an alternative.
Decision
NAV decided to create a custom solution, “Naisdevice,” to address the limitations of the existing MDM solution. The objectives were:
- Allow developers to choose tools that maximize their productivity.
- Provide accurate, up-to-date information about machine status.
- Ensure transparency about collected data.
- Focus on identifying risky behavior rather than enforcing rigid settings.
- Enable flexibility to adapt the solution as needed.
- Educate users about security risks and remediation steps.
- Minimize control over machines and avoid vendor lock-in.
- Remove barriers that slow productivity or encourage circumvention.
- Support external consultants using non-NAV-owned devices.
Implementation
To meet these objectives, a combination of SaaS, open-source software, and custom components was employed:
Core Components:
- Kolide:
- Provides insight into device status and allows security policies to be defined and enforced.
- Encourages a collaborative approach to security, focusing on user education and low-friction compliance.
- Osquery:
- Gathers information about devices using a database-like interface for queries.
- Efficient and non-intrusive, suitable for developer environments.
- Slack:
- Serves as the communication channel for notifying users about issues, risks, and remediation steps.
- WireGuard:
- A modern VPN solution providing secure access to specific services rather than broad network segments.
- Naisdevice API Server & Agent:
- Custom components written in PHP and Go that integrate the various tools and manage device compliance.
- Handle access provisioning based on Azure AD group memberships.
- Just-In-Time (JIT) Access:
- A mechanism requiring users to request access to sensitive resources with justification and time constraints.
- Do’s & Don’ts Agreement:
- A simple agreement outlining user responsibilities, fostering explicit expectations instead of enforced rules.
Practical Considerations:
- The solution was tested internally and externally, demonstrating higher security standards than the previous MDM solution.
- A phased migration plan was established, aiming to move all developer machines to Naisdevice by the end of 2023.
- External consultants can now securely use their own devices without requiring NAV-issued hardware.
Outcome
Naisdevice represents a significant shift from traditional MDM approaches, aligning with NAV’s values of developer autonomy and security. The solution provides:
- Improved developer satisfaction and productivity.
- A more accurate understanding of device security.
- A flexible, transparent, and user-friendly approach to endpoint management.
- Cost savings from reduced hardware procurement and maintenance.
Lessons Learned
- Traditional MDM solutions are not always compatible with modern development workflows.
- Trusting and educating users fosters better security behavior.
- A hybrid approach using SaaS, open-source tools, and custom integrations can effectively address diverse needs.
Future Steps
- Complete the migration of all developer machines to Naisdevice.
- Continue refining the solution based on user feedback and emerging security needs.
- Explore additional use cases for Naisdevice, including broader adoption across NAV.