�uGitHub Copilot�v��AI��������������R�[�h�͂ǂ̂��炢���S���H�@�����҂炪�Ǝ㐫������ �F Innovative Tech
» 2022�N10��19�� 08��00�� ���J
���̃R�[�i�[�ł́A�e�N�m���W�[�̍ŐV�������Љ��Web���f�B�A�uSeamless �v����ɂ���R���T�B�������M�B�V�K���̍����Ȋw�_�����R�������s�b�N�A�b�v���A�������B
�@��New York University�ƃJ�i�_��University of Calgary�̌����`�[�������\�����_���uAsleep at the Keyboard�H Assessing the Security of GitHub Copilot�fs Code Contributions �v�́A�R�[�h��������������uGitHub Copilot�v�ɂ����āA���������R�[�h���Z�L�����e�B�ʂłǂꂭ�炢���S���������������B���ʁA�����Ő��������R�[�h�̖�40���ɐƎ㐫���������ꂽ�B
Copilot�̎g�p��
�@�\�t�g�E�F�A�J���҂́A�R�[�h��v���ɍ쐬���邱�Ƃ����߂��邽�߁A���Y�������コ����V�����c�[����Z�p����Ƀt�H���[���Ă����Ȃ���Ȃ�Ȃ��B���̕���̍ł��V�����Z�p��1�́A���Ƃ��Ǝ��R���ꏈ���iNLP�j�p�ɐv���ꂽ��K�͂ȃ��f����c��ȗʂ̃R�[�h�Ŋw�K�����A�v���O���}�[���R�[�h�������ۂɎx������A�R�[�h�̎����������f���ł���B
�@2021�N6���AGitHub�̓R�����g����A�h�L�������g������Ȃǂ��當����ǂݎ��R�[�h��������������uCopilot�v�������[�X�����BCopilot�́A���͂����ƂɃv���O���}�[�����������ł��낤�R�[�h��\�������Ă���A��������ƂɃ��[�U�[����������Ċ���������A�y�A�v���O���~���O����������B
�@Copilot�́A���͂���v���O������������������OpenAI Codex��GPT-3����ՃV�X�e���Ƃ��Ă���AGitHub�Ō��J����Ă���c��ȗʂ̃I�[�v���\�[�X�R�[�h���w�K���Ă���B
�@�����ŁA�w�K���ɗp����\�[�X�R�[�h�ɂ͖����Ȃ��߃o�O���܂܂����̂������A�K�R�I�ɐ��������R�[�h�ɂ��Ǝ�Ȃ��̂��܂܂��B�����ł��̌����ł́ACopilot�����������R�[�h���ǂ�قLj��S�ł��邩������B
�@�����ł́AMITRE���댯�x�̍����Ǝ㐫�^�C�v�������L���O�����u2021 CWE Top 25 Most Dangerous Software Weaknesses�v�iCWE Top 25�j�ɂ���悤�ȁA���X�N�̍����Z�L�����e�B�̐Ǝ㐫�Ɋ֘A����V�i���I��Copilot�ɃR�[�h�����Ă�������B
�@�]���ɂ́A�Ǝ㐫�����o����CodeQL�Ǝ蓮������p���A�Ԃ��ꂽ��Ă�����CWE�ɑ��ĐƎ�ł��邩�ǂ��������A�R�[�h�����̃p�t�H�[�}���X��������B
Copilot�̕]�����@
�@���v��89��ނ̃V�i���I���쐬���A1689�̃v���O������Copilot�Ɏ��s���������ʁA40.73���ɐƎ㐫�����邱�Ƃ����������B����ʂł́AC����̃V�i���I��25���A513�̃v���O��������������A258�i50.29���j���Ǝ�ł������BPython�̃V�i���I��29���ŁA���v571�̃v���O��������������A219�i38.35���j���Ǝ�ł������B
Source and Image Credits: Hammond Pearce, Baleegh Ahmad, Benjamin Tan, Brendan Dolan-Gavitt, and Ramesh Karri. Asleep at the Keyboard? Assessing the Security of GitHub Copilot�fs Code Contributions
Copyright © ITmedia, Inc. All Rights Reserved.
';
e_dlv.innerHTML = html;
adRequest({position:dlv_pos,dom:true});
}else if(ad_type === 'gam'){
var html = '
';
e_dlv.innerHTML = html;
refreshGam('InArtSpecialLink');
}else if(ad_type === 'logly'){
var html = '
';
e_dlv.innerHTML = html;
loglySet(g_id);
}else if(ad_type === 'google'){
var html = '
';
e_dlv.innerHTML = html;
googletag.cmd.push(function(){
var slot8 = googletag.defineSlot('/43042345/nlab_artinsert_RT',[[336,280],[300,250],'fluid'],'div-gpt-ad-1551176482959-0').addService(googletag.pubads());
googletag.pubads().enableSingleRequest();
googletag.enableServices();
googletag.display('div-gpt-ad-1551176482959-0');
googletag.pubads().refresh([slot8]);
});
}
};
var insert_ok = function(_target,_str){
var clearfix = d.createElement('div');
clearfix.className = 'colBoxClear';
if(ad_float_fix){
e_body.insertBefore(e_dlv,_target);
e_body.insertBefore(clearfix,_target.nextElementSibling);
}else{
e_body.insertBefore(e_dlv,_target);
}
set_dlv();
};
var insert_ng = function(_str){
e_dlv.style.display = 'none';
};
var main = function(){
var e_nodes = e_body.childNodes; // BODY �����q�v�f
var e_tags = []; // BODY �����^�O
var p_num = []; // BODY ���� P �^�O�ʒu
var p_target_num; // �g�}����ʒu
var o_float = {}; // ��荞�ݗv�f
var o_this = {}; // �A�N�e�B�u�^�O
var o_next = {}; // �A�N�e�B�u�^�O�̎��̃^�O
var flag_insert = 0; // �}���t���O
// ��荞�ݗv�f�`�F�b�N
var check_float = function(_e){
var e = 0;
if(_e.id.match(/^col\d{3}(l|r)$/)){
e = _e;
}
return e;
};
// �v�f�� Y ���W�ƍ����̍��v�l
var get_element_y = function(_e){
var ey = 0;
var eh = _e.offsetHeight;
while(_e){
ey += _e.offsetTop;
_e = _e.offsetParent;
}
return ey + eh;
};
var check_ptag = function(_e){
var e = 0;
if(_e.tagName && _e.tagName === 'P'){
e = _e;
}
return e;
};
var try_insert = function(){
p_target_num = Math.floor(p_num.length / 2) - 1;
if(p_target_num >= _maxrange) p_target_num = _maxrange;
if(dis_con) p_target_num = 0;
for(var i = p_num[p_target_num]; i < e_tags.length; i++){
o_this.e = check_ptag(e_tags[i]);
if(o_this.e){
o_next.e = check_ptag(e_tags[i + 1]);
if(o_next.e){
if(!o_float.e || check_float(e_tags[i - 1])){
o_float.e = check_float(e_tags[i - 1]);
o_float.n = i - 1;
}
if(o_float.e && o_float.n < i + 1){
o_float.y = get_element_y(o_float.e);
o_this.y = get_element_y(o_this.e);
set_line(o_float.y,'red');
set_line(o_this.y,'blue');
if(o_float.y < o_this.y){
flag_insert = 1;
insert_ok(o_next.e,_threshold + ' �p���ȏ��荞�݂���');
break;
}
}else{
flag_insert = 1;
insert_ok(o_next.e,_threshold + ' �p���ȏ��荞�݂Ȃ�');
break;
}
}
}else{
o_float = {};
}
}
if(!flag_insert){
insert_ng('�}���ʒu�Ȃ�');
}
};
// �S�q�v�f����^�O�̂ݔz��ɓ����
for(var i = 0; i < e_nodes.length; i++){
if(e_nodes[i].tagName){
e_tags.push(e_nodes[i]);
}
}
// �S�^�O���� P �^�O�ʒu��z��ɓ����
for(var i = 0; i < e_tags.length; i++){
if(e_tags[i].tagName === 'P') p_num.push(i);
// �ŏ��̉�荞�ݗv�f���i�[
if(!o_float.e){
o_float.e = check_float(e_tags[i]);
o_float.y = get_element_y(o_float.e);
o_float.n = i;
}
}
if(p_num.length >= _threshold){
try_insert();
}else{
insert_ng('P �^�O ' + _threshold + ' �ȉ�');
}
};
if(e_body){
main();
}else{
insert_ng('�L���{���Ȃ�');
}
})(document,4,5);