ITmedia NEWS > STUDIO >
ZLeBEzbggsbNX

Coinhive�ݒu�ʼnƑ�{���󂯂��f�U�C�i�[�A�o�܂��u���O���J�@�u���̐l�ɓ����o�����ė~�����Ȃ��v

» 2018�N06��12�� 12��17�� ���J

�@�T�C�g�{���҂ɉ��z�ʉ݂��}�C�j���O���Ă��炤���ƂŎ��v�𓾂���c�[���uCoinhive�v��ݒu���������̃T�C�g�^�c�҂��A�s���w�ߓd���I�L�^�i�E�C���X�j���p�E�ۊǂȂǂ̗e�^�ő������œE������Ă���A�Ƃ̕񓹂��o�Ă���B

�@�E�����ꂽ1�l�E�f�U�C�i�[�́u�����v���񂪁A�u���̐l�ɓ����o�����ė~�����Ȃ��v�ƁA����̃u���O�ŏڂ����o�܂�������A�b����W�߂Ă���B���������Coinhive�ɉ”\���������A���O��Web�T�C�g��1�J�����ݒu�������ʁA�Ƒ�{�����󂯁A����10���~�̗������߂��󂯂��Ƃ����B�����A�{���̌o�܂ɋ^����o���A�������߂Ɉًc��\�����Ă�Y���ٔ����N�������Ƃɂ����Ƃ����B

摜 �u���O���

�^�ۗ��_�ACoinhive�Ƃ́H

�@Coinhive�́A��p��JavaScript�R�[�h���T�C�g�ɖ��ߍ��ނƁA���̃T�C�g���{�������l��PC��CPU�p���[���g���A���z�ʉ݁uMonero�v���̌@�B�̌@�v��7�����A�T�C�g�^�c�҂ɔz�������T�[�r�X���B

�@�uWeb�T�C�g���牟���‚����܂����L����r�����A��֎�i�ɂȂ邱�Ɓv��ړI�ɊJ�������ƊJ������Coinhive Team�͂������A���A��������i���j�Z�t�j���񕍂��邽�߂̕��@�Ƃ��ē�������ȂǁA�T�C�g���v���̐V���ȉ”\���Ƃ��Ē��ڂ�������A�u���ӂ𓾂��ɉ{���҂�CPU���g���Ȃ�}���E�F�A�ŁA���f���v�Ɣᔻ���������B

摜 Coinhive�g�b�v�y�[�W���

1�J���������A�������v�̓[�������c�c�ˑR�̉Ƒ�{��

�@��������́A�u�L�����ӂ�錻��̃��f�B�A�̂�����ɋ^��������Ă����v���߁A2017�N9�����{�A�u�L�����Ȃ����ă��[�U�[�o���iUX�j��ǂ����邽�߂̎��g�݁v�Ƃ��āA���O��Web�T�[�r�X��Coinhive��ݒu�����B�����u�ݒu�����Ȃ�{���҂̓��ӂ𓾂������ǂ��v�ȂǂƎw�E���󂯁A11����{�ɍ폜�����Ƃ����BCoinhive����̎��v��1000�~�������x�B�U�荞�݂͖�5000�~����Ȃ̂Łu�������v��0�������v�Ƃ����B

�@���N2����{�ɂȂ��ēˑR�A�_�ސ쌧�x����u�{���ɋ��͂��v�Ɠd�b������A������������10���Ԃɂ킽��Ƒ�{�����󂯂��Ƃ����B���̒��̖ⓚ�Łu�ǂ����Coinhive�������炵���v�Ɣ����B�f�X�N�g�b�vPC1��A�m�[�gPC1��A�X�}�[�g�t�H��1�䂪�������ꂽ�Ƃ����B

�@3����{�Ɍ��x�̎�蒲�ׂ��󂯁A�x������u�S�y�[�W��Coinhive�𓮍삳���邽�߂�head���ŃX�N���v�g��ǂݍ��񂾂ˁH�v�ȂǂƂ񂿂񂩂�Ȍ��߂‚����󂯂���A�u���Ȃ��Ă�̂��H�v�u���_���Ă񂶂�˂���I�v�ȂLjЊd����悤�Ȍx���������Əq���B��蒲�׌�ɁA�f�X�N�g�b�vPC�ȊO�̉����i�͕Ԋ҂��ꂽ���A�f�X�N�g�b�vPC�͌���AOS�܂ޑS�f�[�^���폜���ꂽ��ŕԋp���ꂽ�Ƃ����B

�@����ɁA3�����{�ɂ͌��@���Ŏ�蒲�ׂ��󂯁A����10���~�̗������߂��󂯂��Ƃ����B

Coinhive�̓E�C���X���H

�@�ǔ��V���̕��ɂ��ƌx�@�́A�{���҂̗����𓾂���Coinhive��ݒu���Ă���T�C�g�ɂ‚��āA�Y�@����߂�u�i���L�҂́j�Ӑ}�ɉ����ׂ�������������A�܂��͂��̈Ӑ}�ɔ����铮���������ׂ��s���Ȏw�߂�^����d���I�L�^�v�i�E�C���X�j�ł���Ɣ��f���A���Ȃ��Ƃ�5�l��{�������Ƃ����B

�@��������͌x�@����A�u���O�ɋ��i�������͗\�������邱�Ɓj�Ȃ����l��PC�𓮍삳������A�E�g�v�Ƃ������������󂯂��Ƃ����B�����A�u���߂��߂��Ⴍ����A�o�E�g�v�u�s���Ȏw�߂ɂ‚��Ă܂�ōl������Ă��Ȃ��v�Ǝw�E�BCoinhive���_���Ȃ�AdSense��Google Analytics�Ȃǂ�JavaScript���A�E�g�ɂȂ蓾��̂ł͂ƌ��O����B�܂��A�����N�i���ꂽ���Ƃɂ‚��āu���܂��܂ȁw�A�o�E�g���x�����ׂĂقڌx�@�̓ƒf�ōق���Ƃ������ƂɂȂ��Ă��܂��v�Ƃ��S�z����B

�@���̂��߃�������́A����10���~�Ɉًc��\�����Ă�Y���ٔ����N�������Ƃɂ����Ƃ����B�u�l�����̌������������󂯓����Ƃ낭�ɒ���������Ȃ��܂܁wCoinhive�͈�@�x�Ƃ����O�Ⴞ�����c��v�u���̏����ȑO��́wCoinhive�̓E�C���X�x�Ɖ��߂�ς���v�u���ꂪCoinhive�����ɂƂǂ܂�Ƃ͌���Ȃ��v�u�E�C���X�߂́w�s���Ȏw�߁x�̉��ߎ���v�ƍl�������߂��B

�@��������́u���̍ٔ��̏������������d�v�ł͂Ȃ��A����́w�E�C���X�߁x�^�p�����S�Ȃ��̂ɂ��A�V�������l�𐶂ݏo�����Ƃ���N���G�C�^�[������H�����Ƃ̂Ȃ��悤�A�ł��邱�Ƃ��������v�Əq�ׂĂ���B

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);