This rule ensures that all network sockets used in your Kotlin application are secured using SSL/TLS encryption. Unencrypted network communication is a significant security risk because it allows attackers to intercept and manipulate the data being transmitted. This can lead to data breaches, unauthorized access, and other security issues.
In Kotlin, you can ensure your sockets are encrypted by using the SSLSocketFactory or SSLServerSocketFactory classes to create your sockets. If you need to use a socket with custom configuration, you can still ensure it is encrypted by using the SSLContext class to create a configured SSL socket. Avoid using the Socket or ServerSocket classes directly, because these classes create unencrypted sockets by default.
Non-Compliant Code Examples
// Example 1: Basic Socket usage
funcreateConnection(){// UNSAFE: Unencrypted socket
valsocket=Socket("api.example.com",80)socket.getOutputStream().write(data)}// Example 2: ServerSocket usage
funstartServer(){// UNSAFE: Unencrypted server socket
valserverSocket=ServerSocket(8080)valclient=serverSocket.accept()}// Example 3: Socket with custom configuration
funconfiguredSocket(){// UNSAFE: Still unencrypted despite configuration
valsocket=Socket("api.example.com",8080,true)socket.soTimeout=5000}
Compliant Code Examples
// Example 1: SSLSocket usage
funcreateSecureConnection(){// SAFE: Using SSL socket factory
valsocket=SSLSocketFactory.getDefault().createSocket("api.example.com",443)socket.getOutputStream().write(data)}// Example 2: SSL ServerSocket usage
funstartSecureServer(){// SAFE: Using SSL server socket factory
valserverSocket=SSLServerSocketFactory.getDefault().createServerSocket(8443)valclient=serverSocket.accept()}// Example 3: Configured SSLSocket
funconfiguredSecureSocket(){valcontext=SSLContext.getInstance("TLS")context.init(null,null,null)// SAFE: Using configured SSL socket
valsocket=context.socketFactory.createSocket("api.example.com",443)}
シームレスな統合。 Datadog Code Security をお試しください
Datadog Code Security
このルールを試し、Datadog Code Security でコードを解析する
このルールの使用方法
1
2
rulesets:- kotlin-security # Rules to enforce Kotlin security.