OT izleme algılayıcıları için güvenlik açığı yönetimi API başvurusu
- Makale
Bu makalede IoT OT izleme algılayıcıları için Microsoft Defender için desteklenen güvenlik açığı yönetimi REST API'leri listelenmektedir.
API yanıtlarına dahil edilen veriler, şirket içi yönetim konsolundan bir güvenlik açığı raporu oluşturarak aynı bilgileri içerir.
cihazlar (Cihaz güvenlik açığı bilgilerini alma)
Her cihaz için güvenlik açığı değerlendirmesi sonuçları istemek için bu API'yi kullanın.
URI: /api/v1/reports/vulnerabilities/devices
GET
Bu API herhangi bir istek parametresi olmadan çağrılır.
Tür: JSON
Değerlendirilen cihazları ve bildirilen güvenlik açıklarını temsil eden JSON nesneleri dizisi.
Güvenlik açığı olmadığı belirlenen cihazlar sonuç yanıtına dahil değildir.
Cihaz alanları
Ad | Tür | Null atanabilir / Boş değer atanamaz | Değer listesi |
---|---|---|---|
name | Dize | Boş değer atanamaz | - |
ipAddresses | JSON dizisi | Boş değer atanamaz | - |
securityScore | Sayısal | Boş değer atanamaz | - |
Satıcı | Dize | Null Atanabilir | |
firmwareVersion | Dize | Null Atanabilir | - |
Modeli | Dize | Null Atanabilir | - |
isWirelessAccessPoint | Boole | Boş değer atanamaz |
True veya False |
Operatingsystem | İşletim sistemi nesnesi | Null Atanabilir | - |
Güvenlik açıkları | Güvenlik açıkları nesnesi | Boş değer atanamaz | - |
İşletim sistemi alanları
Ad | Tür | Null atanabilir / Boş değer atanamaz | Değer listesi |
---|---|---|---|
name | Dize | Boş değer atanamaz | - |
tür | Dize | Boş değer atanamaz | - |
Sürüm | Dize | Null Atanabilir | - |
latestVersion | Dize | Null Atanabilir | - |
Güvenlik açıkları alanları
Ad | Tür | Null atanabilir / Boş değer atanamaz | Değer listesi |
---|---|---|---|
Antiviruses | Dizelerin JSON dizisi | Null Atanabilir | Virüsten koruma adları |
plainTextPasswords | JSON dizisi | Null Atanabilir | Parola nesneleri |
Remoteaccess | JSON dizisi | Null Atanabilir | Uzaktan erişim nesneleri |
isBackupServer | Boole | Boş değer atanamaz |
True veya False |
openedPorts | JSON dizisi | Null Atanabilir | Açık bağlantı noktası nesneleri |
isEngineeringStation | Boole | Boş değer atanamaz |
True veya False |
isKnownScanner | Boole | Boş değer atanamaz |
True veya False |
cves | JSON dizisi | Null Atanabilir | CVE nesneleri |
isUnauthorized | Boole | Null atanamaz |
True veya False |
malwareIndicationsDetected | Boole | Null atanamaz |
True veya False |
weakAuthentication | Dizelerin JSON dizisi | Null Atanabilir | Zayıf kimlik doğrulaması kullanan uygulamalar algılandı |
Parola alanları
Ad | Tür | Null atanabilir / Boş değer atanamaz | Değer listesi |
---|---|---|---|
parola | Dize | Null atanamaz | - |
Protokolü | Dize | Null atanamaz | - |
Gücü | Dize | Null atanamaz |
Very weak , Weak , Medium , Strong |
Uzaktan erişim alanları
Ad | Tür | Null Atanabilir | Değer listesi |
---|---|---|---|
Bağlantı noktası | Sayısal | Null atanamaz | - |
Taşıma | Dize | Null atanamaz |
TCP , UDP |
Istemci | Dize | Null atanamaz | IP Adresi |
clientSoftware | Dize | Null atanamaz | , VNC , Remote desktop veya gibi SSH uzak protokolün adıTeam viewer |
Bağlantı noktası alanlarını açma
Ad | Tür | Null atanabilir / Boş değer atanamaz | Değer listesi |
---|---|---|---|
Bağlantı noktası | Sayısal | Null atanamaz | - |
Taşıma | Dize | Null atanamaz |
TCP veya UDP |
Protokolü | Dize | Null Atanabilir | - |
isConflictingWithFirewall | Boole | Null atanamaz |
True veya False |
CVE alanları
Ad | Tür | Null atanabilir / Boş değer atanamaz | Değer listesi |
---|---|---|---|
id | Dize | Null atanamaz | - |
Puan | Sayısal, ondalık değer | Null atanamaz | - |
açıklama | Dize | Null atanamaz | - |
Yanıt örneği
[
{
"name": "IED \#10",
"ipAddresses": ["10.2.1.10"],
"securityScore": 100,
"vendor": "ABB Switzerland Ltd, Power Systems",
"firmwareVersion": null,
"model": null,
"operatingSystem": {
"name": "ABB Switzerland Ltd, Power Systems",
"type": "abb",
"version": null,
"latestVersion": null
},
"vulnerabilities": {
"antiViruses": [
"McAfee"
],
"plainTextPasswords": [
{
"password": "123456",
"protocol": "HTTP",
"strength": "Very Weak"
}
],
"remoteAccess": [
{
"port": 5900,
"transport": "TCP",
"clientSoftware": "VNC",
"client": "10.2.1.20"
}
],
"isBackupServer": true,
"openedPorts": [
{
"port": 445,
"transport": "TCP",
"protocol": "SMP Over IP",
"isConflictingWithFirewall": false
},
{
"port": 80,
"transport": "TCP",
"protocol": "HTTP",
"isConflictingWithFirewall": false
}
],
"isEngineeringStation": false,
"isKnownScanner": false,
"cves": [
{
"id": "CVE-2015-6490",
"score": 10,
"description": "Frosty URL - Stack-based buffer overflow on Allen-Bradley MicroLogix 1100 devices before B FRN 15.000 and 1400 devices through B FRN 15.003 allows remote attackers to execute arbitrary code via unspecified vectors"
},
{
"id": "CVE-2012-6437",
"score": 10,
"description": "MicroLogix 1100 and 1400 do not properly perform authentication for Ethernet firmware updates, which allows remote attackers to execute arbitrary code via a Trojan horse update image"
},
{
"id": "CVE-2012-6440",
"score": 9.3,
"description": "MicroLogix 1100 and 1400 allows man-in-the-middle attackers to conduct replay attacks via HTTP traffic."
}
],
"isUnauthorized": false,
"malwareIndicationsDetected": true
}
}
]
Tür: GET
API:
curl -k -H "Authorization: <AUTH_TOKEN>" https://<IP_ADDRESS>/api/v1/reports/vulnerabilities/devices
Örnek:
curl -k -H "Authorization: 1234b734a9244d54ab8d40aedddcabcd" https://127.0.0.1/api/v1/reports/vulnerabilities/devices
güvenlik (Güvenlik açıklarını alma)
Genel bir güvenlik açığı değerlendirme raporunun sonuçlarını istemek için bu API'yi kullanın. Bu değerlendirme, sisteminizin güvenlik düzeyi hakkında içgörü sağlar.
Bu değerlendirme, belirli bir cihaz değerlendirmesine değil genel ağ ve sistem bilgilerine dayanır.
URI: /api/v1/reports/vulnerabilities/security
GET
Bu API herhangi bir istek parametresi olmadan çağrılır.
Tür: Her biri belirli ve potansiyel olarak farklı yapılara sahip bir veya daha fazla veri tablosunun JSON gösterimi.
Yanıt, tablo başlıklarını tablo satırlarıyla eşleyen bir harita görünümünde görüntülenir. Satırlar, aynı yapılara sahip nesnelerin listesi olarak temsil edilir.
unauthorizedDevices alanları
Ad | Tür | Null atanabilir / Boş değer atanamaz | Değer listesi |
---|---|---|---|
Adres | Dize | Null Atanabilir | Yetkisiz cihazın IP veya MAC adresi |
name | Dize | Null Atanabilir | Yetkisiz cihazın adı |
firstDetectionTime | Sayısal | Null Atanabilir | Cihazın ilk algılandığı zaman damgası, Dönem saatinden milisaniye cinsinden ve UTC saat diliminde |
lastSeen | Sayısal | Null Atanabilir | Trafiğin en son, Dönem saati ve UTC saat diliminden milisaniye cinsinden cihaza veya cihazdan gönderildiğinin algılandığı zaman damgası |
illegalTrafficByFirewallRules alanları
Ad | Tür | Null atanabilir / Boş değer atanamaz | Değer listesi |
---|---|---|---|
Sunucu | Dize | Null Atanabilir | Sunucu IP adresi |
Istemci | Dize | Null Atanabilir | İstemci IP adresi |
Bağlantı noktası | Sayısal | Null Atanabilir | Sunucu bağlantı noktası |
Taşıma | Dize | Null Atanabilir |
TCP , UDP veya ICMP |
weakFirewallRules alanları
Ad | Tür | Null atanabilir / Boş değer atanamaz | Değer listesi |
---|---|---|---|
sources | Kaynak JSON dizisi | Null Atanabilir | Aşağıdaki biçimlerden herhangi birinde yer alan JSON kaynak dizisi: - Any - ip address (host) - from ip-to ip (RANGE) - ip address, subnet mask (NETWORK) |
Hedef | JSON hedef dizisi | Null Atanabilir | Aşağıdaki biçimlerden herhangi birinde hedef nesnelerin JSON dizisi: - Any - ip address (host) - from ip-to ip (RANGE) - ip address, subnet mask (NETWORK) |
Bağlantı nokta -ları | Bağlantı noktalarının JSON dizisi | Null Atanabilir | Aşağıdaki biçimlerden herhangi birinde bağlantı noktası nesnelerinin JSON dizisi: - Any - port (protocol, if detected) - from port-to port (protocol, if detected) |
accessPoints alanları
Ad | Tür | Null atanabilir / Boş değer atanamaz | Değer listesi |
---|---|---|---|
macAddress | Dize | Null Atanabilir | Erişim noktasının MAC adresi |
Satıcı | Dize | Null Atanabilir | Erişim noktasının satıcı adı |
ıpaddress | Dize | Null Atanabilir | Erişim noktasının IP adresi veya YOK |
name | Dize | Null Atanabilir | Erişim noktasının cihaz adı veya Yok |
Kablosuz | Dize | Null Atanabilir | Erişim noktasının bir kablosuz ağa bağlı olup olmadığı: No , Suspected veya Yes |
connectionsBetweenSubnets alanları
Ad | Tür | Null atanabilir / Boş değer atanamaz | Değer listesi |
---|---|---|---|
Sunucu | Dize | Null Atanabilir | Sunucunun IP adresi |
Istemci | Dize | Null Atanabilir | İstemcinin IP adresi |
industrialMalwareIndicators alanları
Ad | Tür | Null atanabilir / Boş değer atanamaz | Değer listesi |
---|---|---|---|
detectionTime | Sayısal | Null Atanabilir | Kötü amaçlı yazılımın ilk algılandığı zaman damgası, Dönem zamanından ve UTC saat diliminden milisaniye cinsinden |
alertMessage | Dize | Null Atanabilir | Gönderilen uyarı iletisi |
açıklama | Dize | Null Atanabilir | Uyarı iletisi açıklaması |
Aygıtları | JSON dizisi | Boş değer atanamaz | Cihaz adlarını temsil eden dizelerden oluşan bir JSON dizisi |
internetConnections alanları
Ad | Tür | Null atanabilir / Boş değer atanamaz | Değer listesi |
---|---|---|---|
internalAddress | Dize | Null Atanabilir | Bağlantının iç IP adresi |
Yetkili | Boole | Null Atanabilir |
Yes veya No |
externalAddresses | JSON dizisi | Boş değer atanamaz | Bağlantının dış IP adreslerinin JSON dizisi |
Yanıt örneği
{
"unauthorizedDevices": [
{
"address": "10.2.1.14",
"name": "PLC \#14",
"firstDetectionTime": 1462645483000,
"lastSeen": 1462645495000,
}
],
"redundantFirewallRules": [
{
"sources": "170.39.3.0/255.255.255.0",
"destinations": "Any",
"ports": "102"
}
],
"connectionsBetweenSubnets": [
{
"server": "10.2.1.22",
"client": "170.39.2.0"
}
],
"industrialMalwareIndications": [
{
"detectionTime": 1462645483000,
"alertMessage": "Suspicion of Malicious Activity (Regin)",
"description": "Suspicious network activity was detected. Such behavior might be attributed to the Regin malware.",
"addresses": [
"10.2.1.4",
"10.2.1.5"
]
}
],
"illegalTrafficByFirewallRules": [
{
"server": "10.2.1.7",
"port": "20000",
"client": "10.2.1.4",
"transport": "TCP"
},
{
"server": "10.2.1.8",
"port": "20000",
"client": "10.2.1.4",
"transport": "TCP"
},
{
"server": "10.2.1.9",
"port": "20000",
"client": "10.2.1.4",
"transport": "TCP"
}
],
"internetConnections": [
{
"internalAddress": "10.2.1.1",
"authorized": "Yes",
"externalAddresses": ["10.2.1.2",”10.2.1.3”]
}
],
"accessPoints": [
{
"macAddress": "ec:08:6b:0f:1e:22",
"vendor": "TP-LINK TECHNOLOGIES",
"ipAddress": "173.194.112.22",
"name": "Enterprise AP",
"wireless": "Yes"
}
],
"weakFirewallRules": [
{
"sources": "170.39.3.0/255.255.255.0",
"destinations": "Any",
"ports": "102"
}
]
}
Tür: GET
API'ler:
curl -k -H "Authorization: <AUTH_TOKEN>" https://<IP_ADDRESS>/api/v1/reports/vulnerabilities/security
Örnek:
curl -k -H "Authorization: 1234b734a9244d54ab8d40aedddcabcd" https://127.0.0.1/api/v1/reports/vulnerabilities/security
operasyonel (operasyonel güvenlik açıklarını alma)
Genel bir güvenlik açığı değerlendirmesinin sonuçlarını istemek için bu API'yi kullanın. Bu değerlendirme, ağınızın çalışma durumu hakkında içgörü sağlar. Genel ağ ve sistem bilgilerini temel alır ve belirli bir cihaz değerlendirmesine dayalı değildir.
URI: /api/v1/reports/vulnerabilities/operational
GET
Bu API herhangi bir istek parametresi olmadan çağrılır.
Tür: Her biri belirli ve potansiyel olarak farklı yapılara sahip bir veya daha fazla veri tablosunun JSON gösterimi.
Yanıt, tablo başlıklarını tablo satırlarıyla eşleyen bir harita görünümünde görüntülenir. Satırlar, aynı yapılara sahip nesnelerin listesi olarak temsil edilir.
backupServer sonuç alanları
Ad | Tür | Null atanabilir / Boş değer atanamaz | Değer listesi |
---|---|---|---|
Kaynak | Dize | Null Atanabilir | Kaynak IP adresi |
Hedef | Dize | Null Atanabilir | Hedef IP adresi |
Bağlantı noktası | Sayısal | Null Atanabilir | Yedekleme sunucusu bağlantı noktası |
Taşıma | Dize | Null Atanabilir | Yedekleme sunucusu aktarım protokolü TCP veya UDP |
backupMaximalInterval | Dize | Null Atanabilir | Yedeklemeler arasındaki en uzun aralık süresi |
lastSeenBackup | Sayısal | Null Atanabilir | Bir yedeklemenin en son görüldüğü zaman damgası, Dönem zamanından ve UTC saat diliminden milisaniye cinsinden |
ipNetworks sonuç alanları
Ad | Tür | Null atanabilir / Boş değer atanamaz | Değer listesi |
---|---|---|---|
Adres | Sayısal | Boş değer atanamaz | Alt ağ aralığında bulunan IP adreslerinin sayısı. |
network | Dize | Boş değer atanamaz | Alt ağ temel IP adresi. |
maske | Dize | Boş değer atanamaz | Alt ağ maskesi. |
protocolProblems sonuç alanları
Ad | Tür | Null atanabilir / Boş değer atanamaz | Değer listesi |
---|---|---|---|
Protokolü | Dize | Boş değer atanamaz | Protokol ihlali uyarısının tetiklendiği protokol |
Adres | IP adreslerinin JSON dizisi | Boş değer atanamaz | İhlalin kaynaklandığı IP adreslerinin JSON dizisi |
Uyarı | Dize | Boş değer atanamaz | Tetiklenen uyarının başlığı |
reportTime | Sayısal | Boş değer atanamaz | Bir raporun son oluşturulduğu zaman damgası( Dönem zamanından ve UTC saat diliminden milisaniye cinsinden) |
protocolDataVolumes sonuç alanları
Ad | Tür | Null atanabilir / Boş değer atanamaz | Değer listesi |
---|---|---|---|
Protokolü | Dize | Null Atanabilir | OT ağ algılayıcısı tarafından ağda algılanan bir protokol |
Birim | Dize | Null Atanabilir | MB cinsinden OT ağ algılayıcısı tarafından yakalanan protokol paketlerinin hacmi |
bağlantı kesilmeleri sonuç alanları
Ad | Tür | Null atanabilir / Boş değer atanamaz | Değer listesi |
---|---|---|---|
assetAddress | Dize | Null Atanabilir | Bağlantısı kesilmiş varlığın IP adresi |
assetName | Dize | Null Atanabilir | Bağlantısı kesilmiş varlığın adı |
lastDetectionTime | Sayısal | Null Atanabilir | Dönem saati ve UTC saat diliminden milisaniye cinsinden bağlantı kesilmesinin en son algılandığı zaman damgası |
backToNormalTime | Sayısal | Null Atanabilir | Bağlantının döndürdüğünün zaman damgası, Dönem zamanından ve UTC saat diliminden milisaniye cinsinden |
Yanıt örneği
{
"backupServer": [
{
"backupMaximalInterval": "1 Hour, 29 Minutes",
"source": "10.2.1.22",
"destination": "170.39.2.14",
"port": 10000,
"transport": "TCP",
"lastSeenBackup": 1462645483000
}
],
"ipNetworks": [
{
"addresses": "21",
"network": "10.2.1.0",
"mask": "255.255.255.0"
},
{
"addresses": "3",
"network": "170.39.2.0",
"mask": "255.255.255.0"
}
],
"protocolProblems": [
{
"protocol": "DNP3",
"addresses": [
"10.2.1.7",
"10.2.1.8"
],
"alert": "Illegal DNP3 Operation",
"reportTime": 1462645483000
},
{
"protocol": "DNP3",
"addresses": [
"10.2.1.15"
],
"alert": "Master Requested an Application Layer Confirmation",
"reportTime": 1462645483000
}
],
"protocolDataVolumes": [
{
"protocol": "MODBUS (502)",
"volume": "21.07 MB"
},
{
"protocol": "SSH (22)",
"volume": "0.001 MB"
}
],
"disconnections": [
{
"assetAddress": "10.2.1.3",
"assetName": "PLC \#3",
"lastDetectionTime": 1462645483000,
"backToNormalTime": 1462645484000
}
]
}
Tür: GET
API'ler:
curl -k -H "Authorization: <AUTH_TOKEN>" https://<IP_ADDRESS>/api/v1/reports/vulnerabilities/operational
Örnek:
curl -k -H "Authorization: 1234b734a9244d54ab8d40aedddcabcd" https://127.0.0.1/api/v1/reports/vulnerabilities/operational
azaltma (Azaltma adımlarını alma)
Risk azaltma değerlendirmesi istemek için bu API'yi kullanın. Bu değerlendirme, algılanan güvenlik açıklarını azaltmak için önerilen adımları sağlar. Genel ağ ve sistem bilgilerini temel alır ve belirli bir cihaz değerlendirmesine dayalı değildir.
URI: /api/v1/reports/vulnerabilities/mitigation
GET
Bu API herhangi bir istek parametresi olmadan çağrılır.
Tür: JSON
Önerilen azaltma adımlarını temsil eden JSON nesnesi.
Yanıt alanları
Alan adı | Tür | Null Atanabilir | Değer listesi |
---|---|---|---|
Bildirim | Dizelerin JSON dizisi | Boş değer atanamaz | Algılanan güvenlik açıkları için önerilen azaltma adımları |
Azaltma | JSON dizisi | Boş değer atanamaz | azaltma nesneleri |
azaltma alanları
Alan adı | Tür | Null Atanabilir | Değer listesi |
---|---|---|---|
Içerik | Dize | Boş değer atanamaz | Algılanan güvenlik açıkları için önerilen azaltma adımları |
scoreImprovement | Tamsayı | Null Atanabilir | Risk azaltma adımları gerçekleştirildikten sonra beklenen güvenlik geliştirme yüzdesi. |
Şey | Tablo | Null Atanabilir | Risk değerlendirmesi raporunda gibi risk azaltma önerilerini listeleyen bir tablo oluşturulur. Her öneri, eylemin gerçekleştirilmesi durumunda olası güvenlik etkisi ve daha fazlası hakkında ayrıntılar içerir. Daha fazla bilgi için bkz. Risk azaltma. |
Not
Birden çok azaltma adımınız olabilir; bazıları alanda notifications
döndürülürken diğerleri de mitigation
alanda döndürülür. ve details
verileri olan scoreImprovement
öğeler yalnızca alanda mitigation
döndürülür. ve details
olmayan scoreImprovement
öğeler yalnızca alanda notifications
döndürülür.
Yanıt örneği
{
"notifications": ["Firewall policy import", "Marking \"important devices\"", "Further device information import"],
"mitigation": [{
"content": "Install an Antivirus solution to increase protection of the workstations",
"details": null,
"scoreImprovement": 10
}, {
"content": "Investigate all malware indicators (Contact your incident response team or support.microsoft.com). When assured the problem is solved, acknowledge the alert",
"details": {
"name": "",
"description": {
"name": "",
"important": false,
"warning": false
},
"headers": ["Detection Time", "Alert Message", "Description", "Devices"],
"rows": [
["03/10/2022 07:10:24", "Address Scan Detected", "Address scan detected.\nScanning address: 10.10.10.22\nScanned subnet: 10.11.0.0/16\nScanned addresses: 10.11.1.1, 10.11.20.1, 10.11.20.10, 10.11.20.100, 10.11.20.2, 10.11.20.3, 10.11.20.4, 10.11.20.5, 10.11.20.6, 10.11.20.7...\nIt is recommended to notify the security officer of the incident.", ""],
]
},
"scoreImprovement": 8
}, {
"content": "Install a backup server in the network",
"details": null,
"scoreImprovement": 5
}, {
"content": "Install latest security updates (Devices: 2)",
"details": {
"name": "",
"description": {
"name": "",
"important": false,
"warning": false
},
"headers": ["Name", "Address"],
"rows": [
["10.13.10.5", "10.13.10.5"],
["192.168.1.127", "192.168.1.127"]
]
},
"scoreImprovement": 2
}, {
"content": "Increase password complexity for authentication (Devices: 53)",
"details": {
"name": "",
"description": {
"name": "",
"important": false,
"warning": false
},
"headers": ["Name", "Address"],
"rows": [
["10.10.10.13", "10.10.10.13"],
["10.10.10.14", "10.10.10.14"],
["10.10.10.15", "10.10.10.15"],
["10.13.10.3", "10.13.10.3"],
["10.13.10.40", "10.13.10.40"],
["10.13.10.5", "10.13.10.5"],
["10.13.11.2", "10.13.11.2"],
["10.13.11.3", "10.13.11.3"],
["192.168.1.100", "192.168.1.100"],
["192.168.1.242", "192.168.1.242"]
]
},
"scoreImprovement": 2
}, {
"content": "Investigate and acknowledge all unacknowledge alerts",
"details": {
"name": "",
"description": {
"name": "",
"important": false,
"warning": false
},
"headers": ["Detection Time", "Alert Message", "Description"],
"rows": [
["03/10/2022 07:10:24", "Address Scan Detected", "Address scan detected.\nScanning address: 10.10.10.22\nScanned subnet: 10.11.0.0/16\nScanned addresses: 10.11.1.1, 10.11.20.1, 10.11.20.10, 10.11.20.100, 10.11.20.2, 10.11.20.3, 10.11.20.4, 10.11.20.5, 10.11.20.6, 10.11.20.7...\nIt is recommended to notify the security officer of the incident."],
["03/10/2022 07:44:52", "No Traffic Detected on Sensor Interface", "The sensor stopped detecting network traffic on local_listener."]
]
},
"scoreImprovement": 1
}]
}
curl -k -H "Authorization: 1234b734a9244d54ab8d40aedddcabcd" "https://<IP address>/api/v1/reports/vulnerabilities/mitigation"
Sonraki adımlar
Daha fazla bilgi için bkz. IoT için Defender API başvurusuna genel bakış.
Geri Bildirim
Bu sayfayı yararlı buldunuz mu?
Geri Bildirim
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz. https://aka.ms/ContentUserFeedback.
Gönderin ve geri bildirimi görüntüleyin